Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Ang pagruruta ay ang proseso ng paghahanap ng pinakamahusay na landas para sa pagpapadala ng mga packet sa mga TCP/IP network. Ang anumang device na nakakonekta sa isang IPv4 network ay naglalaman ng isang proseso at mga talahanayan ng pagruruta.

Ang artikulong ito ay hindi isang HOWTO, inilalarawan nito ang static na pagruruta sa RouterOS na may mga halimbawa, sadyang tinanggal ko ang natitirang mga setting (halimbawa, srcnat para sa pag-access sa Internet), kaya ang pag-unawa sa materyal ay nangangailangan ng isang tiyak na antas ng kaalaman sa mga network at RouterOS.

Paglipat at pagruruta

Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Ang paglipat ay ang proseso ng pagpapalitan ng mga packet sa loob ng isang Layer2 segment (Ethernet, ppp, ...). Kung nakikita ng device na ang tatanggap ng packet ay nasa parehong Ethernet subnet kasama nito, malalaman nito ang mac address gamit ang arp protocol at direktang ipinapadala ang packet, na lumalampas sa router. Ang isang ppp (point-to-point) na koneksyon ay maaaring magkaroon lamang ng dalawang kalahok at ang packet ay palaging ipinapadala sa isang address na 0xff.

Ang pagruruta ay ang proseso ng paglilipat ng mga packet sa pagitan ng mga segment ng Layer2. Kung gusto ng isang device na magpadala ng packet na ang recipient ay nasa labas ng Ethernet segment, titingnan nito ang routing table nito at ipapasa ang packet sa isang gateway na nakakaalam kung saan susunod na ipapadala ang packet (o maaaring hindi alam, ang orihinal na nagpadala ng packet ay hindi alam nito).

Ang pinakamadaling paraan upang isipin ang isang router ay bilang isang device na konektado sa dalawa o higit pang mga Layer2 na mga segment at may kakayahang magpasa ng mga packet sa pagitan ng mga ito sa pamamagitan ng pagtukoy ng pinakamahusay na ruta mula sa routing table.

Kung naiintindihan mo ang lahat, o alam mo na ito, pagkatapos ay basahin mo. Para sa iba, masidhi kong inirerekumenda na pamilyar ka sa isang maliit, ngunit napakalawak mga artikulo.

Pagruruta sa RouterOS at PacketFlow

Halos lahat ng functionality na nauugnay sa static na pagruruta ay nasa package sistema. Plastik na bag direksiyon nagdaragdag ng suporta para sa mga dynamic na routing algorithm (RIP, OSPF, BGP, MME), Routing Filters at BFD.

Pangunahing menu para sa pag-set up ng pagruruta: [IP]->[Route]. Ang mga kumplikadong scheme ay maaaring mangailangan ng mga packet na pre-label na may marka ng pagruruta sa: [IP]->[Firewall]->[Mangle] (mga tanikala PREROUTING ΠΈ OUTPUT).

May tatlong lugar sa PacketFlow kung saan ginawa ang mga desisyon sa pagruruta ng IP packet:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

  1. Routing packet na natanggap ng router. Sa yugtong ito, napagpasyahan kung mapupunta ang packet sa lokal na proseso o ipapadala pa sa network. Tumatanggap ang mga pakete ng transit Output Interface
  2. Pagruruta ng mga lokal na papalabas na packet. Nakatanggap ang mga papalabas na packet Output Interface
  3. Ang karagdagang hakbang sa pagruruta para sa mga papalabas na packet, ay nagbibigay-daan sa iyong baguhin ang desisyon sa pagruruta [Output|Mangle]

  • Ang landas ng packet sa mga bloke 1, 2 ay nakasalalay sa mga patakaran sa [IP]->[Route]
  • Ang packet path sa mga puntos 1, 2 at 3 ay depende sa mga patakaran sa [IP]->[Route]->[Rules]
  • Ang landas ng pakete sa mga bloke 1, 3 ay maaaring maimpluwensyahan gamit [IP]->[Firewall]->[Mangle]

RIB, FIB, Routing Cache

Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Base ng Impormasyon sa Pagruruta
Ang base kung saan kinokolekta ang mga ruta mula sa mga dynamic na routing protocol, mga ruta mula sa ppp at dhcp, static at konektadong mga ruta. Ang database na ito ay naglalaman ng lahat ng mga ruta, maliban sa mga na-filter ng administrator.

May kondisyon, maaari nating ipagpalagay na [IP]->[Route] nagpapakita ng RIB.

Pagpasa ng Impormasyon Base
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Ang base kung saan kinokolekta ang pinakamahusay na mga ruta mula sa RIB. Ang lahat ng mga ruta sa FIB ay aktibo at ginagamit upang ipasa ang mga packet. Kung ang ruta ay naging hindi aktibo (na-disable ng administrator (system), o ang interface kung saan dapat ipadala ang packet ay hindi aktibo), ang ruta ay aalisin sa FIB.

Upang gumawa ng desisyon sa pagruruta, ginagamit ng talahanayan ng FIB ang sumusunod na impormasyon tungkol sa isang IP packet:

  • Address ng Pinagmulan
  • Address ng patutunguhan
  • Source Interface
  • Marka ng pagruruta
  • ToS (DSCP)

Ang pagpasok sa FIB package ay dumaan sa mga sumusunod na yugto:

  • Ang package ba ay inilaan para sa isang lokal na proseso ng router?
  • Ang packet ba ay napapailalim sa system o user PBR rules?
    • Kung oo, ipapadala ang packet sa tinukoy na routing table
  • Ang packet ay ipinadala sa pangunahing talahanayan

May kondisyon, maaari nating ipagpalagay na [IP]->[Route Active=yes] nagpapakita ng FIB.

Routing Cache
Mekanismo ng pag-cache ng ruta. Natatandaan ng router kung saan ipinadala ang mga packet at kung mayroong mga katulad (marahil mula sa parehong koneksyon) hinahayaan silang pumunta sa parehong ruta, nang hindi sinusuri ang FIB. Pana-panahong na-clear ang cache ng ruta.

Para sa mga administrator ng RouterOS, hindi sila gumawa ng mga tool para sa pagtingin at pamamahala sa Routing Cache, ngunit kapag maaari itong i-disable sa [IP]->[Settings].

Ang mekanismong ito ay tinanggal mula sa linux 3.6 kernel, ngunit ang RouterOS ay gumagamit pa rin ng kernel 3.3.5, marahil ang Routing cahce ay isa sa mga dahilan.

Magdagdag ng dialog ng ruta

[IP]->[Route]->[+]
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

  1. Subnet kung saan mo gustong gumawa ng ruta (default: 0.0.0.0/0)
  2. Gateway IP o interface kung saan ipapadala ang packet (maaaring marami, tingnan ang ECMP sa ibaba)
  3. Pagsusuri sa Availability ng Gateway
  4. Uri ng Record
  5. Distansya (sukatan) para sa isang ruta
  6. Routing table
  7. IP para sa mga lokal na papalabas na packet sa pamamagitan ng rutang ito
  8. Ang layunin ng Saklaw at Target na Saklaw ay nakasulat sa dulo ng artikulo.

