Portál AbcLinuxu, 8. května 2025 18:24
ip addr add 172.17.4.XXX/24 dev br-wan
ip route add 172.17.4.1 dev br-wan metric 10
Čímž jsem přiřadil další IP adresu rozhraní br-wan a přidal routu pro tento rozsah. Snad je to tak správně, protože když neurčím metriku, tak se vše hrne přes veřejnou IP.
A teď - jak zajistit, aby třeba IP 192.168.0.100 vystupovala pod tou neveřejnou IP?
Vytvořil jsem toto pravidlo, ale nejsem si jistý, jestli opravdu dělá to, co má, jelikož stále vidím, že trasa zařízení směřuje přes veřejku ven
iptables -t nat -A POSTROUTING -s 192.168.0.100/24 -j SNAT --to-source 172.17.4.XXX
Díky za nakopnutí správným směrem.
Řešení dotazu:
privatni vase | privatni poskytovatele | verejna [196.]-------------[Router]------[172.]---------[NAT poskytovatele]-----[verejna IP] | |Takze pokud jsem to spravne pochopil, mate LAN1=[192.], LAN2[172.] - poskytovatel a chcete aby stroje z LAN1 vystupovaly v LAN2 s adresou z tohoto prostoru? Ale to se snad uz deje, pokud Vas umyslne neoddeluje/nezarizne
iptables -t nat -A POSTROUTING -o br-wan -s 192.168.0.0/24 -j SNAT --to 172.17.4.XXX
iptables -t nat -A POSTROUTING -o br-wan -s 192.168.1.0/24 -j SNAT --to 185.167.10.XXX
To je také nereálné?
Díky.
T1=20 T2=21 PRIO1=30200 PRIO2=30210 PRIO2FW=30211 IP1=w.a.n.1 IF1=wan-if P1_NET=w.a.n.1/maska P1=w.1.g.w IP2=w.a.n.2 IF2=wan-if P2_NET=w.a.n.2/maska P2=w.2.g.w ip route del default ip route del $P1_NET ip route del $P2_NET ip route flush table $T1 ip route flush table $T2 ip route add $P1_NET dev $IF1 src $IP1 ip route add $P2_NET dev $IF2 src $IP2 ip route add $P1_NET dev $IF1 src $IP1 table $T1 ip route add default via $P1 table $T1 ip route add $P2_NET dev $IF2 src $IP2 table $T2 ip route add default via $P2 table $T2 ip route add default via $P1 ip rule del prio $PRIO1 ip rule del prio $PRIO2 ip rule del prio $PRIO2FW ip rule add prio $PRIO1 from $IP1 table $T1 ip rule add prio $PRIO2 from $IP2 table $T2 ip rule add prio $PRIO2FW from all fwmark $PRIO2FW table $T2Pravidlo pro iptables pro přesměrování na IF2 už pak záleží čistě na výběru vnitřních IP, zbytek půjde přes default gw:
iptables -t mangle -A PREROUTING -i int-if -s vybranaIP1,vybranaIP2,vybranySubnet -j MARK --set-mark 30211
Takhle nějak by to mělo fungovat (osobně bych tam přidal ještě podmínku "-o brwan
"), ale vzhledem k tomu, že br-wan
bude nejspíš bridge, bude potřeba mít povolený netfilter pro bridge. Od jádra 3.18 je implementace v samostatném modulu br_netfilter
, který je potřeba mít natažený, navíc je (i u starších) potřeba, aby to bylo povolené pomocí sysctl /proc/sys/net/bridge/bridge-nf-call-*tables
(defaultně je, ale už jsem se setkal s tím, že to distribuce zakazovaly).
jelikož stále vidím, že trasa zařízení směřuje přes veřejku ven
Můžete trochu konkrétněji napsat, co přesně vidíte a proč to považujete za problém? Uvědomte si, že překládáte zdrojovou adresu a navíc v chainu POSTROUTING
, tj. v době, kdy už je o routování rozhodnuto.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.