Mikrotik RouterOS-da multivan və marşrutlaşdırma

Giriş

Məqaləni almağa, boşboğazlıqdan əlavə, rusdilli teleqram cəmiyyətinin profil qruplarında bu mövzuda sualların acınacaqlı tezliyi səbəb oldu. Məqalə yeni başlayan Mikrotik RouterOS (bundan sonra ROS) idarəçiləri üçün nəzərdə tutulub. Bu, marşrutlaşdırmaya diqqət yetirməklə yalnız multivanla məşğul olur. Bonus olaraq, təhlükəsiz və rahat işləməyi təmin etmək üçün minimum kifayət qədər parametrlər var. Növbələr, yük balansı, vlanlar, körpülər, kanalın vəziyyətinin çox mərhələli dərin təhlili və bu kimi mövzuların açıqlanmasını axtaranlar - oxumağa vaxt və səy sərf etməyə bilər.

Xam data

Test mövzusu olaraq, ROS versiyası 6.45.3 olan beş portlu Mikrotik marşrutlaşdırıcısı seçildi. O, trafiki iki yerli şəbəkə (LAN1 və LAN2) və üç provayder (ISP1, ISP2, ISP3) arasında yönləndirəcək. ISP1-ə gedən kanal statik "boz" ünvana malikdir, ISP2 - "ağ", DHCP vasitəsilə əldə edilir, ISP3 - PPPoE icazəsi ilə "ağ". Bağlantı diaqramı şəkildə göstərilmişdir:

Mikrotik RouterOS-da multivan və marşrutlaşdırma

Vəzifə MTK marşrutlaşdırıcısını sxem əsasında konfiqurasiya etməkdir ki:

  1. Yedək provayderinə avtomatik keçid təmin edin. Əsas provayder ISP2, birinci ehtiyat ISP1, ikinci ehtiyat ISP3-dür.
  2. LAN1 şəbəkəsinin İnternetə çıxışını yalnız ISP1 vasitəsilə təşkil edin.
  3. Ünvan siyahısına əsasən seçilmiş provayder vasitəsilə yerli şəbəkələrdən İnternetə trafik yönləndirmək imkanını təmin edin.
  4. Yerli şəbəkədən İnternetə (DSTNAT) xidmətlərin nəşri imkanını təmin edin
  5. İnternetdən minimum kifayət qədər təhlükəsizliyi təmin etmək üçün firewall filtri qurun.
  6. Router seçilmiş mənbə ünvanından asılı olaraq üç provayderdən hər hansı biri vasitəsilə öz trafikini verə bilər.
  7. Cavab paketlərinin gəldiyi kanala (LAN daxil olmaqla) yönləndirildiyinə əmin olun.

Qeyd Versiyadan versiyaya dəyişən "qutudan kənar" başlanğıc konfiqurasiyalarda sürprizlərin olmamasını təmin etmək üçün marşrutlaşdırıcını "sıfırdan" konfiqurasiya edəcəyik. Dəyişikliklərin vizual olaraq göstəriləcəyi konfiqurasiya aləti kimi Winbox seçilmişdir. Parametrlərin özləri Winbox terminalındakı əmrlərlə təyin olunacaq. Konfiqurasiya üçün fiziki əlaqə birbaşa Ether5 interfeysinə qoşulmaqla həyata keçirilir.

Multivanın nə olduğu barədə bir az mülahizə, problemdir və ya sui-qəsd şəbəkələri toxuyan hiyləgər ağıllı insanlardır

Maraqlı və diqqətli bir idarəçi, öz başına bu və ya oxşar sxem quraraq, birdən onun artıq normal işlədiyini anlayır. Bəli, bəli, bu mövzuda məqalələrin əksəriyyətinin dolu olduğu xüsusi marşrutlaşdırma cədvəlləriniz və digər marşrut qaydaları olmadan. yoxlayaq?

