Giriş
Kibirin yanı sıra, Rusça konuşan telgraf topluluğunun uzman gruplarında bu konuyla ilgili iç karartıcı soruların sıklığı beni makaleyi ele almaya sevk etti. Makale, Mikrotik RouterOS'un (bundan sonra ROS olarak anılacaktır) acemi yöneticilerine yöneliktir. Yönlendirmeye önem vererek yalnızca multivanları dikkate alır. Bonus olarak, güvenli ve rahat çalışmayı sağlamak için minimum düzeyde yeterli ayarlar vardır. Kuyruklar, yük dengeleme, vlan'lar, köprüler, kanal durumunun çok aşamalı derin analizi ve benzeri konularda tartışma arayanlar, okumak için zaman ve çaba harcamayabilir.
Ham veriler
Test konusu olarak ROS sürüm 6.45.3'e sahip beş bağlantı noktalı Mikrotik yönlendirici seçildi. Trafiği iki yerel ağ (LAN1 ve LAN2) ve üç sağlayıcı (ISP1, ISP2, ISP3) arasında yönlendirecektir. ISP1 kanalının statik bir "gri" adresi vardır, ISP2'nin DHCP yoluyla alınan "beyaz" bir adresi vardır, ISP3'ün PPPoE yetkilendirmesine sahip "beyaz" bir adresi vardır. Bağlantı şeması şekilde gösterilmektedir:

Görev, “MTK” yönlendiricisini şemaya göre yapılandırmaktır, böylece:
- Bir yedekleme sağlayıcısına otomatik geçiş yapılmasını sağlayın. Ana sağlayıcı ISP2, ilk yedek ISP1, ikinci yedek ISP3'tür.
- LAN1 ağının internete erişimini yalnızca ISP1 aracılığıyla düzenleyin.
- Adres listesine göre seçilen sağlayıcı aracılığıyla trafiği yerel ağlardan İnternet'e yönlendirme yeteneği sağlayın.
- Yerel ağdan İnternet'e (DSTNAT) hizmet yayınlama yeteneği sağlayın
- Minimum düzeyde yeterli İnternet güvenliği sağlamak için bir güvenlik duvarı filtresi yapılandırın.
- Yönlendirici, seçilen kaynak adresine bağlı olarak kendi trafiğini üç sağlayıcıdan herhangi biri aracılığıyla serbest bırakabilir.
- Yanıt paketlerinin geldikleri kanala (LAN dahil) yönlendirildiğinden emin olun.
Not. Sürümden sürüme değişen, kullanıma hazır başlangıç yapılandırmalarında sürpriz olmamasını sağlamak için yönlendiriciyi "sıfırdan" yapılandıracağız. Değişikliklerin görsel olarak görüntüleneceği yapılandırma aracı olarak Winbox seçilir. Ayarların kendisi Winbox terminalindeki komutlar tarafından belirlenecektir. Konfigürasyon için fiziksel bağlantı, Ether5 arayüzüne doğrudan bağlantı ile yapılır.
Multivan'ın ne olduğu hakkında küçük bir tartışma, bu bir sorun mu yoksa etrafta bir komplo ağı ören kurnaz akıllı insanlar mı?
Bağımsız olarak böyle veya benzer bir plan kuran meraklı ve özenli bir yönetici, birdenbire bunun yine de iyi çalıştığını fark eder. Evet, evet, bu özel yönlendirme tabloları ve bu konudaki çoğu makalenin dolu olduğu diğer yönlendirme kuralları olmadan. Kontrol edelim mi?
Arayüzlerde ve varsayılan ağ geçitlerinde adreslemeyi yapılandırabilir miyiz? Evet:
ISP1'de adresi ve ağ geçidini kaydettik mesafe=2 и check-gateway=ping.
ISP2'de varsayılan dhcp istemci ayarı mesafenin bire eşit olacağı şeklindedir.
ISP3'te pppoe istemci ayarlarında add-default-route=evet koymak varsayılan-rota-mesafesi=3.
Çıkışta NAT'ı ayarlamayı unutmayın:
/ip güvenlik duvarı nat add action=maskeli balo zinciri=srcnat out-interface-list=WAN
Sonuç olarak, LAN kullanıcıları ana ISP2 sağlayıcısı aracılığıyla kedileri mutlu bir şekilde indirir ve bir mekanizma kullanarak kanal rezervasyonu yaptırır. ağ geçidini kontrol et Bkz. not 1
Görevin 1. noktası uygulandı. Etiketleriyle birlikte multivan nerede? HAYIR…
Daha öte. Belirli istemcileri ISP1 aracılığıyla LAN'dan çıkarmanız gerekir:
/ip güvenlik duvarı mangle add action=rota zinciri=ön yönlendirme dst-address-list=!BOGONS
geçiş=evet rota-dst=100.66.66.1 src-address-list=Via_ISP1
/ip güvenlik duvarı mangle add action=rota zinciri=ön yönlendirme dst-address-list=!BOGONS
geçiş=yol yok-dst=100.66.66.1 src-adresi=192.168.88.0/24
Görevin 2. ve 3. maddeleri uygulandı. Etiketler, markalar, rota kuralları, neredesin?!
Favorilerinize erişim izni vermeniz gerekiyor. OpenVPN İnternetten gelen istemciler için 172.17.17.17 adresli sunucu mu? Lütfen:
/ip cloud set ddns-etkin=evet
Müşterilere çıktı sonucunu eş olarak veriyoruz: ":put [ip bulutu dns adını al]başlıklı bir kılavuz yayınladı
İnternetten bağlantı noktası yönlendirmeyi kaydediyoruz:
/ip güvenlik duvarı nat add action=dst-nat zinciri=dstnat dst-port=1194
arayüz içi liste=WAN protokolü=adreslere udp=172.17.17.17
4. nokta hazır.
5. nokta için bir güvenlik duvarı ve diğer güvenlik önlemlerini aldık, aynı zamanda kullanıcılar için her şeyin zaten çalışıyor olmasından mutluyuz ve en sevdikleri içeceğin bulunduğu kaba ulaşıyoruz...
A! Tüneller hâlâ unutuldu.
Google'da aranan bir makaleye dayalı olarak yapılandırılmış bir l2tp istemcisi favori Hollanda VDS'nize yükseldi mi? Evet.
IPsec'li l2tp sunucusu çalışıyor ve IP Bulutundan (yukarı bakın) DNS adını kullanan istemciler bağlanıyor mu? Evet.
Sandalyede arkamıza yaslanıp içkimizi yudumlarken tembel tembel sorunun 6. ve 7. noktalarını düşünüyoruz. Düşünüyoruz - buna ihtiyacımız var mı? Hala bu şekilde çalışıyor (c)… Yani eğer ihtiyaç yoksa, o kadar. Multivan uygulandı.
Multivan nedir? Bu, birkaç İnternet kanalını bir yönlendiriciye bağlamaktır.
Makalenin geri kalanını okumanıza gerek yok, çünkü şüpheli uygulanabilirliği göstermekten başka ne olabilir?
Geriye kalanlar, işin 6. ve 7. noktalarıyla ilgilenen ve aynı zamanda mükemmeliyetçiliğin kaşıntısını hissedenlerle daha derine inelim.
Multivan uygulamasının en önemli görevi trafiğin doğru yönlendirilmesidir. Yani: hangisinde (veya hangisinde) olursa olsun. not 3 sağlayıcının kanal(lar)ı yönlendiricimizdeki varsayılan rotaya bakar, yanıtı tam olarak paketin geldiği kanala döndürmelidir. Görev açıktır. Sorun nerede? Sonuçta, basit bir yerel ağda görev aynıdır, ancak kimse ek ayarlarla uğraşmaz ve sorun hissetmez. Aradaki fark, İnternet'teki yönlendirilen herhangi bir düğüme, basit bir LAN'da olduğu gibi kesin olarak belirli bir kanal aracılığıyla değil, kanallarımızın her biri aracılığıyla erişilebilmesidir. Ve "sorun" şu ki, eğer ISP3'ün IP adresine bir istek alırsak, o zaman bizim durumumuzda, varsayılan ağ geçidi oraya yönlendirildiği için yanıt ISP2 kanalı üzerinden gidecektir. Ortadan kaybolacak ve sağlayıcı tarafından hatalı olduğu gerekçesiyle atılacaktır. Soruna karar verildi. Nasıl çözeceksin?
Çözümü üç aşamaya ayıracağız:
- Ön ayar. Bu aşamada yönlendiricinin temel ayarları yapılacaktır: yerel ağ, güvenlik duvarı, adres listeleri, keskin NAT vb.
- Multivan. Bu aşamada gerekli bağlantılar işaretlenecek ve yönlendirme tablolarına göre sıralanacaktır.
- ISP'ye bağlantı. Bu aşamada internet bağlantısını sağlayacak arayüzler yapılandırılacak, yönlendirme yapılacak ve internet kanallarını rezerve etme mekanizması aktif hale getirilecektir.
1. Ön ayar
1.1. Yönlendirici yapılandırmasını şu komutla temizliyoruz:
/system reset-configuration skip-backup=yes no-defaults=yes" ile aynı fikirdeyizTehlikeli! Yine de sıfırlansın mı? [e/h]:” ve yeniden başlattıktan sonra Winbox'a MAC üzerinden bağlanıyoruz. Bu aşamada konfigürasyon ve kullanıcı tabanı temizlenir.
1.2. Yeni bir kullanıcı oluşturun:
/user add group=full name=knight password=ultrasecret comment=”Not horse”Altına giriş yapın ve varsayılan olanı silin:
/user remove adminNot. Yazar, varsayılan kullanıcıyı devre dışı bırakmak yerine silmenin daha güvenli olacağını düşünüyor ve kullanılmasını öneriyor.
1.3. Güvenlik duvarında, keşif ayarlarında ve diğer MAC sunucularında kullanım kolaylığı için temel arayüz listeleri oluşturuyoruz:
/interface list add name=WAN comment="For Internet"
/interface list add name=LAN comment="For Local Area"Arayüzleri yorumlarla imzalama
/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"ve arayüz listelerini 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"
Not. Net yorumlar yazmak, üzerinde harcanan zamana değer, ayrıca sorun gidermeyi ve yapılandırmayı anlamayı çok daha kolay hale getirir.
Yazar, IP protokolünün üzerinden geçmeyecek olmasına rağmen, güvenlik nedeniyle ether3 arayüzünü “WAN” arayüz listesine eklemenin gerekli olduğunu düşünüyor.
PPP arayüzünün eter3'te yükseltilmesinden sonra, "WAN" arayüz listesine de eklenmesi gerekeceğini unutmayın.
1.4. Yönlendiriciyi mahalle tespitinden ve MAC aracılığıyla sağlayıcı ağlarının kontrolünden gizliyoruz:
/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=LAN1.5. Yönlendiriciyi korumak için minimum yeterli güvenlik duvarı filtre kuralları kümesi oluşturuyoruz:
/ip firewall filter add action=accept chain=input comment="Related Established Untracked Allow"
connection-state=established,related,untracked(kural, hem bağlı ağlardan hem de yönlendiricinin kendisi tarafından başlatılan kurulu ve ilgili bağlantılara izin verir)
/ip firewall filter add action=accept chain=input comment="ICMP from ALL" protocol=icmp(sadece ping değil, ping. Girişte tüm icmp'lere izin verilir. MTU ile ilgili sorunları bulmak için çok faydalıdır)
/ip firewall filter add action=drop chain=input comment="All other WAN Drop" in-interface-list=WAN(Giriş zincirini kapatan kural, İnternetten gelen her şeyi yasaklar)
/ip firewall filter add action=accept chain=forward
comment="Established, Related, Untracked allow"
connection-state=established,related,untracked(kural, yönlendiriciden geçen yerleşik ve ilgili bağlantılara izin verir)
/ip firewall filter add action=drop chain=forward comment="Invalid drop" connection-state=invalid(kural, yönlendiriciden geçen bağlantı durumu=geçersiz olan bağlantıları sıfırlar. Mikrotik tarafından şiddetle tavsiye edilir, ancak bazı nadir durumlarda yararlı trafiği engelleyebilir)
/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(kural, İnternet'ten gelen ve dstnat prosedürünü geçmeyen paketlerin yönlendiriciden geçmesini yasaklar. Bu, yerel ağları, harici ağlarımızla aynı yayın alanında bulunan ve harici IP'lerimizi bir ağ olarak kaydeden saldırganlardan koruyacaktır. ağ geçidini açın ve böylece yerel ağlarımızı “keşfetmeyi” deneyin)
Not. LAN1 ve LAN2 ağlarının güvenilir olduğunu ve aralarındaki ve bunlardan gelen trafiğin filtrelenmediğini varsayalım.
1.6. Yönlendirilemeyen ağların listesini içeren bir liste oluşturuyoruz:
/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'e yönlendirilmeyen adreslerin ve ağların bir listesidir ve buna göre biz de bunu takip edeceğiz.)
Not. Liste değişebilir, bu nedenle alaka düzeyini periyodik olarak kontrol etmenizi tavsiye ederim.
1.7. Yönlendiricinin kendisi için DNS'yi yapılandırıyoruz:
/ip dns set servers=1.1.1.1,8.8.8.8Not. ROS'un mevcut sürümünde, dinamik sunucular Statik olarak atanmış olanlara göre öncelikleri vardır. Bir isim çözümleme isteği listedeki ilk sunucuya gönderilir. Mevcut sunucu kullanılamıyorsa bir sonraki sunucu seçilir. Zaman aşımı uzundur—5 saniyeden fazla. "Çevrimdışı sunucu" tekrar çevrimiçi olduğunda önceki sunucuya otomatik olarak geri dönülmez. Bu algoritma ve multivan'ın varlığı göz önüne alındığında, yazar ISS'ler tarafından sağlanan sunucuları kullanmamayı önermektedir.
1.8. Yerel bir ağ kurma.
1.8.1. Yerel ağ arayüzlerinde statik IP adreslerini yapılandırıyoruz:
/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. Ana yönlendirme tablosu aracılığıyla yerel ağlarımıza rota kuralları belirliyoruz:
/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"Not. Bu, varsayılan rotanın geçmediği yönlendirici arayüzlerinin harici IP adresi kaynaklarıyla yerel ağ adreslerine erişmenin basit ve hızlı yollarından biridir.
1.8.3. LAN1 ve LAN2 için Hairpin NAT'ı etkinleştirin:
/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.0Not. Bu, ağ içindeyken kaynaklarınıza (dstnat) harici IP üzerinden erişmenizi sağlar.
2. Aslında bu çok doğru multivanın uygulanması
"Sorulduğu yere cevap verme" problemini çözmek için iki ROS aracı kullanacağız: bağlantı işareti и yönlendirme işareti. bağlantı işareti İstediğiniz bağlantıyı işaretlemenize ve daha sonra başvuru koşulu olarak bu işaretle çalışmanıza olanak tanır yönlendirme işareti. Ve zaten onunla yönlendirme işareti çalışmak mümkün ip yolu и rota kuralları. Araçları sıraladık, şimdi hangi bağlantıları işaretleyeceğimize karar vermemiz gerekiyor - bir, tam olarak nerede işaretleneceğine - iki.
İlkinde her şey basit - İnternetten yönlendiriciye gelen tüm bağlantıları uygun kanal üzerinden işaretlememiz gerekiyor. Bizim durumumuzda bunlar üç etiket olacaktır (kanal sayısına göre): "conn_isp1", "conn_isp2" ve "conn_isp3".
İkincisinin nüansı, gelen bağlantıların iki türden olması: transit ve yönlendiricinin kendisine yönelik olanlar. Bağlantı işareti mekanizması tabloda çalışır bozmak. Paketin hareketine mikrotik-trainings.com kaynağından uzmanlar tarafından nazikçe derlenen basitleştirilmiş bir şema üzerinde bakalım (reklam değil):

Okları takip ettiğimizde paketin “” noktasına geldiğini görüyoruz.giriş arabirimi”, zincir boyunca ilerliyor”Ön yönlendirme” ve ancak o zaman blokta transit ve yerel olarak ayrılır”Yönlendirme Kararı" Bu nedenle bir taşla iki kuş vurmak için kullanacağız. Bağlantı İşareti masada Mangle Ön Yönlendirme zincirler Ön yönlendirme.
Dikkat. ROS'ta “Yönlendirme işaretleri” IP/Routes/Rules bölümünde “Tablo”, diğer bölümlerde ise “Yönlendirme İşareti” olarak belirtilmektedir. Bu, anlamada bazı karışıklığa neden olabilir, ancak özünde aynı şeydir ve Linux'ta iproute2'deki rt_tables'ın bir benzeridir.
2.1. Her sağlayıcıdan gelen bağlantıları işaretliyoruz:
/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=noNot. Zaten işaretlenmiş bağlantıları işaretlememek için, bağlantı-durumu=yeni yerine bağlantı-mark=no-mark koşulunu kullanıyorum çünkü bunun daha doğru olduğunu düşünüyorum ve geçersiz bağlantıları giriş filtresine bırakmayı da reddediyorum.
passthrough=no - çünkü bu uygulama yönteminde yeniden etiketleme hariç tutulmuştur ve hızlandırmak için ilk eşleşmeden sonra kuralların aranmasını kesebilirsiniz.
Henüz yönlendirmeye hiçbir şekilde müdahale etmediğimizi unutmamak gerekir. Şimdilik sadece hazırlık aşamaları devam ediyor. Uygulamanın bir sonraki aşaması, yerel ağdaki bir hedeften kurulu bir bağlantı üzerinden dönen transit trafiğinin işlenmesi olacaktır. Onlar. yol boyunca yönlendiriciden geçen paketler (şemaya bakın):
“Giriş Arayüzü”=>”Ön Yönlendirme”=>”Yönlendirme Kararı”=>”İleri”=>”Yönlendirme Sonrası”=>”Çıkış Arayüzü” ve yerel ağdaki hedeflerine ulaştılar.
Önemli! ROS'ta harici ve dahili arayüzlere mantıksal bir bölünme yoktur. Yanıt paketinin yolunu yukarıdaki şemaya göre izlerseniz, istekle aynı mantıksal yolu izleyecektir:
“Giriş Arayüzü”=>”Ön Yönlendirme”=>”Yönlendirme Kararı”=>”İleri”=>”Yönlendirme Sonrası”=>”Çıkış Arayüzü” sadece istemek için"giriş Arabirim” bir ISP arayüzü vardı ve cevap için bir LAN vardı
2.2. Müdahale toplu taşıma trafiğini uygun yönlendirme tablolarına göre yönlendiriyoruz:
/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=noYorum. in-interface-list=!WAN - yalnızca yerel ağdan gelen trafikle ve yönlendiricinin kendi arayüzlerinin hedef adresine sahip olmayan dst-address-type=!local ile çalışıyoruz.
Aynı durum yönlendiriciye yol boyunca ulaşan yerel paketler için de geçerlidir:
“Giriş Arayüzü”=>”Ön Yönlendirme”=>”Yönlendirme Kararı”=>”Giriş”=>”Yerel Süreç”
Önemli! Cevap aşağıdaki yolda ilerleyecektir:
”Yerel Süreç”=>”Yönlendirme Kararı”=>”Output”=>”Yönlendirme Sonrası”=>”Çıkış Arayüzü”
2.3. Yanıt yerel trafiğini uygun yönlendirme tabloları aracılığıyla yönlendiriyoruz:
/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=noBu aşamada talebin geldiği internet kanalına yanıt göndermeye hazırlanma görevi çözülmüş sayılabilir. Her şey etiketlendi, etiketlendi ve yönlendirilmeye hazır.
Bu kurulumun mükemmel bir "yan" etkisi, DSNAT bağlantı noktalarını her iki (ISP2, ISP3) sağlayıcıdan aynı anda iletme yeteneğidir. ISP1'de yönlendirilebilir bir adresimiz olmadığından hepsinde değil. Bu etki, örneğin farklı İnternet kanallarına bakan iki MX'li bir posta sunucusu için önemlidir.
Yerel ağların harici IP yönlendiricilerle çalışmasının nüanslarını ortadan kaldırmak için paragraflardaki çözümleri kullanıyoruz. 1.8.2 ve 3.1.2.6.
Ayrıca sorunun 3. noktasını çözmek için işaretli bir araç kullanabilirsiniz. Bunu şu şekilde uygulayalım:
2.4. Yerel istemcilerden gelen trafiği yönlendirme listelerinden uygun tablolara yönlendiriyoruz:
/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_ISP3Toplamda şöyle bir şeye benziyor:

3. İSS'ye bağlantı kurun ve markaya göre yönlendirmeyi etkinleştirin
3.1. ISP1 ile bağlantı kurma:
3.1.1. Statik bir IP adresi yapılandırın:
/ip address add interface=ether1 address=100.66.66.2/30 comment="ISP1 IP"3.1.2. Statik yönlendirmeyi ayarlama:
3.1.2.1. Varsayılan bir “acil durum” rotası ekleyin:
/ip route add comment="Emergency route" distance=254 type=blackholeNot. Bu rota, sağlayıcılardan herhangi birinin bağlantılarının durumu ne olursa olsun, yerel süreçlerden gelen trafiğin Rota Kararı aşamasını geçmesine olanak tanır. Giden yerel trafiğin nüansı, paketin herhangi bir yere taşınması için ana yönlendirme tablosunda varsayılan ağ geçidine giden aktif bir rotanın bulunması gerektiğidir. Eğer orada değilse, paket basitçe imha edilecektir.
Aracın bir uzantısı olarak ağ geçidini kontrol et Kanal durumunun daha derin bir analizi için özyinelemeli rotalar yöntemini kullanmanızı öneririm. Yöntemin özü, yönlendiriciye ağ geçidine giden yolu doğrudan değil, bir ara ağ geçidi aracılığıyla aramasını söylememizdir. 4.2.2.1, 4.2.2.2 ve 4.2.2.3 sırasıyla ISP1, ISP2 ve ISP3 için "test" ağ geçitleri olarak seçilecektir.
3.1.2.2. “Doğrulama” adresine rota:
/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=10Not. Gelecekte 4.2.2.1'i özyinelemeli bir ağ geçidi olarak kullanmak için ROS hedef kapsamındaki kapsam değerini varsayılana düşürüyoruz. Şunu vurguluyorum: “test” adresine giden rotanın kapsamı, test adresine atıfta bulunacak rotanın hedef kapsamından küçük veya ona eşit olmalıdır.
3.1.2.3. Yönlendirme işareti olmayan trafik için varsayılan özyinelemeli rota:
/ip route add comment="Unmarked via ISP1" distance=2 gateway=4.2.2.1Not. ISP2, görevin koşullarına göre ilk yedek olarak bildirildiğinden mesafe=1 değeri kullanılır.
3.1.2.4. “to_isp1” yönlendirme işaretine sahip trafik için varsayılan özyinelemeli rota:
/ip route add comment="Marked via ISP1 Main" distance=1 gateway=4.2.2.1
routing-mark=to_isp1Not. Aslında 2. maddede yürütülen hazırlık çalışmalarının meyvelerini nihayet burada almaya başlıyoruz.
Bu rota boyunca, "to_isp1" rotasına sahip tüm trafik, ana tablo için o anda hangi varsayılan ağ geçidinin aktif olduğuna bakılmaksızın, ilk sağlayıcının ağ geçidine yönlendirilecektir.
3.1.2.5. ISP2 ve ISP3 etiketli trafik için ilk varsayılan geri dönüş özyinelemeli rota:
/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_isp3Not. Bu rotalar, diğer şeylerin yanı sıra, "to_isp*" adres listesinin üyesi olan yerel ağlardan gelen trafiği ayırmak için gereklidir.
3.1.2.6. Yönlendiricinin yerel trafiği için ISP1 aracılığıyla İnternet'e bir rota kaydediyoruz:
/ip route rule add comment="From ISP1 IP to Inet" src-address=100.66.66.2 table=to_isp1Not. Paragraf 1.8.2'deki kurallarla birlikte, belirli bir kaynakla istenen kanala erişim sağlanır. Bu, yerel yan IP adresinin belirtildiği (EoIP, IP-IP, GRE) tüneller oluşturmak için kritik öneme sahiptir. İp yönlendirme kurallarındaki kurallar, koşulların ilk eşleşmesine kadar yukarıdan aşağıya doğru yürütüldüğünden, bu kuralın madde 1.8.2'deki kurallara uygun olması gerekir.
3.1.3. Giden trafik için bir NAT kuralı oluşturduk:
/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.2Not. NAT, IPsec politikalarına girenler dışında çıkan her şeydir. Kesinlikle gerekli olmadıkça action=masquerade kullanmamaya çalışıyorum. Her yeni bağlantı için NAT adresini hesapladığından src-nat'a göre daha yavaştır ve kaynak kullanımı daha fazladır.
3.1.4. Listedeki diğer sağlayıcılar üzerinden erişimi yasak olan istemcileri doğrudan ISP1 sağlayıcı ağ geçidine gönderiyoruz.
/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=0Not. action=route daha yüksek önceliğe sahiptir ve diğer yönlendirme kurallarından önce uygulanır.
place-before=0 - kuralımızı listede ilk sıraya yerleştirir.
3.2. ISP2 ile bağlantı kurma.
ISP2 sağlayıcısı bize ayarları DHCP aracılığıyla sağladığından, gerekli değişiklikleri DHCP istemcisi tetiklendiğinde başlayan bir komut dosyası kullanarak yapmak mantıklıdır:
/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=noKomut dosyasının kendisi Winbox penceresinde:

Not. Komut dosyasının ilk kısmı, kira başarıyla alındığında, ikincisi ise kira serbest bırakıldıktan sonra tetiklenir.Bkz. not 2
3.3. ISP3 sağlayıcısıyla bağlantı kurma.
Sağlayıcı bize dinamik ayarlar verdiğinden, ppp arayüzü yükseltildikten ve düştükten sonra başlayan komut dosyalarını kullanarak gerekli değişiklikleri yapmak mantıklıdır.
3.3.1. İlk önce profili yapılandırıyoruz:
/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"Komut dosyasının kendisi Winbox penceresinde:

Not. Hat
/ip güvenlik duvarı mangle seti [find comment='ISP3'ten bağlanın'] in-interface=$"interface";
görünen adla değil koduyla çalıştığı için arayüz yeniden adlandırmayı doğru bir şekilde gerçekleştirmenize olanak tanır.
3.3.2. Şimdi profili kullanarak bir ppp bağlantısı oluşturuyoruz:
/interface pppoe-client add allow=mschap2 comment="to ISP3" disabled=no
interface=ether3 name=pppoe-isp3 password=isp3_pass profile=isp3_client user=isp3_clientSon dokunuş olarak saati ayarlayalım:
/system ntp client set enabled=yes server-dns-names=0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.orgSonuna kadar okuyanlar için
Önerilen çoklu araç uygulama yöntemi yazarın kişisel tercihidir ve mümkün olan tek yöntem değildir. ROS araç seti kapsamlı ve esnektir, bu bir yandan yeni başlayanlar için zorluklara neden olur, diğer yandan da popülerliğinin sebebidir. Yeni araçları ve çözümleri inceleyin, deneyin, keşfedin. Örneğin, edinilen bilginin bir uygulaması olarak, bu çoklu araç uygulamasındaki aracı değiştirebilirsiniz. Ağ geçidini kontrol et özyinelemeli rotalarla ağ saati.
Notlar
- Ağ geçidini kontrol et — ağ geçidinin kullanılabilirlik açısından art arda iki başarısız kontrolünden sonra bir rotayı devre dışı bırakmanıza olanak tanıyan bir mekanizma. Kontrol, her 10 saniyede bir ve ayrıca yanıt zaman aşımı süresiyle gerçekleştirilir. Toplamda, gerçek anahtarlama zamanlaması 20-30 saniye aralığındadır. Bu geçiş zamanlaması yeterli değilse, aracı kullanma seçeneği vardır. ağ saatiKontrol zamanlayıcısının manuel olarak ayarlanabileceği yer. Ağ geçidini kontrol et kanalda periyodik paket kayıpları varsa çalışmaz.
Önemli! Ana rotanın devre dışı bırakılması, ona başvuran diğer tüm rotaların devre dışı bırakılmasını gerektirir. Bu nedenle onları belirtmek için kontrol-ağ geçidi=ping gerekli değil.
- DHCP mekanizmasında, istemcinin yenileme durumunda donmuş gibi görünen bir arıza meydana gelir. Bu durumda betiğin ikinci kısmı çalışmaz ancak durum ilgili özyinelemeli rotayı izlediğinden trafiğin doğru şekilde akmasına müdahale etmez.
- ECMP (Eşit Maliyetli Çok Yollu) — ROS'ta birden fazla ağ geçidine ve aynı mesafeye sahip bir rota ayarlamak mümkündür. Bu durumda bağlantılar, belirtilen ağ geçitlerinin sayısıyla orantılı olarak, sıralı deneme algoritması kullanılarak kanallar arasında dağıtılacaktır.
Makaleyi yazma dürtüsü için, yapısının oluşturulmasına ve vurgu yapılmasına yardımcı olun - Evgeniy'e kişisel teşekkürler
Kaynak: habr.com
