次のコマンドのような仮想インターフェースを作成するにはどうすればよいですかifconfig
?
$ sudo ifconfig eth1 hw ether 00:01:02:aa:bb:cc
SIOCSIFHWADDR: No such device
これは機能しません。DHCP サーバーの構成をテストするために MAC アドレスを設定したいです。
iproute2
ip link コマンドを使用してスイートでこれを実行するにはどうすればよいですか?
$ sudo ip link add type veth
これは機能しますが、MAC アドレスがランダムに割り当てられます。これはまだ便利ですが、dhcpd
設定したクラスがどのように処理されるかを確認するために、特定の MAC アドレスを使用してサーバーをテストしたいと思います。
現在のセットアップ1 :
$ ip ad
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 60:eb:69:1b:a0:88 brd ff:ff:ff:ff:ff:ff
inet 172.16.0.93/24 brd 172.16.0.255 scope global eth0
inet6 fe80::62eb:69ff:fe1b:a088/64 scope link
valid_lft forever preferred_lft forever
7: vboxnet0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
8: veth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
link/ether 3a:50:38:2e:24:c4 brd ff:ff:ff:ff:ff:ff
[1]: この設定は、上記のコマンドの実行の結果ではないことに注意してください。特に、ペア/が存在するため、このように番号が付けられたip link add type veth
ペアが作成されます。veth1@veth2
veth2@veth1
veth0
答え1
DHCPサーバーの構成をテストするためにMACアドレスを設定したい
これを実現するには(少なくとも?)2つの方法がありますリナックス。
最もシンプルでわかりやすい、しかし非常に危険な方法は、Macアドレス物理インターフェースの。しかし、そうするためにはインターフェースを下に置く必要がありますだから、それは最も安全な方法ではなく、確かに遠隔操作の場合、非常に危険な方法! ホストなどに物理的にアクセスできる場合は、それがオプションになります。
より安全な方法は、マックVLAN適切な MAC アドレスを持つ物理インターフェイスのリンク。物理インターフェイスの MAC アドレスを変更するのに使用するコマンドと同様のコマンドを使用して、この MAC アドレスをいつでも変更できます。これは、たとえば多数のインターフェイスを作成/削除することなく、複数の IP/MAC の組み合わせをテストするのに便利です。
「より安全」と言うのは、ネットワークのセキュリティ対策によっては、たとえばネットワークが物理リンク上で異なる MAC アドレスの使用を禁止している場合、MAC VLAN リンクでも接続が失われるリスクがあるためです。場合によっては、ホストが接続されているネットワーク デバイスがセキュリティを侵害しているとみなし、リンクを切断することがあります。
以下のコマンドを実行するには、iproute2Linux のユーティリティ。
リモート ホストで以下のコマンドを使用する前に、上記のテキストをお読みください。
macvlan リンクを追加するには、以下を使用します。
ip link add link eth0 type macvlan
インターフェイスの名前は、最初の数字で始まりmacvlanX
ますX
(その名前のインターフェイスは存在しません)。
作成時にインターフェースに名前を付けることができます(vif0
たとえば、次のようにします)。
ip link add name vif0 link eth0 type macvlan
という名前のインターフェースを持つvif0
。
インターフェイスを取得したら、次のコマンドを使用して MAC アドレスを変更できます (00:11:22:33:44:55
例)
ip link set address 00:11:22:33:44:55 dev macvlan0
この同じコマンドを使用して、他のインターフェースの MAC アドレスを変更できます。これは、物理リンクの MAC アドレスを変更するために使用できるコマンドです。
もちろん、macvlan リンクを追加してそのアドレスを 1 回で設定することもできます。
ip link add name vif0 address 00:11:22:33:44:55 link eth0 type macvlan
MAC アドレスが設定されたら、インターフェースをアップにすることを忘れないでください。インターフェースの名前は次のとおりですvif0
。
ip link set dev vif0 up
これらのコマンドの一部はオプションであり、異なる順序で配置できますが、他の部分は構文の一部であり、正しい場所に配置する必要があることに注意してください。さらに、意味を損なわない限り、一部を省略できます1。たとえば、上記のコマンドでは、dev
を省略できます。
作成される macvlan のデフォルト タイプは VEPA であり、物理インターフェイスと仮想インターフェイス間の直接通信を防止します。この使用例には適しているはずです。他のモードも利用可能です。この RedHat の「仮想ネットワークのための Linux インターフェース入門」の macvlan に関する章。
役に立つといいのですが... ...ここを通りかかる他の誰かのために。
dev
1:たとえば、インターフェースに (非常に) 悪い名前を付ける場合、省略することはできません。
答え2
やってみました...
ip link add type veth addr 00:01:02:aa:bb:cc
または
ip link set dev veth0 addr 00:01:02:aa:bb:cc
答え3
VLAN インターフェースを作成します。 ip link add name ${VLAN インターフェース名} link ${親インターフェース名} type vlan id ${タグ} 例: ip link add name eth0.110 link eth0 type vlan id 110
http://baturin.org/docs/iproute2/#Create%20a%20VLAN%20インターフェース