İnterfeyslərdə və standart şlüzlərdə ünvanlamağı konfiqurasiya edə bilərikmi? Bəli:

ISP1-də ünvan və şlüz qeydiyyatdan keçmişdir məsafə = 2 и check-gateway = ping.
ISP2-də standart dhcp müştəri qəbulu - müvafiq olaraq məsafə birinə bərabər olacaq.
Pppoe müştəri parametrlərində ISP3-də olduqda əlavə et-default-route=bəli qoy default-marşrut-məsafə=3.

Çıxışda NAT-ı qeydiyyatdan keçirməyi unutmayın:

/ip firewall nat əlavə fəaliyyət = maskarad zənciri = srcnat out-interface-list = WAN

Nəticədə, yerli saytların istifadəçiləri əsas ISP2 provayderi vasitəsilə pişikləri endirməklə əylənirlər və mexanizmdən istifadə edərək kanal rezervasiyası mövcuddur. şluzunu yoxlayın Qeyd 1-ə baxın

Tapşırığın 1-ci bəndi yerinə yetirilir. İzləri olan multivan haradadır? Yox…

Daha. Siz ISP1 vasitəsilə LAN-dan xüsusi müştəriləri buraxmalısınız:

/ip firewall manipulyasiyası əlavə fəaliyyət=marşrut zənciri=dst-ünvan siyahısı=öncədən marşrutlaşdırma=!BOGONS
keçid=bəli marşrut-dst=100.66.66.1 src-address-list=Via_ISP1
/ip firewall manipulyasiyası əlavə fəaliyyət=marşrut zənciri=dst-ünvan siyahısı=öncədən marşrutlaşdırma=!BOGONS
keçid=marşrut yoxdur-dst=100.66.66.1 src-ünvanı=192.168.88.0/24

Tapşırıqın 2-ci və 3-cü bəndləri yerinə yetirilmişdir. Etiketlər, ştamplar, marşrut qaydaları, hardasan?!

İnternetdən müştərilər üçün 172.17.17.17 ünvanlı sevimli OpenVPN serverinizə giriş icazəsi verməlisiniz? Zəhmət olmasa:

/ip bulud dəsti ddns-enabled=bəli

Həmyaşıd olaraq, müştəriyə nəticəni veririk: ":qoyun [ip bulud dns-adını əldə edin]"

İnternetdən port yönləndirməsini qeyd edirik:

/ip firewall nat əlavə fəaliyyət = dst-nat zənciri = dstnat dst-port = 1194
in-interface-list=WAN protokolu=udp-ünvanlar=172.17.17.17

4-cü maddə hazırdır.

5-ci nöqtə üçün təhlükəsizlik divarı və digər təhlükəsizlik qurduq, eyni zamanda hər şeyin istifadəçilər üçün işlədiyinə və sevimli içki ilə konteynerə çatmasına şadıq ...
A! Tunellər unudulub.

Google məqaləsi ilə konfiqurasiya edilən l2tp-client sevimli Holland VDS-ə yüksəldi? Bəli.
IPsec ilə l2tp-server yüksəldi və IP Cloud-dan DNS adı ilə müştərilər (yuxarıya baxın.) yapışırlar? Bəli.
Kresloda arxaya söykənərək, bir içki yudumlayaraq, tapşırığın 6 və 7-ci bəndlərini tənbəlliklə nəzərdən keçiririk. Düşünürük - bizə lazımdırmı? Eynilə, belə işləyir (c) ... Deməli, hələ də lazım deyilsə, deməli bu. Multivan həyata keçirilir.

Multivan nədir? Bu, bir neçə İnternet kanalının bir marşrutlaşdırıcıya qoşulmasıdır.

Məqaləni daha çox oxumağa ehtiyac yoxdur, çünki şübhəli tətbiqi nümayiş etdirməkdən başqa nə ola bilər?

