Je fais une expérience réseau sur le transfert de paquets IP, mais je ne sais pas pourquoi cela fonctionne.
J'ai une machine Linux avec deux interfaces réseau, eth0 et eth1 avec une adresse IP statique (eth0: 192.168.100.1, eth1: 192.168.101.2).
Mon objectif est simple, je veux simplement transférer des paquets ip de eth1 avec destination dans le sous-réseau 192.168.100.0/24 vers eth0, et transférer des paquets ip de eth0 avec destination dans le sous-réseau 192.168.101.0/24 vers eth1.
J'ai activé le transfert IP avec:
sysctl -w net.ipv4.ip_forward=1
ma table de routage est comme ceci:
# 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
Mais, lorsque j'essaie d'envoyer une requête ping de 192.168.100.25 à 192.168.101.47, cela ne fonctionne pas.
la source
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
etiptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
à mes tables. Et ma politique INPUT, OUTPUT et FORWARD sont toutesACCEPT
.traceroute
sur mon hôte, cela montre que le paquet va au "routeur" (192.168.100.1), mais il ne va pas plus loin.Vous devez ajouter un itinéraire vers 192.168.100.25 et 192.168.101.47.
Si votre serveur de transfert possède les adresses IP 192.168.100.1 et 192.168.101.1, vous devez ajouter le client 192.168.100.25
et dans le client 192.168.101.47
(Cela fonctionne avec seulement le transfert activé, pas d'iptables).
la source