Bem, foi nossa culpa pessoal. Eu estava tentando pingar um host que realmente não existe, portanto, eu estava pensando como se a rede não estivesse roteando corretamente. Obrigado por todas as suas mensagens e ajuda!
Acabei de configurar uma máquina que tem dois NICs, um para rede privada e outro para rede pública que tem um IP real atribuído a ele.
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
Configuração da eth1 para rede pública da seguinte forma:
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
Tenho certeza de que isso é muito fácil de alcançar. Eu pesquisei sobre isso, mas de alguma forma não consegui fazer isso funcionar. A máquina ainda tenta rotear IPs privados via gateway público.
Eu gostaria de receber algumas ideias sobre isso. Onde estou errado?
Estou apenas tentando acessar 172.26.111.128/25 via eth0.
Eu configurei um alias para eth0 para que ele realmente possua 2 endereços IP, 192.168.1.6 & 192.168.1.254.
Eu faço algo parecido com isso localmente:
ifconfig eth1:0 192.168.1.254
route add -host 192.168.1.254 dev eth1:0
Isso me fornece uma tabela de roteamento como esta:
$ 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
Isso me dá uma rota assim:
192.168.1.254 0.0.0.0 255.255.255.255 UH 0 0 0 eth1