Portál AbcLinuxu, 12. května 2025 18:34
________ +-------------+ / | ISP 1 | / +-------------+ (RADIO) +------+ | | gw 88.x.x.1 | / +------+-------+ +-------------+ / +----------------+ | eth0 | / | | |eth2 | | | Local networks +----+ Linux router | | Internet cloud | | | FW (NAT)| | +----------------+ | eth1 | \ +------+-------+ +-------------+ \ | | ISP 2 | \ +-------------+ (O2) +------+ | gw 10.0.0.1 | \ +-------------+ \________ ip eth0 88.x.x.2 ip eth1 10.0.0.1 ip eth2 192.168.1.1traffic rozdeluji mezi ISP pomoci znaceni paketu
iptables -t mangle -I PREROUTING -s 192.168.1.4 ... set-mark=0x66
a jde to pres O2 coz je i defaultni gateway
Pokud to jde takhle pres nat z vnitrni site, tak si muzu poslat cokoli pres jakehokoliv ISP.
Problem je, kdyz chci smerovat neco co jde primo z FW. Pomoci iptables se mne to nepodarilo, stale to chodi pres default gateway.
Na FW bezi postfix, kde se posta tridi a pak preposila na server(ve vnitrni siti). Ja chci prave aby postfix odesilal postu pres ISP1. Defaultne vse co jde z FW odchazi pres ISP2
Zkousel jsem i smtp_bind_address v main.conf to pak posta odchazi pres toho koho chci, ale prijata posta se uz neposle na server ve vnitrni siti.
Napada nekoho jak to resit?
. . . ip rule add fwmark 0x66 table radio ip rule add fwmark 0x65 table o2 . . .
iptables -A PREROUTING -i eth2 -s 192.168.1.4 -i eth2 -j MARK --set-mark 0x66
jde pres RADIOiptables -A PREROUTING -i eth2 -s 192.168.1.1 -i eth2 -j MARK --set-mark 0x66
Tady je source IP FW na kterem jsou pravidla aplikovany a jde pres O2 (potrebuju vedet jak to nastavit at to jde taky pres RADIO)iptables -A PREROUTING -i eth2 -s 192.168.1.3 -i eth2 -j MARK --set-mark 0x65
jde pres RADIO
iptables -t mangle -I OUTPUT -p tcp --dport 25 -j MARK --set-mark=0x66
Stale chodi pres O2 misto RADIO
ip rule show
0: from all lookup 255
32686: from 10.0.1.1 lookup skynet
32687: from 10.0.0.1 lookup o2
32688: from 88.x.x.4 lookup radio
32689: from 88.x.x.3 lookup radio
32690: from 88.x.x.2 lookup radio
32691: from all fwmark 0x64 lookup skynet
32692: from all fwmark 0x65 lookup o2
32693: from all fwmark 0x66 lookup radio
32714: from 88.x.x.0/29 lookup radio
32718: from 88.x.x.2 lookup radio
32766: from all lookup main
32767: from all lookup default
ip route show
192.168.121.2 dev tun0 proto kernel scope link src 192.168.121.1
88.x.x.0/29 dev eth0 scope link src 88.x.x.2
10.0.0.0/24 dev eth1 scope link src 10.0.0.1
10.0.1.0/24 dev eth1 proto kernel scope link src 10.0.1.1
192.168.1.0/24 dev eth2 proto kernel scope link src 192.168.1.1
192.168.121.0/24 via 192.168.121.2 dev tun0
169.254.0.0/16 dev eth2 scope link
default via 10.0.0.138 dev eth1
ip rule del fwmark 0x66 table radio
ip rule add fwmark 0x66 table radio
ip rule del from 10.0.1.1 table skynet
ip rule add from 10.0.1.1 table skynet
Toto mne prijde takove krkolomne. Asi by se hodilo neco jake je iptables-save a iptables-restore
smtp unix - - n - - smtp
-o smtp_bind_address=10.0.1.1
smtpinternal unix - - n - - smtp
-o smtp_bind_address=192.168.120.254
V transport maps smeruju vse pro server ve vnitrni siti do smtpinternal zbytek jde pres smtp...
Ale stale me zajima jak to resit pres ip rule ci iptables.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.