Qalanlar, tapşırığın 6 və 7-ci bəndləri ilə maraqlananlar və həmçinin mükəmməlliyin qaşınmasını hiss edənlər üçün daha dərinə dalırıq.

Multivanın həyata keçirilməsinin ən vacib vəzifəsi trafikin düzgün marşrutlaşdırılmasıdır. Məhz: hansından (və ya hansından) asılı olmayaraq Baxın. Qeyd 3 ISP-nin kanal(lar)ı marşrutlaşdırıcımızda standart marşruta baxın, o, paketin gəldiyi dəqiq kanala cavab verməlidir. Tapşırıq aydındır. Problem haradadır? Həqiqətən, sadə bir yerli şəbəkədə vəzifə eynidır, lakin heç kim əlavə parametrlərlə narahat olmur və problem hiss etmir. Fərq ondadır ki, İnternetdəki hər hansı bir marşrutlaşdırıcı qovşaq sadə bir LAN-da olduğu kimi ciddi şəkildə xüsusi bir kanal vasitəsilə deyil, hər bir kanalımız vasitəsilə əldə edilə bilər. Və "problem" ondadır ki, əgər bizə ISP3-ün IP ünvanı ilə bağlı sorğu gəlibsə, bizim vəziyyətimizdə cavab ISP2 kanalından keçəcək, çünki standart şluz oraya yönəldilmişdir. Yarpaqlar və yanlış olaraq provayder tərəfindən atılacaq. Problem müəyyən edilib. Bunu necə həll etmək olar?

Həll üç mərhələyə bölünür:

  1. Əvvəlcədən təyin edilməsi. Bu mərhələdə, marşrutlaşdırıcının əsas parametrləri qurulacaq: yerli şəbəkə, firewall, ünvan siyahıları, hairpin NAT və s.
  2. Multivan. Bu mərhələdə lazımi əlaqələr işarələnəcək və marşrutlaşdırma cədvəllərində çeşidlənəcək.
  3. ISP-yə qoşulma. Bu mərhələdə internetə qoşulmanı təmin edən interfeyslər konfiqurasiya ediləcək, marşrutlaşdırma və internet kanalının rezervasiyası mexanizmi işə salınacaq.

1. Əvvəlcədən quraşdırma

1.1. Router konfiqurasiyasını əmrlə təmizləyirik:

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

razıyam"Təhlükəli! Hər halda sıfırlansın? [y/N]:” və yenidən başladıqdan sonra MAC vasitəsilə Winbox ilə əlaqə qururuq. Bu mərhələdə konfiqurasiya və istifadəçi bazası təmizlənir.

1.2. Yeni istifadəçi yaradın:

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

altında daxil olun və standartı silin:

/user remove admin

Qeyd Müəllifin daha təhlükəsiz hesab etdiyi və istifadə üçün tövsiyə etdiyi standart istifadəçinin silinməsi və söndürülməməsidir.

1.3. Biz firewall, kəşf parametrləri və digər MAC serverlərində işləmək rahatlığı üçün əsas interfeys siyahıları yaradırıq:

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

Şərhlərlə interfeyslərin imzalanması

/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"

və interfeys siyahılarını doldurun:

/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"

Qeyd Anlaşılan şərhlərin yazılması buna sərf olunan vaxta dəyər, üstəlik, problemlərin aradan qaldırılmasını və konfiqurasiyanın başa düşülməsini xeyli asanlaşdırır.

Müəllif, ip protokolunun ondan keçməməsinə baxmayaraq, təhlükəsizlik səbəbi ilə ether3 interfeysini “WAN” interfeys siyahısına əlavə etməyi zəruri hesab edir.

Unutmayın ki, PPP interfeysi ether3-də qaldırıldıqdan sonra onu da “WAN” interfeys siyahısına əlavə etmək lazımdır.

1.4. Biz marşrutlaşdırıcını MAC vasitəsilə provayder şəbəkələrindən qonşuluq aşkarlanması və nəzarətindən gizlədirik:

