Mój problem to przekazywanie pakietów z eth2, czyli mojej sieci LAN do eth1, który ma dostęp do Internetu, aby umożliwić eth2 dostęp do Internetu, oto moja konfiguracja:
auto eth1
iface eth1 inet static
address 192.168.3.1
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.3.255
gateway 192.168.3.254
auto eth2
iface eth2 inet static
address 10.101.26.1
netmask 255.255.0.0
network 10.101.0.0
broadcast 10.101.255.255
Konfiguracja iptables:
iptables -A FORWARD -i eth2 -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth2 -j ACCEPT
Już odkomentuj net.ipv4.ip forward = 1 w /etc/sysctl.conf i napisz 1 w / proc / sys / net / ipv4 / ip_forward .
Jeśli testuję na komputerze podłączonym do sieci LAN z bramą 10.101.26.1, nie mogę uzyskać dostępu do Internetu, więc jak mogę to rozwiązać?
Dziękuję za wszelką pomoc! pozdrowienia
linux
networking
firewall
iptables
forwarding
Ghilander
źródło
źródło
Odpowiedzi:
Będziesz potrzebować jakiegoś maskaradowego stwierdzenia. Powodem tego jest to, że obecnie pakiety przychodzące z eth2 do eth1 są identyfikowane przez adresy 10.101.0.0/16. Te pakiety 10.101.0.0/16 następnie próbują przemierzać sieć przez eth1 (192.168.3.0/24). Nie udaje się to, ponieważ pakiety te nie zostały jeszcze zamaskowane jako pakiety z 192.168.3.1.
Mały skrypt taki jak ten poniżej powinien pomóc. Zmodyfikuj w razie potrzeby:
źródło
Na podstawie twojego opisu zakładam, że twój komputer stoi za routerem, a eth1 jest podłączony do Internetu za pośrednictwem routera. Trzeba będzie utworzyć statyczną trasę na routerze do 10.101.0.0/16 przez 192.168.3.1, aby pakiety odpowiedzi przeznaczone do tej sieci mogły być przekazywane do komputera.
źródło
route add -net 10.101.0.0/16 gw 192.168.3.1
z routerem (tj. 192.168.3.254).