Portál AbcLinuxu, 24. dubna 2024 15:03


Dotaz: Nat a ping na veřejnou ip

19.5.2009 11:29 Piškot | skóre: 7 | blog: Uživatel | Přerov nad labem
Nat a ping na veřejnou ip
Přečteno: 458×
Odpovědět | Admin

Popis problému

Firewall dělá nat z vnitřních adres 10.250.xxx.xxx do veřejné sítě 82.xxx.xxx.xxx pro uživatele.  Všechno funguje, ale firewall nedokáže sám najít trasu pro veřejné ip. Tedy ping z vně i zevnitř je v pořádku, ale z lokalhostu firewalu ne. Na firewallu je smtp, které občas musí doručit zprávu na veřejou adresu uvnitř sítě.

 

 Děkuji

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

19.5.2009 12:01 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Nat a ping na veřejnou ip
Odpovědět | | Sbalit | Link | Blokovat | Admin
firewall nedokáže sám najít trasu pro veřejné ip. Tedy ping z vně i zevnitř je v pořádku, ale z lokalhostu firewalu ne.

To tam asi máte dost divokou konfiguraci a něco jste přehlédl.

Takže si nejprve otestujte směrování (ip route get PROBLÉMOVÁ_ADRESA), a pak si projděte packetový filtr (asi si tam nastrkejte pravidla s LOG), abyste zjistil, kde vám tyto packety zahazuje nebo je posílá jinam nebo jim špatně přepisuje adresy.

19.5.2009 12:10 Piškot | skóre: 7 | blog: Uživatel | Přerov nad labem
Rozbalit Rozbalit vše Re: Nat a ping na veřejnou ip

82.xxx.xxx.2 via 82.xxx.xxx.205 dev eth2  src 82.xxx.xxx.206
    cache  mtu 1500 advmss 1460 hoplimit 64

 

Uteče to ven na bránu poskytovatele v iptables to nebude. Spíš asi chybý routa, ale kam když síť není ani venku (eth2) ani vevnitr (eth1) ale jen v nat tabulce ?

19.5.2009 13:29 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Nat a ping na veřejnou ip
Nerozumím. Jak chybí routa, když jste od jádra dostal jasnou odpověď, že ví kudy ten packet směrovat, tudíž routa existuje?
19.5.2009 16:19 Piškot | skóre: 7 | blog: Uživatel | Přerov nad labem
Rozbalit Rozbalit vše Re: Nat a ping na veřejnou ip

Paket dojde na bránu, ale adresa existuje jen v nat na rozhraní není. Jestli paket z brány poskytovatele jde zpátky na firewall nevím, příjde mi to divný. Prostě potřebuju lokalhostu říct že ip 82.xxx.xxx.xxx je 10.xxx.xxx.xxx.

19.5.2009 18:15 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Nat a ping na veřejnou ip
Paket dojde na bránu

Jakou bránu? Bránu vzhledem k vašemu firewallu, tedy na stroj poskytovatele?

ale adresa existuje jen v nat na rozhraní není

Jaká adresa na jakém rozhraní? Adresa brány, cílová adresa packetu?

Pokud jde o cílovou nebo zdrojovou adresu packetu, tak ta na žádném rozhraní být nemusí. Pouze všechny směrovače po cestě musí vědět, kam daný packet poslat (což se většinou rozlišuje podle cílové adresy packetu a směrovacích tabulek na daném routeru).

Jestli paket z brány poskytovatele jde zpátky na firewall nevím,

Stačí si pustit tcpdump na rozhraní firewallu směřujícího do brány poskytovatele.

Prostě potřebuju lokalhostu říct že ip 82.xxx.xxx.xxx je 10.xxx.xxx.xxx.

Stále nerozumím. Zkuste se vyjadřovat souvisle a bez zkratek. Adresy schovávat nemusíte, nikdo vám je neukradne. Nakreslete schéma nebo uveďte výpisy směrovacích tabulek.

19.5.2009 22:06 Piškot | skóre: 7 | blog: Uživatel | Přerov nad labem
Rozbalit Rozbalit vše Re: Nat a ping na veřejnou ip

Princip

Sít 82.208.32.32/26 je mapována na 82.208.83.204 což je můj server.

1) Poslu paket z intenetu na 82.208.32.33

2) Paket příjde na bránu 82.208.83.204

3) Na serveru je paket pro 82.208.32.33 přeložen na 10.250.0.2

4) Paket je doručen

Problém je když paket nepřichází z venku ale ze serveru.

1) Pošlu zprávu na schránku @domena.cz přes SMTP na 82.208.83.204
2) Server zjistí z DNS, že MX vede na adresu 82.208.32.33
3) Pošle paket na ip 82.208.32.33
4) Ip 82.208.32.33 není na rozhraní serveru
5) Ip 82.208.32.33 není ve vnitřní síti
6) Pošle paket na bránu provozovatele (82.208.83.205)
7) Paket už se nevrátí

 

IP jsou lehce upravené.

20.5.2009 00:03 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Nat a ping na veřejnou ip

Už chápu.

Že se packet nevrátí od poskytovatele je způsobeno tím, jak on má nastavené své routery.

Pokud by se choval striktně podle pravidel RFC, tak by měl packet vrátit a zároveň odeslat ICMP zprávu typu redirect, která by byla adresována vašemu serveru a říkala by, že packety pro tuto adresu mají být příště směrovány jinudy a to přes váš server.

To samozřejmě není moc chytré, protože by se hrozil vznik směrovací smyčky (poskytovatel neví, že nějaké adresy přepisujete, a tak byste smyčku rozetnul), proto poskytovatel raději takové packety zahazuje.

Vy v podstatě potřebujete, aby se překládaly adresy i lokálně generovaným packetům.

Pravděpodobně máte DNAT pravidla v řetězci PREROUTING. Jenže packety generované lokálně neprocházejí řetězcem PREROUTING, nýbrž řetězcem OUTPUT (stále v tabulce nat). Citace z iptables(8) u popisu tabulky nat:

This table is consulted when a packet that creates a new connection is encountered. It consists of three built-ins: PREROUTING (for altering packets as soon as they come in), OUTPUT (for altering locally-generated packets before routing), and POSTROUTING (for altering packets as they are about to go out).

Takže ve vašem případě pomůže, když stejná pravidla DNAT, která překládají adresy v řetězci PREROUTING rovněž přidáte to řetězce OUTPUT.

20.5.2009 09:05 Tomas
Rozbalit Rozbalit vše Re: Nat a ping na veřejnou ip

Ano to pomohlo. pořád jsem se snažil dostat pakety do PREROUTINGU a nevěděl jsem, že můžu použít NAT i nad OUTPUTEM.

 

Děkuji moc za pomoc.

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.