Mga flag ng ruta
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

  • X - Ang ruta ay hindi pinagana ng administrator (disabled=yes)
  • A - Ang ruta ay ginagamit upang magpadala ng mga packet
  • D - Dinagdag ang ruta nang pabago-bago (BGP, OSPF, RIP, MME, PPP, DHCP, Konektado)
  • C - Ang subnet ay direktang konektado sa router
  • S - Static na Ruta
  • r,b,o,m - Ruta na idinagdag ng isa sa mga dynamic na routing protocol
  • B,U,P - Pag-filter ng ruta (binaba ang mga packet sa halip na ipadala)

Ano ang tutukuyin sa gateway: ip-address o interface?

Pinapayagan ka ng system na tukuyin ang pareho, habang hindi ito nagmumura at hindi nagbibigay ng mga pahiwatig kung may nagawa kang mali.

IP address
Ang address ng gateway ay dapat ma-access sa Layer2. Para sa Ethernet, nangangahulugan ito na ang router ay dapat magkaroon ng isang address mula sa parehong subnet sa isa sa mga aktibong ip interface, para sa ppp, na ang gateway address ay tinukoy sa isa sa mga aktibong interface bilang ang subnet address.
Kung hindi natutugunan ang kundisyon ng accessibility para sa Layer2, ang ruta ay ituturing na hindi aktibo at hindi nahuhulog sa FIB.

interface
Ang lahat ay mas kumplikado at ang pag-uugali ng router ay nakasalalay sa uri ng interface:

  • Ipinapalagay ng koneksyon ng PPP (Async, PPTP, L2TP, SSTP, PPPoE, OpenVPN *) ang dalawang kalahok lamang at ang packet ay palaging ipapadala sa gateway para sa paghahatid, kung ang gateway ay natukoy na ang tatanggap ay mismo, pagkatapos ay ililipat nito ang packet sa lokal na proseso nito.
    Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS
  • Ipinapalagay ng Ethernet ang pagkakaroon ng maraming kalahok at magpapadala ng mga kahilingan sa interface ng arp na may address ng tatanggap ng packet, ito ay inaasahan at medyo normal na pag-uugali para sa mga konektadong ruta.
    Ngunit kapag sinubukan mong gamitin ang interface bilang isang ruta para sa isang malayong subnet, makukuha mo ang sumusunod na sitwasyon: ang ruta ay aktibo, ping sa gateway pass, ngunit hindi maabot ang tatanggap mula sa tinukoy na subnet. Kung titingnan mo ang interface sa pamamagitan ng isang sniffer, makikita mo ang mga kahilingan sa arp na may mga address mula sa isang malayong subnet.
    Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Subukang tukuyin ang ip address bilang gateway hangga't maaari. Ang pagbubukod ay mga konektadong ruta (awtomatikong nilikha) at mga interface ng PPP (Async, PPTP, L2TP, SSTP, PPPoE, OpenVPN*).

Ang OpenVPN ay hindi naglalaman ng isang PPP header, ngunit maaari mong gamitin ang OpenVPN interface name upang lumikha ng isang ruta.

Higit pang Partikular na Ruta

Pangunahing panuntunan sa pagruruta. Ang ruta na naglalarawan sa mas maliit na subnet (na may pinakamalaking subnet mask) ay nangunguna sa pagpapasya sa pagruruta ng packet. Ang posisyon ng mga entry sa routing table ay hindi nauugnay sa pagpipilian - ang pangunahing panuntunan ay Mas Partikular.

Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Ang lahat ng mga ruta mula sa tinukoy na scheme ay aktibo (na matatagpuan sa FIB). tumuro sa iba't ibang mga subnet at hindi sumasalungat sa isa't isa.

Kung ang isa sa mga gateway ay hindi magagamit, ang nauugnay na ruta ay ituturing na hindi aktibo (aalisin mula sa FIB) at ang mga packet ay hahanapin mula sa mga natitirang ruta.

Ang ruta na may subnet 0.0.0.0/0 ay minsan binibigyan ng espesyal na kahulugan at tinatawag na "Default na Ruta" o "Gateway ng huling resort". Sa katunayan, walang mahiwagang tungkol dito at kasama lang nito ang lahat ng posibleng IPv4 address, ngunit ang mga pangalang ito ay naglalarawan ng gawain nito nang maayos - ipinapahiwatig nito ang gateway kung saan ipapasa ang mga packet kung saan walang iba, mas tumpak na mga ruta.

Ang maximum na posibleng subnet mask para sa IPv4 ay /32, ang rutang ito ay tumuturo sa isang partikular na host at maaaring gamitin sa routing table.

Ang pag-unawa sa Higit pang Partikular na Ruta ay mahalaga sa anumang TCP/IP device.

Layo

Ang mga distansya (o Mga Sukatan) ay kinakailangan para sa administratibong pag-filter ng mga ruta sa isang subnet na naa-access sa pamamagitan ng maraming gateway. Ang isang ruta na may mas mababang sukatan ay itinuturing na priyoridad at isasama sa FIB. Kung ang isang ruta na may mas mababang sukatan ay hindi na magiging aktibo, ito ay papalitan ng isang ruta na may mas mataas na sukatan sa FIB.
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Kung mayroong ilang mga ruta sa parehong subnet na may parehong sukatan, ang router ay magdaragdag lamang ng isa sa mga ito sa talahanayan ng FIB, na ginagabayan ng panloob na lohika nito.

Ang sukatan ay maaaring tumagal ng isang halaga mula 0 hanggang 255:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

  • 0 - Sukatan para sa mga konektadong ruta. Ang distansya 0 ay hindi maitakda ng administrator
  • 1-254 - Available ang mga sukatan sa administrator para sa pagtatakda ng mga ruta. Ang mga sukatan na may mas mababang halaga ay may mas mataas na priyoridad
  • 255 - Available ang panukat sa administrator para sa pagtatakda ng mga ruta. Hindi tulad ng 1-254, ang isang ruta na may sukatan na 255 ay palaging nananatiling hindi aktibo at hindi nahuhulog sa FIB
  • mga tiyak na sukatan. Ang mga ruta na nagmula sa mga dynamic na routing protocol ay may mga karaniwang sukatan na halaga

suriin ang gateway

Ang check gateway ay isang extension ng MikroTik RoutesOS para sa pagsuri sa availability ng gateway sa pamamagitan ng icmp o arp. Sa bawat 10 segundo (hindi mababago), ang isang kahilingan ay ipinapadala sa gateway, kung ang tugon ay hindi natanggap nang dalawang beses, ang ruta ay itinuturing na hindi magagamit at aalisin mula sa FIB. Kung hindi pinagana ang check gateway, magpapatuloy ang ruta ng pagsusuri at magiging aktibo muli ang ruta pagkatapos ng isang matagumpay na pagsusuri.
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Hindi pinapagana ng Check gateway ang entry kung saan ito naka-configure at lahat ng iba pang entry (sa lahat ng routing table at ecmp na ruta) gamit ang tinukoy na gateway.

Sa pangkalahatan, gumagana nang maayos ang check gateway hangga't walang mga problema sa pagkawala ng packet sa gateway. Hindi alam ng Check gateway kung ano ang nangyayari sa komunikasyon sa labas ng naka-check na gateway, nangangailangan ito ng mga karagdagang tool: mga script, recursive routing, dynamic na routing protocol.

