Estou fazendo um experimento de rede sobre o encaminhamento de pacotes IP, mas não sei por que ele funciona.
Eu tenho uma máquina Linux com duas interfaces de rede, eth0 e eth1, ambos com endereço IP estático (eth0: 192.168.100.1, eth1: 192.168.101.2).
Meu objetivo é simples, eu só quero encaminhar pacotes IP de eth1 com destino na sub-rede 192.168.100.0/24 para eth0 e encaminhar pacotes IP de eth0 com destino na sub-rede 192.168.101.0/24 para eth1.
Ativei o encaminhamento de ip com:
sysctl -w net.ipv4.ip_forward=1
minha tabela de roteamento é assim:
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.101.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Mas, quando tento executar o ping de 192.168.100.25 a 192.168.101.47, ele não funciona.
fonte
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
eiptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
às minhas tabelas. E minhas políticas INPUT, OUTPUT e FORWARD são todasACCEPT
.traceroute
no meu host, ele mostra que o pacote vai para o "roteador" (192.168.100.1), mas não avança.Você precisa adicionar uma rota a 192.168.100.25 e 192.168.101.47.
Se o servidor de encaminhamento tiver IPs 192.168.100.1 e 192.168.101.1, você adicionaria o cliente 192.168.100.25
e no cliente 192.168.101.47
(Isso funciona apenas com o encaminhamento ativado, sem iptables).
fonte