Amlfan a llwybro ar Mikrotik RouterOS

Cyflwyniad

Ar wahân i oferedd, cefais fy ysgogi i ymgymryd â'r erthygl gan amlder digalon y cwestiynau ar y pwnc hwn mewn grwpiau arbenigol o'r gymuned telegram sy'n siarad Rwsieg. Mae'r erthygl wedi'i hanelu at weinyddwyr newydd Mikrotik RouterOS (y cyfeirir ati yma wedi hyn fel ROS). Mae'n ystyried multivans yn unig, gyda phwyslais ar lwybro. Fel bonws, ychydig iawn o leoliadau sydd ar gael i sicrhau gweithrediad diogel a chyfleus. Efallai na fydd y rhai sy'n chwilio am drafodaeth ar bynciau ciwiau, cydbwyso llwythi, vlans, pontydd, dadansoddiad dwfn aml-gam o gyflwr y sianel, ac ati, yn gwastraffu amser ac ymdrech yn darllen.

Data crai

Dewiswyd llwybrydd Mikrotik pum-porthladd gyda fersiwn ROS 6.45.3 fel pwnc prawf. Bydd yn cyfeirio traffig rhwng dau rwydwaith lleol (LAN1 a LAN2) a thri darparwr (ISP1, ISP2, ISP3). Mae gan y sianel i ISP1 gyfeiriad “llwyd” statig, mae gan ISP2 gyfeiriad “gwyn” a dderbyniwyd trwy DHCP, mae gan ISP3 gyfeiriad “gwyn” gydag awdurdodiad PPPoE. Dangosir y diagram cysylltiad yn y ffigur:

Amlfan a llwybro ar Mikrotik RouterOS

Y dasg yw ffurfweddu'r llwybrydd “MTK” yn seiliedig ar y cynllun fel bod:

  1. Sicrhau newid awtomatig i ddarparwr wrth gefn. Y prif ddarparwr yw ISP2, y gronfa wrth gefn gyntaf yw ISP1, yr ail gronfa yw ISP3.
  2. Trefnu mynediad rhwydwaith LAN1 i'r Rhyngrwyd trwy ISP1 yn unig.
  3. Darparwch y gallu i gyfeirio traffig o rwydweithiau lleol i'r Rhyngrwyd trwy'r darparwr a ddewiswyd yn seiliedig ar y rhestr cyfeiriadau.
  4. Darparu'r gallu i gyhoeddi gwasanaethau o'r rhwydwaith lleol i'r Rhyngrwyd (DSTNAT)
  5. Ffurfweddu hidlydd wal dân i sicrhau cyn lleied â phosibl o ddiogelwch Rhyngrwyd.
  6. Gallai'r llwybrydd ryddhau ei draffig ei hun trwy unrhyw un o'r tri darparwr, yn dibynnu ar y cyfeiriad ffynhonnell a ddewiswyd.
  7. Sicrhewch fod pecynnau ymateb yn cael eu cyfeirio i'r sianel y daethant ohoni (gan gynnwys y LAN).

Sylw. Byddwn yn ffurfweddu'r llwybrydd “o'r dechrau” er mwyn sicrhau nad oes unrhyw bethau annisgwyl yn y ffurfweddiadau cychwyn y tu allan i'r bocs sy'n newid o fersiwn i fersiwn. Dewisir Winbox fel yr offeryn ffurfweddu, lle bydd newidiadau'n cael eu harddangos yn weledol. Bydd y gosodiadau eu hunain yn cael eu pennu gan orchmynion yn y derfynell Winbox. Gwneir y cysylltiad corfforol ar gyfer cyfluniad trwy gysylltiad uniongyrchol â rhyngwyneb Ether5.

Ychydig o drafodaeth am beth yw multivan, a yw'n broblem neu a yw'r bobl gyfrwys smart o gwmpas yn gwehyddu rhwydwaith o gynllwynion

Mae gweinyddwr chwilfrydig a sylwgar, sy'n sefydlu cynllun o'r fath neu gynllun tebyg yn annibynnol, yn sydyn yn sylweddoli ei fod yn gweithio'n iawn beth bynnag. Oes, ie, heb y tablau llwybro arferol hyn a rheolau llwybr eraill y mae'r rhan fwyaf o erthyglau ar y pwnc hwn yn llawn ohonynt. A gawn ni wirio?

A allwn ni ffurfweddu cyfeiriadau ar ryngwynebau a phyrth rhagosodedig? Ydy:

Ar ISP1 cofrestrwyd y cyfeiriad a'r porth gyda nhw pellter=2 и gwirio-porth=ping.
Ar ISP2, y gosodiad cleient dhcp diofyn yw y bydd y pellter yn hafal i un.
Ar ISP3 yn y gosodiadau cleient pppoe pryd add-default-route=ie rhoi default-route-distance=3.

Peidiwch ag anghofio gosod NAT ar yr allbwn:

/ip firewall nat ychwanegu action=masquerade chain=srcnat out-interface-list=WAN

O ganlyniad, mae defnyddwyr LAN yn cael hwyl yn lawrlwytho cathod trwy'r prif ddarparwr ISP2 ac mae ganddynt archeb sianel gan ddefnyddio mecanwaith gwirio porth Gweler nodyn 1

Mae pwynt 1 o'r dasg wedi'i weithredu. Ble mae'r multivan gyda'i dagiau? Na…

Ymhellach. Mae angen i chi ryddhau cleientiaid penodol o'r LAN trwy ISP1:

