Multivan жана Mikrotik RouterOS боюнча маршруттоо

тааныштыруу

Макаланы кабыл алууга убаракерчиликтен тышкары, орус тилдүү телеграмма коомчулугунун профилдик топторунда ушул тема боюнча суроолордун көңүл чөгөттүк жыштыгы түрткү болду. Макала жаңы микротик RouterOS (мындан ары - ROS) администраторлоруна багытталган. Ал маршруткага басым жасоо менен мультиванга гана тиешелүү. Бонус катары, коопсуз жана ыңгайлуу иштөөнү камсыз кылуу үчүн минималдуу жетиштүү орнотуулар бар. Кезектер, жүктөрдү тең салмактоо, вландар, көпүрөлөр, каналдын абалын көп баскычтуу терең талдоо жана башка ушул сыяктуу темаларды ачууну издеп жаткандар окуу үчүн убакытты жана күч-аракетти текке кетирбеши мүмкүн.

алгачкы маалыматтар

Сыноочу субъект катары ROS 6.45.3 версиясы бар беш порттуу Mikrotik роутери тандалган. Ал трафикти эки жергиликтүү тармактардын (LAN1 жана LAN2) жана үч провайдердин (ISP1, ISP2, ISP3) ортосунда багыттайт. ISP1ге канал статикалык "боз" дарекке ээ, ISP2 - "ак", DHCP аркылуу алынган, ISP3 - PPPoE авторизациясы менен "ак". Байланыш схемасы сүрөттө көрсөтүлгөн:

Multivan жана Mikrotik RouterOS боюнча маршруттоо

Милдет MTK роутерин схеманын негизинде конфигурациялоо болуп саналат:

  1. Камдык камсыздоочуга автоматтык түрдө өтүүнү камсыз кылыңыз. Негизги камсыздоочу - ISP2, биринчи резерв - ISP1, экинчи резерв - ISP3.
  2. LAN1 тармагын Интернетке ISP1 аркылуу гана кирүүнү уюштуруңуз.
  3. Дарек-тизменин негизинде тандалган провайдер аркылуу локалдык тармактардан Интернетке трафикти багыттоо мүмкүнчүлүгүн бериңиз.
  4. Жергиликтүү тармактан Интернетке (DSTNAT) кызматтарды жарыялоо мүмкүнчүлүгүн камсыз кылуу
  5. Интернеттен минималдуу жетиштүү коопсуздукту камсыз кылуу үчүн брандмауэр чыпкасын орнотуңуз.
  6. Роутер тандалган булак дарегине жараша үч провайдердин каалаганы аркылуу өз трафигин чыгара алат.
  7. Жооп пакеттери алар келген каналга (анын ичинде LAN) багытталышын камсыз кылыңыз.

Эскертүү. Версиядан версияга өзгөргөн баштапкы конфигурацияларда сюрприздердин болбошуна кепилдик берүү үчүн биз роутерди “нөлдөн баштап” конфигурациялайбыз. Winbox конфигурациялоо куралы катары тандалган, анда өзгөрүүлөр визуалдык түрдө көрсөтүлөт. Орнотуулар Winbox терминалындагы буйруктар менен орнотулат. Конфигурациялоо үчүн физикалык байланыш Ether5 интерфейсине түз туташуу аркылуу ишке ашырылат.

Мультиван деген эмне деген бир аз ой жүгүртүү, бул көйгөйбү же кутум түйүндөрүнүн айланасындагы куу акылдуу адамдарбы?

Тигил же ушуга окшош схеманы өз алдынча түзүп жаткан изденүүчү жана кунт коюп башкаруучу күтүлбөгөн жерден анын кадимкидей иштеп жатканын түшүнөт. Ооба, ооба, сиздин ыңгайлаштырылган маршруттук таблицаларсыз жана башка маршруттук эрежелерсиз, бул темадагы макалалардын көбү толгон. текшерип көрөлү?

Биз интерфейстерде жана демейки шлюздарда даректи конфигурациялай алабызбы? Ооба:

ISP1де дарек жана шлюз менен катталган аралык = 2 и текшерүү шлюз = пинг.
ISP2де, демейки dhcp кардар жөндөөсү - ошого жараша аралык бирге барабар болот.
ISP3 боюнча pppoe кардар жөндөөлөрүндө качан add-default-route=yes коюу default-route-distance=3.