Karamihan sa mga protocol ng VPN at tunnel ay naglalaman ng mga built-in na tool para sa pagsuri sa aktibidad ng koneksyon, ang pagpapagana ng check gateway para sa mga ito ay isang karagdagang (ngunit napakaliit) na pag-load sa pagganap ng network at device.

Mga ruta ng ECMP

Equal-Cost Multi-Path - pagpapadala ng mga packet sa tatanggap gamit ang ilang gateway nang sabay-sabay gamit ang Round Robin algorithm.

Ang isang ruta ng ECMP ay nilikha ng administrator sa pamamagitan ng pagtukoy ng maraming gateway para sa isang subnet (o awtomatiko, kung mayroong dalawang katumbas na ruta ng OSPF).
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Ang ECMP ay ginagamit para sa pagbalanse ng load sa pagitan ng dalawang channel, sa teorya, kung mayroong dalawang channel sa ruta ng ecmp, kung gayon para sa bawat packet ang papalabas na channel ay dapat na iba. Ngunit ang mekanismo ng Routing cache ay nagpapadala ng mga packet mula sa koneksyon kasama ang ruta na kinuha ng unang packet, bilang isang resulta, nakakakuha kami ng isang uri ng pagbabalanse batay sa mga koneksyon (per-connection loading balancing).

Kung hindi mo pinagana ang Routing Cache, ang mga packet sa ruta ng ECMP ay maibabahagi nang tama, ngunit may problema sa NAT. Ang panuntunan ng NAT ay nagpoproseso lamang ng unang packet mula sa koneksyon (ang iba ay awtomatikong naproseso), at lumalabas na ang mga packet na may parehong source address ay nag-iiwan ng iba't ibang mga interface.
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Ang check gateway ay hindi gumagana sa mga ruta ng ECMP (RouterOS bug). Ngunit malalampasan mo ang limitasyong ito sa pamamagitan ng paggawa ng mga karagdagang ruta ng pagpapatunay na magdi-disable sa mga entry sa ECMP.

Pag-filter sa pamamagitan ng Routing

Tinutukoy ng opsyong Uri kung ano ang gagawin sa package:

  • unicast - ipadala sa tinukoy na gateway (interface)
  • blackhole - itapon ang isang pakete
  • ipagbawal, hindi maabot - itapon ang packet at magpadala ng icmp message sa nagpadala

Karaniwang ginagamit ang pag-filter kapag kinakailangan upang ma-secure ang pagpapadala ng mga packet sa maling direksyon, siyempre, maaari mo itong i-filter sa pamamagitan ng firewall.

Isang pares ng mga halimbawa

Upang pagsama-samahin ang mga pangunahing bagay tungkol sa pagruruta.

Karaniwang router sa bahay
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1

  1. Static na ruta sa 0.0.0.0/0 (default na ruta)
  2. Nakakonektang ruta sa interface kasama ang provider
  3. Nakakonektang ruta sa LAN interface

Karaniwang home router na may PPPoE
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

  1. Static na ruta sa default na ruta, awtomatikong idinagdag. ito ay tinukoy sa mga katangian ng koneksyon
  2. Konektadong ruta para sa koneksyon ng PPP
  3. Nakakonektang ruta sa LAN interface

Karaniwang home router na may dalawang provider at redundancy
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 distance=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 distance=2

  1. Static na ruta sa default na ruta sa pamamagitan ng unang provider na may sukatan 1 at pagsuri sa availability ng gateway
  2. Static na ruta sa default na ruta sa pamamagitan ng pangalawang provider na may sukatan 2
  3. Mga konektadong ruta

Ang trapiko sa 0.0.0.0/0 ay dumadaan sa 10.10.10.1 habang available ang gateway na ito, kung hindi ay lilipat ito sa 10.20.20.1

Ang ganitong pamamaraan ay maaaring ituring na isang reserbasyon ng channel, ngunit hindi ito walang mga kakulangan. Kung may naganap na break sa labas ng gateway ng provider (halimbawa, sa loob ng network ng operator), hindi malalaman ng iyong router ang tungkol dito at patuloy na ituturing na aktibo ang ruta.

Karaniwang home router na may dalawang provider, redundancy at ECMP
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.10.10.1,10.20.20.1 distance=1

  1. Mga static na ruta para sa pagsuri ng chack gateway
  2. ruta ng ECMP
  3. Mga konektadong ruta

Ang mga rutang susuriin ay asul (ang kulay ng mga hindi aktibong ruta), ngunit hindi ito nakakasagabal sa check gateway. Ang kasalukuyang bersyon (6.44) ng RoS ay nagbibigay ng awtomatikong priyoridad sa ruta ng ECMP, ngunit mas mainam na magdagdag ng mga ruta ng pagsubok sa iba pang mga routing table (opsyon routing-mark)

Sa Speedtest at iba pang katulad na mga site, hindi tataas ang bilis (hinahati ng ECMP ang trapiko sa pamamagitan ng mga koneksyon, hindi sa mga packet), ngunit ang mga p2p na application ay dapat mag-download nang mas mabilis.

Pag-filter sa pamamagitan ng Routing
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1
add dst-address=192.168.200.0/24 gateway=10.30.30.1 distance=1
add dst-address=192.168.200.0/24 gateway=10.10.10.1 distance=2 type=blackhole

  1. Static na ruta sa default na ruta
  2. Static na ruta sa 192.168.200.0/24 sa ibabaw ng ipip tunnel
  3. Ipinagbabawal ang static na ruta sa 192.168.200.0/24 sa pamamagitan ng ISP router

Isang opsyon sa pag-filter kung saan ang trapiko ng tunnel ay hindi mapupunta sa router ng provider kapag ang interface ng ipip ay hindi pinagana. Ang ganitong mga scheme ay bihirang kinakailangan, dahil maaari mong ipatupad ang pagharang sa pamamagitan ng firewall.

Pagruruta loop
Routing loop - isang sitwasyon kapag ang isang packet ay tumatakbo sa pagitan ng mga router bago mag-expire ang ttl. Kadalasan ito ay resulta ng isang error sa pagsasaayos, sa malalaking network ito ay ginagamot sa pamamagitan ng pagpapatupad ng mga dynamic na protocol ng pagruruta, sa mga maliliit - nang may pag-iingat.

Mukhang ganito:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Isang halimbawa (pinakasimple) kung paano makakuha ng katulad na resulta:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Ang halimbawa ng Routing loop ay walang praktikal na gamit, ngunit ipinapakita nito na ang mga router ay walang ideya tungkol sa routing table ng kanilang kapitbahay.

Policy Base Routing at Karagdagang Routing Tables

Kapag pumipili ng ruta, ang router ay gumagamit lamang ng isang field mula sa packet header (Dst. Address) - ito ay pangunahing pagruruta. Ang pagruruta batay sa iba pang kundisyon, gaya ng address ng pinagmulan, uri ng trapiko (ToS), pagbabalanse nang walang ECMP, ay kabilang sa Policy Base Routing (PBR) at gumagamit ng mga karagdagang talahanayan ng pagruruta.

Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Higit pang Partikular na Ruta ay ang pangunahing panuntunan sa pagpili ng ruta sa loob ng routing table.

Bilang default, ang lahat ng mga panuntunan sa pagruruta ay idinaragdag sa pangunahing talahanayan. Ang administrator ay maaaring lumikha ng isang arbitrary na bilang ng mga karagdagang routing table at ruta packet sa kanila. Ang mga panuntunan sa iba't ibang mga talahanayan ay hindi sumasalungat sa bawat isa. Kung ang pakete ay hindi makahanap ng angkop na panuntunan sa tinukoy na talahanayan, mapupunta ito sa pangunahing talahanayan.

