1つの物理ネットワークカードを持つUbuntuシステムを使用して、自分のシステムに複数のシステムがあるように見せたいと思います。本物ネットワークはすべてこのUbuntuシステムによって制御されます。
たとえば、192.168.1.xネットワークがあります。私のUbuntuコンピュータのIPは192.168.1.10で、macアドレスは00:11:22:33:44:55です. IPアドレスが192.168.1.11で、Macアドレスが55:44:33:22:11の別の「マシン」を展開したいと思います。
したがって、192.168.1.9でローカルネットワークをarpスキャンすると、次の情報が表示されます。
...
192.168.1.10 00:11:22:33:44:55
192.168.1.11 55:44:33:22:11:00
...
どちらのシステムも、物理ネットワーク上の他の物理システムのpingに応答する必要があります。アイデアは、192.168.1.9が.10と.11を持つように見えるようにすることです。2つの別々の機械実際のネットワークで。
追加の仮想マシンやDockerコンテナを作成せずにこの「マシン」を作成するための比較的単純なコマンドセットを探しています。
助けてくれてありがとう!
答え1
アドレスが192.168.1.175のシステムがあります。
# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 2c:f0:5d:c9:12:a9 brd ff:ff:ff:ff:ff:ff
altname eno2
altname enp0s31f6
inet 192.168.1.175/24 brd 192.168.1.255 scope global dynamic noprefixroute eth0
valid_lft 80184sec preferred_lft 80184sec
inet6 fe80::ed9c:756f:92a:ef21/64 scope link noprefixroute
valid_lft forever preferred_lft forever
アドレスが192.168.1.190のmacvlanインターフェイスを追加し、そのインターフェイスに異なるMACアドレスがあることを証明します。
ネットワーク名前空間を作成します。
ip netns add ns0
プライマリNICに接続されたmacvlanデバイスを作成し、それをns0
名前空間に配置します。
ip link add macvlan0 netns ns0 link eth0 type macvlan mode bridge
これにより、次のような結果が得られます。
# ip -n ns0 link show macvlan0
6386: macvlan0@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether c2:f9:01:dd:eb:95 brd ff:ff:ff:ff:ff:ff
新しいインターフェイスにアドレスを割り当てます。
ip -n ns0 addr add 192.168.1.190/24 dev macvlan0
そしてインターフェースを呼び出します。
ip -n ns0 link set macvlan0 up
ネットワークの他のシステムでは:
pi@retropie:~ $ sudo arp-scan 192.168.1.175 192.168.1.190
Interface: wlan0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9.5 with 2 hosts (https://github.com/royhills/arp-scan)
192.168.1.175 2c:f0:5d:c9:12:a9 (Unknown)
192.168.1.190 c2:f9:01:dd:eb:95 (Unknown)
3 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9.5: 2 hosts scanned in 4.221 seconds (0.47 hosts/sec). 2 responded
新しいアドレスにpingを送信することもできます。
pi@retropie:~ $ ping 192.168.1.190
PING 192.168.1.190 (192.168.1.190) 56(84) bytes of data.
64 bytes from 192.168.1.190: icmp_seq=1 ttl=64 time=25.3 ms
64 bytes from 192.168.1.190: icmp_seq=2 ttl=64 time=13.5 ms
64 bytes from 192.168.1.190: icmp_seq=3 ttl=64 time=10.5 ms
^C
--- 192.168.1.190 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 6ms
rtt min/avg/max/mdev = 10.520/16.424/25.270/6.371 ms