Linux

一個網卡上有兩個ip地址

  • July 26, 2017

我正在嘗試在單個 NIC 上獲取兩個外部 ip 地址(均由 DHCP 分配的 ip)。我添加了一個 macvlan 設備vir1,它自己的 mac 地址綁定到主 NIC eth0。設置eth0為混雜模式。

兩者都vir1得到eth0自己的ip地址,我打算同時使用這兩個ip地址。

當我從外部主機 ping 到eth0ip 地址時,我可以得到 ping 響應,但是當我 ping 到vir1ip 地址時,沒有任何回复。tcpdump 顯示兩者vir1eth0在我 ping 時獲取 ping 請求vir1

我希望客戶端可以使用這兩個 IP 地址來訪問我的 Web 服務,電腦通過 isp 的乙太網電纜直接連接到 Internet

任何幫助,將不勝感激!

/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

如果將第二個 IP 添加到虛擬 VLAN 介面,NIC 將標記發往該 VLAN (802.1Q) 的幀。如果交換機上沒有設置 VLAN,它就會被丟棄。

如果要使用同一個網段需要直接將IP添加到網卡:

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 上也不行。

引用自:https://serverfault.com/questions/865285