Schimbarea automată a canalului spre rotitele mikrotik, blogul tangarusa

Construit în MikroTik RouterOS reziliență are acces la Internet (adica check-gateway-ul = ping), are un mare dezavantaj: verifică disponibilitatea furnizorului gateway-ului, mai degrabă decât disponibilitatea Internetului prin intermediul acestui furnizor de servicii.

Am descris deja o soluție similară pentru Linux. și este posibil să spunem "portul" lui pe RouterOS 🙂

Avem 3 canale pe Internet și una în rețeaua locală (numită aici DMZ):

/ Adresa IP a adăuga adresa = 172.16.16.2 / 24 = difuzare 172.16.16.255 comment = DMZ dezactivat = nu \ interfață =-ether1 DMZ rețea = 172.16.16.0 adăuga adresa = 80.X.255.130 / 26 difuzare = 80.X.255.191 comment = rialKom \ dezactivat = nici o rețea de interfață = ether3-rialkom = 80.X.255.128 adăuga adresa = 212.152.X.55 / 26 difuzare = 212.152.X.63 comment = INET rețea dezactivată = \ nici o interfață = ether5-INET = 212.152.X.0 adăugați adresa = 62.X.7.242 / 29 difuzare = 62.X.7.247 comment = Beeline \ dezactivat = nici o rețea de interfață = ether4-Beeline = 62.X.7.240

Principalele rute pe care le vom schimba:

/ Traseu Ip add comment = GW_1 dezactivat = nici o distanță = 1 dst-address = 0.0.0.0 / 0 Gateway = \ 80.X.255.129 domeniu = 30 țintă domeniu de aplicare = 10 add comment = GW_2 dezactivat = nici o distanță = 2 dst- adresa = 0.0.0.0 / 0 Gateway = \ 62.X.7.241 domeniu = 30 țintă domeniu de aplicare = 10 add comment = GW_3 dezactivat = nici o distanță = 3 dst-address = 0.0.0.0 / 0 Gateway = \ 212.152.X.1 domeniul de aplicare = 30 obiectiv-domeniu = 10

Clienții ar trebui să se încrunte după:

/ Sistem de Scheduler adaugă comentariu = "" dezactivat = nici un interval = 30s name = CheckINET la-eveniment = "script-ul / sistem rula" Politica CheckINET = \ repornire, citi, scrie, politica, de testare, parola, adulmeca, sensibil dată de început = ianuarie / 01/1970 start-time = 00: 00: 00

Se părea că totul ar fi, dar există o capcană: acum executați ping / ping www.ya.ru src-address = 212.152.X.55. RouterOS nu va acorda atenție parametrului 212.152.X.55 dacă acest gateway nu este disponibil.
Ie dacă este disponibil, atunci pachetele vor trece prin ea, dar dacă nu, atunci prin gw implicit curent.
Pentru a evita acest lucru, trebuie să marcați conexiunile la intrarea interfeței marcajului de rutare corespunzător.
În paralel, aceasta va rezolva problema "răspunsului la interfața la care sa ajuns cererea": ​​acum răspunsurile la ping-ul # 2 vor trece prin interfața la care aparține implicit gw și nu vom primi un răspuns.

Adăugați rute în tabele de rutare numite:

/ route ip adăugați comment = "" dezactivat = nu distanță = 1 dst-address = 0.0.0.0 / 0 gateway = \ 80.X.255.129 rutare-marcă = rialkom scope = 30 target-scope = 10 add comment = " = zero distance = 1 dst-address = 0.0.0.0 / 0 gateway = \ 62.X.7.241 routing-mark = domeniul de aplicare = 30 target-scope = 10 add comment = 0.0.0.0/0 gateway = \ 212.152.X.1 rutare-marcă = inet scope = 30 target-scope = 10