Чыгууда NAT каттоону унутпаңыз:

/ip брандмауэр nat кошуу аракети = маскарад чынжыр = srcnat out-interface-list = WAN

Натыйжада, жергиликтүү сайттардын колдонуучулары негизги ISP2 провайдери аркылуу мышыктарды жүктөп алууда кызыктуу жана механизмди колдонуу менен каналды ээлөө бар. шлюз текшерүү 1 эскертүүнү караңыз

Тапшырманын 1-пункту аткарылды. Белгилери бар мультиван кайда? Жок…

Андан ары. Сиз ISP1 аркылуу LANдан белгилүү кардарларды чыгарышыңыз керек:

/ip брандмауэр mangle кошуу аракети=маршрут чынжыры=алдын ала багыттоо dst-address-list=!BOGONS
passthrough=ооба route-dst=100.66.66.1 src-address-list=Via_ISP1
/ip брандмауэр mangle кошуу аракети=маршрут чынжыры=алдын ала багыттоо dst-address-list=!BOGONS
өтүү=маршрут жок-dst=100.66.66.1 src-дареги=192.168.88.0/24

Тапшырманын 2 жана 3-пункттары аткарылды. Этикеткалар, штамптар, маршруттун эрежелери, кайдасың?!

Интернеттен кардарлар үчүн 172.17.17.17 дареги менен сүйүктүү OpenVPN сервериңизге кирүү мүмкүнчүлүгүн беришиңиз керекпи? Өтүнөмүн:

/ip булут топтому ddns-иштетилген = ооба

Теңдеш катары биз кардарга жыйынтыкты беребиз: ": put [ip булут DNS-атын алуу]«

Интернеттен порт багыттоосун каттайбыз:

/ip брандмауэр nat кошуу аракети = dst-nat чынжыр = dstnat dst-port = 1194
in-interface-list=WAN протоколу=udp to-addresses=172.17.17.17

4-пункт даяр.

Биз 5-пункт үчүн брандмауэрди жана башка коопсуздукту орноттук, ошол эле учурда бардыгы колдонуучулар үчүн иштеп жатканына жана сүйүктүү суусундугу бар контейнерге жеткенине кубанычтабыз ...
А! Туннелдер унутулуп калган.

Google макаласы тарабынан конфигурацияланган l2tp-client сиздин сүйүктүү голландиялык VDSке көтөрүлдүбү? Ооба.
IPsec менен l2tp-сервер көтөрүлдү жана IP Cloud'тан DNS-аты боюнча кардарлар (жогоруда караңыз.) жабыштыбы? Ооба.
Креслобузга жөлөнүп, суусундуктан ууртап жатып, биз жалкоолук менен тапшырманын 6 жана 7 пункттарын карап чыгабыз. Биз ойлойбуз - бул бизге керекпи? Баары бир, ушундай иштейт (в) ... Демек, ал дагы деле кереги жок болсо, анда бүттү. Multivan ишке ашырылган.

Мультиван деген эмне? Бул бир роутерге бир нече интернет каналдарын туташтыруу.

Макаланы андан ары окуунун кажети жок, анткени шектүү колдонууга болгон көрсөтүүдөн башка эмне болушу мүмкүн?

Калган, тапшырманын 6 жана 7 пункттарына кызыккандар, ошондой эле перфекционизмдин кычышуусун сезгендер үчүн биз тереңирээк сүңгүп кетебиз.

Мультиванды ишке ашыруунун эң маанилүү милдети – трафикти туура багыттоо. Тактап айтканда: кайсынысына (же кайсынысына) карабастан. Эскертүү 3 ISP каналы(лары) биздин роутердеги демейки маршрутту караса, ал пакет келген так каналга жооп кайтарышы керек. Милдет ачык. Көйгөй кайда? Чынында эле, жөнөкөй жергиликтүү тармакта, милдет бирдей, бирок эч ким кошумча орнотуулар менен убара болуп, кыйынчылык сезбейт. Айырмачылыгы, Интернеттеги каалаган багыттоочу түйүнгө жөнөкөй LANдагыдай так конкреттүү канал аркылуу эмес, биздин ар бир канал аркылуу кирүүгө болот. Ал эми "кыйынчылык" - эгерде бизге ISP3 IP дарегин сурап келсе, анда биздин учурда жооп ISP2 каналы аркылуу өтөт, анткени демейки шлюз ошол жакка багытталган. Жалбырактар ​​жана туура эмес деп камсыздоочу тарабынан жокко чыгарылат. Маселе аныкталды. Аны кантип чечүү керек?