Halimbawa sa pamamahagi sa pamamagitan ng Firewall:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

  • 192.168.100.10 -> 8.8.8.8
    1. Ang trapiko mula sa 192.168.100.10 ay may label sa pamamagitan ng-isp1 Π² [Prerouting|Mangle]
    2. Sa yugto ng Pagruruta sa talahanayan sa pamamagitan ng-isp1 naghahanap ng ruta sa 8.8.8.8
    3. Nahanap ang ruta, ipinapadala ang trapiko sa gateway 10.10.10.1
  • 192.168.200.20 -> 8.8.8.8
    1. Ang trapiko mula sa 192.168.200.20 ay may label sa pamamagitan ng-isp2 Π² [Prerouting|Mangle]
    2. Sa yugto ng Pagruruta sa talahanayan sa pamamagitan ng-isp2 naghahanap ng ruta sa 8.8.8.8
    3. Nahanap ang ruta, ipinapadala ang trapiko sa gateway 10.20.20.1
  • Kung ang isa sa mga gateway (10.10.10.1 o 10.20.20.1) ay naging hindi magagamit, ang packet ay mapupunta sa talahanayan pangunahin at maghahanap ng angkop na ruta doon

Mga isyu sa terminolohiya

Ang RouterOS ay may ilang partikular na isyu sa terminolohiya.
Kapag nagtatrabaho sa mga patakaran sa [IP]->[Routes] ang routing table ay ipinahiwatig, kahit na nakasulat na ang label:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Π’ [IP]->[Routes]->[Rule] tama ang lahat, sa kundisyon ng label sa pagkilos ng talahanayan:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Paano magpadala ng packet sa isang partikular na routing table

Nagbibigay ang RouterOS ng ilang tool:

  • Mga panuntunan sa [IP]->[Routes]->[Rules]
  • Mga marker ng ruta (action=mark-routing) sa [IP]->[Firewall]->[Mangle]
  • VRF

mga tuntunin [IP]->[Route]->[Rules]
Ang mga patakaran ay pinoproseso nang sunud-sunod, kung ang packet ay tumutugma sa mga kondisyon ng panuntunan, hindi ito papasa pa.

Binibigyang-daan ka ng Mga Panuntunan sa Pagruruta na palawakin ang mga posibilidad ng pagruruta, na umaasa hindi lamang sa address ng tatanggap, kundi pati na rin sa source address at interface kung saan natanggap ang packet.

Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Ang mga panuntunan ay binubuo ng mga kundisyon at isang aksyon:

  • Mga kundisyon. Praktikal na ulitin ang listahan ng mga palatandaan kung saan sinusuri ang package sa FIB, ToS lang ang nawawala.
  • Aktibidad
    • lookup - magpadala ng packet sa isang table
    • maghanap lamang sa talahanayan - i-lock ang pakete sa talahanayan, kung ang ruta ay hindi natagpuan, ang pakete ay hindi mapupunta sa pangunahing talahanayan
    • drop - drop ng isang pakete
    • hindi maabot - itapon ang packet na may abiso sa nagpadala

Sa FIB, ang trapiko sa mga lokal na proseso ay pinoproseso nang lampas sa mga panuntunan [IP]->[Route]->[Rules]:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

pagmamarka [IP]->[Firewall]->[Mangle]
Binibigyang-daan ka ng mga label ng pagruruta na itakda ang gateway para sa isang packet gamit ang halos anumang kundisyon ng Firewall:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Sa praktikal, dahil hindi lahat ng mga ito ay may katuturan, at ang ilan ay maaaring gumana nang hindi matatag.

Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Mayroong dalawang paraan upang mag-label ng isang pakete:

  • Ilagay agad marka ng pagruruta
  • Unahin mo tanda ng koneksyon, pagkatapos ay batay sa tanda ng koneksyon upang ilagay marka ng pagruruta

Sa isang artikulo tungkol sa mga firewall, isinulat ko na ang pangalawang opsyon ay mas kanais-nais. binabawasan ang pagkarga sa cpu, sa kaso ng pagmamarka ng mga ruta - hindi ito ganap na totoo. Ang mga pamamaraan ng pagmamarka na ito ay hindi palaging katumbas at kadalasang ginagamit upang malutas ang iba't ibang mga problema.

Mga Halimbawa ng Paggamit

Lumipat tayo sa mga halimbawa ng paggamit ng Policy Base Routing, mas madaling ipakita ang mga ito kung bakit kailangan ang lahat ng ito.

MultiWAN at return outgoing (Output) na trapiko
Isang karaniwang problema sa isang pagsasaayos ng MultiWAN: Ang Mikrotik ay magagamit lamang mula sa Internet sa pamamagitan ng isang "aktibong" provider.
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Walang pakialam ang router kung saan napunta ang ip ng kahilingan, kapag bumubuo ng tugon, maghahanap ito ng ruta sa routing table kung saan aktibo ang ruta sa pamamagitan ng isp1. Dagdag pa, ang naturang packet ay malamang na mai-filter sa daan patungo sa tatanggap.

Isa pang kawili-wiling punto. Kung ang isang "simple" na source nat ay na-configure sa ether1 interface: /ip fi nat add out-interface=ether1 action=masquerade ang package ay mapupunta online sa src. address=10.10.10.100, na nagpapalala ng mga bagay.

Mayroong ilang mga paraan upang ayusin ang problema, ngunit ang alinman sa mga ito ay mangangailangan ng karagdagang mga talahanayan ng pagruruta:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 check-gateway=ping distance=1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 check-gateway=ping distance=2
add dst-address=0.0.0.0/0 gateway=10.10.10.1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 routing-mark=over-isp2

Gamitin [IP]->[Route]->[Rules]
Tukuyin ang routing table na gagamitin para sa mga packet na may tinukoy na Source IP.
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

/ip route rule
add src-address=10.10.10.100/32 action=lookup-only-in-table table=over-isp1
add src-address=10.20.20.200/32 action=lookup-only-in-table table=over-isp2

Maaaring gamitin action=lookup, ngunit para sa lokal na papalabas na trapiko, ganap na hindi kasama ng opsyong ito ang mga koneksyon mula sa maling interface.

  • Ang system ay bumubuo ng isang response packet na may Src. Address: 10.20.20.200
  • Sinusuri ng hakbang na Desisyon sa Pagruruta(2). [IP]->[Routes]->[Rules] at ang packet ay ipinadala sa routing table over-isp2
  • Ayon sa routing table, ang packet ay dapat ipadala sa gateway 10.20.20.1 sa pamamagitan ng ether2 interface

Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Ang pamamaraang ito ay hindi nangangailangan ng gumaganang Connection Tracker, hindi tulad ng paggamit ng Mangle table.

Gamitin [IP]->[Firewall]->[Mangle]
Ang koneksyon ay nagsisimula sa isang papasok na packet, kaya minarkahan namin ito (action=mark-connection), para sa mga papalabas na packet mula sa isang minarkahang koneksyon, itakda ang routing label (action=mark-routing).
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