/ Regula ip route add action = căutare comment = "" dezactivat = nici src-address = masa de 212.152.X.55 / 32 \ = adăuga INET acțiune = comment căutare = "" dezactivat = fără src =-adresa 62.X.7.242 / 32 tabel = \ beeline add action = lookup comment = "" dezactivat = nu src-address = 80.X.255.130 / 32 \ table = rialkom

aceste reguli sunt necesare pentru ca rețelele furnizorilor să fie întotdeauna disponibile din rețeaua internă (indiferent de canalul de lucru curent) pe care le folosesc pentru monitorizare:

/ Regula ip route add action = căutare comment = "" dezactivat = nici dst-address = 62.X.7.240 / 29 tabel = \ Beeline adăuga acțiune = căutare comment = "" dezactivat = nici dst-address = 80.X.255.128 / 26 \ table = rialkom adăugați acțiune = căutare comment = "" dezactivat = nu dst-address = 212.152.X.0 / 26 table = \ inet

Am atenție: marcajul de rutare, care este vizibil prin WinBOX în MANGLE, este rutarea tabelelor din / ip route (table-routing) și route-mark'i, iar tabela de rutare nu poate fi utilizată direct acolo!
Ie acolo, din motive incomprehensibile, afișate ca marcaj de rutare și tabel de rutare.
(UPD: Dar pe celălalt router funcționează și așa și așa.) Hmm.)

Trebuie să le comparăm:

/ Regula ip route add action = comment căutare = "" dezactivat = nici o rutare-mark = tabel rialkom = adăuga rialkom acțiune = comment căutare = "" dezactivat = nici o rutare-mark = tabel Beeline = Beeline adăuga acțiune = căutare comment = "" dezactivat = fără marcaj de rutare = inet table = inet

Marcați alb cu partea din spate a pungilor:

/ IP calandru firewall adăuga lanț de acțiune = mark-rutare = comment ieșire = "răspuns local pentru a corecta dacă" dezactivat = nici un nou-rutare-mark = Beeline \ passthrough = da src =-adresa 62.X.7.242 adăuga acțiune = exemplu marcarea lanț de rutare = comment ieșire = "răspuns local pentru a corecta dacă" dezactivat = nici un nou-rutare-mark = INET passthrough = \ src da-address = 212.152.X.55 adăuga lanț de acțiune = mark-rutare = comment ieșire = „răspuns local pentru a corecta dacă "disabled = no new-routing-mark = rialkom \ passthrough = yes src-address = 80.X.255.130

Și dacă am doi furnizori și unul dintre ei este static și al doilea este PPPoE?

Dacă există doar două canale, atunci este necesar să renunțați la toate referințele la al treilea furnizor din scenariu, nu este dificil.

În ceea ce privește PPPOE, el obține și un fel de Ipishnik, astfel încât acest sistem poate funcționa și el. Este necesar doar să se asigure reconectarea automată a conexiunii PPPOE.

O solutie gata pentru cazul cu PPPOE nu poate fi dat, pentru ca este necesar să se testeze și să se depaneze.

Interesat de această întrebare, în această configurație, dacă distribuția încărcării pe cele trei canale sau celelalte două sunt utilizate ca rezervă.

Nu, în acest scenariu, distribuția nu are loc.

Exemple cu distribuirea sarcinii sunt în documentație, de exemplu:

Este mai greu de spus.

De asemenea, merită să verificați următoarele:

1. Pachetele nu sunt într-adevăr marcate sau eticheta este suprascrisă.

Ar trebui să acordați atenție parametrului passthrough și ordinea regulilor în care sunt stabilite etichetele.

2. Pachetele sunt marcate, dar nu se întâmplă nimic pe aceste etichete.

Există ceva în neregulă cu tabelele de rutare sau cu etichetele lor (tipo în etichetă?)

Mulțumesc, a ajutat foarte mult la configurarea acasă.

A adăugat doar un ping la două gazde, dacă dintr-o dată minte. În consecință, există:

local IPToPing1 xx.xx.xx.xx

local IPToPing2 yy.yy.yy.yy