Чечим үч этапка бөлүнөт:

  1. Алдын ала орнотуу. Бул этапта роутердин негизги жөндөөлөрү орнотулат: локалдык тармак, брандмауэр, даректер тизмеси, NAT түйүнү ж.б.
  2. Multivan. Бул этапта керектүү байланыштар белгиленип, маршруттук таблицаларга сорттолот.
  3. ISPге туташуу. Бул этапта Интернетке туташууну камсыз кылган интерфейстер конфигурацияланат, маршрутизация жана интернет-каналдарды ээлөө механизми ишке киргизилет.

1. Алдын ала орнотуу

1.1. Биз роутердин конфигурациясын буйрук менен тазалайбыз:

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

макул"коркунучтуу! Баары бир баштапкы абалга келтирилсинби? [ж/Н]:” жана кайра жүктөөдөн кийин, биз Winbox менен MAC аркылуу туташабыз. Бул этапта конфигурация жана колдонуучу базасы тазаланат.

1.2. Жаңы колдонуучуну түзүү:

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

анын астына кирип, демейкисин өчүрүңүз:

/user remove admin

Эскертүү. Демейки колдонуучуну өчүрүү жана өчүрүү автор коопсузураак деп эсептейт жана колдонууну сунуштайт.

1.3. Биз брандмауэрде, ачылыш жөндөөлөрүндө жана башка MAC серверлеринде иштөөнүн ыңгайлуулугу үчүн негизги интерфейс тизмелерин түзөбүз:

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

Комментарийлер менен интерфейстерге кол коюу

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

жана интерфейс тизмелерин толтуруңуз:

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

Эскертүү. Түшүнүктүү комментарийлерди жазуу буга сарпталган убакытты талап кылат, ошондой эле көйгөйлөрдү чечүүнү жана конфигурацияны түшүнүүнү бир топ жеңилдетет.

Автор коопсуздук максатында ether3 интерфейсин "WAN" интерфейсинин тизмесине кошууну зарыл деп эсептейт, бирок IP протоколу ал аркылуу өтпөйт.

Эфир3де PPP интерфейси көтөрүлгөндөн кийин, аны "WAN" интерфейсинин тизмесине кошуу керек экенин унутпаңыз.

1.4. Биз роутерди 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. Биз роутерди коргоо үчүн брандмауэр чыпкасынын эрежелеринин минималдуу жетиштүү топтомун түзөбүз:

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

(эреже туташкан тармактардан да, роутердин өзүнөн да башталган орнотулган жана ага байланыштуу байланыштарга уруксат берет)

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

(пинг жана пинг гана эмес. Бардык icmp уруксаты бар. MTU көйгөйлөрүн табуу үчүн абдан пайдалуу)

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

(киргизүү чынжырын жабуу эрежеси Интернеттен келген башка нерселердин баарына тыюу салат)

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

(эреже роутер аркылуу өтүүчү белгиленген жана ага байланыштуу байланыштарды берет)

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

(эреже роутер аркылуу өткөн байланыш абалы=жараксыз болгон байланыштарды калыбына келтирет. Бул Микротик тарабынан катуу сунушталат, бирок кээ бир сейрек учурларда пайдалуу трафикти бөгөттөп коюшу мүмкүн)

/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

(эреже Интернеттен келген жана dstnat процедурасынан өтпөгөн пакеттерге роутер аркылуу өтүүгө тыюу салат. Бул локалдык тармактарды биздин тышкы тармактарыбыз менен бир уктуруу доменинде болуп, тышкы IP даректерибизди каттоочу катары каттай турган бузукулардан коргойт. шлюз жана ошентип, биздин жергиликтүү тармактарды "изилдөөгө" аракет кыл.)

Эскертүү. LAN1 жана LAN2 тармактары ишенимдүү жана алардын ортосундагы жана алардын ортосундагы трафик чыпкаланбайт деп ойлойлу.

1.6. Багытталбаган тармактардын тизмеси менен тизме түзүңүз:

/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

(Бул Интернетке багытталбаган даректер менен тармактардын тизмеси жана ошого жараша аткарылат.)

Эскертүү. Тизме өзгөрүшү мүмкүн, ошондуктан мен мезгил-мезгили менен актуалдуулугун текшерип турууну сунуштайм.

1.7. Роутер үчүн DNSти орнотуңуз:

/ip dns set servers=1.1.1.1,8.8.8.8

Эскертүү. ROSтун учурдагы версиясында динамикалык серверлер статикалык серверлерден артыкчылыкка ээ. Атын чечүү талабы тизмедеги ирети менен биринчи серверге жөнөтүлөт. Кийинки серверге өтүү учурдагы сервер жеткиликсиз болгондо жүргүзүлөт. Тайм-аут чоң - 5 секунддан ашык. Артка кайтуу, "жыгылган сервер" кайра башталганда, автоматтык түрдө болбойт. Бул алгоритмди жана мультиван бар экендигин эске алып, автор провайдерлер тарабынан берилген серверлерди колдонбоону сунуштайт.

1.8. Жергиликтүү тармакты орнотуңуз.
1.8.1. LAN интерфейстеринде статикалык IP даректерди конфигурациялайбыз:

/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. Биз негизги маршруттук таблица аркылуу жергиликтүү тармактарга каттамдардын эрежелерин койдук:

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

Эскертүү. Бул демейки маршрут аркылуу өтпөгөн роутер интерфейстеринин тышкы IP даректеринин булактары менен LAN даректерине жетүүнүн тез жана оңой жолдорунун бири.

1.8.3. LAN1 жана LAN2 үчүн Hairpin NAT иштетүү:

/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

Эскертүү. Бул тармак ичинде жүргөндө тышкы IP аркылуу ресурстарыңызга (dstnat) кирүүгө мүмкүндүк берет.

2. Чынында, абдан туура multivan ишке ашыруу

"Алар сураган жерден жооп берүү" маселесин чечүү үчүн, биз эки ROS куралын колдонобуз: байланыш белгиси и маршруттук белги. байланыш белгиси каалаган байланышты белгилөөгө жана андан кийин колдонуу үчүн шарт катары бул белги менен иштөөгө мүмкүндүк берет маршруттук белги. Жана буга чейин менен маршруттук белги иштөөгө мүмкүн ip маршрут и жол эрежелери. Биз куралдарды аныктап алдык, эми сиз кайсы байланыштарды белгилөө керек экенин чечишиңиз керек - бир жолу, так кайда белгилөө керек - эки.

Биринчиси менен баары жөнөкөй - биз роутерге Интернеттен тиешелүү канал аркылуу келген бардык байланыштарды белгилешибиз керек. Биздин учурда, бул үч энбелги болот (каналдардын саны боюнча): "conn_isp1", "conn_isp2" жана "conn_isp3".

Экинчиси менен болгон нюанс, кирүүчү байланыштар эки түрдүү болот: транзиттик жана роутердин өзү үчүн арналгандар. Байланыш белгиси механизми таблицада иштейт бүтөбүз. Пакеттин кыймылын mikrotik-trainings.com ресурсунун адистери тарабынан түзүлгөн жөнөкөйлөштүрүлгөн диаграммада карап көрөлү (жарнама эмес):

Multivan жана Mikrotik RouterOS боюнча маршруттоо

Жебелерден кийин биз пакеттин "киргизүү интерфейси", чынжыр аркылуу өтөт "Алдын ала багыттоо” жана андан кийин гана ал блокто транзиттик жана жергиликтүү болуп бөлүнөт.Маршруттук чечим". Ошондуктан, бир таш менен эки канаттууларды өлтүрүү үчүн, биз колдонобуз Байланыш белгиси стол Mangle Алдын ала багыттоо чынжырлар Алдын ала багыттоо.

пикир. ROSдо "Багыттоо белгиси" энбелгилери Ip/Маршруттар/Эрежелер бөлүмүндө "Таблица" жана башка бөлүмдөрүндө "Багыттоо белгиси" катары көрсөтүлгөн. Бул түшүнүүгө кандайдыр бир баш аламандыктарды алып келиши мүмкүн, бирок, чындыгында, бул бир эле нерсе жана Linuxтагы iproute2деги rt_tables аналогу.