/ip firewall mangle
#ΠœΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° входящих соСдинСний
add chain=input in-interface=ether1 connection-state=new action=mark-connection new-connection-mark=from-isp1
add chain=input in-interface=ether2 connection-state=new action=mark-connection new-connection-mark=from-isp2
#ΠœΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° исходящих ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π½Π° основС соСдинСний
add chain=output connection-mark=from-isp1 action=mark-routing new-routing-mark=over-isp1 passthrough=no
add chain=output connection-mark=from-isp2 action=mark-routing new-routing-mark=over-isp2 passthrough=no

Kung ilang ips ang na-configure sa isang interface, maaari kang magdagdag sa kundisyon dst-address para makasigurado.

  • Binubuksan ng isang packet ang koneksyon sa interface ng ether2. Papasok ang package [INPUT|Mangle] na nagsasabing markahan ang lahat ng packet mula sa koneksyon bilang mula sa-isp2
  • Ang system ay bumubuo ng isang response packet na may Src. Address: 10.20.20.200
  • Sa yugto ng Routing Decision(2), ang packet, alinsunod sa routing table, ay ipinapadala sa gateway 10.20.20.1 sa pamamagitan ng ether1 interface. Maaari mong i-verify ito sa pamamagitan ng pag-log in sa mga package [OUTPUT|Filter]
  • Sa entablado [OUTPUT|Mangle] ang label ng koneksyon ay nasuri mula sa-isp2 at ang packet ay tumatanggap ng isang label ng ruta over-isp2
  • Sinusuri ng hakbang na Pagsasaayos ng Pagruruta (3) ang pagkakaroon ng label ng pagruruta at ipinapadala ito sa naaangkop na talahanayan ng pagruruta
  • Ayon sa routing table, ang packet ay dapat ipadala sa gateway 10.20.20.1 sa pamamagitan ng ether2 interface

Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

MultiWAN at ibalik ang dst-nat traffic

Ang isang halimbawa ay mas kumplikado, kung ano ang gagawin kung mayroong isang server (halimbawa, web) sa likod ng router sa isang pribadong subnet at kailangan mong magbigay ng access dito sa pamamagitan ng alinman sa mga provider.

/ip firewall nat
add chain=dstnat proto=tcp dst-port=80,443 in-interface=ether1 action=dst-nat to-address=192.168.100.100
add chain=dstnat proto=tcp dst-port=80,443 in-interface=ether2 action=dst-nat to-address=192.168.100.100

Ang kakanyahan ng problema ay magiging pareho, ang solusyon ay katulad ng opsyon sa Firewall Mangle, tanging ang iba pang mga chain ang gagamitin:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

/ip firewall mangle
add chain=prerouting connection-state=new in-interface=ether1 protocol=tcp dst-port=80,443 action=mark-connection new-connection-mark=web-input-isp1
add chain=prerouting connection-state=new in-interface=ether2 protocol=tcp dst-port=80,443 action=mark-connection new-connection-mark=web-input-isp2
add chain=prerouting connection-mark=web-input-isp1 in-interface=ether3 action=mark-routing new-routing-mark=over-isp1 passthrough=no
add chain=prerouting connection-mark=web-input-isp2 in-interface=ether3 action=mark-routing new-routing-mark=over-isp2 passthrough=no

Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS
Ang diagram ay hindi nagpapakita ng NAT, ngunit sa palagay ko ang lahat ay malinaw.

MultiWAN at papalabas na mga koneksyon

Maaari mong gamitin ang mga kakayahan ng PBR upang lumikha ng maraming koneksyon sa vpn (SSTP sa halimbawa) mula sa iba't ibang mga interface ng router.

Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Mga karagdagang routing table:

/ip route
add dst-address=0.0.0.0/0 gateway=192.168.100.1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=192.168.200.1 routing-mark=over-isp2
add dst-address=0.0.0.0/0 gateway=192.168.0.1 routing-mark=over-isp3

add dst-address=0.0.0.0/0 gateway=192.168.100.1 distance=1
add dst-address=0.0.0.0/0 gateway=192.168.200.1 distance=2
add dst-address=0.0.0.0/0 gateway=192.168.0.1 distance=3

Mga marka ng package:

/ip firewall mangle
add chain=output dst-address=10.10.10.100 proto=tcp dst-port=443 action=mark-routing new-routing-mark=over-isp1 passtrough=no
add chain=output dst-address=10.10.10.101 proto=tcp dst-port=443 action=mark-routing new-routing-mark=over-isp2 passtrough=no
add chain=output dst-address=10.10.10.102 proto=tcp dst-port=443 action=mark-routing new-routing-mark=over-isp3 passtrough=no

Mga simpleng panuntunan ng NAT, kung hindi, iiwan ng packet ang interface na may maling Src. address:

/ip firewall nat
add chain=srcnat out-interface=ether1 action=masquerade
add chain=srcnat out-interface=ether2 action=masquerade
add chain=srcnat out-interface=ether3 action=masquerade

Parsing:

  • Lumilikha ang router ng tatlong proseso ng SSTP
  • Sa yugto ng Pagpapasya sa Pagruruta (2), ang isang ruta ay pinili para sa mga prosesong ito batay sa pangunahing talahanayan ng pagruruta. Mula sa parehong ruta, ang packet ay tumatanggap ng Src. Nakatali ang address sa interface ng ether1
  • Π’ [Output|Mangle] ang mga packet mula sa iba't ibang koneksyon ay tumatanggap ng iba't ibang mga label
  • Ang mga packet ay pumapasok sa mga talahanayan na naaayon sa mga label sa yugto ng Pagsasaayos ng Pagruruta at tumatanggap ng bagong ruta para sa pagpapadala ng mga packet
  • Ngunit ang mga pakete ay mayroon pa ring Src. Address mula sa ether1, sa entablado [Nat|Srcnat] ang address ay pinapalitan ayon sa interface

Kapansin-pansin, sa router makikita mo ang sumusunod na talahanayan ng koneksyon:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Ang Connection Tracker ay gumagana nang mas maaga [Mangle] ΠΈ [Srcnat], kaya lahat ng koneksyon ay nagmumula sa parehong address, kung titingnan mo nang mas detalyado, pagkatapos ay sa Replay Dst. Address magkakaroon ng mga address pagkatapos ng NAT:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Sa VPN server (mayroon akong isa sa test bench), makikita mo na ang lahat ng koneksyon ay nagmumula sa mga tamang address:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Maghintay ng paraan
Mayroong isang mas madaling paraan, maaari mong tukuyin lamang ang isang partikular na gateway para sa bawat isa sa mga address:

/ip route
add dst-address=10.10.10.100 gateway=192.168.100.1
add dst-address=10.10.10.101 gateway=192.168.200.1
add dst-address=10.10.10.102 gateway=192.168.0.1

Ngunit ang ganitong mga ruta ay makakaapekto hindi lamang sa papalabas kundi pati na rin sa trapiko ng transit. Dagdag pa, kung hindi mo kailangan ng trapiko sa vpn server upang dumaan sa hindi naaangkop na mga channel ng komunikasyon, kakailanganin mong magdagdag ng 6 pang panuntunan sa [IP]->[Routes]с type=blackhole. Sa nakaraang bersyon - 3 panuntunan sa [IP]->[Route]->[Rules].

Pamamahagi ng mga koneksyon ng user sa pamamagitan ng mga channel ng komunikasyon