/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. Routeri qorumaq üçün minimum kifayət qədər firewall filtr qaydaları dəsti yaradırıq:

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

(qayda həm qoşulmuş şəbəkələrdən, həm də marşrutlaşdırıcının özündən başlayan qurulmuş və əlaqəli əlaqələrə icazə verir)

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

(ping və təkcə ping deyil. Bütün icmp-ə icazə verilir. MTU problemlərini tapmaq üçün çox faydalıdır)

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

(giriş zəncirini bağlayan qayda İnternetdən gələn hər şeyi qadağan edir)

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

(qayda marşrutlaşdırıcıdan keçən qurulmuş və əlaqəli əlaqələrə icazə verir)

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

(qayda marşrutlaşdırıcıdan keçən əlaqə vəziyyəti=invalid ilə əlaqələri sıfırlayır. Mikrotik tərəfindən şiddətlə tövsiyə olunur, lakin bəzi nadir hallarda faydalı trafiki bloklaya bilər)

/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

(qayda İnternetdən gələn və dstnat prosedurundan keçməmiş paketlərin marşrutlaşdırıcıdan keçməsini qadağan edir. Bu, yerli şəbəkələri xarici şəbəkələrimizlə eyni yayım domenində olmaqla, xarici IP-lərimizi qeydiyyatdan keçirən müdaxilələrdən qoruyacaq. Gateway və beləliklə, yerli şəbəkələrimizi "tədqiq etməyə" çalışın.)

Qeyd Fərz edək ki, LAN1 və LAN2 şəbəkələri etibarlıdır və onlar arasındakı və onlardan gələn trafik filtrlənmir.

1.6. Marşrutu olmayan şəbəkələrin siyahısı ilə siyahı yaradın:

/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

(Bu, İnternetə yönləndirilə bilməyən və müvafiq olaraq izləniləcək ünvanların və şəbəkələrin siyahısıdır.)

Qeyd Siyahı dəyişdirilə bilər, ona görə də vaxtaşırı aktuallığını yoxlamağı məsləhət görürəm.

1.7. Routerin özü üçün DNS qurun:

/ip dns set servers=1.1.1.1,8.8.8.8

Qeyd ROS-un hazırkı versiyasında dinamik serverlər statik serverlərdən üstündür. Ad həlli sorğusu siyahıdakı ardıcıllıqla birinci serverə göndərilir. Növbəti serverə keçid cari server mövcud olmadıqda həyata keçirilir. Taymout böyükdür - 5 saniyədən çox. "Düşmüş server" bərpa edildikdə, geri qayıtmaq avtomatik olaraq baş vermir. Bu alqoritmi və multivanın mövcudluğunu nəzərə alaraq, müəllif provayderlər tərəfindən təqdim olunan serverlərdən istifadə etməməyi tövsiyə edir.

1.8. Yerli şəbəkə qurun.
1.8.1. LAN interfeyslərində statik IP ünvanlarını konfiqurasiya edirik:

/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. Əsas marşrutlaşdırma cədvəli vasitəsilə yerli şəbəkələrimizə marşrutlar üçün qaydalar təyin edirik:

/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"

Qeyd Bu, standart marşrutdan keçməyən marşrutlaşdırıcı interfeyslərinin xarici IP ünvanlarının mənbələri ilə LAN ünvanlarına daxil olmağın sürətli və asan yollarından biridir.

1.8.3. LAN1 və LAN2 üçün Hairpin NAT-ı aktivləşdirin:

/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

Qeyd Bu, şəbəkə daxilində olarkən xarici IP vasitəsilə resurslarınıza (dstnat) daxil olmaq imkanı verir.

2. Əslində, çox düzgün multivan həyata keçirilməsi

