Üdv!
Van jelenleg 2 internetkapcsolatom (60/10Mbit/s, illetve 2/1Mbit/s).
Rendelkezem egy MikroTik Routerboard 750UP routerrel.
Szeretném úgy konfigurálni a MikroTiket, hogy:
általánosságban a 60 megás netről menjen minden,
de ha
kiesik a 60 megás net, akkor a 2 megásról menjen minden.
Olvastam a MikroTik wiki-t, de nem világos, hogy a routeoknál milyen Gateway-t kell megadni.
Köszi.
Donatus
- 10628 megtekintés
Hozzászólások
Milyen netekrol van szo? Nem mindegy, hogy pppoe vagy UPC fele ethernet bridging orulet.
- A hozzászóláshoz be kell jelentkezni
Vidanetes kábelnet.
DHCP-vel kapok 2 publikus dinamikus IP címet.
Donatus
- A hozzászóláshoz be kell jelentkezni
hat ha mindketto ilyen akkor kicsit bonyolult lesz, mert a "jolvagyok" es a kapok dhcpvel normalis ipcimet/gw-t/dns-t nem ugyanaz.
Itt van egy scriptecske amirol irtam itt: http://hup.hu/node/114793 csak azota mutalodott egy keveset:
:global gw1;
:global gw2;
:global gw1ping 0;
:global gw2ping 0;
:global gw1outint "UPC - port 5";
:global gw2outint "pppoe-out1";
:global gw1dns "213.46.246.53,213.46.246.54";
:global gw2dns "84.2.44.1,84.2.46.1";
:global gw1dns1 "213.46.246.53/32";
:global gw1dns2 "213.46.246.54/32";
:global gw2dns1 "84.2.44.1/32";
:global gw2dns2 "84.2.46.1/32";
:global target 8.8.8.8;
:global failover;
:global failback;
:global lastfailoverpingcount;
:global gw1ruleid [ ip firewall mangle find comment=$gw1outint];
:global gw2ruleid [ ip firewall mangle find comment=$gw2outint];
:global gw1routeid [ ip route find comment=$gw1outint];
:global gw2routeid [ ip route find comment=$gw2outint];
:global gw1rulestate [ip firewall mangle get $gw1ruleid disabled];
:global gw2rulestate [ip firewall mangle get $gw2ruleid disabled];
:foreach i in [ ip route find dst-address=0.0.0.0/0 ] do={
:local gw [toip [ip route get $i gateway]];
:local routingmark [ip route get $i routing-mark];
if ([:typeof $gw] != "nothing" and [len $routingmark] = 0 ) do={
if ([ip route get $i gateway-status]~"via $gw1outint") do={
:global gw1 $gw;
:global gw1id $i;
:global gw1ping [:tonum [/ping address=$target interface=$gw1outint count=5 interval 1s]];
if (([typeof $gw1ping] = "nothing") or ($gw1ping<5)) do={
:set failback 30;
if ([typeof $failover] ="nothing") do={
:set failover 1;
} else={;
:set failover ($failover +1);
};
} else={;
if ($gw1ping=5) do={
:set failover 0;
if (([:typeof $failback]!="nothing") and ($failback >0) ) do={
:set failback ($failback -1);
}
};
};
} else={;
if ([ip route get $i gateway-status]~"via $gw2outint") do={
:global gw2 $gw;
:global gw2id $i;
};
};
};
};
if ( [len $gw1routeid] = 0 ) do={
ip route add dst-address=0.0.0.0/0 gateway=$gw1 comment=$gw1outint routing-mark=via_upc distance=100;
ip route add dst-address=$gw1dns1 gateway=$gw1;
ip route add dst-address=$gw1dns2 gateway=$gw1;
:log info "$gw1outint pbr route didn't exist has been added";
} else={;
if ([ip route get $gw1routeid gateway] != $gw1 and\
[ip route get $gw1routeid comment] != $gw1outint and\
[ip route get $gw1routeid routing-mark] !=via_ipc and\
[ip route get $gw1routeid distance] != 100) do={
ip route set $gw1routeid dst-address=0.0.0.0/0 gateway=$gw1 comment=$gw1outint routing-mark=via_upc distance=100;
ip route set [ip route find dst-address=$gw1dns1] gateway=$gw1;
ip route set [ip route find dst-address=$gw1dns2] gateway=$gw1;
}
};
if ( [len $gw2routeid] = 0 ) do={
ip route add dst-address=0.0.0.0/0 gateway=$gw2 comment=$gw2outint routing-mark=via_thome distance=100;
ip route add dst-address=$gw2dns1 gateway=$gw2;
ip route add dst-address=$gw2dns2 gateway=$gw2;
:log info "$gw2outint pbr route didn't exist has been added";
} else={;
if ([ip route get $gw2routeid gateway] != $gw2 and\
[ip route get $gw2routeid comment] != $gw2outint and\
[ip route get $gw2routeid routing-mark] !=via_thome and\
[ip route get $gw2routeid distance] != 100) do={
ip route set $gw2routeid dst-address=0.0.0.0/0 gateway=$gw2 comment=$gw2outint routing-mark=via_thome distance=100;
ip route set [ip route find dst-address=$gw2dns1] gateway=$gw2;
ip route set [ip route find dst-address=$gw2dns2] gateway=$gw2;
}
};
if ($failover > 2) do={
if (! $gw1rulestate ) do={
ip firewall mangle set $gw1ruleid disabled=yes;
ip firewall mangle set $gw2ruleid disabled=no;
ip dns set servers=$gw2dns;
:log info "$gw2outint is active";
/tool e-mail send to=********@******.***** subject="FAILOVER to $gw2outint" body="FAILOVER to $gw2outint"
:set failback 30;
:set lastfailoverpingcount $gw1ping;
};
} else={;
if ( $gw1rulestate and $failback=0) do={
ip firewall mangle set $gw2ruleid disabled=yes;
ip firewall mangle set $gw1ruleid disabled=no;
ip dns set servers=$gw1dns;
:log info "$gw1outint is active";
/tool e-mail send to=********@******.***** subject="FAILOVER to $gw1outint" body="FAILOVER to $gw1outint"
}
}
- A hozzászóláshoz be kell jelentkezni
Ööö izé... Ez nekem magyarázatra szorul. :)
Ha leírom a kapcsolatom átjáróit, egyéb címeit, akkor átalakítod nekem a szkriptet? :)
Donatus
- A hozzászóláshoz be kell jelentkezni
Azt hiszem, hogy a blogban irtam rola reszletesen, hogy hogyan mukodik. Ha modositani akarod, hogy neked menjen nem sok mindent kell modositani. Eloszor is kellenek a valtozok:
:global gw1outint "UPC - port 5"; #interface name to gw1
:global gw2outint "pppoe-out1"; #interface name tp gw2
:global gw1dns "213.46.246.53,213.46.246.54"; #dns a gw-hez
:global gw2dns "84.2.44.1,84.2.46.1"; #dns a gw2-hoz
:global gw1dns1 "213.46.246.53/32"; #gw1dns-bol kovetkezik
:global gw1dns2 "213.46.246.54/32"; #gw1dns-bol kovetkezik
:global gw2dns1 "84.2.44.1/32"; #gw2dns-bol kovetkezik
:global gw2dns2 "84.2.46.1/32"; #gw2dns-bol kovetkezik
:global target 8.8.8.8; # a cel amit ha meg tudsz pingetni egy interfaceen kifele akkor elkonyvelheted az interfacet elonek.
Ezek a valtozok amiket hasznalni kell. Ha minden igaz ezeket modositod es a tobbi meg oldodik. Valamint a schedulerben be kell allitani, hogy mondjuk 10mp-kent fusson le.
- A hozzászóláshoz be kell jelentkezni
Egy részletes magyarázatnak én is örülnék esetleg hogy működne ez egy pppoe main vs usb-s mobilnettel (RB751U-2HnD)
- A hozzászóláshoz be kell jelentkezni
pppoe primarynel joval egyszerubb a dolog. A mobilnetet nem tudom, hogy hogy kell felkonfigolni es hogy always on vagy dial-no-demand modeban is jo-e. A pppoe-nel egyszerubb talan a dolog, mert ott van egy keepalive szeruseg szoval a default elmegy ha a pppoe interface meghal, szoval ott lehet, hogy eleg ha atallitod a def route admin distanceet.
- A hozzászóláshoz be kell jelentkezni
Hat, szerintem a mikrotik wikin levo megoldas picit egyszerubb:
/ip route add gateway=192.168.1.1 check-gateway=ping
/ip route add gateway=192.168.2.1 distance=2
Ird at a gateway-eket a kapcsolatok gateway-einek megfeleloen, es a masodlagos kapcsolatnal kell a distance=2
Nyilvan ez azt is feltetelezi, hogy nincs masik default gateway a fentieken kivul (tehat a dhcp/pppoe kliensnel ne vegye at a szolgaltatotol kapottat)
- A hozzászóláshoz be kell jelentkezni
ezzel csak 2 baj van, hogy
1) a gateway dinmakius ipnel valtozik
2) a gateway pingelodik != az internet el dologgal. UPC-nel pl a modem oszt neked egy ipt es o jatsza a def. gw-t ha nincs upstream jel.
- A hozzászóláshoz be kell jelentkezni
Az elsovel meg egyet tudok erteni (bar eddigi tapasztalataim alapjan soha nem valtozott a gateway), a masodikkal viszont nem, mivel ha a modemtol kapsz IP cimet (upstream hianyaban), akkor privat halozati IP-t fogsz kapni, ergo nem fogod elerni a gatewayt azon a laban az eszkoznek.
- A hozzászóláshoz be kell jelentkezni
UPC upstream meghal. Router kap 192.168.1.101-et def gw-el 192.168.1.100, mert a modem behirdeti magat mint def. gw de neki nincs semmilyen kimeno interface ami mukodne.
- A hozzászóláshoz be kell jelentkezni
Nyilvan ez azt is feltetelezi, hogy nincs masik default gateway a fentieken kivul (tehat a dhcp/pppoe kliensnel ne vegye at a szolgaltatotol kapottat)
- A hozzászóláshoz be kell jelentkezni
Szoval akkor van 2 default gatewayed. Mind2 valaszol a ping tesztre. Honnan tudod, hogy melyik a jo?
- A hozzászóláshoz be kell jelentkezni
Ha valaszol, mindketto jo, viszont mivel egyiknel a distance nagyobb, ezert a masikat fogja hasznalni. Ha nem valaszol az alacsonyabb distance-u, akkor ter at a magasabb distance-u gatewayre.
- A hozzászóláshoz be kell jelentkezni
A problema az, hogy a gateway amit csekkol a mikrotik az az amit dhcp-vel behirdet az upstream router. A UPC modellben ez lesz az 192.168.1.100 ami a modem, ami altalaban valaszolni fog de az _internet_ meg nem fog menni tole. Nem biztos, hogy ez a failure case ervenyes az itt emlitett netnel de UPCnel a def. gw. ping check nem ad valaszt arra, hogy el-e a kapcsolat.
- A hozzászóláshoz be kell jelentkezni
Hat ezt rosszul tudod. Nekem otthon UPC-m van, es nalam a default gw 85msec-re van a router labatol, nem gondolod komolyan, hogy ez egy kozvetlenul bekotott eszkoznel (ami raadasul gigabites) realis...
root@kraken:~# traceroute -n 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 38 byte packets
1 86.101.251.254 85.254 ms 17.811 ms 30.862 ms
2 89.135.214.158 8.011 ms 8.097 ms 9.321 ms
3 72.14.217.146 18.941 ms 10.321 ms 9.467 ms
4 209.85.243.121 16.694 ms 17.529 ms 9.929 ms
5 72.14.234.11 25.890 ms 25.409 ms 23.967 ms
6 209.85.254.118 23.099 ms 23.625 ms 209.85.254.112 23.648 ms
7 * * *
8 8.8.8.8 25.832 ms 24.107 ms 23.903 ms
root@kraken:~#
Namost, fenti peldaval elve ha beallitod gateway checkre a 86.101.251.254, az soha nem fog valaszolni, ha a kabelmodem 192.168.0.x-es cimet ad upstream hianyaban.
Szerk: nem azt a gatewayt nezi, amit dhcp-n kap!!! Ezt irtam fent.
- A hozzászóláshoz be kell jelentkezni
Nekem is UPCm van. Ha elmegy az US/DS lampa akkor 192.168.100.101-es ipt kapok. Ha van US/DS akkor en is globalt kapok ofcourse.
Szoval mi alapjan allitod be, es mikor valtod a def. gw-t?
Valamint a default-route dhcptol mikrotiknel ha jol tudom 0 distanceel jon. Tehat a distance 2-t soha nem fogja hasznalni.
- A hozzászóláshoz be kell jelentkezni
Leirom harmadjara is: figyelmen kivul hagyod a dhcp-n kapott default route-ot. Egyszer elinditod, hogy fel tudd irni egy papirra, utana pedig kikapcsolod es beallitod kezzel, ezutan pedig azt figyeled. Nekem evek ota ugyanaz, es masoknal se nagyon valtozik. Nyilvan ahol a default gateway is valtozik, nem csak az IP cim, ott ez nem fog mukodni.
- A hozzászóláshoz be kell jelentkezni
es honnan szeded a gatewayt? Marmint egyszer megnezed es utanna beallitod fixre, mert az ugyis jo lesz? Dinamikus ipnel? komolyan?
- A hozzászóláshoz be kell jelentkezni
Igen, komolyan. Dinamikus IP != dinamikus gateway. De megint ismetlem magam, ahogyan az elozo hozzaszolasban is leirtam (bar nem ertem miert, ugy latom a hosszabb szovegek ertelmezese nem az erosseged), ahol valtozik a gateway, ott nem fog mukodni. De eddig akarhany helyen neztem (igen, dinamikus IP-nel), nem valtozott. Az en sajat IP-m is dinamikus, se a gateway, sem az IP cim nem valtozott mar evek ota.
- A hozzászóláshoz be kell jelentkezni
dinamikus ip == dinamikusan valasztott IP cim. Nem feltetlenul ugyanabbol a poolbol kapod. Az en ip cimem se valtozott egy ideje, de amikor valtozott akkor valtozott a gw is, mert nem a ugyanabbol a /23-bol kaptam az IPt.
- A hozzászóláshoz be kell jelentkezni
meg ha a fent emlitett dolog a def. gw-t tegyuk fel megbizhatoan valtogatja, DNS-bol valami opendnst hasznalsz vagy uzemeltetsz sajatot? UPC nem engedi kulsosoknek, hogy a cache serveret hasznald es a tobbi szolgaltato se szokta.
- A hozzászóláshoz be kell jelentkezni
DNS-nel failover eseteben a Google DNS szervereit szoktam hasznalni, ha nincs failover, akkor a szolgaltatoet + a Google-et fallback-kent.
- A hozzászóláshoz be kell jelentkezni
vagy nagyon elbeszelunk egymas mellett vagy valaki nem erti a problema lenyeget.
- A hozzászóláshoz be kell jelentkezni
mikrotik.kalebsys.com] > ip route print detail where dst-address=1.1.1.1/32
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
4 S dst-address=1.1.1.1/32 gateway=86.101.219.254
gateway-status=86.101.219.254 unreachable check-gateway=ping distance=1 scope=30
target-scope=10
[admin@mikrotik.kalebsys.com] > ping 86.101.219.254
HOST SIZE TTL TIME STATUS
86.101.219.254 56 61 15ms
86.101.219.254 56 61 15ms
Mit csinalok rosszul?
- A hozzászóláshoz be kell jelentkezni
Rosszul irod be a dst-address-t es nem aktiv a route sem. Probald igy:
/ip route print detail where dst-address=0.0.0.0/0
Erre ki kell hoznia mindkettot (a fenti parancs az en mikrotikemen semmilyen valaszt nem produkal).
[admin@fw] > ip route print detail where dst-address=0.0.0.0/0
Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit
0 A S ;;; UPC default route
dst-address=0.0.0.0/0 pref-src=78.139.yy.xx gateway=78.139.yy.vv gateway-status=78.139.yy.vv reachable via UPC check-gateway=ping distance=1 scope=30 target-scope=10
1 S ;;; ADSL default route
dst-address=0.0.0.0/0 pref-src=31.46.yy.xx gateway=84.2.ww.uu gateway-status=84.2.ww.uu unreachable check-gateway=ping distance=2 scope=30 target-scope=10
[admin@fw] >
Edit: beleestem a sajat csapdamba, az ADSL szolgaltato gateway-t valtott :-) ezert unreachable a masodik esetben, most frissitettem, hogy jo legyen. Sajnos ADSL-nel neha szokott valtozni, kabelnel nem.
- A hozzászóláshoz be kell jelentkezni
nem a defaultot irtam be neki, hanem egy random /32-es cimet, csak tesztelesnek. A gateway pingelheto, de a check-gw false-t hoz vissza, ha nem directly connected.
- A hozzászóláshoz be kell jelentkezni
Akkor szerintem az van, hogy nem aktiv a route (nem latom a flageknel, csak az S-t). Egyebkent 1.1.1.1/32-re az en mikrotikem semmit sem adott vissza, ettol fuggetlenul vidaman mukodik rajta az internet.
Ahhoz, hogy ez a megoldas mukodjon, le kell venned a default gateway-t mindegyik wan-rol (kulonben tobb default gw lenne), es csak a kezzel beallitott, statikus gatewayek maradhatnak (ami ugyanaz, mint amit kap, csak a check-gateway-jel es a distance-szal kiegeszitve).
Ettol fuggetlenul a route tablaban ott lesznek azok a bejegyzesek, amik a default gw-ek eleresehez kellenek, de az ugye csak annyi, hogy melyik eszkozon keresztul keresse azt a gw-t.
- A hozzászóláshoz be kell jelentkezni
DSL-nel nem kell monitorozni a default route statuszat. A ppp kapcsolat az P2P es stateful, szoval nem kell monitorozni az allapotat. ppp interface el, default-routeot kapsz akkor jo. Ellenkezo esetben nem:D
- A hozzászóláshoz be kell jelentkezni
Igen, de akkor be kell allitani, hogy amit kap default route-ot, az alapbol 2-es distance-szal legyen, ebben meg nem vagyok biztos, hogy be lehet allitani. Este megnezem, hogy ad-e erre lehetoseget a pppoe-client-nel.
Edit: nem lehet, helyette routing filter-rel lehet megcsinalni, hogy ne 1-es distance-szal legyen, de ez tobb idot igenyel annal az 5 percnel, amit raszantam, ugyhogy majd este :-)
- A hozzászóláshoz be kell jelentkezni