Simple, pang-araw-araw na gawain. Muli, kakailanganin ang mga karagdagang routing table:

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=2 check-gateway=ping

add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=1 routing-mark=over-isp2

Paggamit [IP]->[Route]->[Rules]
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

/ip route rules
add src-address=192.168.100.0/25 action=lookup-only-in-table table=over-isp1
add src-address=192.168.100.128/25 action=lookup-only-in-table table=over-isp2

Kung gagamitin action=lookup, pagkatapos kapag ang isa sa mga channel ay hindi pinagana, ang trapiko ay mapupunta sa pangunahing talahanayan at dadaan sa gumaganang channel. Kung ito ay kinakailangan o hindi ay depende sa gawain.

Gamit ang mga marka sa [IP]->[Firewall]->[Mangle]
Isang simpleng halimbawa na may mga listahan ng mga ip address. Sa prinsipyo, halos anumang mga kondisyon ay maaaring gamitin. Ang tanging caveat ng layer7, kahit na ipinares sa mga label ng koneksyon, maaaring mukhang gumagana nang tama ang lahat, ngunit ang ilan sa trapiko ay pupunta pa rin sa maling paraan.
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

/ip firewall mangle
add chain=prerouting src-address-list=users-over-isp1 dst-address-type=!local action=mark-routing new-routing-mark=over-isp1
add chain=prerouting src-address-list=users-over-isp2 dst-address-type=!local action=mark-routing new-routing-mark=over-isp2

Maaari mong "i-lock" ang mga user sa isang routing table [IP]->[Route]->[Rules]:

/ip route rules
add routing-mark=over-isp1 action=lookup-only-in-table table=over-isp1
add routing-mark=over-isp2 action=lookup-only-in-table table=over-isp2

Alinman sa pamamagitan ng [IP]->[Firewall]->[Filter]:

/ip firewall filter
add chain=forward routing-mark=over-isp1 out-interface=!ether1 action=reject
add chain=forward routing-mark=over-isp2 out-interface=!ether2 action=reject

Retreat pro dst-address-type=!local
Karagdagang kondisyon dst-address-type=!local kinakailangan na maabot ng trapiko mula sa mga user ang mga lokal na proseso ng router (dns, winbox, ssh, ...). Kung ang ilang mga lokal na subnet ay konektado sa router, kinakailangan upang matiyak na ang trapiko sa pagitan ng mga ito ay hindi napupunta sa Internet, halimbawa, gamit ang dst-address-table.

Sa halimbawa gamit [IP]->[Route]->[Rules] walang ganoong mga pagbubukod, ngunit ang trapiko ay umaabot sa mga lokal na proseso. Ang katotohanan ay ang pagpasok sa FIB package na minarkahan [PREROUTING|Mangle] ay may label ng ruta at napupunta sa isang routing table maliban sa pangunahing, kung saan walang lokal na interface. Sa kaso ng Mga Panuntunan sa Pagruruta, susuriin muna kung ang packet ay inilaan para sa isang lokal na proseso at sa yugto lamang ng User PBR napupunta ito sa tinukoy na talahanayan ng pagruruta.

Paggamit [IP]->[Firewall]->[Mangle action=route]
Gumagana lang ang pagkilos na ito sa [Prerouting|Mangle] at nagbibigay-daan sa iyong idirekta ang trapiko sa tinukoy na gateway nang hindi gumagamit ng karagdagang mga talahanayan ng pagruruta, sa pamamagitan ng direktang pagtukoy sa address ng gateway:

/ip firewall mangle
add chain=prerouting src-address=192.168.100.0/25 action=route gateway=10.10.10.1
add chain=prerouting src-address=192.168.128.0/25 action=route gateway=10.20.20.1

epekto route ay may mas mababang priyoridad kaysa sa mga panuntunan sa pagruruta ([IP]->[Route]->[Rules]). Sa kaso ng mga marka ng ruta, ang lahat ay nakasalalay sa posisyon ng mga patakaran, kung ang panuntunan ay may action=route nagkakahalaga ng higit sa action=mark-route, pagkatapos ay gagamitin ito (anuman ang bandila passtrough), kung hindi man ay pagmamarka ng ruta.
Napakakaunting impormasyon sa wiki tungkol sa aksyon na ito at lahat ng mga konklusyon ay nakuha sa eksperimento, sa anumang kaso, hindi ako nakahanap ng mga pagpipilian kapag ginagamit ang pagpipiliang ito ay nagbibigay ng mga pakinabang sa iba.

PPC batay sa dynamic na pagbabalanse

Bawat Classifier ng Koneksyon - ay isang mas nababaluktot na analogue ng ECMP. Hindi tulad ng ECMP, mas mahigpit nitong hinahati ang trapiko sa pamamagitan ng mga koneksyon (walang alam ang ECMP tungkol sa mga koneksyon, ngunit kapag ipinares sa Routing Cache, may makukuhang katulad).

Kinukuha ng PCC tinukoy na mga patlang mula sa ip header, kino-convert ang mga ito sa isang 32-bit na halaga, at hinahati sa denominator. Ang natitira sa dibisyon ay inihambing sa tinukoy natitira at kung magkatugma ang mga ito, ilalapat ang tinukoy na pagkilos. pa. Parang baliw, ngunit gumagana ito.
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Halimbawa na may tatlong address:

192.168.100.10: 192+168+100+10 = 470 % 3 = 2
192.168.100.11: 192+168+100+11 = 471 % 3 = 0
192.168.100.12: 192+168+100+12 = 472 % 3 = 1

Isang halimbawa ng dynamic na pamamahagi ng trapiko sa pamamagitan ng src.address sa pagitan ng tatlong channel:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

#Π’Π°Π±Π»ΠΈΡ†Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ
/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=2 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.30.30.1 dist=3 check-gateway=ping

add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=1 routing-mark=over-isp2
add dst-address=0.0.0.0/0 gateway=10.30.30.1 dist=1 routing-mark=over-isp3

#ΠœΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° соСдинСний ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ²
/ip firewall mangle
add chain=prerouting in-interface=br-lan dst-address-type=!local connection-state=new per-connection-classifier=src-address:3/0 action=mark-connection new-connection-mark=conn-over-isp1
add chain=prerouting in-interface=br-lan dst-address-type=!local connection-state=new per-connection-classifier=src-address:3/1 action=mark-connection new-connection-mark=conn-over-isp2
add chain=prerouting in-interface=br-lan dst-address-type=!local connection-state=new per-connection-classifier=src-address:3/2 action=mark-connection new-connection-mark=conn-over-isp3

add chain=prerouting in-interface=br-lan connection-mark=conn-over-isp1 action=mark-routing new-routing-mark=over-isp1
add chain=prerouting in-interface=br-lan connection-mark=conn-over-isp2 action=mark-routing new-routing-mark=over-isp2
add chain=prerouting in-interface=br-lan connection-mark=conn-over-isp3 action=mark-routing new-routing-mark=over-isp3

Kapag nagmamarka ng mga ruta, mayroong karagdagang kundisyon: in-interface=br-lan, nang wala ito sa ilalim action=mark-routing ang trapiko ng tugon mula sa Internet ay makukuha at, alinsunod sa mga talahanayan ng pagruruta, ay babalik sa provider.

Paglipat ng mga channel ng komunikasyon

