Portál AbcLinuxu, 13. května 2025 22:14

Dotaz: sdileni pripojeni

28.7.2006 10:22 newman | skóre: 7
sdileni pripojeni
Přečteno: 233×
Odpovědět | Admin
Zdravim vsechny,

vim, ze tu tenhle dotaz a problem je tu zas a znova, ale prestoze jsem si precetl vsechny diskuze na Abicku, tak jsem to ani po dvo dnech nevyresil. Muj problem je takovy:

PC1:


pripojeni k internetu pres kabelovku (DHCP, za NATem), Ubuntu 6.06, 2 sitovky (eth1: 10.2.1.75/16 z DHCP, eth0: 192.168.1.1/24 staticka adresa)

PC2 - notebook:


potrebuju pripojit k internetu pres PC1, Gentoo, 1 sitovka (eth0: 192.168.1.2/24 staticka adresa)

Zatim jsem na PC1 nastavil:


net/ipv4/ip_forward=1 v /etc/sysctl.conf (cat /proc/sys/net/ipv4/ip_forward 1)

/etc/rc.local (skript se spusti pri startu):
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/24


/etc/hosts.allow:
ALL:192.168.1.1
ALL:192.168.1.2
/etc/hosts.deny je prazdny

ip route na PC1:


192.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 eth1


na PC2 jsem nastavil default gw na 192.168.1.1 a tam se taky dostanu.

Co funguje:


PC1: vse
PC2: ping na obe sitovky (eth0, eth1) na PC1, ven se nedostanu

/etc/resolv.conf jsou na obou PC stejne:


search ktk.lan
nameserver 217.195.160.1
na PC2 bych pripadne dopsal 192.168.1.1

Prosim poradte, uz nevim, kde hledat chybu. Diky.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

28.7.2006 12:05 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: sdileni pripojeni
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkuste rcpdumpem 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?
28.7.2006 12:05 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: sdileni pripojeni
sorry za překlep, rcpdump -> tcpdump
28.7.2006 12:39 lefti | skóre: 18 | blog: OneAndOnlyTrueBlog
Rozbalit Rozbalit vše Re: sdileni pripojeni
Odpovědět | | Sbalit | Link | Blokovat | Admin
misto toho /etc/rc.local (fuj,pouzvivej /etc/init.d/iptables) raci ukaz iptables -nL a iptables -t nat -nL na bezicim systemu na PC1.
28.7.2006 14:29 newman | skóre: 7
Rozbalit Rozbalit vše Re: sdileni pripojeni
iptables -t nat -nL:
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

iptables -nL je prazdne.
28.7.2006 14:35 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: sdileni pripojeni
A default policy pro FORWARD?

Opravdu by pomohlo zjistit, kde se ty pakety zarazí tím 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.
28.7.2006 23:07 newman | skóre: 7
Rozbalit Rozbalit vše Re: sdileni pripojeni
na tom serveru vlastne zadny firewall neni...

a co konkretne by ten FORWARD mel delat? preposilat pakety z eth0 na eth1? tohle urcite funguje (dopingnu na eth1 [packet jde pres eth0]).
29.7.2006 10:19 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: sdileni pripojeni
Jestli na routeru přidáváte pravidla pomocí 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í.
29.7.2006 11:33 newman | skóre: 7
Rozbalit Rozbalit vše Re: sdileni pripojeni
pokud pouziju wget na seznam s tcpdumpem na routeru, tak tcpdump nema zadny vystup a wget napise "no route to host" v obou pripadech (eth0, eth1).

pokud misto wget pouziju ping na seznam, tak z tcpdumpu na eth0 vyleze:

10:59:48.577501 arp who-has 212.80.76.3 tell 192.168.1.1

a na eth1 vyleze:

11:19:26.096178 arp who-has 10.2.1.38 tell 10.2.0.1 11:19:26.377686 arp who-has 10.2.6.167 tell 10.2.0.1 11:19:26.414930 arp who-has 10.2.0.54 tell 10.2.0.1 11:19:27.379567 arp who-has 10.2.0.63 tell 10.2.0.1 11:19:27.536314 arp who-has 10.2.0.177 tell 10.2.0.1 11:19:28.183540 arp who-has 10.2.0.110 tell 10.2.0.1 11:19:28.908572 arp who-has 10.2.1.38 tell 10.2.0.1 11:19:29.102381 arp who-has 10.2.0.54 tell 10.2.0.1 11:19:29.803086 arp who-has 10.2.1.63 tell 10.2.0.1 11:19:29.971616 arp who-has 10.2.0.124 tell 10.2.0.1 11:19:30.722851 arp who-has 10.2.0.177 tell 10.2.0.1 11:19:30.755059 arp who-has 10.2.0.63 tell 10.2.0.1

ted se divam, ze se ani nedopingnu z notebooku na eth1...

pridal jsem na PC1: iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
29.7.2006 12:01 lefti | skóre: 18 | blog: OneAndOnlyTrueBlog
Rozbalit Rozbalit vše Re: sdileni pripojeni
zase, to ze pridas iptables -A FORWARD je informace k uplne nicemu, protoze nevime co je predtim. Muzes konecne ukazat kompletni vypis iptables -vnL a iptables -t nat -vnL (treba na pastebin)?
29.7.2006 12:34 newman | skóre: 7
Rozbalit Rozbalit vše Re: sdileni pripojeni
uz to funguje. diky vsem za pomoc.

to ze jsem se nemohl tedka dopingnout na eth1 bylo zpusobeno tim, ze jsem mel stejnou IP adresu na notasu (eth0) a na PC1 (eth0), tedy stejne IPecka na obou stranach dratu. problem byl opravdu v preposilani packetu z eth0 na eth1 na PC1; pomohl radek s -A FORWARD v minulem prispevku.
12.2.2007 11:49 newman | skóre: 7
Rozbalit Rozbalit vše Re: sdileni pripojeni
jeste dodam, abych to uz nemusel nikdy vymyslet, ze tim pravym orechovym je:

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE -s 192.168.1.0/24
12.2.2007 21:46 newman | skóre: 7
Rozbalit Rozbalit vše Re: sdileni pripojeni
samozrejme jsem kecal. spravne je: # input interface; WAN IFACE="eth1" # output interface; LAN OFACE="eth0" 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
28.7.2006 14:31 newman | skóre: 7
Rozbalit Rozbalit vše Re: sdileni pripojeni
iptables -t nat -nL:
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

iptables -nL je prazdne.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.