2.1. Биз ар бир провайдерден келген байланыштарды белгилейбиз:

/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

Эскертүү. Буга чейин белгиленген байланыштарды белгилебеш үчүн, мен байланыш-мамлекет=жаңы дегендин ордуна, байланыш-белги=белгиси жок шартты колдоном, анткени бул туурараак деп ойлойм, ошондой эле киргизүү чыпкасындагы жараксыз байланыштарды четке кагуу.


passthrough=жок - анткени бул ишке ашыруу методунда кайра белгилөө алынып салынган жана тездетүү үчүн биринчи дал келгенден кийин эрежелерди санап чыгууну үзгүлтүккө учуратсаңыз болот.

Азырынча биз маршруттук каттамга эч кандай кийлигишпей турганыбызды эстен чыгарбоо керек. Азыр даярдыктын этаптары гана калды. Ишке ашыруунун кийинки этабы локалдык тармакта белгиленген жерден белгиленген байланыш боюнча кайткан транзиттик трафикти кайра иштетүү болот. Ошол. (диаграмманы караңыз) жолдо роутер аркылуу өткөн пакеттер:

“Киргизүү интерфейси”=>”Алдын ала багыттоо”=>”Багыттоо чечими”=>”Алга”=>”Пост Маршруттоо”=>”Чыгуу интерфейси” жана локалдык тармакта алардын адресине жетти.

Маанилүү! ROSдо тышкы жана ички интерфейстерге логикалык бөлүнүү жок. Эгерде биз жооп пакетинин жолун жогорудагы диаграммага ылайык издесек, анда ал суроо-талаптагыдай логикалык жол менен барат:

“Киргизүү интерфейси”=>”Алдын ала багыттоо”=>”Багыттоо чечими”=>”Алга”=>”Пост Маршруттоо”=>”Чыгуу интерфейси” жөн гана өтүнүч үчүн"киргизүү Interface” ISP интерфейси, ал эми жооп үчүн - LAN

2.2. Биз транзиттик трафикти тиешелүү маршруттук таблицаларга багыттайбыз:

/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

Комментарий. in-interface-list=!WAN - биз роутердин өзүнүн интерфейстеринин дарегинин көздөгөн дареги жок локалдык тармактан жана dst-address-type=!local трафик менен гана иштейбиз.

Жолдо роутерге келген жергиликтүү пакеттер үчүн да:

“Киргизүү интерфейси”=>”Алдын ала багыттоо”=>”Багыттоо чечими”=>”Киргизүү”=>”Жергиликтүү процесс”

Маанилүү! Жооп төмөнкүдөй жол менен болот:

“Жергиликтүү процесс”=>”Багыттоо чечими”=>”Чыгуу”=>”Пост багыттоо”=>”Чыгуу интерфейси”

2.3. Биз жергиликтүү трафикти тиешелүү маршруттук таблицаларга багыттайбыз:

/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

Бул этапта суроо-талап келип түшкөн интернет-каналга жооп жөнөтүүгө даярдоо маселеси чечилди деп эсептесе болот. Бардыгы белгиленген, этикеткаланган жана багыттоого даяр.
Бул орнотуунун эң сонун “каптал” эффектиси бир эле учурда эки (ISP2, ISP3) провайдеринен DSNAT портунун багыттоосу менен иштөө мүмкүнчүлүгү. Такыр эмес, анткени ISP1де бизде маршруттук эмес дарек бар. Бул эффект, мисалы, ар кандай интернет каналдарын караган эки MX бар почта сервери үчүн маанилүү.

Тышкы IP роутерлор менен локалдык тармактардын иштөөсүнүн нюанстарын жоюу үчүн биз пункттардан алынган чечимдерди колдонобуз. 1.8.2 жана 3.1.2.6.

Мындан тышкары, маселенин 3-пунктун чечүү үчүн белгилер менен куралды колдоно аласыз. Биз аны төмөнкүдөй ишке ашырабыз:

2.4. Биз жергиликтүү кардарлардан трафикти маршруттук тизмелерден тиешелүү таблицаларга багыттайбыз:

/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

Натыйжада, ал төмөнкүдөй көрүнөт:

Multivan жана Mikrotik RouterOS боюнча маршруттоо

