O ambiente é o FreeBSD na maior parte e se parece com isso:
HOST_A <-> ROUTER <-> LOKI <-> HOST_B
No mínimo, eu gostaria de poder fazer ping no ROUTER de HOST_B.
- ROUTER recebe o IP 10.0.0.1
- LOKI é uma máquina multi-homed que recebe os IPs 10.0.0.2 e 192.168.200.1
- HOST_B é atribuído o IP 192.168.200.3
- HOST_A recebe o IP 10.0.0.3
Eu configurei a rede como acima e adicionei gateway_enable="YES" ao loki
rc.conf
netstat -r no LOKI produz:
Routing tables
Internet:
Destination Gateway Flags Netif Expire
default 10.0.0.1 UGS em0
10.0.0.0 link#1 U em0
10.0.0.2 link#1 UHS lo0
loki link#2 UH lo0
192.168.200.0 link#3 U ue0
192.168.200.1 link#3 UHS lo0
que parece uma tabela de roteamento e parece funcionar em todas as direções.
netstat -r no HOST_B produz:
Routing tables
Internet:
Destination Gateway Flags Netif Expire
default 192.168.200.1 UGS em0
hostb link#2 UH lo0
192.168.200.0 link#1 U em0
192.168.200.3 link#1 UHS lo0
que se parece com outra tabela de roteamento, mas só consegue ver o LOKI.
Em resumo:
- O LOKI é capaz de efetuar ping de HOST_A, HOST_B e ROUTER
- HOST_B é capaz de fazer ping no LOKI, mas não no ROUTER ou no HOST_A
Algumas notas adicionais:
de HOST_B
ping 10.0.0.1 100% packet loss
Em wireshark no LOKI, enquanto executa ping a 10.0.0.1 de HOST_B:
120 40.549564000 192.168.200.3 10.0.0.1 ICMP 98 Echo (ping) request id=0x5a0e, seq=92/23552, ttl=63 (no response found!)
Parece-me que nada está sendo roteado do LOKI para o ROUTER. O que estou perdendo?
Confirmei que o encaminhamento de IP estava ocorrendo comentando gateway_enable="YES" em /etc/rc.conf e reinicializando.
Então, eu corri os seguintes comandos no loki:
sudo tcpdump -i em0 -nS
sudo tcpdump -i ue0 -nS
para monitorar a atividade nas duas nics.
do hostb, eu corri:
ping 10.0.0.1
a interface ue0 em 192.168.200.1 relatou:
14:44:21.870865 IP 192.168.200.3 > 10.0.0.1: ICMP echo request, id 21509, seq 0, length 64
nada foi relatado na interface do em0 em 10.0.0.2.
Eu então corri:
sudo sysctl -w net.inet.ip.forwarding=1
e com certeza, em0 relatado:
14:58:14.745369 IP 192.168.200.3 > 10.0.0.1: ICMP echo request, id 25861, seq 0, length 64
Mas não, responda como o que recebo com um ping loki do hostb:
14:44:15.724200 IP 192.168.200.3 > 192.168.200.1: ICMP echo request, id 21253, seq 4, length 64
14:44:15.724207 IP 192.168.200.1 > 192.168.200.3: ICMP echo reply, id 21253, seq 4, length 64
Se eu fizer o ping do loki, tudo bem:
15:04:55.637839 IP 10.0.0.2 > 10.0.0.1: ICMP echo request, id 46852, seq 3, length 64
15:04:55.638324 IP 10.0.0.1 > 10.0.0.2: ICMP echo reply, id 46852, seq 3, length 64
Alguma ideia de como encontrar a resposta?