mangle firewall /ip ychwanegu action=cadwyn llwybr=rhagori ar dst-address-list=!BOGONS
passthrough=ie route-dst=100.66.66.1 src-address-list=Trwy_ISP1
mangle firewall /ip ychwanegu action=cadwyn llwybr=rhagori ar dst-address-list=!BOGONS
passthrough=dim llwybr-dst=100.66.66.1 src-address=192.168.88.0/24

Mae pwyntiau 2 a 3 y dasg wedi eu gweithredu. Tagiau, brandiau, rheolau llwybr, ble wyt ti?!

A oes angen i chi roi mynediad i'ch hoff weinydd OpenVPN gyda'r cyfeiriad 172.17.17.17 i gleientiaid o'r Rhyngrwyd? Os gwelwch yn dda:

/ip set cwmwl ddns-enabled=ie

Rydyn ni'n rhoi'r canlyniad allbwn i gleientiaid fel cyfoedion: “:rhowch [cwmwl ip cael dns-name]"

Rydym yn cofrestru anfon porthladd ymlaen o'r Rhyngrwyd:

/ip firewall nat ychwanegu gweithred=dst-nat chain=dstnat dst-port=1194
in-interface-list=protocol WAN=udp i-gyfeiriadau=172.17.17.17

Mae pwynt 4 yn barod.

Fe wnaethom sefydlu wal dân a diogelwch arall ar gyfer pwynt 5, ar yr un pryd rydym yn hapus bod popeth eisoes yn gweithio i ddefnyddwyr ac yn cyrraedd y cynhwysydd gyda'u hoff ddiod ...
A! Mae'r twneli wedi'u hanghofio o hyd.

A yw cleient l2tp wedi'i ffurfweddu yn seiliedig ar erthygl googled wedi codi i'ch hoff VDS Iseldiroedd? Oes.
Mae'r gweinydd l2tp gydag IPsec i fyny ac mae cleientiaid sy'n defnyddio'r enw DNS o'r IP Cloud (gweler uchod) yn cysylltu? Oes.
Gan bwyso yn ôl yn y gadair, sipian diod, rydym yn ddiog yn ystyried pwyntiau 6 a 7 o'r broblem. Rydyn ni'n meddwl - ydyn ni ei angen? Mae’n dal i weithio fel yna (c)… Felly os nad oes ei angen, yna dyna i gyd. Multivan ar waith.

Beth yw multivan? Mae hyn yn cysylltu sawl sianel Rhyngrwyd i un llwybrydd.

Nid oes angen i chi ddarllen gweddill yr erthygl, oherwydd beth allai fod heblaw dangos cymhwysedd amheus?

Gyda'r rhai a arhosodd, sydd â diddordeb ym mhwyntiau 6 a 7 o'r dasg, ac sydd hefyd yn teimlo cosi perffeithrwydd, gadewch i ni blymio'n ddyfnach.

Y dasg bwysicaf o weithredu multivans yw llwybro traffig cywir. Sef : ni waeth pa (neu pa) Gwel. Mae nodyn 3 sianel(i) y darparwr yn edrych ar y llwybr rhagosodedig ar ein llwybrydd, dylai ddychwelyd yr ymateb i'r union sianel y daeth y pecyn ohoni. Mae'r dasg yn glir. Ble mae'r broblem? Wedi'r cyfan, mewn rhwydwaith lleol syml mae'r dasg yr un peth, ond nid oes unrhyw un yn trafferthu gyda gosodiadau ychwanegol ac nid yw'n teimlo'r drafferth. Y gwahaniaeth yw bod unrhyw nod llwybredig ar y Rhyngrwyd yn hygyrch trwy bob un o'n sianeli, ac nid trwy un hollol benodol, fel mewn LAN syml. A’r “trafferth” yw pe baem yn derbyn cais i gyfeiriad IP ISP3, yna yn ein hachos ni bydd yr ymateb yn mynd trwy sianel ISP2, gan fod y porth rhagosodedig yn cael ei gyfeirio yno. Bydd yn mynd i ffwrdd ac yn cael ei daflu gan y darparwr fel anghywir. Mae'r broblem wedi'i phenderfynu. Sut i'w ddatrys?

Byddwn yn rhannu'r ateb yn dri cham:

  1. Rhagosod. Ar y cam hwn, bydd gosodiadau sylfaenol y llwybrydd yn cael eu gosod: rhwydwaith lleol, wal dân, rhestrau cyfeiriadau, NAT pin gwallt, ac ati.
  2. Amlfan. Ar y cam hwn, bydd y cysylltiadau gofynnol yn cael eu marcio a'u didoli yn dablau llwybro.
  3. Cysylltiad ag ISP. Ar y cam hwn, bydd y rhyngwynebau sy'n darparu cysylltiad Rhyngrwyd yn cael eu ffurfweddu, llwybro a bydd y mecanwaith ar gyfer cadw sianeli Rhyngrwyd yn cael ei actifadu.

1. Rhagosod

1.1. Rydym yn clirio cyfluniad y llwybrydd gyda'r gorchymyn:

/system reset-configuration skip-backup=yes no-defaults=yes

rydym yn cytuno â “Peryglus! Ailosod beth bynnag? [y/N]:” ac, ar ôl yr ailgychwyn, rydym yn cysylltu â Winbox trwy MAC. Ar yr adeg hon, mae'r ffurfweddiad a'r sylfaen defnyddwyr yn cael eu clirio.

1.2. Creu defnyddiwr newydd:

/user add group=full name=knight password=ultrasecret comment=”Not horse”

Mewngofnodwch oddi tano a dilëwch yr un rhagosodedig:

/user remove admin

Sylw. Mae'r awdur yn ystyried dileu yn hytrach nag analluogi'r defnyddiwr rhagosodedig yn fwy diogel ac yn argymell ei ddefnyddio.

