偽装されたMACアドレスを使用してiproute2の「ip link」コマンドを使用して仮想ネットワークインターフェースを作成します。

偽装されたMACアドレスを使用してiproute2の「ip link」コマンドを使用して仮想ネットワークインターフェースを作成します。

次のコマンドのような仮想インターフェースを作成するにはどうすればよいですかifconfig?

$ sudo ifconfig eth1 hw ether 00:01:02:aa:bb:cc  
SIOCSIFHWADDR: No such device  

これは機能しません。DHCP サーバーの構成をテストするために MAC アドレスを設定したいです。

iproute2ip 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@veth2veth2@veth1veth0

答え1

DHCPサーバーの構成をテストするためにMACアドレスを設定したい

これを実現するには(少なくとも?)2つの方法があります

最もシンプルでわかりやすい、しかし非常に危険な方法は、物理インターフェースの。しかし、そうするためにはインターフェースを下に置く必要がありますだから、それは最も安全な方法ではなく、確かに遠隔操作の場合、非常に危険な方法! ホストなどに物理的にアクセスできる場合は、それがオプションになります。

より安全な方法は、適切な MAC アドレスを持つ物理インターフェイスのリンク。物理インターフェイスの MAC アドレスを変更するのに使用するコマンドと同様のコマンドを使用して、この MAC アドレスをいつでも変更できます。これは、たとえば多数のインターフェイスを作成/削除することなく、複数の IP/MAC の組み合わせをテストするのに便利です。

「より安全」と言うのは、ネットワークのセキュリティ対策によっては、たとえばネットワークが物理リンク上で異なる MAC アドレスの使用を禁止している場合、MAC VLAN リンクでも接続が失われるリスクがあるためです。場合によっては、ホストが接続されているネットワーク デバイスがセキュリティを侵害しているとみなし、リンクを切断することがあります。

以下のコマンドを実行するには、Linux のユーティリティ。

リモート ホストで以下のコマンドを使用する前に、上記のテキストをお読みください。

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 に関する章

役に立つといいのですが... ...ここを通りかかる他の誰かのために。


dev1:たとえば、インターフェースに (非常に) 悪い名前を付ける場合、省略することはできません。

答え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インターフェース

関連情報