Я только что настроил машину с двумя сетевыми картами: одна для частной сети, а другая для публичной сети, которой назначен реальный IP-адрес.
DEVICE=eth0
HWADDR=XXX
TYPE=Ethernet
UUID=XXX
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPADDR=172.26.111.131
NETMASK=255.255.255.128
GATEWAY=172.26.111.129
Конфигурация eth1 для публичной сети выглядит следующим образом:
DEVICE=eth1
HWADDR=XXX
TYPE=Ethernet
UUID=XXX
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPADDR=PUBLIC_IP
NETMASK=255.255.255.248
GATEWAY=PUBLIC_GATEWAY
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default PUBLIC_GATEWAY 0.0.0.0 UG 0 0 0 eth1
PUBLIC_NID * 255.255.255.248 U 0 0 0 eth1
link-local * 255.255.0.0 U 1002 0 0 eth0
link-local * 255.255.0.0 U 1004 0 0 eth1
172.26.111.128 * 255.255.255.128 U 0 0 0 eth0
Я уверен, что это довольно легко сделать. Я искал информацию об этом, но так и не смог заставить это работать. Машина все еще пытается направлять частные IP-адреса через публичный шлюз.
Буду признателен за любые идеи по этому поводу. Где я не прав?
Я просто пытаюсь получить доступ к 172.26.111.128/25 через eth0.
решение1
Моя установка
Я настроил псевдоним для eth0, так что на самом деле у него есть 2 IP-адреса: 192.168.1.6 и 192.168.1.254.
Я делаю что-то вроде этого на местном уровне:
ifconfig eth1:0 192.168.1.254
route add -host 192.168.1.254 dev eth1:0
Это дает мне следующую таблицу маршрутизации:
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.254 0.0.0.0 255.255.255.255 UH 0 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
ISP_NETWORK 0.0.0.0 255.255.240.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
0.0.0.0 ISP_GATEWAY 0.0.0.0 UG 0 0 0 eth0
Это дает мне такой маршрут:
192.168.1.254 0.0.0.0 255.255.255.255 UH 0 0 0 eth1
Рекомендации
решение2
Ну, это была наша вина, ребята. Я пытался пинговать хост, которого на самом деле не существует, поэтому я думал, что сеть не маршрутизируется должным образом. Спасибо за все ваши сообщения и помощь!