1.3. Rydym yn creu rhestrau rhyngwyneb sylfaenol er hwylustod gweithredu yn y wal dân, gosodiadau darganfod a gweinyddwyr MAC eraill:

/interface list add name=WAN comment="For Internet"
/interface list add name=LAN comment="For Local Area"

Arwyddo rhyngwynebau gyda sylwadau

/interface ethernet set ether1 comment="to ISP1"
/interface ethernet set ether2 comment="to ISP2"
/interface ethernet set ether3 comment="to ISP3"
/interface ethernet set ether4 comment="to LAN1"
/interface ethernet set ether5 comment="to LAN2"

a llenwch y rhestrau rhyngwyneb:

/interface list member add interface=ether1 list=WAN comment=ISP1
/interface list member add interface=ether2 list=WAN comment=ISP2 
/interface list member add interface=ether3 list=WAN comment="to ISP3"
/interface list member add interface=ether4 list=LAN  comment="LAN1"
/interface list member add interface=ether5 list=LAN  comment="LAN2"

Sylw. Mae ysgrifennu sylwadau clir yn werth yr amser a dreulir arno, ac mae'n gwneud datrys problemau a deall y ffurfwedd yn llawer haws.

Mae'r awdur o'r farn ei bod yn angenrheidiol, am resymau diogelwch, ychwanegu'r rhyngwyneb ether3 at y rhestr rhyngwyneb “WAN”, er gwaethaf y ffaith na fydd y protocol IP yn teithio drosto.

Peidiwch ag anghofio, ar ôl i'r rhyngwyneb PPP gael ei godi ar ether3, y bydd angen ei ychwanegu hefyd at y rhestr rhyngwyneb "WAN"

1.4. Rydym yn cuddio'r llwybrydd rhag canfod a rheoli cymdogaethau o rwydweithiau darparwyr trwy MAC:

/ip neighbor discovery-settings set discover-interface-list=!WAN
/tool mac-server set allowed-interface-list=LAN
/tool mac-server mac-winbox set allowed-interface-list=LAN

1.5. Rydym yn creu set ddigonol o reolau hidlo wal dân i amddiffyn y llwybrydd:

/ip firewall filter add action=accept chain=input comment="Related Established Untracked Allow" 
connection-state=established,related,untracked

(mae'r rheol yn darparu caniatâd ar gyfer cysylltiadau sefydledig a chysylltiedig sy'n cael eu cychwyn o rwydweithiau cysylltiedig a chan y llwybrydd ei hun)

/ip firewall filter add action=accept chain=input comment="ICMP from ALL" protocol=icmp

(ping ac nid yn unig ping. Caniateir pob icmp ar y mewnbwn. Defnyddiol iawn ar gyfer dod o hyd i broblemau gyda MTU)

/ip firewall filter add action=drop chain=input comment="All other WAN Drop" in-interface-list=WAN

