Multivan болон Mikrotik RouterOS дээрх чиглүүлэлт

Танилцуулга

Нийтлэлийг авч үзэхэд дэмий хоосон зүйлээс гадна орос хэлээр ярьдаг телеграм нийгэмлэгийн профайл бүлгүүдэд энэ сэдвээр асуултууд урам хугарах давтамжтай байсантай холбоотой юм. Энэхүү нийтлэл нь шинэхэн Mikrotik 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. Зөвхөн ISP1-ээр дамжуулан интернетэд LAN1 сүлжээний хандалтыг зохион байгуул.
  3. Хаягийн жагсаалтад үндэслэн сонгосон үйлчилгээ үзүүлэгчээр дамжуулан дотоод сүлжээнээс интернет рүү урсгалыг чиглүүлэх боломжийг олгох.
  4. Дотоод сүлжээнээс интернетэд (DSTNAT) үйлчилгээг нийтлэх боломжийг олгох.
  5. Интернэтээс аюулгүй байдлыг хангахын тулд галт ханын шүүлтүүрийг тохируулна уу.
  6. Чиглүүлэгч нь сонгосон эх хаягаас хамааран гурван үйлчилгээ үзүүлэгчийн аль нэгээр дамжуулан өөрийн траффикийг гаргаж болно.
  7. Хариултын пакетуудыг ирсэн суваг руу (LAN-г оруулаад) чиглүүлсэн эсэхийг шалгаарай.

Сэтгэгдэл бичих. Хувилбараас хувилбар болгон өөрчлөгддөг "хайрцагнаас гадуур" эхлэх тохиргоонд гэнэтийн зүйл байхгүй байхын тулд бид чиглүүлэгчийг "эхнээс нь" тохируулах болно. Winbox-ыг тохиргооны хэрэгслээр сонгосон бөгөөд өөрчлөлтийг нүдээр харуулах болно. Тохиргоог өөрөө Winbox терминал дахь командуудаар тохируулна. Тохиргооны физик холболт нь Ether5 интерфейстэй шууд холболтоор хийгддэг.

Мультиван гэж юу вэ, энэ нь асуудал уу, эсвэл хуйвалдааны сүлжээг тойрон зальтай ухаалаг хүмүүс байна уу гэсэн бага зэрэг үндэслэлтэй.

Сонирхолтой, анхааралтай администратор ийм эсвэл үүнтэй төстэй схемийг өөрөө зохион байгуулж, энэ нь аль хэдийн хэвийн ажиллаж байгааг гэнэт ойлгов. Тийм ээ, тийм ээ, энэ сэдвээр ихэнх нийтлэлүүдээр дүүрэн байдаг таны чиглүүлэлтийн хүснэгт болон бусад маршрутын дүрэм байхгүй. Шалгацгаая?

Бид интерфэйс болон анхдагч гарцууд дээр хаяглах тохиргоог хийж болох уу? Тийм:

ISP1 дээр хаяг болон гарцыг бүртгүүлсэн зай=2 и шалгах гарц=пинг.
ISP2 дээр анхдагч dhcp клиент тохиргоо - үүний дагуу зай нь нэгтэй тэнцүү байх болно.
ISP3 дээр pppoe клиентийн тохиргоонд хэзээ add-default-route=тийм тавих анхдагч-маршрут-зай=3.

Гарахдаа NAT бүртгүүлэхээ мартуузай.

/IP галт хана nat add action=masquerade chain=srcnat out-interface-list=WAN

Үүний үр дүнд орон нутгийн сайтуудын хэрэглэгчид үндсэн ISP2 үйлчилгээ үзүүлэгчээр дамжуулан муур татаж авахдаа хөгжилтэй байдаг бөгөөд механизмыг ашиглан сувгийн захиалга байдаг. гарц шалгах Тайлбар 1-ийг үзнэ үү

Даалгаврын 1-р заалт хэрэгжиж байна. Тэмдэгтэй мультиван хаана байна? Үгүй...

Цаашид. Та ISP1-ээр дамжуулан LAN-аас тодорхой үйлчлүүлэгчдийг гаргах хэрэгтэй:

/ip галт ханын mangle add action=маршрутын хэлхээ=prerouting dst-address-list=!BOGONS
дамжуулалт=тийм route-dst=100.66.66.1 src-address-list=Via_ISP1
/ip галт ханын mangle add action=маршрутын хэлхээ=prerouting dst-address-list=!BOGONS
дамжуулалт=маршрут байхгүй-dst=100.66.66.1 src-хаяг=192.168.88.0/24

