Portál AbcLinuxu, 12. května 2025 10:32

Dotaz: NAT do více segmentů

21.9.2006 09:06 vr
NAT do více segmentů
Přečteno: 284×
Odpovědět | Admin
zdravím potřeboval bych poradit: mám jedno síťové rozhraní přes které přistupuji do inetu toto rozhraní má zaregistrované dvě public IP:
82.82.82.82/30, brána 82.82.82.81
92.92.92.92/29 brána 92.92.92.91
pokud nastavím iptables -t nat ........ -j SNAT --to 82.82.82.82 92.92.92.92
a default rouru hlavní tabulky na 82.82.82.81
a postraní rouru tabulky (pojmenované třeba SECOND) na 92.92.92.91
a do této postranní tabulky přes ip rule nastrkám pár datových toků (od jednotlivých klientů)

bude to fungovat?

je jádro tak chytré že bude dávat zdrojové ip adresy paketů tak, aby patřily správným datovým tokům do jednotlivých bran?

nebo bude provádět load balancing a nebude to fungovat?

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

Odpovědi

21.9.2006 10:21 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: NAT do více segmentů
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jádro bude dělat load balancing.
man iptables
You  can  add  several --to-source options.  If you specify more
than one source address, either via an address range or multiple
--to-source  options, a simple round-robin (one after another in
cycle) takes place between these adresses.
Nepůjde nějak využít ip rule nat? A nebo pak budete muset i v iptables udělat pravidla dle jednotlivých klientů.
21.9.2006 10:48 vr
Rozbalit Rozbalit vše Re: NAT do více segmentů
o ip rule nat nic nevím, to něco takového také existuje?
jinak ano, přes iptables to půjde, pouze se mi nechce udržovat dvě tabulky zdrojových ip adres, jednu pro ip rule a druhou pro iptables.
21.9.2006 10:51 vr
Rozbalit Rozbalit vše Re: NAT do více segmentů
oprava: ten příkaz je ip route nat

jdu to nastudovat :)
21.9.2006 11:04 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: NAT do více segmentů
ip route nat není podporováno v jádrech 2.6. Myšleno bylo opravdu ip rule nat, správně tedy spíš ip rule add from nat s příslušnými parametry mezi :-) Ale zkušenost s tím nemám, jen jsem to zahlédl při prohlížení man ip :-)
21.9.2006 16:42 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: NAT do více segmentů

Fast NAT potřebuje oboje. Jednak 'ip route add ... nat ...' pro přepis cílové adresy, jednak 'ip rule add ... nat ...' pro přepis zdrojové adresy. Příklad použití viz např. má oblíbená FAQ. V tomto případě je ale Fast NAT k ničemu (i kdyby fungoval), to spíš další z evergreenů.

21.9.2006 17:13 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: NAT do více segmentů
Takže nejspíš nezbývá, než stejná pravidla, podle kterých se volí routovací tabulka, nacpat i do iptables NAT. Jednodušší možnost je vnitřní síť rozdělit virtuálně na dvě (např. 192.168.1.0/25 a 192.168.1.128/25). Pokud to z nějakého důvodu nemůžete udělat, bude asi nejsnazší řešení udělat si seznam IP adres a do pravidel routování i iptables je vkládat nějakým skriptem.

Myslel jsem ještě na jednu možnost – zkusit pravidla NATu přiřadit podle labelu (alias) síťového rozhraní.
iptables -A FORWARD -o 'eth0:1' -j ACCEPT
Výsledek:
Warning: wierd character in interface `eth0:1' (No aliases, :, ! or *).
Je hezké, že i iptables používá termín alias (z ifconfig) místo label (který používá iproute2)…
21.9.2006 17:22 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: NAT do více segmentů

Pokud použijete target MASQUERADE, mělo by to fungovat - aspoň dokumentace netfilteru se tváří, že se použije stejná adresa, jaká by se použila, pokud by počítač ten paket posílal sám.

Ta druhá věc je nesmysl. Zapamatujte si důležité pravidlo: "Počínaje jádrem 2.2 žádný IP aliasing ani žádný virtuální interface eth0:0 neexistuje. Máte pouze síťové rozhraní (např.) eth0 a tomu můžete přiřadit 0 a více IPv4 adres, 0 a více IPv6 adres atd.". Ten label je pouze poznámka u příslušné IP adresy. Poznámka, která je nepovinná, nemá na zpracování paketů absolutně žádný vliv a jediný její smysl je v tom, že umožňuje příkazu ifconfig předstírat aspoň částečně funkčnost pro ty, kdo stále ještě nezaregistrovali, že už ho více než sedm a půl roku nemají používat. Je proto nesmysl snažit se podle ní něco filtrovat v netfilteru.

21.9.2006 17:58 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: NAT do více segmentů
Ten druhý příklad jsem zkoušel před tím, než jsem zjišťoval, co přesně onen label pro jádro znamená. Původně jsem si myslel, že přeci jen k něčemu použitelný je :-) Proto mne překvapilo, že iptables v té chybové hlášce píše o alias, místo aby napsaly, že musí být použito jméno rozhraní a ne žádný label. Protože pak ta hláška dává smysl pro ty, co používají ifconfig, ale pro uživatele iproute2 už tak jasná není – i když je nejspíš stále brzo na to, aby někdo znal iproute2 a neznal ifconfig a nevěděl, co je to alias :-)

A jinak díky za odkaz na to FAQ, je kvalitou výrazně nad průměrem zdejších FAQ.
21.9.2006 18:25 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: NAT do více segmentů
Protože pak ta hláška dává smysl pro ty, co používají ifconfig, ale pro uživatele iproute2 už tak jasná není – i když je nejspíš stále brzo na to, aby někdo znal iproute2 a neznal ifconfig a nevěděl, co je to alias :-)

Nebo autor usoudil, že by takového člověka vůbec nenapadlo eth0:0 jako argument podmínky -o použít, takže se ho ta hláška netýká. :-)

21.9.2006 19:17 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: NAT do více segmentů
Když já jsem si říkal, že tam ten label přece nebude jen na ozdobu. A manuálovou stránku jsem četl odzadu, a ono je to napsáno u toho labelu hned na začátku, že to vlastně k ničemu není :-)
22.9.2006 09:07 vr
Rozbalit Rozbalit vše Re: NAT do více segmentů
Odpovědět | | Sbalit | Link | Blokovat | Admin
Takže problém vyřešen

pokud je na routeru víc segmentů (např. od jednoho ISP dva rozsahy veřejných adres) stačí dát na odchozí interface nat - j MASQUERADE a jádro zajistí správné odchozí IP adresy datových toků směrovaných např. přes ip rule

díky všem

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.