通过 DHCP + 公共 IP 分配私有 IP

通过 DHCP + 公共 IP 分配私有 IP

我希望我的 Ubuntu VM 既有私有 IP,又有公共 IP。私有 IP 应由我的 DHCP 服务器提供。

目前我正在尝试这个:

auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static
address 109.68.162.166
netmask 255.255.255.240
network 109.68.162.160
broadcast 109.68.162.175
gateway 109.68.162.174

问题是我只能 ping 私有 IP 地址,而不能 ping 公共 IP 地址。当我关闭 eth0 时,我可以开始 ping 公共 IP 地址。所以看起来 DHCP 以某种方式阻止了我的公共 IP 地址正常工作?

ip route显示:

default via 192.168.168.254 dev eth0
default via 109.68.162.174 dev eth1  metric 100
109.68.162.160/28 dev eth1  proto kernel  scope link  src 109.68.162.166
192.168.160.0/20 dev eth0  proto kernel  scope link  src 192.168.164.96

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.168.254 0.0.0.0         UG    0      0        0 eth0
0.0.0.0         109.68.162.174  0.0.0.0         UG    100    0        0 eth1
109.68.162.160  0.0.0.0         255.255.255.240 U     0      0        0 eth1
192.168.160.0   0.0.0.0         255.255.240.0   U     0      0        0 eth0

我的 vmhost 上的路由:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.168.254 0.0.0.0         UG    0      0        0 br925
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
192.168.160.0   0.0.0.0         255.255.240.0   U     0      0        0 br925

答案1

主要问题是您通过 DHCP 接收默认网关,该网关以最小度量 0 建立。由于数据包进入私有网络,因此您无法访问公共 IP。

尝试在 DHCP 中禁用网关。

供参考:SE/超级用户: 我不希望我的 DHCP 成为默认网关

答案2

我必须将其添加到 /etc/network/interfaces(在 eth0 部分)

up route add -net 192.168.159.0 netmask 255.255.255.0 gw 192.168.168.254 dev eth0

相关内容