"Haradan soruşduqlarına cavab vermək" problemini həll etmək üçün iki ROS alətindən istifadə edəcəyik: əlaqə işarəsi и marşrut işarəsi. əlaqə işarəsi istədiyiniz əlaqəni qeyd etməyə və sonra müraciət etmək üçün şərt kimi bu etiketlə işləməyə imkan verir marşrut işarəsi. Və artıq ilə marşrut işarəsi işləmək mümkündür ip marşrutu и marşrut qaydaları. Alətləri anladıq, indi hansı əlaqələri qeyd edəcəyinizə qərar verməlisiniz - bir dəfə, dəqiq harada qeyd olunacağını - iki.

Birincisi ilə hər şey sadədir - İnternetdən marşrutlaşdırıcıya gələn bütün əlaqələri müvafiq kanal vasitəsilə qeyd etməliyik. Bizim vəziyyətimizdə bunlar üç etiket olacaq (kanalların sayına görə): "conn_isp1", "conn_isp2" və "conn_isp3".

İkincisi ilə nüans ondan ibarətdir ki, daxil olan əlaqələr iki növ olacaq: tranzit və marşrutlaşdırıcının özü üçün nəzərdə tutulanlar. Bağlantı işarəsi mexanizmi cədvəldə işləyir qarqara. Mikrotik-trainings.com resursunun mütəxəssisləri tərəfindən tərtib edilmiş sadələşdirilmiş diaqramda paketin hərəkətini nəzərdən keçirin (reklam deyil):

Mikrotik RouterOS-da multivan və marşrutlaşdırma

Oxlardan sonra paketin “giriş interfeysi", zəncirindən keçir"Əvvəlcədən marşrut” və yalnız bundan sonra blokda tranzit və yerli bölünür “Marşrut qərarı". Buna görə də, bir daşla iki quş öldürmək üçün istifadə edirik Əlaqə nişanı cədvəldə Mangle əvvəlcədən marşrutlaşdırma zəncirlər Əvvəlcədən marşrut.

Qeyd:. ROS-da “Marşrut nişanı” etiketləri Ip/Marşrutlar/Qaydalar bölməsində “Cədvəl”, digər bölmələrdə isə “Marşrutlama İşarəsi” kimi verilmişdir. Bu, anlamaqda müəyyən çaşqınlıq yarada bilər, amma əslində bu eyni şeydir və Linux-da iproute2-də rt_tables-in analoqudur.

2.1. Provayderlərin hər birindən daxil olan əlaqələri qeyd edirik:

/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

Qeyd Artıq işarələnmiş əlaqələri qeyd etməmək üçün, mən bunu daha düzgün hesab edirəm, çünki giriş filtrində etibarsız bağlantıların rədd edilməsi ilə yanaşı, əlaqə-state=new əvəzinə əlaqə-mark=no-mark şərtindən istifadə edirəm.


passthrough=no - çünki bu həyata keçirmə metodunda yenidən işarələmə istisna edilir və sürətləndirmək üçün ilk matçdan sonra qaydaların sadalanmasına müdaxilə edə bilərsiniz.

Nəzərə almaq lazımdır ki, biz hələ marşrutlaşdırmaya heç bir şəkildə müdaxilə etmirik. İndi yalnız hazırlıq mərhələləri qalıb. Tətbiqin növbəti mərhələsi lokal şəbəkədə təyinat yerindən qurulmuş əlaqə üzərindən qayıdan tranzit trafikinin emalı olacaq. Bunlar. yol boyu marşrutlaşdırıcıdan keçən paketlər (diaqrama bax):

“Giriş İnterfeysi”=>”Ön istiqamətləndirmə”=>”Yönləndirmə Qərarı”=>”İrəli”=>”Yönləndirmədən Sonra”=>”Çıxış İnterfeysi” və lokal şəbəkədə ünvanına çatdılar.

Mühüm! ROS-da xarici və daxili interfeyslərə məntiqi bölmə yoxdur. Yuxarıdakı diaqrama uyğun olaraq cavab paketinin yolunu izləsək, o, sorğu ilə eyni məntiqi yolu izləyəcək:

“Giriş İnterfeysi”=>”Ön istiqamətləndirmə”=>”Yönləndirmə Qərarı”=>”İrəli”=>”Yönləndirmədən Sonra”=>”Çıxış İnterfeysi” yalnız bir xahiş üçün"Input Interface” ISP interfeysi idi və cavab üçün - LAN

2.2. Biz cavab tranzit trafikini müvafiq marşrutlaşdırma cədvəllərinə yönləndiririk:

/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

Şərh. in-interface-list=!WAN - biz yalnız yerli şəbəkədən gələn trafiklə və marşrutlaşdırıcının özünün interfeyslərinin ünvanının təyinat ünvanı olmayan dst-address-type=!local ilə işləyirik.

Yol boyu marşrutlaşdırıcıya gələn yerli paketlər üçün də eynidir:

“Giriş İnterfeysi”=>”Ön marşrutlaşdırma”=>”Yönləndirmə qərarı”=>”Giriş”=>“Yerli Proses”

Mühüm! Cavab aşağıdakı şəkildə olacaq:

”Yerli Proses”=>”Marşrutlaşdırma Qərar”=>”Çıxış”=>”Yönləndirmədən Sonra”=>”Çıxış İnterfeysi”

2.3. Biz cavab yerli trafiki müvafiq marşrutlaşdırma cədvəllərinə yönləndiririk:

/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

Bu mərhələdə sorğunun gəldiyi internet kanalına cavab göndərməyə hazırlaşmaq vəzifəsi həll edilmiş hesab edilə bilər. Hər şey işarələnmiş, etiketlənmiş və yönləndirməyə hazırdır.
Bu quraşdırmanın əla “yan” effekti eyni zamanda hər iki (ISP2, ISP3) provayderindən DSNAT port yönləndirməsi ilə işləmək bacarığıdır. Heç də yox, çünki ISP1-də marşrutlaşdırıla bilməyən bir ünvanımız var. Bu təsir, məsələn, müxtəlif İnternet kanallarına baxan iki MX-li poçt serveri üçün vacibdir.

Xarici IP marşrutlaşdırıcıları ilə yerli şəbəkələrin işləməsinin nüanslarını aradan qaldırmaq üçün paraqraflardan olan həllərdən istifadə edirik. 1.8.2 və 3.1.2.6.

Bundan əlavə, problemin 3-cü bəndini həll etmək üçün işarələri olan bir vasitədən istifadə edə bilərsiniz. Bunu belə həyata keçiririk:

2.4. Biz yerli müştərilərdən gələn trafiki marşrutlaşdırma siyahılarından müvafiq cədvəllərə yönəldirik:

/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

Nəticədə belə bir şey görünür:

Mikrotik RouterOS-da multivan və marşrutlaşdırma

3. ISP ilə əlaqə qurun və markalı marşrutlaşdırmanı aktivləşdirin

3.1. ISP1 ilə əlaqə qurun:
3.1.1. Statik IP ünvanını konfiqurasiya edin:

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

3.1.2. Statik marşrutlaşdırma qurun:
3.1.2.1. Defolt "fövqəladə" marşrut əlavə edin:

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

Qeyd Bu marşrut hər hansı provayderin əlaqələrinin vəziyyətindən asılı olmayaraq yerli proseslərdən gələn trafikə Marşrut Qərar mərhələsini keçməyə imkan verir. Gedən yerli trafikin nüansı ondan ibarətdir ki, paketin heç olmasa bir yerə hərəkət etməsi üçün əsas marşrutlaşdırma cədvəlinin standart şlüz üçün aktiv marşrutu olmalıdır. Əks təqdirdə, paket sadəcə məhv ediləcək.

