Linuxマシンで別々のMACアドレスを使用して2つの論理ネットワークインターフェイスを(1つの物理インターフェイスで)セットアップする方法を理解しようとしています。
私の最初の試みは、最初は機能しているように見えるmacvlanを使用することでした。
[root@localhost ~]# ip link add link enp0s3 name veth0 type macvlan
[root@localhost ~]# ip link set veth0 up
[root@localhost ~]# dhclient veth0
[root@localhost ~]# ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.6 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::a00:27ff:fe3b:d08b prefixlen 64 scopeid 0x20<link>
ether 08:00:27:3b:d0:8b txqueuelen 1000 (Ethernet)
RX packets 356 bytes 58787 (57.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 210 bytes 24203 (23.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
veth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::2462:42ff:fecb:5090 prefixlen 64 scopeid 0x20<link>
ether 26:62:42:cb:50:90 txqueuelen 0 (Ethernet)
RX packets 83 bytes 9099 (8.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 34 bytes 3871 (3.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ただし、別のマシンからローカルネットワークをスキャンすると、両方のインターフェイス(192.168.1.6と192.168.1.11)が同じMACアドレス08:00:27:3b:d0:8bを持っていることが示されます。
これが可能であれば何かアイデアはありますか?この目的で使用できない場合、macvlanはどのように使用されますか?
ありがとう。
編集:
オテウスが提案したように、私は以前と同じ設定で試しました
sysctl -w net.ipv4.conf.all.arp_ignore=1
sysctl -w net.ipv4.conf.all.arp_announce=2
これにより、インターフェイスは、明示的に送信されたarp要求にのみ応答するようになります。
私のセットアップでは、これにより、veth0にIPアドレスを割り当てるDHCP要求が失敗しました。 veth0に静的IPアドレスがあるため、ネットワーク内の他のホストからこのアドレスに到達できませんでした(arp/nmap/pingを試しました)。
私の(予備的な)結論は、同じサブネット上に異なるMACアドレスを持つ仮想インターフェイスを持つことは不可能であるということです。ただし、macvlanの正確な目的は何であり、ローカルマシン(仮想インターフェイスを設定した場所)に独自のMACアドレスを持つ仮想インターフェイスが表示されるのに、他のマシンからは表示されないのはなぜですか。
Dhclientがveth0にIPアドレスを割り当てることができたという事実は、個別のMACアドレスが意図したとおりに機能していることを示しています。どのように「ネットワークをスキャン」しましたか?より良いテストは次のようになります。2番目のホストからパケットをスニッフィングします(私は古い学校で、「tcpdump -e icmp」を使用します。次に、上記のホストから、各インターフェイスを介してpingを実行します(ping-これを実行できます) 、およびスニッフィングされたパケットのMACアドレスを確認します。
一方、仮想IPインターフェイスでARPパケットを処理するためのsysctl変数がいくつかあります。関連する投稿 ここ は このページ を指しており、トピックについて詳しく説明しています。このソリューションは、ネットワークスイッチと、直接接続された複数のMACを持つ1つのポートを処理する方法によって混乱する可能性があります。