同じ物理デバイス(eth1)に2つの異なるMACとIPアドレスを設定する必要があります。
しかし、デフォルト/グローバルネームスペースにmacvlanインターフェイスを設定し、そこにVLANを設定した場合。タグを付けずに外部ホストからVLAN IPアドレスを直接pingできます。ただし、タグ付けされたpingは機能しません。非大域/非デフォルト名前空間でネットワーク構成を設定するときも同じことが起こります。
ip addr add 169.254.255.126/16 dev eth1
ip link set dev eth1 up
# ping 169.254.255.126 # PING from external host is working: fine
ip link add macvlan link eth1 type macvlan mode bridge
ip addr add 169.254.255.127/16 dev macvlan
ip link set dev macvlan up
# ping 169.254.255.127 # PING from external host is working: fine
ip link add link macvlan name vlan2 type vlan id 2
ip addr add 169.254.255.128/16 dev vlan2
ip link set dev vlan2 up
# ping 169.254.255.128 # PING from external host works without vlan tag: FAIL
# ping 169.254.255.128 -I VLAN2 # no PING response external host with vlan tag: FAIL
では、グローバル/ネイティブネームスペースの同じ物理インターフェイスに2つの仮想インターフェイス(異なるMAC + IP)を設定して物理デバイスのように動作するにはどうすればよいですか。
オプション:グローバルオプションなしで名前空間を許可できます。
注:カーネル5.4を持つUBUNTU 18.04とカーネル4.9を含む組み込みビルドルートシステムでテストしました(両方とも同じ結果)。
答え1
いくつかのテストとさらなる調査の最後に、問題は、同じネットワークゾーンの複数のIPアドレスを複数のネットワークインターフェイスに配置しようとすることでした。
これが正しく機能するには、非大域名前空間が必要です。
それではここでこの質問を終えましょう。ありがとう