macvlanを使用したネットワークにおける複数のハードウェアデバイスのシミュレーション

macvlanを使用したネットワークにおける複数のハードウェアデバイスのシミュレーション

ローカルネットワーク上の複数のデバイスをエミュレートするために、Linuxのネットワークネームスペースを使用しようとしています。サブネットから偽装されたラップトップIPではなく、実際のネットワークデバイスとして表示されることを望みます。可能ですか?

ここに画像の説明を入力してください。

この名前空間を使用して、インターネットにアクセスできる複数のbashスクリプトを実行したいと思います。

sudo ip netns exec netns1 myscript1.sh
sudo ip netns exec netns2 myscript2.sh

仮想ネットワークを作成するスクリプトを作成しています。現在、私は名前空間でこれをやろうとしています。

INTERFACE=enp59s0
IP1=192.168.2.101/24

# create macvlan and associate it to network device in bride mode
ip link add macvlan1 link $INTERFACE type macvlan mode bridge

# create new network namespace
ip netns add netns1

# associate the macvlan to the new namespace
ip link set macvlan1 netns netns1

# Set IP address
ip -n netns1 addr add $IP1 dev macvlan1

# set macvlan to up
ip netns exec netns1 ifconfig macvlan1 up

これにより、サブネット内でデバイスをpingできます。つまり、次のことを行います。

sudo ip netns exec netns1 nmap -sn 192.168.2.1-255

ただし、デフォルトの名前空間で仮想デバイスをpingできない場合。

また、ルートにルータを追加しても、外部の世界に接続できません。

sudo ip netns exec netns1 ip route add default via 192.168.2.1
sudo ip netns exec netns1 ping 8.8.8.8

From 192.168.2.1 icmp_seq=1 Destination Net Unreachable

どんなアイデアがありますか?これは正しいアプローチですか?

ifconfigを使用してIPエイリアスを指定する方が良いですか?

ifconfig enp59s0:0 192.168.2.101 up

その後、どういうわけか新しいインターフェースを名前空間にバインドしますか?

関連情報