locală pingresultA ([/ ping $ IPToPing1 conta = $ PingCount src-address = $ SrcAddrA] + [/ ping $ IPToPing2 conta = $ PingCount src-address = $ SrcAddrA])

locală pingresultB ([/ ping $ IPToPing1 conta = $ PingCount src-address = $ SrcAddrB] + [/ ping $ IPToPing2 conta = $ PingCount src-address = $ SrcAddrB])

Ei bine și la cec (pe un exemplu al primului):

dacă (($ pingresultA = 0) ($ pingresultB> = $ PingCount))

a făcut totul "în conformitate cu cartea", dar când fac interfața principală, internetul intră, adică nu trece la canalul de back-up.

Cine poate ajuta, scrie pe plz săpun.

Pentru mai devreme, mulțumesc.

Orei de zi a zilei tuturor oamenilor Kind și Reflective!

Da, imi pare rau administratorii de forumuri pentru acest strigat disperat al sufletului. Ajuta la configurarea routerului: Microtik RouterBoard 493G,

Pentru ajutor reciproc MATERIAL din partea mea,

pentru a compensa eforturile dvs. de titan și timpul petrecut.

Trebuie să implementați următoarea configurație:

1.) Configurați 2 conexiuni Internet diferite.

a.) ISP1 Internet prin cablu - are un IP dedicat.

b) ISP2 modem USB Yota LTE - are un IP dedicat. (Router-ul are un port usb)

dar nimic nu sa dovedit (nu există un astfel de element.) Dacă brusc nu se dovedește a se conecta

prin eforturi comune, apoi, ca o opțiune, modemul Yota va rămâne în și din ISP2 (sârmă)

2.) Pentru a organiza o balansare de rezervă a canalului de internet în cazul unei căderi a acestuia.

pentru toate perifericele situate în rețeaua Lan, pe povestea cu același nume

a.) 2 servere RDP au ISP2 Primary Channel (modem usb Yota LTE) - rezerva ISP 1 (sârmă).

3.) Acordați acces la servere RDP cu două minte (radmin) de la ambele IP-uri externe (ISP 1 și ISP 2)

bazat pe același pentru noi toți o bine cunoscută persoană a legendei 🙂

Și de ce să nu cereți această "legendă umană" pentru "MATERIAL" în sine? 🙂

Iubiți nuba (cu o vânătoare de ruter întâlnită):

Cum se adaugă rute la tabelele numite? (Ei bine, acele mâini - este de înțeles) Pur și simplu, oriunde înainte de a adăuga ceva, comanda este specificată, dar aici nu este.

Adăugați rute în tabele de rutare numite:

adăugați comentariu = "" dezactivat = nu există distanță = 1 dst-adresa = 0.0.0.0 / 0 gateway = \

80.X.255.129 marcaj de rutare = rikalom scop = 30 target-scope = 10

adăugați comentariu = "" dezactivat = nu există distanță = 1 dst-adresa = 0.0.0.0 / 0 gateway = \

62.X.7.241 marcajul de rutare = domeniul de referință = 30 țintă = 10

adăugați comentariu = "" dezactivat = nu există distanță = 1 dst-adresa = 0.0.0.0 / 0 gateway = \

212.152.X.1 rutare-marcă = scop inet = 30 țintă-domeniu = 10

Este simplu: / ip traseu

Și portul de expediere cu această setare a Router-ului este complicat?

IP firewall-nat adăuga lanț = dstnat dst-address = WORLD-IP Protocol = UDP dst-port = 1,194 action = dstnat la adrese = LOCAL-IP-porturi = 1194 și nu funcționează în mod normal, deși în teorie ar trebui.

Poate nu înțeleg ce?

Doar în rețeaua internă există un site web și un server VPN și nu pot ajunge la ele. Plus, scrisorile nu vin.

PS. Am făcut totul pe manual. Pot vedea Internetul de pe Internet.

Cel mai probabil au mers în rute și etichete.

