单个物理设备上有多个具有互联网连接的 IPv4 地址

单个物理设备上有多个具有互联网连接的 IPv4 地址

我的 ISP 为我提供了最多两个 ipv4 地址。我有一个带有 archlinux 的 Raspberry Pi 连接到调制解调器。第一个接口是 eth0,ip 地址是通过 dhcp 获取的。

我创建了一个虚拟设备

ip link add link eth0 address 00:11:11:11:11:11 eth0.1 type macvlan

并给该设备分配一个 IP

dhcpcd eth0.1

我的路由表现在如下所示(我将公共地址更改为 10.0.xx):

[root@core ~]# ip route
default via 10.0.26.1 dev eth0  metric 204 
default via 10.0.24.1 dev eth0.1  metric 206 
10.0.24.0/23 dev eth0.1  proto kernel  scope link  src 10.0.24.195  metric 206 
10.0.26.0/24 dev eth0  proto kernel  scope link  src 10.0.26.219  metric 204 
192.168.178.0/24 dev eth1  proto kernel  scope link  src 192.168.178.1

我尝试禁用防火墙和其他一切

ping -I eth0.1 www.google.de

但那没有用。

我将第二条路由的度量从 206 更改为 100,然后它就可以正常工作了。但是现在来自 eth0 的 ping 断了。

据我对网络的了解,我预计从两个设备进行的 ping 操作都应该可以正常工作。

我的下一步行动是转储流量(我将我的公共 IP 更改为 10.0.xx)

[root@core ~]# ping -I eth0.1 www.google.de (no output was shown here)
[root@core ~]# tcpdump -i eth0.1 icmp
11:32:18.344731 IP  10.0.24.195 > ham02s11-in-f23.1e100.net: ICMP echo request, id 1841, seq 1, length 64
11:32:18.368186 IP ham02s11-in-f23.1e100.net > 10.0.24.195: ICMP echo reply, id 1841, seq 1, length 64

我还查看了 wireshark 中的转储,对我来说,它看起来非常酷。使用了 eth0.1 的 arp 和 ip 地址。(00:11:11:11:11:11 和 10.0.24.195)

这是我的接口信息的输出

[root@core ~]# ip addr
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group   default qlen 1000
link/ether b8:27:eb:fe:e6:87 brd ff:ff:ff:ff:ff:ff
inet 10.0.26.219/24 brd 10.0.26.255 scope global eth0
   valid_lft forever preferred_lft forever
6: eth0.1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default 
link/ether 00:11:11:11:11:11 brd ff:ff:ff:ff:ff:ff
inet 10.0.24.195/23 brd 10.0.25.255 scope global eth0.1
   valid_lft forever preferred_lft forever

我注意到一些对我来说似乎很奇怪的事情,但我不确定。

  • eth0.1 状态未知
  • eth0.1 的网络掩码是 /23 ,而不是 /24
  • eth0.1 的 brd 是 10.0.25.255,与 eth0 相比,我期望 10.0.24.255

我希望有人能给我一些建议。

相关内容