Уг даалгаврын 2, 3-р зүйлийг хэрэгжүүлсэн. Шошго, тамга, маршрутын дүрэм, чи хаана байна?!

Интернэтээс үйлчлүүлэгчдэд зориулсан 172.17.17.17 хаягтай дуртай OpenVPN сервертээ хандах эрх өгөх шаардлагатай байна уу? Та бүхэн:

/ip үүл багц ddns-enabled=тийм

Үе тэнгийн хувьд бид үйлчлүүлэгчид дараах үр дүнг өгдөг.: тавих [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-р зүйлийг залхуугаар авч үздэг. Бид бодож байна - бидэнд хэрэгтэй юу? Гэсэн хэдий ч, энэ нь ийм байдлаар ажилладаг (c) ... Тэгэхээр, хэрэв энэ нь шаардлагагүй хэвээр байгаа бол тэр л байна. Multivan хэрэгжсэн.

Multivan гэж юу вэ? Энэ нь хэд хэдэн интернет сувгийг нэг чиглүүлэгчтэй холбох явдал юм.

Та нийтлэлийг цааш нь унших шаардлагагүй, учир нь эргэлзээтэй хэрэглэгдэхүүнийг харуулахаас өөр юу байж болох вэ?

Үлдсэн, даалгаврын 6, 7-р зүйлийг сонирхож байгаа, мөн төгс төгөлдөр байдлын загатнаа мэдэрдэг хүмүүсийн хувьд бид илүү гүнзгий шумбаж байна.

Мультиван машиныг хэрэгжүүлэх хамгийн чухал ажил бол хөдөлгөөний зөв чиглүүлэлт юм. Тухайлбал: аль (эсвэл аль) харснаас үл хамааран. Тайлбар 3 ISP-ийн суваг(ууд) нь манай чиглүүлэгч дээрх анхдагч маршрутыг харвал энэ нь пакет ирсэн сувагт хариу өгөх ёстой. Даалгавар тодорхой. Асуудал хаана байна вэ? Үнэн хэрэгтээ, энгийн дотоод сүлжээнд даалгавар нь адилхан боловч хэн ч нэмэлт тохиргоонд төвөг учруулдаггүй бөгөөд асуудал үүсгэдэггүй. Үүний ялгаа нь Интернэт дэх ямар ч чиглүүлэлтийн зангилаа нь энгийн LAN-д байдаг шиг нарийн тодорхой нэгээр биш харин манай суваг тус бүрээр дамжуулан хандах боломжтой юм. "Асуудал" нь хэрэв ISP3-ийн IP хаягийг авах хүсэлт бидэнд ирсэн бол бидний хувьд хариулт нь ISP2 сувгаар дамжих болно, учир нь үндсэн гарц нь тийшээ чиглэгддэг. Навч, үйлчилгээ үзүүлэгч буруу гэж хаях болно. Асуудлыг тодорхойлсон. Үүнийг хэрхэн шийдвэрлэх вэ?

Шийдэл нь гурван үе шатанд хуваагдана.

  1. Урьдчилан тохируулж байна. Энэ үе шатанд чиглүүлэгчийн үндсэн тохиргоог хийх болно: дотоод сүлжээ, галт хана, хаягийн жагсаалт, үсний хавчаар NAT гэх мэт.
  2. Мультиван. Энэ үе шатанд шаардлагатай холболтуудыг тэмдэглэж, чиглүүлэлтийн хүснэгтэд ангилах болно.
  3. ISP-тэй холбогдож байна. Энэ үе шатанд интернетэд холбогдох интерфэйсүүдийг тохируулж, чиглүүлэлт, интернетийн сувгийн захиалгын механизмыг идэвхжүүлнэ.

1. Урьдчилан тохируулах

1.1. Бид чиглүүлэгчийн тохиргоог дараах тушаалаар арилгадаг.

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

санал нийлж байна"Аюултай! Ямар ч байсан дахин тохируулах уу? [y/N]:” мөн дахин ачаалсны дараа бид 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"

Сэтгэгдэл бичих. Ойлгомжтой сэтгэгдэл бичих нь үүнд зарцуулсан цаг хугацаа бөгөөд алдааг олж засварлах, тохиргоог ойлгоход ихээхэн тус болно.

Зохиогч нь IP протоколоор дамжихгүй ч гэсэн аюулгүй байдлын үүднээс ether3 интерфейсийг "WAN" интерфейсийн жагсаалтад нэмэх шаардлагатай гэж үзэж байна.

Ether3 дээр 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

(ping зөвхөн ping биш. Бүх 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

(Дүрэм нь чиглүүлэгчээр дамжин өнгөрөх холболт-төлөв=хүчингүй холболтыг дахин тохируулдаг. Үүнийг Mikrotik зөвлөж байна, гэхдээ зарим ховор тохиолдолд энэ нь ашигтай урсгалыг хааж болно)

/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-д үсний хавчаар 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/Routes/Rules хэсэгт "Хүснэгт", бусад хэсэгт "Routing Mark" гэж бичигдсэн байдаг. Энэ нь ойлгоход зарим нэг төөрөгдөл үүсгэж болох ч үнэн хэрэгтээ энэ нь ижил зүйл бөгөөд 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-д гадаад болон дотоод интерфейс гэж логик хуваагдал байдаггүй. Хэрэв бид дээрх диаграмын дагуу хариултын багцын замыг дагаж мөрдвөл энэ нь хүсэлттэй ижил логик замыг дагах болно.

“Оролтын интерфэйс”=>”Өмнөх чиглүүлэлт”=>”Чилүүлэлтийн шийдвэр”=>”Урагшаа”=>”Шилүүлэлтийн дараах”=>”Гаралтын интерфэйс” зүгээр л хүсэлтээр"Оролтын интерфейс” нь 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. ISP-тэй холболтыг тохируулж, брендийн чиглүүлэлтийн горимыг идэвхжүүлнэ

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

Сэтгэгдэл бичих. ISP2-ийг ажлын нөхцлийн дагуу эхний нөөц гэж зарласан тул зай=1 утгыг ашигласан.

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

Сэтгэгдэл бичих. IPsec-ийн бодлогод ордог зүйлээс бусад бүх зүйлийг NATim. Онцын шаардлагагүй бол action=masquerade ашиглахгүй байхыг хичээдэг. Энэ нь шинэ холболт бүрт NAT хаягийг тооцдог тул src-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-before=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 from 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

Эцсээ хүртэл уншдаг хүмүүст зориулав

Multivan-ыг хэрэгжүүлэх санал болгож буй арга нь зохиогчийн хувийн сонголт бөгөөд цорын ганц боломжтой зүйл биш юм. ROS хэрэгслийн хэрэгсэл нь өргөн цар хүрээтэй, уян хатан байдаг бөгөөд энэ нь нэг талаас эхлэгчдэд хүндрэл учруулдаг бөгөөд нөгөө талаас түүний алдартай болсон шалтгаан юм. Шинэ арга хэрэгсэл, шийдлүүдийг сурч, туршиж үзээрэй. Жишээлбэл, олж авсан мэдлэгээ ашиглахын тулд энэ хэрэглүүрийг олон оврын автомашинаар солих боломжтой шалгах гарц хүртэлх рекурсив маршруттай сүлжээ цаг.

Тэмдэглэл

  1. шалгах гарц - гарцыг хоёр удаа дараалан амжилтгүй шалгасны дараа маршрутыг идэвхгүй болгох боломжийг олгодог механизм. Шалгалтыг 10 секунд тутамд нэг удаа хийж, хариу өгөх хугацааг нэмдэг. Нийтдээ бодит шилжих хугацаа 20-30 секундын хооронд байна. Хэрэв ийм солих хугацаа хангалтгүй бол уг хэрэгслийг ашиглах сонголт бий сүлжээ цаг, шалгах таймерыг гараар тохируулах боломжтой. шалгах гарц холбоос дээр тасалдсан пакет алдагдах үед асахгүй.

    Чухал! Үндсэн чиглэлийг идэвхгүй болгосноор түүнд хамаарах бусад бүх маршрут идэвхгүй болно. Тиймээс тэдэнд зааж өгөх хэрэгтэй шалгах гарц=пинг хэрэгцээгүй.

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

Өгүүллийг бичихэд түлхэц өгөхийн тулд түүний бүтцийг бүрдүүлэх, өргөлтийг байрлуулахад туслаарай - Евгений хувийн талархал. @jscar

Эх сурвалж: www.habr.com