Portál AbcLinuxu, 5. května 2025 13:15
Jen doplním, že ten IPv6 NAT je podle všeho "jen" 1:1, díky bohu.
+1
Vsem doporucuju, pokud to jde, pouzivat routovani misto NATu, ARP proxy, atd. Bohuzel ne vzdycky to jde.
Napr moje VMs ve VirtualBoxu bez NATu nemuzou mit IPv6. Routovat v6 subnet na muj laptop muzu leda doma, ale ne nikde jinde nad siti nemam takovou kontrolu. Navic bych je musel vzdycky precislovavat (RA je prima ale ne na zmenu IP x-krat za den). Bridgovat nemuzu protoze moje WiFi karta nezvlada vic nez jednu lokalni MAC adresu. Atd. NAT tohle vsechno resi.
Bridgovat nemuzu protoze moje WiFi karta nezvlada vic nez jednu lokalni MAC adresu.Maškarádu jako workaround pro vskutku idiotský návrh bezdrátových standardů uznávám. A to jak na L3, tak na L2. Nicméně pro větší flexibilitu bych se i v tomto případě držel nerovnice: Routing > Bridging > Proxy ARP > NAT První nerovnost je spíše kvůli pořádku, druhá je pro mě dělící čára mezi konvenčním řešením a černou magií, třetí už je dělící čára, kde ztrácíme funcionalitu.
NAT tohle vsechno resi.Naivní představa. Nicméně, ani tvůj případ není jednoznačný. Já vždycky řeším problémy podle skutečné situace. A pokud si nosím hromadu testovacích virtuálů do sítí, nad kterými nemám kontrolu, tak pro mě třeba IP maškaráda nepřipadá v úvahu, protože to ty virtuály nemusím vůbec mít. Mým preferovaným řešením na bázi routingu je v tomto případě IPv6 tunel do jedné nebo více spolehlivých sítí, které mi poskytují prefix.
pristup z venku byl mozny pouze diky maskaradeTohle asi nebude typický use case pro IP maškarádu. A řekl bych, že když už dokážeš nasměrovat traffic, tak klidně můžeš použít jednoduchý source NAT a exponovat služby toho bazmeku pomocí jedné neobsazené IP. Sice nemám po ruce relevantní zdroj a článek ho neodkazuje, nicméně pokud to správně chápu, tak právě 1:1 source NAT budeš mít k dispozici, ale maškarádu v tuto chvíli ne. Vývojáři tedy řeší přesně tento typ černé magie.
No conntrack to podle mě používá, minimálně pro REDIRECT:
+ ct = nf_ct_get(skb, &ctinfo); + NF_CT_ASSERT(ct && (ctinfo == IP_CT_NEW || ctinfo == IP_CT_RELATED || + ctinfo == IP_CT_RELATED_REPLY)); + + if (ipv6_dev_get_saddr(dev_net(par->out), par->out, + &ipv6_hdr(skb)->daddr, 0, &src) < 0) + return NF_DROP; + + nfct_nat(ct)->masq_index = par->out->ifindex; + + newrange.flags = range->flags | NF_NAT_RANGE_MAP_IPS; + newrange.min_addr.in6 = src; + newrange.max_addr.in6 = src; + newrange.min_proto = range->min_proto; + newrange.max_proto = range->max_proto; + + return nf_nat_setup_info(ct, &newrange, NF_NAT_MANIP_SRC);Aby také ne, když to přidává celou "nat" tabulku.
Viz také http://lwn.net/Articles/514087/.
Ano, 8a91bb0c304b0853f8c59b1b48c7822c52362cba je zastřešující commit celé té série, mnou postnutý kousek je z "netfilter: ip6tables: add MASQUERADE target".
To ale nic neměni na tom, že REDIRECT je v podstatě přesně (conntrack-enabled) DNAT na IP adresu interface, na který přišel packet. Alespoň tomu tak je v (ipv4) iptables.
Úplně bezstavový NAT, bez jakékoli interakce s conntrackem, čistě přepis adresy na specifikovanou hodnotu, je možné realizovat přes RAWNAT, který je už nějakou nekrátkou dobu v xtables-addons, oficiálně podporován Janem Engelhardtem.
Konfigurace firewallu s NATem je o rad slozitejsi nez bez nej => poskytuje mnohem vic prostoru pro potencielni chybu.To je pravda, naštěstí netfilter tohle docela spokojeně obchází.
Navic sebou NAT nese i dalsi bezpecnostni rizika - napr si musi pamatovat navazana spojeni, coz si router pamatovat nemusi.To by se ti projevilo jen v extrémním prostředí, jinak je IMO riziko ekvivalentní a v případě firewallu na stejné krabce spíše totožné (tedy až na falešný pocit bezpečí).
Jen doplním, že ten IPv6 NAT je podle všeho "jen" 1:1, díky bohu.Snažím se tuhle oblast sledovat a taky mě úplně netěší, že autoři plácnou do článku nic neříkající informaci, že se začleňuje nějaký překlad adres. To by rovnou mohli napsat, že kernel bude mít „novou síťovou fíčuru“ a informační hodnotu by to mělo skoro stejnou.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.