Portál AbcLinuxu, 11. listopadu 2025 06:12
net/ipv4/ip_forward=1 v /etc/sysctl.conf (cat /proc/sys/net/ipv4/ip_forward 1)iptables -t nat -A PREROUTING -i eth1 -j ACCEPT -d 192.168.1.0/24
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE -s 192.168.1.0/24192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.1
10.2.0.0/16 dev eth1 proto kernel scope link src 10.2.1.75
default via 10.2.0.1 dev eth1search ktk.lan
nameserver 217.195.160.1
na PC2 bych pripadne dopsal 192.168.1.1rcpdumpem zjistit, kam až se dostanou pakety, když se pokoušíte "dostat ven".
Divné je dávat do PREROUTING -j ACCEPT, pravidlo s MASQUERADE by IMHO mělo stačit. Jaká máte pravidla pro chain FORWARD?
rcpdump -> tcpdump
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 192.168.1.0/24
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 192.168.1.0/24 0.0.0.0/0
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
tcpdumpem (tcpdump -ni ethX), ono je docela náročné si jen podle samotných iptables pravidel představit, co všechno firewallem projde a co ne.
iptables, tak tam firewall je
I když je pravda, že -t nat není firewall v pravém smyslu slova. FORWARD konkrétně je chain, kterým prochází veškerá komunikace která nesměřuje z nebo na lokální stroj.
Dopingnete se někam dál než na eth1? Podle toho mála, co zatím víme, bych tipoval, že odchozí pakety jsou OK, ale někde se ztratí příchozí. Jde o to, zda se ztratí ještě před vaším routerem (tj. na eth1 nepřijde žádná odpověď), pak by se zřejmě chybně přepisovaly hlavičky v paketu. Nebo je možné, že odpověď dorazí na eth1, ale router neví, co s ním dál.
Zkuste pustit na routeru tcpdump -ni eth0 'proto \tcp and port 80' a stáhnout z notebooku wgetem titulní stránku Seznamu: wget 212.80.76.3. Pak to samé udělejte i pro eth1 v tcpdump. Pokud se v obou případech stránka stáhne (wget napíše něco jako `index.html' saved), je problém v nastavení DNS. Pokud se nestáhne, dejte sem do diskuze prvních třeba 20 řádků z výpisu každého tcpdumpu, podle toho poznáme, kde se pakety ztrácí.
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE -s 192.168.1.0/24
iptables -A FORWARD -i ${IFACE} -s 192.168.0.0/255.255.0.0 -j ACCEPT
iptables -A FORWARD -i ${OFACE} -d 192.168.0.0/255.255.0.0 -j ACCEPT
iptables -t nat -A POSTROUTING -o ${OFACE} -j MASQUERADE
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 192.168.1.0/24
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 192.168.1.0/24 0.0.0.0/0
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.