Portál AbcLinuxu, 12. května 2025 08:55
eth0 ip4 WAN
th0:0 LAN 192.168.99.x
eth0:1 LAN 2 10.40.13x.x
sit1 ip6 WAN
tun5 LAN 3 x
tap0 VPN(openVPN) 192.168.0.x
ppp0 VPN(pptpd) 192.168.33.x
A teď bych potřeboval:
pro: eth0:0, tap0 a ppp0 zpřístupnit: eth0, eth0:1 a tun5.iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables
určitě ne, route
pokud možno na linuxu také ne, na linuxu je to zastaralý příkaz a jenom emuluje chování novějších jader. K nastavení routování slouží příkaz ip route
(tedy příkaz ip
s prvním parametrem route
) z balíčku iproute2
. Pokud stačí routování podle cílové ip adresy, stačí jedna routovací tabulka, kam přidáte vždy cílovou síť a masku a k tomu rozhraní, kudy má paket odcházet. Pokud je potřeba routovat i podle zdrojové ip adresy nebo nějakého dalšího příznaku, je možné mít routovacích tabulek víc a pomocí pravidel (ip rule
) vybrat, kdy se která tabulka má použít.
eth0:0 2001:0db8:2540:1::1/64 eth0:1 2001:0db8:2540:2::1/64 tap0 2001:0db8:2540:3::1/64 ppp0 2001:0db8:2540:4::1/64 (ovšem nevím, jestli v případě pppd server i klient umí ipv6...)Jelikož v IPv6 není NAT, není zároveň potřeba nic dalšího nastavovat a mělo by to začít fungovat. A IPv4: Jelikož na všech těch rozhraních jsou privátní adresy (192.168.x.y, 10.x.y.z), je použití
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADErozumné. Lépe to asi vyřešit nepůjde.
A na závěr bych chtěl chtěl udělat aby když na eth0 přijde nějaký paket třeba na hostname franta.mojedomena.cz tak aby se přesměroval na počítač X který je ve VPNce nebo LANce, a má můj server jako bránu. Ale s tímhle také moc nepočítám.To se v IPv4 řeší pomocí iptables a DNAT, např. pro HTTP (port 80)
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.99.10:80přesměruje požadavek, který přijde na eth0 port 80, na PC 192.168.99.10, port 80. Ještě jedna technická, víc různých IP sítí na jednom rozhraní (eth0, eth0:0 a eth0:1) nemusí vždycky dělat dobrotu, zvlášť pokud by PC ze sítě 192.168.99.0/24 (eth0:0) chtěl přistupovat k PC v síti 10.40.13x.x (eth0:1). Mezi počítači se pak různě posílají zprávy o přesměrování (ICMP redirect), aby komunikovaly přímo mezi sebou a ne přes výchozí bránu, a ne vždycky to funguje...
iptables -t nat -A PREROUTING -i eth0 -d 82.100.10.20 -p tcp --dport 80 -j DNAT --to-destination 192.168.99.10:80 iptables -t nat -A PREROUTING -i eth0 -d 82.100.10.21 -p tcp --dport 80 -j DNAT --to-destination 192.168.99.11:80(obě adresy by měly být nastaveny na eth0 jako aliasy, tj. např. pomocí
ip addr add 82.100.10.20 dev eth0 ip addr add 82.100.10.21 dev eth0
eth0
Zapouzdření:Ethernet
inet adr:213.211.44.190
Všesměr:213.211.44.255
Maska:255.255.255.0
inet6-adr: fe80::20b:cdff:fe84:258d/64
Rozsah:Linka
sit0
Zapouzdření:IPv6-in-IPv4
inet6-adr: ::127.0.0.1/96 Rozsah:Neznám.
inet6-adr: ::192.168.99.1/96 Rozsah:Kompatibilita
inet6-adr: ::213.211.44.190/96 Rozsah:Kompatibilita
sit1
Zapouzdření:IPv6-in-IPv4
inet6-adr: 2001:470:9a3d::1/64 Rozsah:Globál
inet6-adr: fe80::c0a8:6301/64 Rozsah:Linka
inet6-adr: fe80::d5d3:2cbe/64 Rozsah:Linka
Zkoušel jsem nastavovat IPv6 adresu pro eth0:0, ale jen jsem to udělal, spadl NAT, a musel jsem rebootovat, takže vůbec nevím.iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
mám pro IPv4.ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
ale pro IPv6 nefunguje.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.