Ang check ping ay isang mahusay na tool, ngunit sinusuri lamang nito ang koneksyon sa pinakamalapit na IP peer, ang mga network ng provider ay karaniwang binubuo ng isang malaking bilang ng mga router at ang break ng koneksyon ay maaaring mangyari sa labas ng pinakamalapit na peer, at pagkatapos ay may mga backbone telecom operator na maaari ding may mga problema, sa pangkalahatan ang check ping ay hindi palaging nagpapakita ng up-to-date na impormasyon tungkol sa pag-access sa pandaigdigang network.
Kung ang mga provider at malalaking korporasyon ay may BGP dynamic routing protocol, ang mga user sa bahay at opisina ay kailangang independiyenteng malaman kung paano suriin ang Internet access sa pamamagitan ng isang partikular na channel ng komunikasyon.

Karaniwan, ginagamit ang mga script na, sa pamamagitan ng isang tiyak na channel ng komunikasyon, suriin ang pagkakaroon ng isang ip address sa Internet, habang pumipili ng isang bagay na maaasahan, halimbawa, google dns: 8.8.8.8. 8.8.4.4. Ngunit sa komunidad ng Mikrotik, isang mas kawili-wiling tool ang inangkop para dito.

Ilang salita tungkol sa recursive routing
Kinakailangan ang recursive routing kapag nagtatayo ng Multihop BGP peering at pumasok sa artikulo tungkol sa mga pangunahing kaalaman ng static na pagruruta dahil lamang sa mga tusong gumagamit ng MikroTik na naisip kung paano gumamit ng mga recursive na ruta na ipinares sa check gateway upang lumipat ng mga channel ng komunikasyon nang walang karagdagang mga script.

Oras na para maunawaan ang mga opsyon sa saklaw / target na saklaw sa mga pangkalahatang tuntunin at kung paano nakatali ang ruta sa interface:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

  1. Ang ruta ay naghahanap ng isang interface upang ipadala ang packet batay sa halaga ng saklaw nito at lahat ng mga entry sa pangunahing talahanayan na may mas mababa sa o katumbas na mga halaga ng saklaw ng target
  2. Mula sa mga nahanap na interface, ang isa kung saan maaari kang magpadala ng isang packet sa tinukoy na gateway ay pinili
  3. Ang interface ng natagpuang konektadong entry ay pinili upang ipadala ang packet sa gateway

Sa pagkakaroon ng isang recursive na ruta, ang lahat ay nangyayari nang pareho, ngunit sa dalawang yugto:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

  • 1-3 Ang isa pang ruta ay idinagdag sa mga konektadong ruta, kung saan maaaring maabot ang tinukoy na gateway
  • 4-6 Paghahanap ng rutang konektadong ruta para sa "intermediate" na gateway

Ang lahat ng mga manipulasyon na may recursive na paghahanap ay nangyayari sa RIB, at ang huling resulta lamang ang inililipat sa FIB: 0.0.0.0/0 via 10.10.10.1 on ether1.

Isang halimbawa ng paggamit ng recursive routing upang lumipat ng ruta
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Configuration:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

/ip route
add dst-address=0.0.0.0/0 gateway=8.8.8.8 check-gateway=ping distance=1 target-scope=10
add dst-address=8.8.8.8 gateway=10.10.10.1 scope=10
add dst-address=0.0.0.0/0 gateway=10.20.20.1 distance=2

Maaari mong suriin na ang mga packet ay ipapadala sa 10.10.10.1:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Walang alam ang Check gateway tungkol sa recursive routing at nagpapadala lamang ng mga ping sa 8.8.8.8, na (batay sa pangunahing talahanayan) ay naa-access sa pamamagitan ng gateway 10.10.10.1.

Kung may pagkawala ng komunikasyon sa pagitan ng 10.10.10.1 at 8.8.8.8, ang ruta ay hindi nakakonekta, ngunit ang mga packet (kabilang ang mga test ping) hanggang 8.8.8.8 ay patuloy na dumaan sa 10.10.10.1:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Kung nawala ang link sa ether1, magkakaroon ng hindi magandang sitwasyon kapag ang mga packet bago ang 8.8.8.8 ay dumaan sa pangalawang provider:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Ito ay isang problema kung gumagamit ka ng NetWatch upang magpatakbo ng mga script kapag ang 8.8.8.8 ay hindi magagamit. Kung nasira ang link, gagana lang ang NetWatch sa pamamagitan ng backup na channel ng komunikasyon at ipagpalagay na maayos ang lahat. Nalutas sa pamamagitan ng pagdaragdag ng karagdagang ruta ng filter:

/ip route
add dst-address=8.8.8.8 gateway=10.20.20.1 distance=100 type=blackhole

Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Mayroong sa habrΓ© artikulo, kung saan ang sitwasyon sa NetWatch ay isinasaalang-alang nang mas detalyado.

At oo, kapag gumagamit ng ganoong reserbasyon, ang address na 8.8.8.8 ay i-hardwired sa isa sa mga provider, kaya ang pagpili nito bilang dns source ay hindi magandang ideya.

Ilang salita tungkol sa Virtual Routing and Forwarding (VRF)

Ang teknolohiya ng VRF ay idinisenyo upang lumikha ng ilang mga virtual na router sa loob ng isang pisikal na isa, ang teknolohiyang ito ay malawakang ginagamit ng mga operator ng telecom (karaniwan ay kasabay ng MPLS) upang magbigay ng mga serbisyo ng L3VPN sa mga kliyente na may magkakapatong na mga subnet address:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Ngunit ang VRF sa Mikrotik ay nakaayos batay sa mga routing table at may ilang mga disadvantages, halimbawa, ang mga lokal na ip address ng router ay magagamit mula sa lahat ng mga VRF, maaari kang magbasa nang higit pa ΠΏΠΎ ссылкС.

halimbawa ng pagsasaayos ng vrf:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

/ip route vrf
add interfaces=ether1 routing-mark=vrf1
add interfaces=ether2 routing-mark=vrf2

/ip address
add address=192.168.100.1/24 interface=ether1 network=192.168.100.0
add address=192.168.200.1/24 interface=ether2 network=192.168.200.0

Mula sa device na nakakonekta sa ether2, nakita namin na ang ping ay papunta sa address ng router mula sa isa pang vrf (at ito ay isang problema), habang ang ping ay hindi pumupunta sa Internet:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Upang ma-access ang Internet, kailangan mong magrehistro ng karagdagang ruta na uma-access sa pangunahing talahanayan (sa terminolohiya ng vrf, ito ay tinatawag na pagtagas ng ruta):
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

/ip route
add distance=1 gateway=172.17.0.1@main routing-mark=vrf1
add distance=1 gateway=172.17.0.1%wlan1 routing-mark=vrf2

Narito ang dalawang paraan ng pagtagas ng ruta: gamit ang routing table: 172.17.0.1@main at gamit ang pangalan ng interface: 172.17.0.1%wlan1.

At i-set up ang pagmamarka para sa pagbalik ng trapiko [PREROUTING|Mangle]:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