3. Интернет провайдерине туташууну орнотуп, бренддик маршрутту иштетиңиз

3.1. ISP1 менен байланышты орнотуу:
3.1.1. Статикалык IP даректи конфигурациялоо:

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

3.1.2. Статикалык маршрутту орнотуу:
3.1.2.1. Демейки "шашылыш" маршрутту кошуңуз:

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

Эскертүү. Бул маршрут жергиликтүү процесстерден келген трафикке кайсы бир провайдердин байланыштарынын абалына карабастан, Маршруттук чечимди кабыл алуу баскычынан өтүүгө мүмкүндүк берет. Чыгуучу локалдык трафиктин нюансы пакеттин жок дегенде бир жакка жылуусу үчүн негизги маршруттук таблицада демейки шлюзге активдүү маршрут болушу керек. Эгерде жок болсо, анда пакет жөн эле жок кылынат.

курал кеңейтүү катары шлюз текшерүү Каналдын абалын тереңирээк талдоо үчүн мен рекурсивдүү маршрут ыкмасын колдонууну сунуштайм. Методдун маңызы биз роутерге анын шлюзуна жолду түз эмес, ортодогу шлюз аркылуу издөөнү айтабыз. 4.2.2.1, 4.2.2.2 жана 4.2.2.3 тиешелүүлүгүнө жараша ISP1, ISP2 жана ISP3 үчүн "сыноо" шлюздары катары тандалат.

3.1.2.2. "Текшерүү" дарегине багыт:

/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

Эскертүү. Келечекте 4.2.2.1ди рекурсивдүү шлюз катары колдонуу үчүн ROS максаттуу чөйрөсүндө масштаб маанисин демейкиге түшүрөбүз. Мен баса белгилейм: “сыноо” дарегине баруучу каттамдын көлөмү тестирлөөгө шилтеме жасай турган маршруттун максаттуу көлөмүнөн аз же барабар болушу керек.

3.1.2.3. Маршруттук белгиси жок трафик үчүн рекурсивдүү демейки маршрут:

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

Эскертүү. Расстояние=2 мааниси колдонулат, анткени ISP1 тапшырма шарттарына ылайык биринчи камдык көчүрмө катары жарыяланган.

3.1.2.4. “to_isp1” маршруттук белгиси бар трафик үчүн рекурсивдүү демейки маршрут:

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

Эскертүү. Чынында, бул жерде биз акыры 2-пунктта жүргүзүлгөн даярдык иштеринин үзүрүн көрө баштадык.


Бул каттамда "to_isp1" белгиси бар бардык трафик, учурда негизги таблица үчүн кайсы демейки шлюз активдүү экендигине карабастан, биринчи провайдердин шлюзуна багытталат.

3.1.2.5. ISP2 жана 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

Эскертүү. Бул маршруттар башка нерселер менен катар “to_isp*” даректер тизмесине кирген локалдык тармактардан трафикти резервдөө үчүн керек.

3.1.2.6. Биз ISP1 аркылуу Интернетке роутердин жергиликтүү трафиги үчүн маршрутту каттайбыз:

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

Эскертүү. 1.8.2-пункттун эрежелери менен айкалышта, ал берилген булак менен керектүү каналга кирүүнү камсыз кылат. Бул жергиликтүү IP дарегин (EoIP, IP-IP, GRE) көрсөткөн туннелдерди куруу үчүн абдан маанилүү. IP маршрут эрежелериндеги эрежелер жогорудан ылдыйга чейин аткарылгандыктан, шарттардын биринчи дал келгенине чейин, бул эреже 1.8.2-пункттун эрежелеринен кийин болушу керек.

3.1.3. Биз чыгуучу трафик үчүн NAT эрежесин каттайбыз:

/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

Эскертүү. NATim, IPsec саясаттарына кирбеген нерселерден башкасынын бардыгын аткарыңыз. Мен өтө зарыл болбосо, action=masquerade колдонбогонго аракет кылам. Ал src-natга караганда жайыраак жана ресурсту көбүрөөк талап кылат, анткени ал ар бир жаңы туташуу үчүн NAT дарегин эсептейт.

3.1.4. Башка провайдерлер аркылуу кирүүгө тыюу салынган тизмедеги кардарларды 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

