Я бы хотел, чтобы моя виртуальная машина Ubuntu имела как частный, так и общедоступный 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
Проблема в том, что я могу пинговать только частный IP-адрес, а не публичный. Когда я выключаю eth0, я могу начать пинговать публичный 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
Основная проблема заключается в том, что вы получаете шлюз по умолчанию по DHCP, который установлен с минимальной метрикой 0. Вы не можете получить доступ к общедоступным IP-адресам, поскольку пакеты идут в частную сеть.
Попробуйте отключить шлюз в DHCP.
К вашему сведению: SE / Суперпользователь: Я не хочу, чтобы мой DHCP был шлюзом по умолчанию
Пришлось добавить это в / etc / network / interfaces (в разделе eth0)
up route add -net 192.168.159.0 netmask 255.255.255.0 gw 192.168.168.254 dev eth0