![一个网卡上有两个 IP 地址](https://linux22.com/image/708116/%E4%B8%80%E4%B8%AA%E7%BD%91%E5%8D%A1%E4%B8%8A%E6%9C%89%E4%B8%A4%E4%B8%AA%20IP%20%E5%9C%B0%E5%9D%80.png)
我正在尝试在单个 NIC 上获取两个外部 IP 地址(两个 IP 均由 DHCP 分配)。我添加了一个 macvlan 设备vir1
,其自己的 mac 地址绑定到主 NIC eth0
。设置eth0
为混杂模式。
两者vir1
都eth0
获得自己的ip地址,我打算同时使用这两个ip地址。
当我从外部主机 ping 到eth0
ip 地址时,我可以得到 ping 响应,但是当我 ping 到vir1
ip 地址时,没有任何回复。tcpdump 显示,vir1
当eth0
我 ping 到vir1
我希望客户端可以使用这两个 IP 地址来访问我的 Web 服务,计算机通过来自 ISP 的以太网电缆直接连接到互联网
任何帮助,将不胜感激!
/etc/网络/接口
# Primary interface
auto eth0
iface eth0 inet dhcp
up ip link set dev eth0 promisc on
# Macvlan interfaces
auto vir1
iface vir1 inet dhcp
pre-up ip link add link eth0 address 02:cd:ab:00:10:01 vir1 type macvlan
post-down ip link delete vir1
ifconfig 结果:
eth0 Link encap:Ethernet HWaddr 8c:73:6e:b7:c7:10
inet addr:120.201.123.143 Bcast:120.201.123.255 Mask:255.255.252.0
inet6 addr: fe80::8e73:6eff:feb7:c710/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
vir1 Link encap:Ethernet HWaddr 02:cd:ab:00:10:01
inet addr:120.201.120.227 Bcast:120.201.123.255 Mask:255.255.252.0
inet6 addr: fe80::cd:abff:fe00:1001/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
答案1
如果您将第二个 IP 添加到虚拟 VLAN 接口,NIC 将标记发往该 VLAN (802.1Q) 的帧。如果交换机上未设置 VLAN,它将被丢弃。
如果要使用同一个网段,则需要直接将IP添加到NIC:
auto eth0:1
iface eth0:1 inet static
address 120.201.120.227
gateway 120.201.120.001 <= insert correct gw address
netmask 255.255.252.0
具有两个 IP 地址的 DHCP 不起作用,即使在 Linux 上也不行。