Am răspuns prin poștă.

Bună ziua, nu am putut arunca scriptul corectat pentru 2 canale pe Internet. Încerc să mă corectez, dar mă pierd pe linii. dacă [([[/ ip rută ajunge [find distance = "GW_2"] distanța] = 1) ([/ ip route get get [find comment = "GW_1"] distance = = "GW_3"] distanța] = 3)) = false) do =

și ca ei, nu înțeleg ce să șterg.

Dacă nu este dificil, am să aștept un răspuns la post.

Pentru două canale va arăta astfel:

local PingCount 3

# ping GOOGLE DNS

IPToPing local 8.8.8.8

local SrcAddrA 80.X.255.130

local SrcAddrB 62.X.7.242

#ping gateway-uri cu src

pingresult locală [/ ping $ IPToPing count = $ PingCount src-address = $ SrcAddrA]

pingresult locală locală [/ ping $ IPToPing count = $ PingCount src-address = $ SrcAddrB]

#if link_A este DOWN și link_B este UP atunci:

dacă (($ pingresultA = 0) ($ pingresultB = $ PingCount))

dacă [([/ ip rută ajunge [find comment = "GW_2"] distanța] = 1) ([/ ip route get =

avertizare jurnal "setați rutele la B"

/ ip set de traseu [find comment = "GW_2"] distance = 1

/ ip set de traseu [find comment = "GW_1"] distance = 2

#if link_A este UP și link_B este DOWN atunci:

dacă (($ pingresultA = $ PingCount) ($ pingresultB = 0))

dacă [([[[ip rută ajunge [find comment = "GW_2"] distanță] = 2)

jurnal de avertizare "Setarea rutelor la A"

/ ip set de traseu [find comment = "GW_1"] distance = 1

/ ip set de traseu [find comment = "GW_2"] distance = 2

# Link A sau Link B sunt ambele UP:

dacă (($ pingresultA = $ PingCount) ($ pingresultB = $ PingCount))

dacă [([[[ip rută ajunge [find comment = "GW_2"] distanță] = 2)

jurnal de avertizare "Setarea rutelor la A"

/ ip set de traseu [find comment = "GW_1"] distance = 1

/ ip set de traseu [find comment = "GW_2"] distance = 2

Multe mulțumiri pentru răspunsul pe care îl voi lua pe mine însumi.

Imaginea nu este destul de completă, dar voi încerca să ghicesc:

Pe clienții celui de-al doilea DNS, ce nu este serverul primului furnizor? Și pe serverul MK DNS este corect configurat, în FW este permisă? Există o problemă cu toți clienții sau doar cu una?

ipconfig / all + route print - în studio.

Nu există niciun DNS secundar pe clienți (numai primar IP). Pe MK DNS configurat după cum urmează: ip dns set primar-dns = 109.232.185.26 secundar-dns = 91.204.136.6 allow-remote-requests = da (primar de la primul furnizor, secundar de la al doilea furnizor). În înregistrările FW speciale despre DNS nu au făcut-o. Se observă la toți clienții. Dacă clientul dezactivează cache-ul DNS, atunci când comutarea canalului și ping-ul după nume funcționează corespunzător.

În general, se pare că nu este cazul DNS, ci ceva umbrit de setarea microfonului în sine. Ce se întâmplă: după trecerea la alt canal, conexiunile "vechi" sunt încă trimise la canalul vechi.

Înainte și după comutarea ya.ru pentru a rezolva în diferite Ipishniki? Cred că da.

Ce va da un astfel de test: înainte de a comuta, pornim simultan ping 213.180.193.3 și 93.158.134.203, după ce vom începe 213.180.204.3 și vom reporni primele două?

PS: Vă recomandăm să nu utilizați DNS-servere ale furnizorilor, ci DNS de la Google: 8.8.8.8 și 8.8.4.4

În timp ce Yandex și-a găsit propria rețea CDN pentru sincronizarea serverelor din întreaga lume. Există echilibrarea, calculul celui mai mic mod, geoip și multe altele. IP-ul se poate schimba nu numai atunci când schimbați rutele, ci și pe un furnizor. Puneți DNS de la Google și până acum sa oprit. Vă mulțumim pentru cooperarea dvs.

Aveți nevoie de ajutor setarea RB751g-2hnd (5.16 os) pentru o recompensă, deoarece nu există timp și da amintirile de stabilire a microfonului 3.30 pe PC afectează. totul a funcționat, dar sedimentul a rămas. Sarcina este următoarea: trebuie să aveți 2 furnizori, unul în rezervă și activat atunci când principalul este indisponibil și dezactivat atunci când apare principalul. 2 furnizori sunt conectați prin DHCP.

Furnizor primar 1port

3port distribuție simplă DHCP

Clienții 4port sunt conectați prin PPPOE PPTP și IP statistic.

Distribuirea simplă prin WiFi prin cheie DHCP și WEP.

Sper să beneficiez de un sprijin deplin în configurație, dar nu exclud parțial dacă primul este imposibil. acces prin intermediul Winbox (setarea de bază a accesului la Internet voi face eu) plata Webmoney

Întrebarea este proastă, vor fi restaurate conexiunile existente pe canalul de rezervă? Întreaga cap a rupt, există un software care nu-i place schimbarea simplă a Internetului.

Versiunea mea script de lucru convertit

Cred că aveți protocoale dinamice de rutare (BGP, OSPF, etc.) - descrieți în detaliu pastebin mediul de rețea, colegii pot avea întrebări / probleme inutile atunci când se implementează.

Opțiunea pe care am descris-o pentru rutarea statică, cred că nu ați câștigat "din cutie".

Totul a fost ajustat în conformitate cu manualul oficial (ENG)

În cazul meu, sunt utilizate 2 rețele locale și 2 furnizori (modemuri de pod), dar numărul de rețele locale nu afectează funcționarea scriptului.

p.s Numele interfeței în limba engleză.

Poate că în scriptul original este posibil să se utilizeze nume de interfață în loc de [find comment = "GW_3"].

În scriptul pentru 2 furnizori o eroare în linii

avertizare log "setați rutele la A"

avertizare jurnal "setați rutele la B"

din cauza a ceea ce nu funcționează! Trebuie să înlocuiți "" cu "".

Și din moment ce scenariul funcționează complet - totul se schimbă, pur și simplu nu uitați să marcați așa cum este indicat în articol (după descrierea scriptului pentru 3 furnizori)

Din cauza unor erori incomprehensibile la rularea scriptului, scriptul a fost ușor rescris.

script pe pastebin.com

Exemplu de tabel de rutare

Am observat că, în timpul procesului de actualizare, WordPress a condus caractere speciale, cum ar fi citate foarte mult în cazul în care, probabil, este în asta.

Băieți, totul este răcoros, dar puteți explica cum funcționează scenariul pe skype?

Așa cum am descris aici. Paginile Internet și ping-urile rulează frumos. Dar aici, cu port forwarding problema, și tcp (verificat pentru conexiune la distanță la desktop) este normal, și udp nehochet, deși în Winbox-e arată că pachetele sunt trimise.

lanț = dstnat acțiune = netmap to-addresses = 10.10.1.201 la-porturi = 7711

protocol = tcp în interfață = ether1 dst-port = 7711

lanț = dstnat acțiune = netmap to-addresses = 10.10.1.207 la-porturi = 7711

protocol = udp în interfață = ether1 dst-port = 7711

lanț = dstnat acțiune = netmap to-addresses = 10.10.1.207 la-porturi = 7711

protocol = udp în interfață = ether2 dst-port = 7711

lanț = dstnat acțiune = netmap to-addresses = 10.10.1.207 la-porturi = 7711

protocol = tcp în interfață = ether2 dst-port = 7711

mulțumesc pentru manual.

Articole similare