Bir alət uzantısı kimi şluzunu yoxlayın Kanal vəziyyətinin daha dərin təhlili üçün mən rekursiv marşrut metodundan istifadə etməyi təklif edirəm. Metodun mahiyyəti ondan ibarətdir ki, biz marşrutlaşdırıcıya deyirik ki, onun şluzuna birbaşa deyil, aralıq şlüz vasitəsilə yol axtarsın. 4.2.2.1, 4.2.2.2 və 4.2.2.3 müvafiq olaraq ISP1, ISP2 və ISP3 üçün belə "sınaq" şlüzləri kimi seçiləcək.

3.1.2.2. "Yoxlama" ünvanına marşrut:

/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

Qeyd Gələcəkdə 4.2.2.1-dən rekursiv şlüz kimi istifadə etmək üçün əhatə dairəsi dəyərini ROS hədəf əhatə dairəsində standarta endiririk. Vurğulayıram: “sınaq” ünvanına gedən marşrutun əhatə dairəsi sınaqdan keçəcək marşrutun hədəf əhatə dairəsindən az və ya ona bərabər olmalıdır.

3.1.2.3. Marşrut işarəsi olmayan trafik üçün rekursiv defolt marşrut:

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

Qeyd Məsafə=2 dəyərindən istifadə olunur, çünki ISP1 tapşırığın şərtlərinə uyğun olaraq ilk ehtiyat kimi elan edilir.

3.1.2.4. “to_isp1” marşrut işarəsi olan trafik üçün rekursiv defolt marşrut:

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

Qeyd Əslində, burada nəhayət 2-ci bənddə aparılan hazırlıq işlərinin bəhrələrindən həzz almağa başlayırıq.


Bu marşrutda “to_isp1” işarəsi olan bütün trafik, hazırda əsas cədvəl üçün hansı standart şlüzün aktiv olmasından asılı olmayaraq, birinci provayderin şlüzünə yönəldiləcəkdir.

3.1.2.5. ISP2 və ISP3 etiketli trafik üçün ilk ehtiyat rekursiv defolt marşrut:

/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

Qeyd Bu marşrutlar, digər şeylərlə yanaşı, “to_isp*” ünvan siyahısına üzv olan yerli şəbəkələrdən gələn trafiki ehtiyat etmək üçün lazımdır.

3.1.2.6. Routerin İnternetə yerli trafiki üçün marşrutu ISP1 vasitəsilə qeyd edirik:

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

Qeyd 1.8.2-ci bənddəki qaydalarla birlikdə, verilmiş mənbə ilə istədiyiniz kanala çıxışı təmin edir. Bu, yerli yan IP ünvanını (EoIP, IP-IP, GRE) təyin edən tunellərin qurulması üçün vacibdir. İp marşrutu qaydalarında qaydalar yuxarıdan aşağıya doğru, şərtlərin ilk uyğunluğuna qədər icra edildiyi üçün bu qayda 1.8.2-ci bənddəki qaydalardan sonra olmalıdır.

3.1.3. Biz gedən trafik üçün NAT qaydasını qeyd edirik:

/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

Qeyd IPsec siyasətlərinə daxil olanlar istisna olmaqla, çıxan hər şeyi NATim. Çox zərurət olmadıqca action=masquerade istifadə etməməyə çalışıram. O, src-nat-dan daha yavaş və daha çox resurs tələb edir, çünki o, hər yeni əlaqə üçün NAT ünvanını hesablayır.

3.1.4. Biz siyahıdan digər provayderlər vasitəsilə daxil olması qadağan olunmuş müştəriləri birbaşa ISP1 provayderinin şluzuna göndəririk.

/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

Qeyd action=marşrut daha yüksək prioritetə ​​malikdir və digər marşrutlaşdırma qaydalarından əvvəl tətbiq edilir.


yer-əvvəl=0 - qaydamızı siyahıda birinci yerləşdirir.

3.2. ISP2 ilə əlaqə qurun.

ISP2 provayderi bizə parametrləri DHCP vasitəsilə verdiyi üçün, DHCP müştərisi işə salındıqda başlayan skriptlə lazımi dəyişiklikləri etmək məqsədəuyğundur:

/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

Winbox pəncərəsində skriptin özü:

Mikrotik RouterOS-da multivan və marşrutlaşdırma
Qeyd Skriptin birinci hissəsi icarə uğurla əldə edildikdə, ikincisi - icarə azad edildikdən sonra işə salınır.Qeyd 2-ə baxın

3.3. ISP3 provayderi ilə əlaqə qurduq.

Parametrlər provayderi bizə dinamiklik verdiyindən, ppp interfeysi qaldırıldıqdan və endikdən sonra başlayan skriptlərlə lazımi dəyişiklikləri etmək məqsədəuyğundur.

3.3.1. Əvvəlcə profili konfiqurasiya edirik:

/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"

Winbox pəncərəsində skriptin özü:

Mikrotik RouterOS-da multivan və marşrutlaşdırma
Qeyd Sətir
/ip firewall mangle set [find comment="Find in the ISP3"] in-interface=$"interfeys";
interfeysin adının dəyişdirilməsini düzgün idarə etməyə imkan verir, çünki o, ekran adı ilə deyil, kodu ilə işləyir.

3.3.2. İndi profildən istifadə edərək ppp bağlantısı yaradın:

/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

Son toxunuş olaraq saatı təyin edək:

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

Sona qədər oxuyanlar üçün

Multivanı həyata keçirmək üçün təklif olunan yol müəllifin şəxsi üstünlükləridir və yeganə mümkün deyil. ROS alətlər dəsti geniş və çevikdir, bu, bir tərəfdən yeni başlayanlar üçün çətinlik yaradır, digər tərəfdən isə onun populyarlığının səbəbidir. Yeni alətlər və həllər öyrənin, cəhd edin, kəşf edin. Məsələn, əldə edilmiş biliklərin tətbiqi kimi, multivanın bu həyata keçirilməsində aləti əvəz etmək mümkündür yoxlama qapısı rekursiv marşrutları ilə şəbəkə saatı.

Qeydlər

  1. yoxlama qapısı - şluzun mövcudluğu üçün ardıcıl iki uğursuz yoxlamadan sonra marşrutu deaktiv etməyə imkan verən mexanizm. Yoxlama hər 10 saniyədə bir dəfə, üstəgəl cavab vaxt aşımı həyata keçirilir. Ümumilikdə, faktiki keçid vaxtı 20-30 saniyə aralığındadır. Belə keçid vaxtı kifayət deyilsə, alətdən istifadə etmək imkanı var şəbəkə saatı, burada yoxlama taymerini əl ilə qurmaq olar. yoxlama qapısı keçiddə fasiləli paket itkisi zamanı işə düşmür.

    Vacibdir! Əsas marşrutun deaktiv edilməsi ona istinad edən bütün digər marşrutları deaktiv edəcək. Buna görə də onlara işarə etmək üçün check-gateway = ping lazım deyil.

  2. Belə olur ki, DHCP mexanizmində uğursuzluq baş verir, bu, müştərinin yenilənmə vəziyyətində ilişib qalmasına bənzəyir. Bu halda, skriptin ikinci hissəsi işləməyəcək, lakin dövlət müvafiq rekursiv marşrutu izlədiyi üçün trafikin düzgün getməsinə mane olmayacaq.
  3. ECMP (Equal Cost Multi-Path) - ROS-da bir neçə şlüzlə və eyni məsafədə marşrut təyin etmək mümkündür. Bu halda, keçidlər müəyyən edilmiş şlüzlərin sayına mütənasib olaraq dairəvi sistem alqoritmindən istifadə edərək kanallar üzrə paylanacaq.

Məqaləni yazmağa təkan vermək, onun strukturunu formalaşdırmağa və vurğuların yerləşdirilməsinə kömək etmək üçün - Evgeniyə şəxsi minnətdarlıq @jscar

Mənbə: www.habr.com