辅助 IP 地址的唯一 Mac 地址?

辅助 IP 地址的唯一 Mac 地址?

使用一台带有一个物理网卡的 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两台独立的机器在真实网络上。

寻找一组相对简单的命令来创建这个“机器”,而不创建任何额外的虚拟机或 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

相关内容