Sziasztok.
A google már lassan élettársi kapcsolatban áll velem, mégsem találok megoldást az alábbi problémára.
Adott 2 db internet kapcsolat egy UPC dhcp kliens fix ip-vel és egy Invitel PPPoE fix ip-vel.
Az alap felállás az lett volna, hogy az elsődleges a UPC, ha ez nincs, akkor átáll Invitelre.
Beállítottam a check gateway funkciót a dynamikus ip-re.
/routing filter
add action=passthrough chain=dynamic-in comment="Check gateway dynamic ip" disabled=no invert-match=no set-bgp-prepend-path="" set-check-gateway=ping
Viszont a kedves UPC úgy oldotta meg, hogy a fix ip-t a helyi cisco router oldja meg, ami az átjáró is egyben. Így, ha nincs is internet, akkor is válaszol a cisco, mint alapértelmezett átjáró.
Gondoltam, akkor megoldom egy kis scripttel, ami pinggel az WAN1-es lábon és átállítja a route distance értéket, ha nem elérhető.
A "nagy" tudású script így néz ki:
:local drd [/ip dhcp-client get WAN1 default-route-distance];
:if ([/ping 8.8.8.8 interface=WAN1 count=1]=1) \
do={:if ($drd != 0) do={/ip dhcp-client set WAN1 default-route-distance=0}} \
else={:if ($drd != 2) do={/ip dhcp-client set WAN1 default-route-distance=2}}
Viszont itt már meg kell jelölni a csomagokat, hogy ki merre megy ki és jön vissza.
A portforwardok miatt, + hogy az eszközök elérhetőek legyenek mindkét lábon az alábbi szabályokat ollóztam össze:
# what comes from WAN1, gets out from WAN1
/ip firewall mangle add action=mark-connection chain=input in-interface=WAN1 new-connection-mark=WAN1_conn passthrough=yes disabled=no comment="in WAN1,out WAN1"
/ip firewall mangle add action=mark-routing chain=output connection-mark=WAN1_conn new-routing-mark=WAN1_traffic passthrough=no disabled=no comment="in WAN1,out WAN1"
# what comes from WAN2, gets out from WAN2
/ip firewall mangle add action=mark-connection chain=input in-interface=WAN2 new-connection-mark=WAN2_conn passthrough=yes disabled=no comment="in WAN2,out WAN2"
/ip firewall mangle add action=mark-routing chain=output connection-mark=WAN2_conn new-routing-mark=WAN2_traffic passthrough=no disabled=no comment="in WAN2,out WAN2"
# port forwards from WAN1, gets out from WAN1
/ip firewall mangle add action=mark-connection chain=forward in-interface=WAN1 connection-state=new new-connection-mark=WAN1_pfw passthrough=no disabled=no comment="pfw WAN1, out WAN1"
/ip firewall mangle add action=mark-routing chain=prerouting in-interface=ether3 connection-mark=WAN1_pfw new-routing-mark=WAN1_traffic passthrough=no disabled=no comment="pfw WAN1, out WAN1"
# port forwards from WAN2, gets out from WAN2
/ip firewall mangle add action=mark-connection chain=forward in-interface=WAN2 connection-state=new new-connection-mark=WAN2_pfw passthrough=no disabled=yes comment="pfw WAN2, out WAN2"
/ip firewall mangle add action=mark-routing chain=prerouting in-interface=ether3 connection-mark=WAN2_pfw new-routing-mark=WAN2_traffic passthrough=no disabled=yes comment="pfw WAN2, out WAN2"
# routing rules for WAN1_traffic and WAN2_traffic
/ip route add dst-address=0.0.0.0/0 gateway=WAN1 distance=1 routing-mark=WAN1_traffic disabled=no
/ip route add dst-address=0.0.0.0/0 gateway=WAN2 distance=1 routing-mark=WAN2_traffic disabled=no
Viszont amint bekapcsolom a WAN1 interface-en az alábbi sort(/ip route add dst-address=0.0.0.0/0 gateway=WAN1 distance=1 routing-mark=WAN1_traffic disabled=no), azon megszűnik minden forgalom.
WAN2 gyönyörűen megy a portfw is és elérhető akkor is, ha nem a WAN2 a default gw.
Ha viszont nem rakom be a WAN1 routolási szabályt, akkor a ping-re nem jön válasz a script-nek és az első akadásnál nem áll vissza.
Van valakinek valami ötlete mit néztem el, vagy milyen alap dologgal nem vagyok tisztában?