Эскертүү. action=route жогорураак артыкчылыкка ээ жана башка маршруттук эрежелердин алдында колдонулат.


place-befor=0 - биздин эрежени тизмеде биринчи орунга коёт.

3.2. ISP2 менен байланышты орнотуңуз.

ISP2 провайдери бизге орнотууларды DHCP аркылуу бергендиктен, DHCP кардары иштетилгенде башталган скрипт менен керектүү өзгөртүүлөрдү киргизүү акылга сыярлык:

/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 терезесинде:

Multivan жана Mikrotik RouterOS боюнча маршруттоо
Эскертүү. Сценарийдин биринчи бөлүгү ижара ийгиликтүү алынгандан кийин ишке кирет, экинчиси - ижарага берилгенден кийин.2 эскертүүнү караңыз

3.3. Биз ISP3 провайдери менен байланышты орноттук.

Орнотууларды камсыздоочу бизге динамикалык мүмкүнчүлүк бергендиктен, ppp интерфейси көтөрүлгөндөн кийин жана кулагандан кийин башталган скрипттер менен керектүү өзгөртүүлөрдү киргизүү жөндүү.

3.3.1. Алгач профилди конфигурациялайбыз:

/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 терезесинде:

Multivan жана Mikrotik RouterOS боюнча маршруттоо
Эскертүү. Сап
/ip брандмауэр mangle set [find comment="Interface ISP3"] in-interface=$"interface";
интерфейстин атын өзгөртүүнү туура чечүүгө мүмкүндүк берет, анткени ал дисплей аталышы менен эмес, анын коду менен иштейт.

3.3.2. Эми профилди колдонуп, 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

Акыркы тийүү катары, келгиле, саатты коелу:

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

Аягына чейин окугандар үчүн

Мультиванды ишке ашыруунун сунушталган жолу - бул автордун жеке каалоосу жана жалгыз мүмкүн эмес. ROS инструменттери кеңири жана ийкемдүү, бул, бир жагынан, үйрөнчүктөр үчүн кыйынчылыктарды жаратса, экинчи жагынан, анын популярдуулугунун себеби болуп саналат. Изилдөө, аракет кылуу, жаңы куралдарды жана чечимдерди табуу. Мисалы, алынган билимди колдонуу катары, мультиванды бул ишке ашырууда куралды алмаштырууга болот текшерүү шлюз чейин рекурсивдүү жолдор менен netwatch.

жазуулар

  1. текшерүү шлюз - шлюздун жеткиликтүүлүгүн эки ирет ийгиликсиз текшерүүдөн кийин маршрутту өчүрүүгө мүмкүндүк берүүчү механизм. Текшерүү ар бир 10 секундда аткарылат, ага кошумча жооп күтүү убактысы. Бардыгы болуп, иш жүзүндө которуштуруу убактысы 20-30 секунданын чегинде жатат. Мындай которуштуруу убактысы жетишсиз болсо, куралды колдонуу мүмкүнчүлүгү бар netwatch, бул жерде текшерүү таймерин кол менен коюуга болот. текшерүү шлюз шилтемеде үзгүлтүксүз пакет жоготууга күйбөйт.

    Маанилүү! Негизги маршрутту өчүрүү ага шилтеме кылган бардык башка маршруттарды өчүрөт. Ошондуктан, алар үчүн тактоо текшерүү шлюз = пинг кереги жок.

  2. Жаңыртуу абалына тыгылып калган кардар сыяктуу көрүнгөн DHCP механизминде мүчүлүштүктөр пайда болот. Бул учурда, сценарийдин экинчи бөлүгү иштебейт, бирок ал трафиктин туура жүрүүсүнө тоскоол болбойт, анткени мамлекет тиешелүү рекурсивдүү маршрутка көз салат.
  3. ECMP (Бирдей баадагы көп жол) - ROSдо бир нече шлюз менен жана бирдей аралыкта маршрутту коюуга болот. Бул учурда, байланыштар каналдар боюнча тегерек робин алгоритмин колдонуу менен, көрсөтүлгөн шлюздердин санына пропорционалдуу бөлүштүрүлөт.

Макаланы жазууга түрткү бергендиги үчүн, анын структурасын түзүүгө жана акценттерди жайгаштырууга жардам берүү - Евгенийге жеке ыраазычылык @jscar

Source: www.habr.com