(mae'r rheol sy'n cau'r gadwyn fewnbwn yn gwahardd popeth arall sy'n dod o'r Rhyngrwyd)

/ip firewall filter add action=accept chain=forward 
comment="Established, Related, Untracked allow" 
connection-state=established,related,untracked

(mae'r rheol yn caniatáu cysylltiadau sefydledig a chysylltiedig sy'n mynd trwy'r llwybrydd)

/ip firewall filter add action=drop chain=forward comment="Invalid drop" connection-state=invalid

(mae'r rheol yn ailosod cysylltiadau gyda connection-state = pasio annilys trwy'r llwybrydd. Mae Mikrotik yn ei argymell yn fawr, ond mewn rhai sefyllfaoedd prin gall rwystro traffig defnyddiol)

/ip firewall filter add action=drop chain=forward comment="Drop all from WAN not DSTNATed"  
connection-nat-state=!dstnat connection-state=new in-interface-list=WAN

(mae'r rheol yn gwahardd pecynnau sy'n dod o'r Rhyngrwyd rhag mynd trwy'r llwybrydd ac nad ydynt wedi pasio'r weithdrefn dstnat. Bydd hyn yn amddiffyn rhwydweithiau lleol rhag ymosodwyr a fydd, yn yr un parth darlledu â'n rhwydweithiau allanol, yn cofrestru ein IPs allanol fel a porth ac felly ceisiwch “archwilio” ein rhwydweithiau lleol.)

Sylw. Gadewch inni dybio y gellir ymddiried yn y rhwydweithiau LAN1 a LAN2 ac nad yw traffig rhyngddynt ac oddi wrthynt yn cael ei hidlo.

1.6. Rydym yn creu rhestr gyda rhestr o rwydweithiau na ellir eu llwybro:

/ip firewall address-list
add address=0.0.0.0/8 comment=""This" Network" list=BOGONS
add address=10.0.0.0/8 comment="Private-Use Networks" list=BOGONS
add address=100.64.0.0/10 comment="Shared Address Space. RFC 6598" list=BOGONS
add address=127.0.0.0/8 comment=Loopback list=BOGONS
add address=169.254.0.0/16 comment="Link Local" list=BOGONS
add address=172.16.0.0/12 comment="Private-Use Networks" list=BOGONS
add address=192.0.0.0/24 comment="IETF Protocol Assignments" list=BOGONS
add address=192.0.2.0/24 comment=TEST-NET-1 list=BOGONS
add address=192.168.0.0/16 comment="Private-Use Networks" list=BOGONS
add address=198.18.0.0/15 comment="Network Interconnect Device Benchmark Testing"
 list=BOGONS
add address=198.51.100.0/24 comment=TEST-NET-2 list=BOGONS
add address=203.0.113.0/24 comment=TEST-NET-3 list=BOGONS
add address=224.0.0.0/4 comment=Multicast list=BOGONS
add address=192.88.99.0/24 comment="6to4 Relay Anycast" list=BOGONS
add address=240.0.0.0/4 comment="Reserved for Future Use" list=BOGONS
add address=255.255.255.255 comment="Limited Broadcast" list=BOGONS

(Dyma restr o gyfeiriadau a rhwydweithiau nad ydynt wedi'u cyfeirio at y Rhyngrwyd ac, yn unol â hynny, byddwn hefyd yn dilyn hyn.)

Sylw. Efallai y bydd y rhestr yn newid, felly rwy'n eich cynghori i wirio ei pherthnasedd o bryd i'w gilydd.

1.7. Rydym yn ffurfweddu DNS ar gyfer y llwybrydd ei hun:

/ip dns set servers=1.1.1.1,8.8.8.8

Sylw. Yn y fersiwn gyfredol o ROS, mae gweinyddwyr deinamig yn cael blaenoriaeth dros rai a ddiffinnir yn statig. Anfonir y cais datrysiad enw i'r gweinydd cyntaf yn y drefn yn y rhestr. Gwneir y trawsnewidiad i'r gweinydd nesaf os nad yw'r un cyfredol ar gael. Mae'r terfyn amser yn hir - mwy na 5 eiliad. Nid yw dychwelyd yn ôl pan fydd y “gweinydd downed” yn ailddechrau yn digwydd yn awtomatig. Gan ystyried yr algorithm hwn a phresenoldeb multivan, mae'r awdur yn argymell peidio â defnyddio gweinyddwyr a ddarperir gan ddarparwyr.

1.8. Sefydlu rhwydwaith lleol.
1.8.1. Rydym yn ffurfweddu cyfeiriadau IP statig ar ryngwynebau rhwydwaith lleol:

/ip address add interface=ether4 address=192.168.88.254/24 comment="LAN1 IP"
/ip address add interface=ether5 address=172.16.1.0/23 comment="LAN2 IP"

1.8.2. Rydym yn gosod rheolau llwybrau i’n rhwydweithiau lleol drwy’r prif dabl llwybro:

/ip route rule add dst-address=192.168.88.0/24 table=main comment=”to LAN1”
/ip route rule add dst-address=172.16.0.0/23 table=main comment="to LAN2"

Sylw. Dyma un o'r ffyrdd syml a chyflym o gyrchu cyfeiriadau rhwydwaith lleol gyda ffynonellau cyfeiriadau IP allanol rhyngwynebau llwybrydd nad yw'r llwybr diofyn yn mynd trwyddynt.

1.8.3. Galluogi Hairpin NAT ar gyfer LAN1 a LAN2:

/ip firewall nat add action=src-nat chain=srcnat comment="Hairpin to LAN1" 
out-interface=ether4 src-address=192.168.88.0/24 to-addresses=192.168.88.254
/ip firewall nat add action=src-nat chain=srcnat comment="Hairpin to LAN2" 
out-interface=ether5 src-address=172.16.0.0/23 to-addresses=172.16.1.0

Sylw. Mae hyn yn caniatáu ichi gael mynediad i'ch adnoddau (dstnat) trwy IP allanol tra'ch bod y tu mewn i'r rhwydwaith.

2. Mewn gwirionedd, gweithrediad y multivan cywir iawn hwnnw

I ddatrys y broblem o “ateb lle gofynnir” byddwn yn defnyddio dau declyn ROS: marc cysylltiad и marc llwybro. marc cysylltiad yn eich galluogi i farcio'r cysylltiad a ddymunir ac yna gweithio gyda'r marc hwn fel amod ar gyfer gwneud cais marc llwybro. Ac yn barod gyda marc llwybro bosibl gweithio ynddo llwybr ip и rheolau llwybr. Rydyn ni wedi rhoi trefn ar yr offer, nawr mae angen i ni benderfynu pa gysylltiadau i'w nodi - un, ble yn union i'w nodi - dau.

Gyda'r un cyntaf, mae popeth yn syml - rhaid inni nodi'r holl gysylltiadau sy'n dod i'r llwybrydd o'r Rhyngrwyd trwy'r sianel briodol. Yn ein hachos ni, tri label fydd y rhain (yn ôl nifer y sianeli): “conn_isp1”, “conn_isp2” a “conn_isp3”.

Y naws gyda'r ail yw y bydd cysylltiadau sy'n dod i mewn o ddau fath: cludo a'r rhai a fwriedir ar gyfer y llwybrydd ei hun. Mae'r mecanwaith marc cysylltiad yn gweithio yn y tabl mangle. Gadewch i ni edrych ar symudiad y pecyn ar ddiagram symlach, a luniwyd yn garedig gan arbenigwyr o'r adnodd mikrotik-trainings.com (nid hysbysebu):

Amlfan a llwybro ar Mikrotik RouterOS

Yn dilyn y saethau, gwelwn fod y pecyn yn cyrraedd “rhyngwyneb mewnbwn”, yn mynd ar hyd y gadwyn “Rhaglwybro” a dim ond wedyn y caiff ei rannu'n tramwy a lleol yn y bloc “Penderfyniad Llwybro" Felly, i ladd dau aderyn ag un garreg, byddwn yn defnyddio Marc Cysylltiad yn y tabl Mangl Rhag-lwybro cadwyni Rhaglwybro.

Nodyn:. Yn ROS, nodir “Marciau Llwybro” yn yr adran Ip/Llwybrau/Rheolau fel “Tabl”, ac mewn adrannau eraill fel “Marc Llwybro”. Gall hyn achosi peth dryswch o ran dealltwriaeth, ond, yn ei hanfod, yr un peth ydyw, ac mae'n analog o rt_tables yn iproute2 ar Linux.

2.1. Rydym yn nodi cysylltiadau sy'n dod i mewn gan bob darparwr:

/ip firewall mangle add action=mark-connection chain=prerouting 
comment="Connmark in from ISP1" connection-mark=no-mark in-interface=ether1  new-connection-mark=conn_isp1 passthrough=no

/ip firewall mangle add action=mark-connection chain=prerouting 
comment="Connmark in from ISP2" connection-mark=no-mark in-interface=ether2  new-connection-mark=conn_isp2 passthrough=no

/ip firewall mangle add action=mark-connection chain=prerouting 
comment="Connmark in from ISP3" connection-mark=no-mark in-interface=pppoe-isp3  new-connection-mark=conn_isp3 passthrough=no

Sylw. Er mwyn peidio â marcio cysylltiadau sydd eisoes wedi'u marcio, rwy'n defnyddio'r cyflwr connection-mark=no-mark yn lle connection-state=new oherwydd credaf fod hyn yn fwy cywir, yn ogystal â gwrthod gollwng cysylltiadau annilys yn yr hidlydd mewnbwn.


passthrough=na - oherwydd yn y dull gweithredu hwn mae ail-labelu wedi'i eithrio ac, i gyflymu, gallwch dorri ar draws y chwiliad rheolau ar ôl y gêm gyntaf.

Dylid cofio nad ydym yn ymyrryd â llwybro mewn unrhyw ffordd eto. Nawr dim ond y camau paratoi sydd ar y gweill. Y cam gweithredu nesaf fydd prosesu traffig cludo sy'n dychwelyd dros gysylltiad sefydledig o gyrchfan ar y rhwydwaith lleol. Y rhai. y pecynnau hynny (gweler y diagram) a aeth drwy'r llwybrydd ar hyd y llwybr:

“Rhyngwyneb Mewnbwn” => “Rhag-lwybro” => ”Penderfyniad Llwybro” => “Ymlaen” => “Postio Llwybro” => ”Rhyngwyneb Allbwn” a chyrraedd pen eu taith ar y rhwydwaith lleol.

Pwysig! Yn ROS nid oes unrhyw raniad rhesymegol i ryngwynebau allanol a mewnol. Os byddwch chi'n olrhain llwybr y pecyn ymateb yn ôl y diagram uchod, bydd yn dilyn yr un llwybr rhesymegol â'r cais:

“Rhyngwyneb Mewnbwn” => “Rhag-lwybro” => ”Penderfyniad Llwybro” => “Ymlaen” => “Postio Llwybro” => ”Rhyngwyneb Allbwn” dim ond i ofyn "Rhyngwyneb mewnbwn” roedd rhyngwyneb ISP, ac ar gyfer yr ateb roedd LAN

2.2. Rydym yn llwybro traffig cludo ymateb yn unol â’r tablau llwybro priodol:

/ip firewall mangle add action=mark-routing chain=prerouting 
comment="Routemark transit out via ISP1" connection-mark=conn_isp1 
dst-address-type=!local in-interface-list=!WAN new-routing-mark=to_isp1 passthrough=no

/ip firewall mangle add action=mark-routing chain=prerouting 
comment="Routemark transit out via ISP2" connection-mark=conn_isp2 
dst-address-type=!local in-interface-list=!WAN new-routing-mark=to_isp2 passthrough=no

/ip firewall mangle add action=mark-routing chain=prerouting 
comment="Routemark transit out via ISP3" connection-mark=conn_isp3 
dst-address-type=!local in-interface-list=!WAN new-routing-mark=to_isp3 passthrough=no

Sylw. in-interface-list=!WAN - rydym yn gweithio gyda thraffig o'r rhwydwaith lleol yn unig a dst-address-type=!lleol nad oes ganddo gyfeiriad cyrchfan rhyngwynebau'r llwybrydd ei hun.

Mae'r un peth yn wir am becynnau lleol a gyrhaeddodd y llwybrydd ar hyd y ffordd:

“Rhyngwyneb Mewnbwn” => “Rhagosod” => “Penderfyniad Llwybro” => “Mewnbwn” => ”Proses Leol”

Pwysig! Bydd yr ateb yn mynd ar hyd y llwybr canlynol:

”Proses Leol” => ”Penderfyniad Llwybro” => ”Allbwn” => “Post Llwybro” => ”Rhyngwyneb Allbwn”

2.3. Rydym yn cyfeirio traffig lleol ymatebol drwy'r tablau llwybro priodol:

/ip firewall mangle add action=mark-routing chain=output 
comment="Routemark local out via ISP1" connection-mark=conn_isp1 dst-address-type=!local 
new-routing-mark=to_isp1 passthrough=no

/ip firewall mangle add action=mark-routing chain=output 
comment="Routemark local out via ISP2" connection-mark=conn_isp2 dst-address-type=!local 
new-routing-mark=to_isp2 passthrough=no

/ip firewall mangle add action=mark-routing chain=output 
comment="Routemark local out via ISP3" connection-mark=conn_isp3 dst-address-type=!local 
new-routing-mark=to_isp3 passthrough=no

Ar yr adeg hon, gellir ystyried bod y dasg o baratoi i anfon ymateb i'r sianel Rhyngrwyd y daeth y cais ohoni wedi'i datrys. Mae popeth wedi'i dagio, ei labelu ac yn barod i'w gyfeirio.
Un o effeithiau “sgil” ardderchog y gosodiad hwn yw'r gallu i anfon porthladdoedd DSNAT ymlaen gan y ddau ddarparwr (ISP2, ISP3) ar yr un pryd. Ddim ar bob un ohonyn nhw, gan nad oes gennym ni gyfeiriad y gellir ei ddefnyddio ar yr ISP1. Mae'r effaith hon yn bwysig, er enghraifft, ar gyfer gweinydd post gyda dau MX sy'n edrych ar sianeli Rhyngrwyd gwahanol.

Er mwyn dileu naws gweithredu rhwydweithiau lleol gyda llwybryddion IP allanol, rydym yn defnyddio'r atebion o baragraffau. 1.8.2 a 3.1.2.6.

Yn ogystal, gallwch ddefnyddio offeryn gyda marciau i ddatrys pwynt 3 o'r broblem. Gadewch i ni ei weithredu fel hyn:

2.4. Rydym yn cyfeirio traffig gan gleientiaid lleol o restrau llwybro i'r tablau priodol:

/ip firewall mangle add action=mark-routing chain=prerouting 
comment="Address List via ISP1" dst-address-list=!BOGONS new-routing-mark=to_isp1 
passthrough=no src-address-list=Via_ISP1

/ip firewall mangle add action=mark-routing chain=prerouting 
comment="Address List via ISP2" dst-address-list=!BOGONS new-routing-mark=to_isp2 
passthrough=no src-address-list=Via_ISP2

/ip firewall mangle add action=mark-routing chain=prerouting 
comment="Address List via ISP3" dst-address-list=!BOGONS new-routing-mark=to_isp3 
passthrough=no src-address-list=Via_ISP3

Yn gyfan gwbl, mae'n edrych yn rhywbeth fel hyn:

Amlfan a llwybro ar Mikrotik RouterOS

3. Sefydlu cysylltiad â'r ISP a galluogi llwybro yn ôl brand

3.1. Sefydlu cysylltiad ag ISP1:
3.1.1. Ffurfweddu cyfeiriad IP statig:

/ip address add interface=ether1 address=100.66.66.2/30 comment="ISP1 IP"

3.1.2. Sefydlu llwybro statig:
3.1.2.1. Ychwanegu llwybr “argyfwng” diofyn:

/ip route add comment="Emergency route" distance=254 type=blackhole

Sylw. Mae'r llwybr hwn yn caniatáu i draffig o brosesau lleol basio'r cam Penderfyniad Llwybr beth bynnag fo cyflwr cysylltiadau unrhyw un o'r darparwyr. Naws traffig lleol sy'n mynd allan yw, er mwyn i'r pecyn symud i unrhyw le, rhaid cael llwybr gweithredol i'r porth rhagosodedig yn y prif fwrdd llwybro. Os nad yw yno, yna bydd y pecyn yn cael ei ddinistrio.

Fel estyniad o'r offeryn gwirio porth I gael dadansoddiad dyfnach o gyflwr y sianel, rwy'n awgrymu defnyddio'r dull llwybrau ailadroddus. Hanfod y dull yw ein bod yn cyfarwyddo'r llwybrydd i chwilio am y llwybr i'w borth nid yn uniongyrchol, ond trwy borth canolradd. Bydd 4.2.2.1, 4.2.2.2 a 4.2.2.3 yn cael eu dewis fel pyrth “prawf” o'r fath ar gyfer ISP1, ISP2 ac ISP3, yn y drefn honno.

3.1.2.2. Llwybr i’r cyfeiriad “dilysu”:

/ip route add check-gateway=ping comment="For recursion via ISP1"  
distance=1 dst-address=4.2.2.1 gateway=100.66.66.1 scope=10

Sylw. Rydym yn gostwng gwerth y cwmpas i'r rhagosodiad yng nghwmpas targed ROS er mwyn defnyddio 4.2.2.1 fel porth ailadroddus yn y dyfodol. Pwysleisiaf: rhaid i gwmpas y llwybr i'r cyfeiriad “prawf” fod yn llai na neu'n hafal i gwmpas targed y llwybr a fydd yn cyfeirio at gyfeiriad y prawf.

3.1.2.3. Llwybr dychweliadol diofyn ar gyfer traffig heb farc llwybro:

/ip route add comment="Unmarked via ISP1" distance=2 gateway=4.2.2.1

Sylw. Defnyddir y pellter gwerth = 2 oherwydd bod ISP1, yn unol ag amodau'r dasg, yn cael ei ddatgan fel y copi wrth gefn cyntaf.

3.1.2.4. Llwybr cylchol diofyn ar gyfer traffig gyda nod llwybro “to_isp1”:

/ip route add comment="Marked via ISP1 Main" distance=1 gateway=4.2.2.1 
routing-mark=to_isp1

Sylw. A dweud y gwir, dyma ni o'r diwedd yn dechrau mwynhau ffrwyth y gwaith paratoi a wnaed ym mhwynt 2.


Ar hyd y llwybr hwn, bydd yr holl draffig sydd â'r llwybr marcio “to_isp1” yn cael ei gyfeirio at borth y darparwr cyntaf, waeth pa borth rhagosodedig sy'n weithredol ar hyn o bryd ar gyfer y prif fwrdd.

3.1.2.5. Y llwybr dychwelyd wrth gefn rhagosodedig cyntaf ar gyfer traffig â thag ISP2 ac ISP3:

/ip route add comment="Marked via ISP2 Backup1" distance=2 gateway=4.2.2.1 
routing-mark=to_isp2
/ip route add comment="Marked via ISP3 Backup1" distance=2 gateway=4.2.2.1 
routing-mark=to_isp3

Sylw. Mae angen y llwybrau hyn, ymhlith pethau eraill, ar gyfer cadw traffig o rwydweithiau lleol sy'n aelodau o'r rhestr cyfeiriadau “to_isp*”'

3.1.2.6. Rydym yn cofrestru llwybr ar gyfer traffig lleol y llwybrydd i'r Rhyngrwyd trwy ISP1:

/ip route rule add comment="From ISP1 IP to Inet" src-address=100.66.66.2 table=to_isp1

Sylw. Ar y cyd â rheolau paragraff 1.8.2, darperir mynediad i'r sianel a ddymunir gyda ffynhonnell benodol. Mae hyn yn hanfodol ar gyfer adeiladu twneli lle mae'r cyfeiriad IP ochr leol wedi'i nodi (EoIP, IP-IP, GRE). Gan fod y rheolau yn rheolau llwybr ip yn cael eu gweithredu o'r top i'r gwaelod, tan y gêm amodau gyntaf, dylai'r rheol hon fod ar ôl y rheolau o gymal 1.8.2.

3.1.3. Fe wnaethom sefydlu rheol NAT ar gyfer traffig sy'n mynd allan:

/ip firewall nat add action=src-nat chain=srcnat comment="NAT via ISP1"  
ipsec-policy=out,none out-interface=ether1 to-addresses=100.66.66.2

Sylw. NAT yw popeth sy'n mynd allan, ac eithrio'r hyn sy'n dod o fewn polisïau IPsec. Rwy'n ceisio peidio â defnyddio action=masquerade oni bai bod hynny'n gwbl angenrheidiol. Mae'n arafach ac yn fwy dwys o ran adnoddau na src-nat oherwydd ei fod yn cyfrifo'r cyfeiriad NAT ar gyfer pob cysylltiad newydd.

3.1.4. Rydym yn anfon cleientiaid o'r rhestr sy'n cael eu gwahardd rhag cael mynediad trwy ddarparwyr eraill yn uniongyrchol i borth darparwyr ISP1.

/ip firewall mangle add action=route chain=prerouting comment="Address List via ISP1 only" 
dst-address-list=!BOGONS passthrough=no route-dst=100.66.66.1 
src-address-list=Via_only_ISP1 place-before=0

Sylw. mae gan action=llwybr flaenoriaeth uwch ac fe'i cymhwysir cyn rheolau llwybro eraill.


place-before=0 - yn gosod ein rheol ni yn gyntaf yn y rhestr.

3.2. Sefydlu cysylltiad i ISP2.

Gan fod y darparwr ISP2 yn darparu gosodiadau i ni trwy DHCP, mae'n rhesymol gwneud y newidiadau angenrheidiol gan ddefnyddio sgript sy'n dechrau pan fydd y cleient DHCP yn cael ei sbarduno:

/ip dhcp-client
add add-default-route=no disabled=no interface=ether2 script=":if ($bound=1) do={r
    n    /ip route add check-gateway=ping comment="For recursion via ISP2" distance=1 
           dst-address=4.2.2.2/32 gateway=$"gateway-address" scope=10r
    n    /ip route add comment="Unmarked via ISP2" distance=1 gateway=4.2.2.2;r
    n    /ip route add comment="Marked via ISP2 Main" distance=1 gateway=4.2.2.2 
           routing-mark=to_isp2;r
    n    /ip route add comment="Marked via ISP1 Backup1" distance=2 gateway=4.2.2.2 
           routing-mark=to_isp1;r
    n    /ip route add comment="Marked via ISP3 Backup2" distance=3 gateway=4.2.2.2 
           routing-mark=to_isp3;r
    n    /ip firewall nat add action=src-nat chain=srcnat ipsec-policy=out,none 
           out-interface=$"interface" to-addresses=$"lease-address" comment="NAT via ISP2" 
           place-before=1;r
    n    if ([/ip route rule find comment="From ISP2 IP to Inet"] ="") do={r
    n        /ip route rule add comment="From ISP2 IP to Inet" 
               src-address=$"lease-address" table=to_isp2 r
    n    } else={r
    n       /ip route rule set [find comment="From ISP2 IP to Inet"] disabled=no 
              src-address=$"lease-address"r
    n    }      r
    n} else={r
    n   /ip firewall nat remove  [find comment="NAT via ISP2"];r
    n   /ip route remove [find comment="For recursion via ISP2"];r
    n   /ip route remove [find comment="Unmarked via ISP2"];r
    n   /ip route remove [find comment="Marked via ISP2 Main"];r
    n   /ip route remove [find comment="Marked via ISP1 Backup1"];r
    n   /ip route remove [find comment="Marked via ISP3 Backup2"];r
    n   /ip route rule set [find comment="From ISP2 IP to Inet"] disabled=yesr
    n}r
    n" use-peer-dns=no use-peer-ntp=no

Y sgript ei hun yn y ffenestr Winbox:

Amlfan a llwybro ar Mikrotik RouterOS
Sylw. Mae rhan gyntaf y sgript yn cael ei sbarduno pan fydd y brydles yn cael ei sicrhau'n llwyddiannus, yr ail - ar ôl i'r brydles gael ei rhyddhau.Gweler nodyn 2

3.3. Sefydlu cysylltiad â'r darparwr ISP3.

Gan fod y darparwr yn rhoi gosodiadau deinamig i ni, mae'n rhesymol gwneud y newidiadau angenrheidiol gan ddefnyddio sgriptiau sy'n dechrau ar ôl i'r rhyngwyneb ppp gael ei godi ac ar ôl iddo ddisgyn.

3.3.1. Yn gyntaf rydym yn ffurfweddu'r proffil:

/ppp profile
add comment="for PPPoE to ISP3" interface-list=WAN name=isp3_client 
on-down="/ip firewall nat remove  [find comment="NAT via ISP3"];r
    n/ip route remove [find comment="For recursion via ISP3"];r
    n/ip route remove [find comment="Unmarked via ISP3"];r
    n/ip route remove [find comment="Marked via ISP3 Main"];r
    n/ip route remove [find comment="Marked via ISP1 Backup2"];r
    n/ip route remove [find comment="Marked via ISP2 Backup2"];r
    n/ip route rule set [find comment="From ISP3 IP to Inet"] disabled=yes;" 
on-up="/ip route add check-gateway=ping comment="For recursion via ISP3" distance=1 
    dst-address=4.2.2.3/32 gateway=$"remote-address" scope=10r
    n/ip route add comment="Unmarked via ISP3" distance=3 gateway=4.2.2.3;r
    n/ip route add comment="Marked via ISP3 Main" distance=1 gateway=4.2.2.3 
    routing-mark=to_isp3;r
    n/ip route add comment="Marked via ISP1 Backup2" distance=3 gateway=4.2.2.3 
    routing-mark=to_isp1;r
    n/ip route add comment="Marked via ISP2 Backup2" distance=3 gateway=4.2.2.3 
    routing-mark=to_isp2;r
    n/ip firewall mangle set [find comment="Connmark in from ISP3"] 
    in-interface=$"interface";r
    n/ip firewall nat add action=src-nat chain=srcnat ipsec-policy=out,none 
    out-interface=$"interface" to-addresses=$"local-address" comment="NAT via ISP3" 
    place-before=1;r
    nif ([/ip route rule find comment="From ISP3 IP to Inet"] ="") do={r
    n   /ip route rule add comment="From ISP3 IP to Inet" src-address=$"local-address" 
    table=to_isp3 r
    n} else={r
    n   /ip route rule set [find comment="From ISP3 IP to Inet"] disabled=no 
    src-address=$"local-address"r
    n};r
    n"

Y sgript ei hun yn y ffenestr Winbox:

Amlfan a llwybro ar Mikrotik RouterOS
Sylw. Llinyn
/ip firewall mangle set [find comment="Connmark i mewn o ISP3"] in-interface=$" rhyngwyneb";
yn eich galluogi i drin ailenwi rhyngwyneb yn gywir, gan ei fod yn gweithio gyda'i god ac nid yr enw arddangos.

3.3.2. Nawr, gan ddefnyddio'r proffil, rydyn ni'n creu cysylltiad ppp:

/interface pppoe-client add allow=mschap2 comment="to ISP3" disabled=no 
interface=ether3 name=pppoe-isp3 password=isp3_pass profile=isp3_client user=isp3_client

Fel cyffyrddiad olaf, gadewch i ni osod y cloc:

/system ntp client set enabled=yes server-dns-names=0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org

I'r rhai sy'n darllen hyd y diwedd

Y dull arfaethedig o weithredu multivan yw dewis personol yr awdur ac nid dyma'r unig un posibl. Mae pecyn cymorth ROS yn helaeth ac yn hyblyg, sydd, ar y naill law, yn achosi anawsterau i ddechreuwyr, ac ar y llaw arall, yw'r rheswm dros ei boblogrwydd. Astudio, ceisio, darganfod offer ac atebion newydd. Er enghraifft, fel cymhwysiad o'r wybodaeth a gaffaelwyd, gallwch ddisodli'r offeryn yn y gweithrediad amlfan hwn Gwir-borth gyda llwybrau ailadroddus ymlaen Netwatch.

Nodiadau

  1. Gwir-borth — mecanwaith sy'n eich galluogi i ddadactifadu llwybr ar ôl dau wiriad aflwyddiannus yn olynol o'r porth i weld a yw ar gael. Cynhelir y gwiriad unwaith bob 10 eiliad, ynghyd â goramser ymateb. Yn gyfan gwbl, mae'r amseriad newid gwirioneddol yn yr ystod o 20-30 eiliad. Os nad yw'r amseriad newid hwn yn ddigonol, mae opsiwn i ddefnyddio'r offeryn Netwatch, lle gellir gosod yr amserydd siec â llaw Mecanwaith Gwir-borth ddim yn gweithio os oes colledion pecynnau cyfnodol yn y sianel.

    Pwysig! Mae dadactifadu'r prif lwybr yn golygu dadactifadu pob llwybr arall sy'n cyfeirio ato. Felly, iddynt nodi gwirio-porth=ping ddim yn angenrheidiol.

  2. Mae'n digwydd bod methiant yn digwydd yn y mecanwaith DHCP, sy'n edrych fel bod y cleient wedi'i rewi yn y cyflwr adnewyddu. Yn yr achos hwn, ni fydd ail ran y sgript yn gweithio, ond ni fydd yn ymyrryd â thraffig yn llifo'n gywir, gan fod y cyflwr yn olrhain y llwybr ailadroddus cyfatebol.
  3. ECMP (Aml-lwybr Cost Cyfartal) — yn ROS mae'n bosibl gosod llwybr gyda sawl porth a'r un pellter. Yn yr achos hwn, bydd cysylltiadau'n cael eu dosbarthu ar draws sianeli gan ddefnyddio'r algorithm robin crwn, yn gymesur â nifer y pyrth penodedig.

Am yr ysgogiad i ysgrifennu'r erthygl, helpwch i ffurfio ei strwythur a rhoi pwyslais - diolch personol i Evgeniy @jscar

Ffynhonnell: hab.com