/ip firewall mangle
add chain=prerouting in-interface=ether1 action=mark-connection new-connection-mark=from-vrf1 passthrough=no
add chain=prerouting connection-mark=from-vrf1 routing-mark=!vrf1 action=mark-routing new-routing-mark=vrf1 passthrough=no 
add chain=prerouting in-interface=ether2 action=mark-connection new-connection-mark=from-vrf2 passthrough=no
add chain=prerouting connection-mark=from-vrf2 routing-mark=!vrf1 action=mark-routing new-routing-mark=vrf2 passthrough=no 

Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Mga subnet na may parehong address
Organisasyon ng access sa mga subnet na may parehong addressing sa parehong router gamit ang VRF at netmap:
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Pangunahing configuration:

/ip route vrf
add interfaces=ether1 routing-mark=vrf1
add interfaces=ether2 routing-mark=vrf2

/ip address
add address=192.168.100.1/24 interface=ether1 network=192.168.100.0
add address=192.168.100.1/24 interface=ether2 network=192.168.100.0
add address=192.168.0.1/24 interface=ether3 network=192.168.0.0

Mga panuntunan sa firewall:

#ΠœΠ°Ρ€ΠΊΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ
/ip firewall mangle
add chain=prerouting dst-address=192.168.101.0/24 in-interface=ether3 action=mark-routing new-routing-mark=vrf1 passthrough=no
add chain=prerouting dst-address=192.168.102.0/24 in-interface=ether3 action=mark-routing new-routing-mark=vrf2 passthrough=no

#БрСдствами netmap замСняСм адрСса "эфимСрных" подсСтСй Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ подсСти
/ip firewall nat
add chain=dstnat dst-address=192.168.101.0/24 in-interface=ether3 action=netmap to-addresses=192.168.100.0/24
add chain=dstnat dst-address=192.168.102.0/24 in-interface=ether3 action=netmap to-addresses=192.168.100.0/24

Mga panuntunan sa pagruruta para sa pagbalik ng trapiko:

#Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ интСрфСйса Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ route leaking, Π½ΠΎ ΠΏΠΎ сути Ρ‚ΡƒΡ‚ создаСтся Π°Π½Π°Π»ΠΎΠ³ connected ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°
/ip route
add distance=1 dst-address=192.168.0.0/24 gateway=ether3 routing-mark=vrf1
add distance=1 dst-address=192.168.0.0/24 gateway=ether3 routing-mark=vrf2

Pagdaragdag ng mga ruta na natanggap sa pamamagitan ng dhcp sa isang ibinigay na routing table
Maaaring maging kawili-wili ang VRF kung kailangan mong awtomatikong magdagdag ng dynamic na ruta (halimbawa, mula sa isang dhcp client) sa isang partikular na routing table.

Pagdaragdag ng interface sa vrf:

/ip route vrf
add interface=ether1 routing-mark=over-isp1

Mga panuntunan para sa pagpapadala ng trapiko (palabas at pagbibiyahe) sa pamamagitan ng talahanayan over-isp1:

/ip firewall mangle
add chain=output out-interface=!br-lan action=mark-routing new-routing-mark=over-isp1 passthrough=no
add chain=prerouting in-interface=br-lan dst-address-type=!local action=mark-routing new-routing-mark=over-isp1 passthrough=no

Karagdagang, pekeng ruta para sa papalabas na pagruruta patungo sa trabaho:

/interface bridge
add name=bare

/ip route
add dst-address=0.0.0.0/0 gateway=bare

Ang rutang ito ay kailangan lamang upang ang mga lokal na papalabas na packet ay makapasa sa desisyon ng Routing (2) bago [OUTPUT|Mangle] at kunin ang routing label, kung may iba pang aktibong ruta sa router bago ang 0.0.0.0/0 sa main table, hindi ito kinakailangan.
Mga Pangunahing Kaalaman ng Static Routing sa Mikrotik RouterOS

Mga Chain connected-in ΠΈ dynamic-in Π² [Routing] -> [Filters]

Ang pag-filter ng ruta (inbound at outbound) ay isang tool na karaniwang ginagamit kasabay ng mga dynamic na routing protocol (at samakatuwid ay magagamit lamang pagkatapos i-install ang package direksiyon), ngunit mayroong dalawang kawili-wiling chain sa mga papasok na filter:

  • konektado-in β€” pag-filter ng mga konektadong ruta
  • dynamic-in - pag-filter ng mga dynamic na ruta na natanggap ng PPP at DCHP

Binibigyang-daan ka ng pag-filter hindi lamang na itapon ang mga ruta, kundi pati na rin baguhin ang ilang mga opsyon: distansya, routing-mark, komento, saklaw, target na saklaw, ...

Ito ay isang napaka-tumpak na tool at kung magagawa mo ang isang bagay nang walang Routing Filters (ngunit hindi mga script), pagkatapos ay huwag gumamit ng Routing Filters, huwag malito ang iyong sarili at ang mga magko-configure ng router pagkatapos mo. Sa konteksto ng dynamic na pagruruta, ang Mga Filter ng Pagruruta ay gagamitin nang mas madalas at mas produktibo.

Pagtatakda ng Marka ng Pagruruta para sa Mga Dynamic na Ruta
Isang halimbawa mula sa isang home router. Mayroon akong dalawang koneksyon sa VPN na na-configure at ang trapiko sa mga ito ay dapat na nakabalot alinsunod sa mga routing table. Kasabay nito, gusto kong awtomatikong malikha ang mga ruta kapag na-activate ang interface:

#ΠŸΡ€ΠΈ создании vpn ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ созданиС default route ΠΈ Π·Π°Π΄Π°Π΅ΠΌ Π΄ΠΈΡΡ‚Π°Π½Ρ†ΠΈΡŽ
/interface pptp-client
add connect-to=X.X.X.X add-default-route=yes default-route-distance=101 ...
add connect-to=Y.Y.Y.Y  add-default-route=yes default-route-distance=100 ...

#Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ отправляСм ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° основС подсСти назначСния ΠΈ дистанции
/routing filter
add chain=dynamic-in distance=100 prefix=0.0.0.0/0 action=passthrough set-routing-mark=over-vpn1
add chain=dynamic-in distance=101 prefix=0.0.0.0/0 action=passthrough set-routing-mark=over-vpn2

Hindi ko alam kung bakit, marahil ay isang bug, ngunit kung lumikha ka ng isang vrf para sa interface ng ppp, kung gayon ang ruta sa 0.0.0.0/0 ay mapupunta pa rin sa pangunahing talahanayan. Kung hindi, ang lahat ay magiging mas madali.

Hindi pagpapagana ng Mga Konektadong Ruta
Minsan ito ay kinakailangan:

/route filter
add chain=connected-in prefix=192.168.100.0/24 action=reject

Mga tool sa pag-debug

Nagbibigay ang RouterOS ng ilang tool para sa pag-debug ng pagruruta:

  • [Tool]->[Tourch] - nagbibigay-daan sa iyo upang tingnan ang mga packet sa mga interface
  • /ip route check - nagbibigay-daan sa iyong makita kung saang gateway ipapadala ang packet, hindi gumagana sa mga routing table
  • /ping routing-table=<name> ΠΈ /tool traceroute routing-table=<name> - ping at trace gamit ang tinukoy na routing table
  • action=log Π² [IP]->[Firewall] - isang mahusay na tool na nagbibigay-daan sa iyo upang masubaybayan ang landas ng isang packet kasama ang daloy ng packet, ang aksyon na ito ay magagamit sa lahat ng mga chain at talahanayan

Pinagmulan: www.habr.com

Magdagdag ng komento