Asas Penghalaan Statik dalam Mikrotik RouterOS

Penghalaan ialah proses mencari laluan terbaik untuk menghantar paket melalui rangkaian TCP/IP. Mana-mana peranti yang disambungkan ke rangkaian IPv4 mengandungi proses dan jadual penghalaan.

Artikel ini bukan HOWTO, ia menerangkan penghalaan statik dalam RouterOS dengan contoh, saya sengaja meninggalkan tetapan yang lain (contohnya, srcnat untuk mengakses Internet), jadi memahami bahan memerlukan tahap pengetahuan tertentu tentang rangkaian dan RouterOS.

Penukaran dan penghalaan

Asas Penghalaan Statik dalam Mikrotik RouterOS

Penukaran ialah proses pertukaran paket dalam satu segmen Layer2 (Ethernet, ppp, ...). Jika peranti melihat bahawa penerima paket berada pada subnet Ethernet yang sama dengannya, ia mempelajari alamat mac menggunakan protokol arp dan menghantar paket secara terus, memintas penghala. Sambungan ppp (point-to-point) hanya boleh mempunyai dua peserta dan paket sentiasa dihantar ke satu alamat 0xff.

Penghalaan ialah proses pemindahan paket antara segmen Layer2. Jika peranti ingin menghantar paket yang penerimanya berada di luar segmen Ethernet, ia melihat ke dalam jadual penghalaannya dan menghantar paket ke get laluan, yang tahu ke mana hendak menghantar paket seterusnya (atau mungkin tidak tahu, penghantar asal paket itu tidak menyedari perkara ini).

Cara paling mudah untuk memikirkan penghala adalah sebagai peranti yang disambungkan kepada dua atau lebih segmen Layer2 dan mampu menghantar paket antara mereka dengan menentukan laluan terbaik dari jadual penghalaan.

Jika anda memahami segala-galanya, atau anda sudah mengetahuinya, maka bacalah. Untuk selebihnya, saya amat mengesyorkan agar anda membiasakan diri dengan yang kecil, tetapi sangat luas artikel.

Penghalaan dalam RouterOS dan PacketFlow

Hampir semua fungsi yang berkaitan dengan penghalaan statik terdapat dalam pakej sistem. Beg plastik routing menambah sokongan untuk algoritma penghalaan dinamik (RIP, OSPF, BGP, MME), Penapis Penghalaan dan BFD.

Menu utama untuk menyediakan penghalaan: [IP]->[Route]. Skim kompleks mungkin memerlukan paket untuk dilabelkan terlebih dahulu dengan tanda penghalaan dalam: [IP]->[Firewall]->[Mangle] (rantai PREROUTING ΠΈ OUTPUT).

Terdapat tiga tempat di PacketFlow di mana keputusan penghalaan paket IP dibuat:
Asas Penghalaan Statik dalam Mikrotik RouterOS

  1. Menghalakan paket yang diterima oleh penghala. Pada peringkat ini, diputuskan sama ada paket akan pergi ke proses tempatan atau akan dihantar lebih jauh ke rangkaian. Pakej transit menerima Muka Output
  2. Menghalakan paket keluar tempatan. Paket keluar menerima Muka Output
  3. Langkah penghalaan tambahan untuk paket keluar, membolehkan anda menukar keputusan penghalaan masuk [Output|Mangle]

  • Laluan paket dalam blok 1, 2 bergantung pada peraturan dalam [IP]->[Route]
  • Laluan paket dalam titik 1, 2 dan 3 bergantung pada peraturan dalam [IP]->[Route]->[Rules]
  • Laluan pakej dalam blok 1, 3 boleh dipengaruhi menggunakan [IP]->[Firewall]->[Mangle]

RIB, FIB, Cache Penghalaan

Asas Penghalaan Statik dalam Mikrotik RouterOS

Pangkalan Maklumat Laluan
Pangkalan di mana laluan dikumpulkan daripada protokol penghalaan dinamik, laluan daripada ppp dan dhcp, laluan statik dan bersambung. Pangkalan data ini mengandungi semua laluan, kecuali laluan yang ditapis oleh pentadbir.

Bersyarat, kita boleh mengandaikan bahawa [IP]->[Route] memaparkan RIB.

Pangkalan Maklumat Pemajuan
Asas Penghalaan Statik dalam Mikrotik RouterOS

Pangkalan tempat laluan terbaik dari RIB dikumpulkan. Semua laluan dalam FIB adalah aktif dan digunakan untuk memajukan paket. Jika laluan menjadi tidak aktif (dilumpuhkan oleh pentadbir (sistem), atau antara muka yang melaluinya paket harus dihantar tidak aktif), laluan itu dialih keluar daripada FIB.

Untuk membuat keputusan penghalaan, jadual FIB menggunakan maklumat berikut tentang paket IP:

  • Alamat Sumber
  • Alamat destinasi
  • antara muka sumber
  • Tanda laluan
  • ToS (DSCP)

Masuk ke dalam pakej FIB melalui peringkat berikut:

  • Adakah pakej dimaksudkan untuk proses penghala tempatan?
  • Adakah paket tertakluk kepada peraturan PBR sistem atau pengguna?
    • Jika ya, maka paket dihantar ke jadual penghalaan yang ditentukan
  • Paket dihantar ke meja utama

Bersyarat, kita boleh mengandaikan bahawa [IP]->[Route Active=yes] memaparkan FIB.

Cache Penghalaan
Mekanisme cache laluan. Penghala mengingati di mana paket dihantar dan jika terdapat yang serupa (mungkin dari sambungan yang sama) ia membenarkan mereka pergi sepanjang laluan yang sama, tanpa menyemak FIB. Cache laluan dikosongkan secara berkala.

Untuk pentadbir RouterOS, mereka tidak membuat alatan untuk melihat dan mengurus Routing Cache, tetapi apabila ia boleh dilumpuhkan dalam [IP]->[Settings].

Mekanisme ini telah dikeluarkan daripada kernel linux 3.6, tetapi RouterOS masih menggunakan kernel 3.3.5, mungkin Routing cahce adalah salah satu sebabnya.

Tambah dialog laluan

[IP]->[Route]->[+]
Asas Penghalaan Statik dalam Mikrotik RouterOS

  1. Subnet yang anda ingin buat laluan (lalai: 0.0.0.0/0)
  2. IP Gateway atau antara muka yang mana paket akan dihantar (mungkin terdapat beberapa, lihat ECMP di bawah)
  3. Semakan Ketersediaan Gerbang
  4. Jenis Rekod
  5. Jarak (metrik) untuk laluan
  6. Jadual laluan
  7. IP untuk paket keluar tempatan melalui laluan ini
  8. Tujuan Skop dan Skop Sasaran ditulis pada akhir artikel.

Bendera laluan
Asas Penghalaan Statik dalam Mikrotik RouterOS

  • X - Laluan dilumpuhkan oleh pentadbir (disabled=yes)
  • A - Laluan digunakan untuk menghantar paket
  • D - Laluan ditambah secara dinamik (BGP, OSPF, RIP, MME, PPP, DHCP, Connected)
  • C - Subnet disambungkan terus ke penghala
  • S - Laluan statik
  • r,b,o,m - Laluan ditambah oleh salah satu protokol penghalaan dinamik
  • B,U,P - Laluan penapisan (menjatuhkan paket dan bukannya menghantar)

Apa yang perlu ditentukan dalam gerbang: alamat ip atau antara muka?

Sistem ini membenarkan anda untuk menentukan kedua-duanya, sementara ia tidak bersumpah dan tidak memberi petunjuk jika anda melakukan sesuatu yang salah.

alamat IP
Alamat get laluan mesti boleh diakses melalui Layer2. Untuk Ethernet, ini bermakna penghala mesti mempunyai alamat daripada subnet yang sama pada salah satu antara muka ip aktif, untuk ppp, bahawa alamat get laluan ditentukan pada salah satu antara muka aktif sebagai alamat subnet.
Jika syarat kebolehcapaian untuk Layer2 tidak dipenuhi, laluan itu dianggap tidak aktif dan tidak termasuk dalam FIB.

antara muka
Segala-galanya lebih rumit dan tingkah laku penghala bergantung pada jenis antara muka:

  • Sambungan PPP (Async, PPTP, L2TP, SSTP, PPPoE, OpenVPN *) menganggap hanya dua peserta dan paket akan sentiasa dihantar ke get laluan untuk penghantaran, jika get laluan mengesan bahawa penerima adalah dirinya sendiri, maka ia akan memindahkan paket ke proses tempatannya.
    Asas Penghalaan Statik dalam Mikrotik RouterOS
  • Ethernet menganggap kehadiran ramai peserta dan akan menghantar permintaan ke antara muka arp dengan alamat penerima paket, ini dijangka dan tingkah laku yang agak normal untuk laluan yang disambungkan.
    Tetapi apabila anda cuba menggunakan antara muka sebagai laluan untuk subnet jauh, anda akan mendapat situasi berikut: laluan aktif, ping ke pas get laluan, tetapi tidak sampai ke penerima daripada subnet yang ditentukan. Jika anda melihat antara muka melalui sniffer, anda akan melihat permintaan arp dengan alamat dari subnet jauh.
    Asas Penghalaan Statik dalam Mikrotik RouterOS

Asas Penghalaan Statik dalam Mikrotik RouterOS

Cuba tentukan alamat ip sebagai pintu masuk apabila boleh. Pengecualian ialah laluan bersambung (dicipta secara automatik) dan antara muka PPP (Async, PPTP, L2TP, SSTP, PPPoE, OpenVPN*).

OpenVPN tidak mengandungi pengepala PPP, tetapi anda boleh menggunakan nama antara muka OpenVPN untuk membuat laluan.

Laluan Lebih Spesifik

Peraturan laluan asas. Laluan yang menerangkan subnet yang lebih kecil (dengan subnet mask terbesar) diutamakan dalam keputusan penghalaan paket. Kedudukan entri dalam jadual penghalaan tidak berkaitan dengan pilihan - peraturan utama adalah Lebih Spesifik.

Asas Penghalaan Statik dalam Mikrotik RouterOS

Semua laluan dari skim yang ditentukan adalah aktif (terletak di FIB). menunjuk ke subnet yang berbeza dan tidak bercanggah antara satu sama lain.

Jika salah satu gerbang menjadi tidak tersedia, laluan yang berkaitan akan dianggap tidak aktif (dialih keluar daripada FIB) dan paket akan dicari dari laluan yang tinggal.

Laluan dengan subnet 0.0.0.0/0 kadangkala diberi makna istimewa dan dipanggil "Laluan Lalai" atau "Gerbang pilihan terakhir". Sebenarnya, tiada apa-apa yang ajaib mengenainya dan ia hanya merangkumi semua alamat IPv4 yang mungkin, tetapi nama-nama ini menggambarkan tugasnya dengan baik - ia menunjukkan pintu masuk untuk memajukan paket yang tidak ada laluan lain yang lebih tepat.

Subnet mask maksimum yang mungkin untuk IPv4 ialah /32, laluan ini menghala ke hos tertentu dan boleh digunakan dalam jadual penghalaan.

Memahami Laluan Lebih Spesifik adalah asas kepada mana-mana peranti TCP/IP.

Jarak

Jarak (atau Metrik) diperlukan untuk penapisan pentadbiran laluan ke subnet tunggal yang boleh diakses melalui berbilang get laluan. Laluan dengan metrik yang lebih rendah dianggap sebagai keutamaan dan akan dimasukkan ke dalam FIB. Jika laluan dengan metrik yang lebih rendah tidak lagi aktif, maka ia akan digantikan dengan laluan dengan metrik yang lebih tinggi dalam FIB.
Asas Penghalaan Statik dalam Mikrotik RouterOS

Jika terdapat beberapa laluan ke subnet yang sama dengan metrik yang sama, penghala akan menambah hanya satu daripadanya pada jadual FIB, berpandukan logik dalamannya.

Metrik boleh mengambil nilai dari 0 hingga 255:
Asas Penghalaan Statik dalam Mikrotik RouterOS

  • 0 - Metrik untuk laluan bersambung. Jarak 0 tidak boleh ditetapkan oleh pentadbir
  • 1-254 - Metrik tersedia kepada pentadbir untuk menetapkan laluan. Metrik dengan nilai yang lebih rendah mempunyai keutamaan yang lebih tinggi
  • 255 - Metrik tersedia kepada pentadbir untuk menetapkan laluan. Tidak seperti 1-254, laluan dengan metrik 255 sentiasa kekal tidak aktif dan tidak termasuk dalam FIB
  • metrik tertentu. Laluan yang diperoleh daripada protokol penghalaan dinamik mempunyai nilai metrik standard

semak pintu masuk

Check gateway ialah sambungan MikroTik RoutesOS untuk menyemak ketersediaan get laluan melalui icmp atau arp. Sekali setiap 10 saat (tidak boleh ditukar), permintaan dihantar ke gerbang, jika respons tidak diterima dua kali, laluan itu dianggap tidak tersedia dan dialih keluar daripada FIB. Jika get laluan semak telah dilumpuhkan laluan semakan diteruskan dan laluan akan menjadi aktif semula selepas satu semakan berjaya.
Asas Penghalaan Statik dalam Mikrotik RouterOS

Gerbang semak melumpuhkan entri di mana ia dikonfigurasikan dan semua entri lain (dalam semua jadual penghalaan dan laluan ecmp) dengan get laluan yang ditentukan.

Secara umum, semak get laluan berfungsi dengan baik selagi tiada masalah kehilangan paket ke get laluan. Gerbang semak tidak tahu apa yang berlaku dengan komunikasi di luar get laluan yang diperiksa, ini memerlukan alat tambahan: skrip, penghalaan rekursif, protokol penghalaan dinamik.

Kebanyakan protokol VPN dan terowong mengandungi alatan terbina dalam untuk menyemak aktiviti sambungan, mendayakan get laluan semak untuknya adalah beban tambahan (tetapi sangat kecil) pada rangkaian dan prestasi peranti.

laluan ECMP

Equal-Cost Multi-Path - menghantar paket kepada penerima menggunakan beberapa gateway secara serentak menggunakan algoritma Round Robin.

Laluan ECMP dicipta oleh pentadbir dengan menentukan berbilang get laluan untuk satu subnet (atau secara automatik, jika terdapat dua laluan OSPF yang setara).
Asas Penghalaan Statik dalam Mikrotik RouterOS

ECMP digunakan untuk mengimbangi beban antara dua saluran, secara teori, jika terdapat dua saluran dalam laluan ecmp, maka untuk setiap paket saluran keluar harus berbeza. Tetapi mekanisme cache Routing menghantar paket dari sambungan di sepanjang laluan yang diambil oleh paket pertama, sebagai hasilnya, kami mendapat sejenis pengimbangan berdasarkan sambungan (pengimbangan pemuatan setiap sambungan).

Jika anda melumpuhkan Routing Cache, maka paket dalam laluan ECMP akan dikongsi dengan betul, tetapi terdapat masalah dengan NAT. Peraturan NAT hanya memproses paket pertama daripada sambungan (selebihnya diproses secara automatik), dan ternyata paket dengan alamat sumber yang sama meninggalkan antara muka yang berbeza.
Asas Penghalaan Statik dalam Mikrotik RouterOS

Semak get laluan tidak berfungsi dalam laluan ECMP (pepijat RouterOS). Tetapi anda boleh mengatasi had ini dengan mencipta laluan pengesahan tambahan yang akan melumpuhkan entri dalam ECMP.

Penapisan melalui Penghalaan

Pilihan Jenis menentukan perkara yang perlu dilakukan dengan pakej:

  • unicast - hantar ke gerbang yang ditentukan (antara muka)
  • lubang hitam - buang sebungkus
  • melarang, tidak boleh dicapai - buang paket dan hantar mesej icmp kepada pengirim

Penapisan biasanya digunakan apabila perlu untuk menjamin penghantaran paket di sepanjang laluan yang salah, sudah tentu, anda boleh menapis ini melalui tembok api.

Beberapa contoh

Untuk menyatukan perkara asas tentang penghalaan.

Penghala rumah biasa
Asas Penghalaan Statik dalam Mikrotik RouterOS

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1

  1. Laluan statik ke 0.0.0.0/0 (laluan lalai)
  2. Laluan yang disambungkan pada antara muka dengan pembekal
  3. Laluan bersambung pada antara muka LAN

Penghala rumah biasa dengan PPPoE
Asas Penghalaan Statik dalam Mikrotik RouterOS

  1. Laluan statik ke laluan lalai, ditambah secara automatik. ia dinyatakan dalam sifat sambungan
  2. Laluan bersambung untuk sambungan PPP
  3. Laluan bersambung pada antara muka LAN

Penghala rumah biasa dengan dua pembekal dan redundansi
Asas Penghalaan Statik dalam Mikrotik RouterOS

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 distance=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 distance=2

  1. Laluan statik ke laluan lalai melalui pembekal pertama dengan metrik 1 dan semakan ketersediaan get laluan
  2. Laluan statik ke laluan lalai melalui pembekal kedua dengan metrik 2
  3. Laluan bersambung

Trafik ke 0.0.0.0/0 melalui 10.10.10.1 sementara get laluan ini tersedia, jika tidak, ia bertukar kepada 10.20.20.1

Skim sedemikian boleh dianggap sebagai tempahan saluran, tetapi ia bukan tanpa kelemahan. Jika rehat berlaku di luar get laluan pembekal (contohnya, di dalam rangkaian pengendali), penghala anda tidak akan mengetahuinya dan akan terus menganggap laluan itu sebagai aktif.

Penghala rumah biasa dengan dua pembekal, redundansi dan ECMP
Asas Penghalaan Statik dalam Mikrotik RouterOS

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.10.10.1,10.20.20.1 distance=1

  1. Laluan statik untuk menyemak pintu masuk chack
  2. laluan ECMP
  3. Laluan bersambung

Laluan untuk diperiksa adalah biru (warna laluan tidak aktif), tetapi ini tidak mengganggu pintu masuk semakan. Versi semasa (6.44) RoS memberikan keutamaan automatik kepada laluan ECMP, tetapi lebih baik untuk menambah laluan ujian pada jadual penghalaan lain (pilihan routing-mark)

Pada Speedtest dan tapak lain yang serupa, tidak akan ada peningkatan dalam kelajuan (ECMP membahagikan trafik dengan sambungan, bukan dengan paket), tetapi aplikasi p2p harus memuat turun lebih cepat.

Penapisan melalui Penghalaan
Asas Penghalaan Statik dalam Mikrotik RouterOS

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1
add dst-address=192.168.200.0/24 gateway=10.30.30.1 distance=1
add dst-address=192.168.200.0/24 gateway=10.10.10.1 distance=2 type=blackhole

  1. Laluan statik ke laluan lalai
  2. Laluan statik ke 192.168.200.0/24 melalui terowong ipip
  3. Melarang laluan statik ke 192.168.200.0/24 melalui penghala ISP

Pilihan penapisan di mana trafik terowong tidak akan pergi ke penghala pembekal apabila antara muka ipip dilumpuhkan. Skim sedemikian jarang diperlukan, kerana anda boleh melaksanakan penyekatan melalui tembok api.

Gelung penghalaan
Gelung penghalaan - keadaan apabila paket berjalan antara penghala sebelum ttl tamat tempoh. Biasanya ia adalah hasil daripada ralat konfigurasi, dalam rangkaian besar ia dirawat dengan pelaksanaan protokol penghalaan dinamik, dalam yang kecil - dengan berhati-hati.

Ia kelihatan seperti ini:
Asas Penghalaan Statik dalam Mikrotik RouterOS

Contoh (paling mudah) cara mendapatkan hasil yang serupa:
Asas Penghalaan Statik dalam Mikrotik RouterOS

Contoh gelung Penghalaan tidak berguna, tetapi ini menunjukkan bahawa penghala tidak tahu tentang jadual penghalaan jiran mereka.

Penghalaan Asas Dasar dan Jadual Penghalaan Tambahan

Apabila memilih laluan, penghala hanya menggunakan satu medan daripada pengepala paket (Alamat Dst.) - ini adalah penghalaan asas. Penghalaan berdasarkan syarat lain, seperti alamat sumber, jenis trafik (ToS), pengimbangan tanpa ECMP, tergolong dalam Penghalaan Pangkalan Dasar (PBR) dan menggunakan jadual penghalaan tambahan.

Asas Penghalaan Statik dalam Mikrotik RouterOS

Laluan Lebih Spesifik ialah peraturan pemilihan laluan utama dalam jadual penghalaan.

Secara lalai, semua peraturan penghalaan ditambahkan pada jadual utama. Pentadbir boleh mencipta nombor sewenang-wenangnya jadual penghalaan tambahan dan paket laluan kepada mereka. Peraturan dalam jadual yang berbeza tidak bercanggah antara satu sama lain. Jika pakej tidak menemui peraturan yang sesuai dalam jadual yang ditentukan, ia akan pergi ke jadual utama.

Contoh dengan pengedaran melalui Firewall:
Asas Penghalaan Statik dalam Mikrotik RouterOS

  • 192.168.100.10 -> 8.8.8.8
    1. Trafik dari 192.168.100.10 akan dilabelkan melalui-isp1 Π² [Prerouting|Mangle]
    2. Pada peringkat Penghalaan dalam jadual melalui-isp1 mencari laluan ke 8.8.8.8
    3. Laluan ditemui, lalu lintas dihantar ke pintu masuk 10.10.10.1
  • 192.168.200.20 -> 8.8.8.8
    1. Trafik dari 192.168.200.20 akan dilabelkan melalui-isp2 Π² [Prerouting|Mangle]
    2. Pada peringkat Penghalaan dalam jadual melalui-isp2 mencari laluan ke 8.8.8.8
    3. Laluan ditemui, lalu lintas dihantar ke pintu masuk 10.20.20.1
  • Jika salah satu get laluan (10.10.10.1 atau 10.20.20.1) menjadi tidak tersedia, maka paket akan pergi ke jadual utama dan akan mencari laluan yang sesuai di sana

Isu istilah

RouterOS mempunyai masalah istilah tertentu.
Apabila bekerja dengan peraturan dalam [IP]->[Routes] jadual penghalaan ditunjukkan, walaupun tertulis bahawa label:
Asas Penghalaan Statik dalam Mikrotik RouterOS

Π’ [IP]->[Routes]->[Rule] semuanya betul, dalam keadaan label dalam tindakan jadual:
Asas Penghalaan Statik dalam Mikrotik RouterOS

Cara menghantar paket ke jadual penghalaan tertentu

RouterOS menyediakan beberapa alat:

  • Peraturan dalam [IP]->[Routes]->[Rules]
  • Penanda laluan (action=mark-routing) dalam [IP]->[Firewall]->[Mangle]
  • VRF

peraturan [IP]->[Route]->[Rules]
Peraturan diproses secara berurutan, jika paket sepadan dengan syarat peraturan, ia tidak lulus lebih jauh.

Peraturan Penghalaan membolehkan anda memperluaskan kemungkinan penghalaan, bergantung bukan sahaja pada alamat penerima, tetapi juga pada alamat sumber dan antara muka di mana paket itu diterima.

Asas Penghalaan Statik dalam Mikrotik RouterOS

Peraturan terdiri daripada syarat dan tindakan:

  • syarat. Ulangi secara praktikal senarai tanda yang mana pakej disemak dalam FIB, hanya ToS yang tiada.
  • Aktiviti
    • carian - hantar paket ke meja
    • carian hanya dalam jadual - kunci pakej dalam jadual, jika laluan tidak dijumpai, pakej tidak akan pergi ke jadual utama
    • drop - drop satu paket
    • tidak boleh dicapai - buang paket dengan pemberitahuan penghantar

Dalam FIB, trafik ke proses tempatan diproses memintas peraturan [IP]->[Route]->[Rules]:
Asas Penghalaan Statik dalam Mikrotik RouterOS

menandakan [IP]->[Firewall]->[Mangle]
Label penghalaan membolehkan anda menetapkan get laluan untuk paket menggunakan hampir mana-mana syarat Firewall:
Asas Penghalaan Statik dalam Mikrotik RouterOS

Secara praktikal, kerana tidak semuanya masuk akal, dan sesetengahnya mungkin berfungsi dengan tidak stabil.

Asas Penghalaan Statik dalam Mikrotik RouterOS

Terdapat dua cara untuk melabelkan pakej:

  • Segera letak tanda laluan
  • dahulukan tanda sambungan, kemudian berdasarkan tanda sambungan untuk menetapkan tanda laluan

Dalam artikel mengenai tembok api, saya menulis bahawa pilihan kedua adalah lebih baik. mengurangkan beban pada cpu, dalam hal menanda laluan - ini tidak sepenuhnya benar. Kaedah penandaan ini tidak selalunya setara dan biasanya digunakan untuk menyelesaikan pelbagai masalah.

Contoh Penggunaan

Mari kita beralih kepada contoh menggunakan Penghalaan Dasar Dasar, ia lebih mudah untuk menunjukkan mengapa semua ini diperlukan.

MultiWAN dan kembali trafik keluar (Output).
Masalah biasa dengan konfigurasi MultiWAN: Mikrotik tersedia dari Internet hanya melalui pembekal "aktif".
Asas Penghalaan Statik dalam Mikrotik RouterOS

Penghala tidak peduli dengan apa ip permintaan itu, apabila menjana respons, ia akan mencari laluan dalam jadual penghalaan di mana laluan melalui isp1 aktif. Selanjutnya, paket sedemikian kemungkinan besar akan ditapis sepanjang jalan ke penerima.

Satu lagi perkara yang menarik. Jika nat sumber "mudah" dikonfigurasikan pada antara muka ether1: /ip fi nat add out-interface=ether1 action=masquerade pakej akan masuk dalam talian dengan src. address=10.10.10.100, yang memburukkan lagi keadaan.

Terdapat beberapa cara untuk menyelesaikan masalah, tetapi mana-mana daripadanya memerlukan jadual penghalaan tambahan:
Asas Penghalaan Statik dalam Mikrotik RouterOS

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 check-gateway=ping distance=1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 check-gateway=ping distance=2
add dst-address=0.0.0.0/0 gateway=10.10.10.1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 routing-mark=over-isp2

Gunakan [IP]->[Route]->[Rules]
Tentukan jadual penghalaan yang akan digunakan untuk paket dengan IP Sumber yang ditentukan.
Asas Penghalaan Statik dalam Mikrotik RouterOS

/ip route rule
add src-address=10.10.10.100/32 action=lookup-only-in-table table=over-isp1
add src-address=10.20.20.200/32 action=lookup-only-in-table table=over-isp2

Boleh gunakan action=lookup, tetapi untuk trafik keluar tempatan, pilihan ini mengecualikan sepenuhnya sambungan daripada antara muka yang salah.

  • Sistem menjana paket tindak balas dengan Src. Alamat: 10.20.20.200
  • Langkah Keputusan Penghalaan(2) menyemak [IP]->[Routes]->[Rules] dan paket dihantar ke jadual penghalaan terlebih-isp2
  • Menurut jadual penghalaan, paket mesti dihantar ke gerbang 10.20.20.1 melalui antara muka ether2

Asas Penghalaan Statik dalam Mikrotik RouterOS

Kaedah ini tidak memerlukan Penjejak Sambungan yang berfungsi, tidak seperti menggunakan jadual Mangle.

Gunakan [IP]->[Firewall]->[Mangle]
Sambungan bermula dengan paket masuk, jadi kami menandakannya (action=mark-connection), untuk paket keluar dari sambungan yang ditanda, tetapkan label penghalaan (action=mark-routing).
Asas Penghalaan Statik dalam Mikrotik RouterOS

/ip firewall mangle
#ΠœΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° входящих соСдинСний
add chain=input in-interface=ether1 connection-state=new action=mark-connection new-connection-mark=from-isp1
add chain=input in-interface=ether2 connection-state=new action=mark-connection new-connection-mark=from-isp2
#ΠœΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° исходящих ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π½Π° основС соСдинСний
add chain=output connection-mark=from-isp1 action=mark-routing new-routing-mark=over-isp1 passthrough=no
add chain=output connection-mark=from-isp2 action=mark-routing new-routing-mark=over-isp2 passthrough=no

Jika beberapa ips dikonfigurasikan pada satu antara muka, anda boleh menambah syarat dst-address untuk memastikan.

  • Satu paket membuka sambungan pada antara muka ether2. Pakej masuk [INPUT|Mangle] yang mengatakan untuk menandakan semua paket dari sambungan sebagai daripada-isp2
  • Sistem menjana paket tindak balas dengan Src. Alamat: 10.20.20.200
  • Pada peringkat Keputusan Penghalaan(2), paket, mengikut jadual penghalaan, dihantar ke get laluan 10.20.20.1 melalui antara muka eter1. Anda boleh mengesahkan ini dengan log masuk pakej [OUTPUT|Filter]
  • Di pentas [OUTPUT|Mangle] label sambungan diperiksa daripada-isp2 dan paket menerima label laluan terlebih-isp2
  • Langkah Pelarasan Penghalaan(3) menyemak kehadiran label penghalaan dan menghantarnya ke jadual penghalaan yang sesuai
  • Menurut jadual penghalaan, paket mesti dihantar ke gerbang 10.20.20.1 melalui antara muka ether2

Asas Penghalaan Statik dalam Mikrotik RouterOS

MultiWAN dan kembalikan trafik dst-nat

Satu contoh adalah lebih rumit, apa yang perlu dilakukan jika terdapat pelayan (contohnya, web) di belakang penghala pada subnet peribadi dan anda perlu memberikan akses kepadanya melalui mana-mana pembekal.

/ip firewall nat
add chain=dstnat proto=tcp dst-port=80,443 in-interface=ether1 action=dst-nat to-address=192.168.100.100
add chain=dstnat proto=tcp dst-port=80,443 in-interface=ether2 action=dst-nat to-address=192.168.100.100

Intipati masalahnya akan sama, penyelesaiannya serupa dengan pilihan Firewall Mangle, hanya rantai lain yang akan digunakan:
Asas Penghalaan Statik dalam Mikrotik RouterOS

/ip firewall mangle
add chain=prerouting connection-state=new in-interface=ether1 protocol=tcp dst-port=80,443 action=mark-connection new-connection-mark=web-input-isp1
add chain=prerouting connection-state=new in-interface=ether2 protocol=tcp dst-port=80,443 action=mark-connection new-connection-mark=web-input-isp2
add chain=prerouting connection-mark=web-input-isp1 in-interface=ether3 action=mark-routing new-routing-mark=over-isp1 passthrough=no
add chain=prerouting connection-mark=web-input-isp2 in-interface=ether3 action=mark-routing new-routing-mark=over-isp2 passthrough=no

Asas Penghalaan Statik dalam Mikrotik RouterOS
Rajah tidak menunjukkan NAT, tetapi saya fikir semuanya jelas.

MultiWAN dan sambungan keluar

Anda boleh menggunakan keupayaan PBR untuk mencipta berbilang sambungan vpn (SSTP dalam contoh) daripada antara muka penghala yang berbeza.

Asas Penghalaan Statik dalam Mikrotik RouterOS

Jadual penghalaan tambahan:

/ip route
add dst-address=0.0.0.0/0 gateway=192.168.100.1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=192.168.200.1 routing-mark=over-isp2
add dst-address=0.0.0.0/0 gateway=192.168.0.1 routing-mark=over-isp3

add dst-address=0.0.0.0/0 gateway=192.168.100.1 distance=1
add dst-address=0.0.0.0/0 gateway=192.168.200.1 distance=2
add dst-address=0.0.0.0/0 gateway=192.168.0.1 distance=3

Tanda pakej:

/ip firewall mangle
add chain=output dst-address=10.10.10.100 proto=tcp dst-port=443 action=mark-routing new-routing-mark=over-isp1 passtrough=no
add chain=output dst-address=10.10.10.101 proto=tcp dst-port=443 action=mark-routing new-routing-mark=over-isp2 passtrough=no
add chain=output dst-address=10.10.10.102 proto=tcp dst-port=443 action=mark-routing new-routing-mark=over-isp3 passtrough=no

Peraturan NAT yang mudah, jika tidak, paket akan meninggalkan antara muka dengan Src yang salah. alamat:

/ip firewall nat
add chain=srcnat out-interface=ether1 action=masquerade
add chain=srcnat out-interface=ether2 action=masquerade
add chain=srcnat out-interface=ether3 action=masquerade

Menghuraikan:

  • Penghala mencipta tiga proses SSTP
  • Pada peringkat Keputusan Penghalaan (2), laluan dipilih untuk proses ini berdasarkan jadual penghalaan utama. Dari laluan yang sama, paket menerima Src. Alamat terikat kepada antara muka ether1
  • Π’ [Output|Mangle] paket dari sambungan yang berbeza menerima label yang berbeza
  • Paket memasuki jadual yang sepadan dengan label pada peringkat Pelarasan Laluan dan menerima laluan baharu untuk menghantar paket
  • Tetapi pakej masih mempunyai Src. Alamat dari ether1, di atas pentas [Nat|Srcnat] alamat digantikan mengikut antara muka

Menariknya, pada penghala anda akan melihat jadual sambungan berikut:
Asas Penghalaan Statik dalam Mikrotik RouterOS

Penjejak Sambungan berfungsi lebih awal [Mangle] ΠΈ [Srcnat], jadi semua sambungan datang dari alamat yang sama, jika anda melihat dengan lebih terperinci, kemudian masuk Replay Dst. Address akan ada alamat selepas NAT:
Asas Penghalaan Statik dalam Mikrotik RouterOS

Pada pelayan VPN (saya mempunyai satu di bangku ujian), anda boleh melihat bahawa semua sambungan datang dari alamat yang betul:
Asas Penghalaan Statik dalam Mikrotik RouterOS

Tahan jalan
Terdapat cara yang lebih mudah, anda hanya boleh menentukan gerbang tertentu untuk setiap alamat:

/ip route
add dst-address=10.10.10.100 gateway=192.168.100.1
add dst-address=10.10.10.101 gateway=192.168.200.1
add dst-address=10.10.10.102 gateway=192.168.0.1

Tetapi laluan sedemikian akan menjejaskan bukan sahaja lalu lintas keluar tetapi juga trafik transit. Selain itu, jika anda tidak memerlukan trafik ke pelayan vpn untuk melalui saluran komunikasi yang tidak sesuai, maka anda perlu menambah 6 lagi peraturan untuk [IP]->[Routes]с type=blackhole. Dalam versi sebelumnya - 3 peraturan dalam [IP]->[Route]->[Rules].

Pengagihan sambungan pengguna melalui saluran komunikasi

Mudah, tugas harian. Sekali lagi, jadual penghalaan tambahan akan diperlukan:

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=2 check-gateway=ping

add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=1 routing-mark=over-isp2

Menggunakan [IP]->[Route]->[Rules]
Asas Penghalaan Statik dalam Mikrotik RouterOS

/ip route rules
add src-address=192.168.100.0/25 action=lookup-only-in-table table=over-isp1
add src-address=192.168.100.128/25 action=lookup-only-in-table table=over-isp2

Jika digunakan action=lookup, maka apabila salah satu saluran dilumpuhkan, trafik akan pergi ke jadual utama dan melalui saluran berfungsi. Sama ada ini perlu atau tidak bergantung kepada tugas.

Menggunakan tanda dalam [IP]->[Firewall]->[Mangle]
Contoh mudah dengan senarai alamat ip. Pada dasarnya, hampir semua syarat boleh digunakan. Satu-satunya kaveat layer7, walaupun apabila digandingkan dengan label sambungan, nampaknya semuanya berfungsi dengan betul, tetapi sesetengah trafik masih akan pergi ke arah yang salah.
Asas Penghalaan Statik dalam Mikrotik RouterOS

/ip firewall mangle
add chain=prerouting src-address-list=users-over-isp1 dst-address-type=!local action=mark-routing new-routing-mark=over-isp1
add chain=prerouting src-address-list=users-over-isp2 dst-address-type=!local action=mark-routing new-routing-mark=over-isp2

Anda boleh "mengunci" pengguna dalam satu jadual penghalaan [IP]->[Route]->[Rules]:

/ip route rules
add routing-mark=over-isp1 action=lookup-only-in-table table=over-isp1
add routing-mark=over-isp2 action=lookup-only-in-table table=over-isp2

Sama ada melalui [IP]->[Firewall]->[Filter]:

/ip firewall filter
add chain=forward routing-mark=over-isp1 out-interface=!ether1 action=reject
add chain=forward routing-mark=over-isp2 out-interface=!ether2 action=reject

Berundur pro dst-address-type=!local
Syarat tambahan dst-address-type=!local adalah perlu bahawa trafik daripada pengguna mencapai proses tempatan penghala (dns, winbox, ssh, ...). Jika beberapa subnet tempatan disambungkan ke penghala, adalah perlu untuk memastikan bahawa trafik antara mereka tidak pergi ke Internet, contohnya, menggunakan dst-address-table.

Dalam contoh menggunakan [IP]->[Route]->[Rules] tiada pengecualian sedemikian, tetapi trafik mencapai proses tempatan. Hakikatnya ialah masuk ke dalam pakej FIB yang ditandakan [PREROUTING|Mangle] mempunyai label laluan dan pergi ke jadual penghalaan selain daripada utama, di mana tiada antara muka tempatan. Dalam kes Peraturan Penghalaan, mula-mula ia diperiksa sama ada paket itu bertujuan untuk proses setempat dan hanya pada peringkat PBR Pengguna ia pergi ke jadual penghalaan yang ditentukan.

Menggunakan [IP]->[Firewall]->[Mangle action=route]
Tindakan ini hanya berfungsi dalam [Prerouting|Mangle] dan membolehkan anda mengarahkan trafik ke get laluan yang ditentukan tanpa menggunakan jadual penghalaan tambahan, dengan menyatakan alamat get laluan secara terus:

/ip firewall mangle
add chain=prerouting src-address=192.168.100.0/25 action=route gateway=10.10.10.1
add chain=prerouting src-address=192.168.128.0/25 action=route gateway=10.20.20.1

kesan route mempunyai keutamaan yang lebih rendah daripada peraturan penghalaan ([IP]->[Route]->[Rules]). Dalam kes tanda laluan, semuanya bergantung pada kedudukan peraturan, jika peraturan dengan action=route bernilai lebih daripada action=mark-route, maka ia akan digunakan (tanpa mengira bendera passtrough), jika tidak menandakan laluan.
Terdapat sedikit maklumat di wiki mengenai tindakan ini dan semua kesimpulan diperoleh secara eksperimen, dalam apa jua keadaan, saya tidak menemui pilihan apabila menggunakan pilihan ini memberikan kelebihan berbanding yang lain.

Pengimbangan dinamik berasaskan PPC

Pengelas Per Sambungan - ialah analog ECMP yang lebih fleksibel. Tidak seperti ECMP, ia membahagikan trafik mengikut sambungan dengan lebih ketat (ECMP tidak tahu apa-apa tentang sambungan, tetapi apabila dipasangkan dengan Routing Cache, sesuatu yang serupa diperolehi).

PCC mengambil medan yang ditentukan daripada pengepala ip, menukarnya kepada nilai 32-bit, dan membahagi dengan penyebut. Baki bahagian dibandingkan dengan yang ditentukan baki dan jika ia sepadan, maka tindakan yang ditentukan akan digunakan. lebih. Bunyi gila, tetapi ia berkesan.
Asas Penghalaan Statik dalam Mikrotik RouterOS

Contoh dengan tiga alamat:

192.168.100.10: 192+168+100+10 = 470 % 3 = 2
192.168.100.11: 192+168+100+11 = 471 % 3 = 0
192.168.100.12: 192+168+100+12 = 472 % 3 = 1

Contoh pengedaran dinamik trafik mengikut src.address antara tiga saluran:
Asas Penghalaan Statik dalam Mikrotik RouterOS

#Π’Π°Π±Π»ΠΈΡ†Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ
/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=2 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.30.30.1 dist=3 check-gateway=ping

add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=1 routing-mark=over-isp2
add dst-address=0.0.0.0/0 gateway=10.30.30.1 dist=1 routing-mark=over-isp3

#ΠœΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° соСдинСний ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ²
/ip firewall mangle
add chain=prerouting in-interface=br-lan dst-address-type=!local connection-state=new per-connection-classifier=src-address:3/0 action=mark-connection new-connection-mark=conn-over-isp1
add chain=prerouting in-interface=br-lan dst-address-type=!local connection-state=new per-connection-classifier=src-address:3/1 action=mark-connection new-connection-mark=conn-over-isp2
add chain=prerouting in-interface=br-lan dst-address-type=!local connection-state=new per-connection-classifier=src-address:3/2 action=mark-connection new-connection-mark=conn-over-isp3

add chain=prerouting in-interface=br-lan connection-mark=conn-over-isp1 action=mark-routing new-routing-mark=over-isp1
add chain=prerouting in-interface=br-lan connection-mark=conn-over-isp2 action=mark-routing new-routing-mark=over-isp2
add chain=prerouting in-interface=br-lan connection-mark=conn-over-isp3 action=mark-routing new-routing-mark=over-isp3

Apabila menandakan laluan, terdapat syarat tambahan: in-interface=br-lan, tanpa ia di bawah action=mark-routing trafik tindak balas daripada Internet akan mendapat dan, mengikut jadual penghalaan, akan kembali kepada pembekal.

Menukar saluran komunikasi

Semak ping ialah alat yang baik, tetapi ia hanya menyemak sambungan dengan rakan sebaya IP terdekat, rangkaian pembekal biasanya terdiri daripada sebilangan besar penghala dan putus sambungan boleh berlaku di luar rakan sebaya terdekat, dan kemudian terdapat operator telekomunikasi tulang belakang yang mungkin juga mempunyai masalah, secara umum semak ping tidak selalu menunjukkan maklumat terkini tentang akses kepada rangkaian global.
Jika pembekal dan syarikat besar mempunyai protokol penghalaan dinamik BGP, maka pengguna rumah dan pejabat perlu memikirkan secara bebas cara menyemak akses Internet melalui saluran komunikasi tertentu.

Biasanya, skrip digunakan yang, melalui saluran komunikasi tertentu, semak ketersediaan alamat ip di Internet, sambil memilih sesuatu yang boleh dipercayai, contohnya, google dns: 8.8.8.8. 8.8.4.4. Tetapi dalam komuniti Mikrotik, alat yang lebih menarik telah disesuaikan untuk ini.

Beberapa perkataan tentang penghalaan rekursif
Penghalaan rekursif diperlukan apabila membina peering Multihop BGP dan masuk ke artikel tentang asas-asas penghalaan statik hanya disebabkan oleh pengguna MikroTik yang licik yang memikirkan cara menggunakan laluan rekursif yang dipasangkan dengan get laluan semak untuk menukar saluran komunikasi tanpa skrip tambahan.

Sudah tiba masanya untuk memahami pilihan skop / skop sasaran secara umum dan cara laluan terikat kepada antara muka:
Asas Penghalaan Statik dalam Mikrotik RouterOS

  1. Laluan mencari antara muka untuk menghantar paket berdasarkan nilai skopnya dan semua entri dalam jadual utama dengan nilai skop sasaran yang kurang daripada atau sama
  2. Daripada antara muka yang ditemui, yang melaluinya anda boleh menghantar paket ke get laluan yang ditentukan dipilih
  3. Antara muka masukan bersambung yang ditemui dipilih untuk menghantar paket ke get laluan

Dengan kehadiran laluan rekursif, perkara yang sama berlaku, tetapi dalam dua peringkat:
Asas Penghalaan Statik dalam Mikrotik RouterOS

  • 1-3 Satu lagi laluan ditambahkan pada laluan bersambung, yang melaluinya get laluan yang ditentukan boleh dicapai
  • 4-6 Mencari laluan laluan yang disambungkan untuk get laluan "perantaraan".

Semua manipulasi dengan carian rekursif berlaku dalam RIB, dan hanya hasil akhir dipindahkan ke FIB: 0.0.0.0/0 via 10.10.10.1 on ether1.

Contoh penggunaan penghalaan rekursif untuk menukar laluan
Asas Penghalaan Statik dalam Mikrotik RouterOS

Konfigurasi:
Asas Penghalaan Statik dalam Mikrotik RouterOS

/ip route
add dst-address=0.0.0.0/0 gateway=8.8.8.8 check-gateway=ping distance=1 target-scope=10
add dst-address=8.8.8.8 gateway=10.10.10.1 scope=10
add dst-address=0.0.0.0/0 gateway=10.20.20.1 distance=2

Anda boleh menyemak bahawa paket akan dihantar ke 10.10.10.1:
Asas Penghalaan Statik dalam Mikrotik RouterOS

Check gateway tidak mengetahui apa-apa tentang penghalaan rekursif dan hanya menghantar ping ke alamat 8.8.8.8, yang (berdasarkan jadual utama) boleh dicapai melalui get laluan 10.10.10.1.

Jika terdapat kehilangan komunikasi antara 10.10.10.1 dan 8.8.8.8, maka laluan diputuskan sambungan, tetapi paket (termasuk ping ujian) ke 8.8.8.8 terus melalui 10.10.10.1:
Asas Penghalaan Statik dalam Mikrotik RouterOS

Jika pautan ke ether1 hilang, maka situasi yang tidak menyenangkan berlaku apabila paket sebelum 8.8.8.8 melalui pembekal kedua:
Asas Penghalaan Statik dalam Mikrotik RouterOS

Ini adalah masalah jika anda menggunakan NetWatch untuk menjalankan skrip apabila 8.8.8.8 tidak tersedia. Jika pautan terputus, NetWatch hanya akan berfungsi melalui saluran komunikasi sandaran dan akan menganggap bahawa semuanya baik-baik saja. Diselesaikan dengan menambahkan laluan penapis tambahan:

/ip route
add dst-address=8.8.8.8 gateway=10.20.20.1 distance=100 type=blackhole

Asas Penghalaan Statik dalam Mikrotik RouterOS

Terdapat pada habrΓ© artikel, di mana situasi dengan NetWatch dipertimbangkan dengan lebih terperinci.

Dan ya, apabila menggunakan tempahan sedemikian, alamat 8.8.8.8 akan disambungkan kepada salah satu penyedia, jadi memilihnya sebagai sumber dns bukanlah idea yang baik.

Beberapa perkataan tentang Penghalaan Maya dan Pemajuan (VRF)

Teknologi VRF direka untuk mencipta beberapa penghala maya dalam satu fizikal, teknologi ini digunakan secara meluas oleh pengendali telekomunikasi (biasanya bersama MPLS) untuk menyediakan perkhidmatan L3VPN kepada pelanggan dengan alamat subnet yang bertindih:
Asas Penghalaan Statik dalam Mikrotik RouterOS

Tetapi VRF dalam Mikrotik disusun berdasarkan jadual penghalaan dan mempunyai beberapa kelemahan, sebagai contoh, alamat ip tempatan penghala tersedia dari semua VRF, anda boleh membaca lebih lanjut ΠΏΠΎ ссылкС.

contoh konfigurasi vrf:
Asas Penghalaan Statik dalam Mikrotik RouterOS

/ip route vrf
add interfaces=ether1 routing-mark=vrf1
add interfaces=ether2 routing-mark=vrf2

/ip address
add address=192.168.100.1/24 interface=ether1 network=192.168.100.0
add address=192.168.200.1/24 interface=ether2 network=192.168.200.0

Daripada peranti yang disambungkan ke ether2, kita melihat bahawa ping pergi ke alamat penghala dari vrf lain (dan ini adalah masalah), manakala ping tidak pergi ke Internet:
Asas Penghalaan Statik dalam Mikrotik RouterOS

Untuk mengakses Internet, anda perlu mendaftar laluan tambahan yang mengakses jadual utama (dalam terminologi vrf, ini dipanggil bocor laluan):
Asas Penghalaan Statik dalam Mikrotik RouterOS

/ip route
add distance=1 gateway=172.17.0.1@main routing-mark=vrf1
add distance=1 gateway=172.17.0.1%wlan1 routing-mark=vrf2

Berikut ialah dua cara laluan bocor: menggunakan jadual penghalaan: 172.17.0.1@main dan menggunakan nama antara muka: 172.17.0.1%wlan1.

Dan sediakan penandaan untuk trafik balik masuk [PREROUTING|Mangle]:
Asas Penghalaan Statik dalam Mikrotik RouterOS

/ip firewall mangle
add chain=prerouting in-interface=ether1 action=mark-connection new-connection-mark=from-vrf1 passthrough=no
add chain=prerouting connection-mark=from-vrf1 routing-mark=!vrf1 action=mark-routing new-routing-mark=vrf1 passthrough=no 
add chain=prerouting in-interface=ether2 action=mark-connection new-connection-mark=from-vrf2 passthrough=no
add chain=prerouting connection-mark=from-vrf2 routing-mark=!vrf1 action=mark-routing new-routing-mark=vrf2 passthrough=no 

Asas Penghalaan Statik dalam Mikrotik RouterOS

Subnet dengan alamat yang sama
Organisasi akses kepada subnet dengan pengalamatan yang sama pada penghala yang sama menggunakan VRF dan netmap:
Asas Penghalaan Statik dalam Mikrotik RouterOS

Konfigurasi asas:

/ip route vrf
add interfaces=ether1 routing-mark=vrf1
add interfaces=ether2 routing-mark=vrf2

/ip address
add address=192.168.100.1/24 interface=ether1 network=192.168.100.0
add address=192.168.100.1/24 interface=ether2 network=192.168.100.0
add address=192.168.0.1/24 interface=ether3 network=192.168.0.0

peraturan firewall:

#ΠœΠ°Ρ€ΠΊΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ
/ip firewall mangle
add chain=prerouting dst-address=192.168.101.0/24 in-interface=ether3 action=mark-routing new-routing-mark=vrf1 passthrough=no
add chain=prerouting dst-address=192.168.102.0/24 in-interface=ether3 action=mark-routing new-routing-mark=vrf2 passthrough=no

#БрСдствами netmap замСняСм адрСса "эфимСрных" подсСтСй Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ подсСти
/ip firewall nat
add chain=dstnat dst-address=192.168.101.0/24 in-interface=ether3 action=netmap to-addresses=192.168.100.0/24
add chain=dstnat dst-address=192.168.102.0/24 in-interface=ether3 action=netmap to-addresses=192.168.100.0/24

Peraturan laluan untuk trafik balik:

#Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ интСрфСйса Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ route leaking, Π½ΠΎ ΠΏΠΎ сути Ρ‚ΡƒΡ‚ создаСтся Π°Π½Π°Π»ΠΎΠ³ connected ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°
/ip route
add distance=1 dst-address=192.168.0.0/24 gateway=ether3 routing-mark=vrf1
add distance=1 dst-address=192.168.0.0/24 gateway=ether3 routing-mark=vrf2

Menambah laluan yang diterima melalui dhcp pada jadual penghalaan yang diberikan
VRF boleh menjadi menarik jika anda perlu menambah laluan dinamik secara automatik (contohnya, daripada klien dhcp) ke jadual penghalaan tertentu.

Menambah antara muka pada vrf:

/ip route vrf
add interface=ether1 routing-mark=over-isp1

Peraturan untuk menghantar trafik (keluar dan transit) melalui jadual terlebih-isp1:

/ip firewall mangle
add chain=output out-interface=!br-lan action=mark-routing new-routing-mark=over-isp1 passthrough=no
add chain=prerouting in-interface=br-lan dst-address-type=!local action=mark-routing new-routing-mark=over-isp1 passthrough=no

Laluan palsu tambahan untuk laluan keluar ke tempat kerja:

/interface bridge
add name=bare

/ip route
add dst-address=0.0.0.0/0 gateway=bare

Laluan ini hanya diperlukan supaya paket keluar tempatan boleh melalui keputusan Routing (2) sebelum ini [OUTPUT|Mangle] dan dapatkan label penghalaan, jika terdapat laluan aktif lain pada penghala sebelum 0.0.0.0/0 dalam jadual utama, ia tidak diperlukan.
Asas Penghalaan Statik dalam Mikrotik RouterOS

Rantai connected-in ΠΈ dynamic-in Π² [Routing] -> [Filters]

Penapisan laluan (masuk dan keluar) ialah alat yang biasanya digunakan bersama dengan protokol penghalaan dinamik (dan oleh itu hanya tersedia selepas memasang pakej routing), tetapi terdapat dua rantaian menarik dalam penapis masuk:

  • disambung-masuk β€” menapis laluan bersambung
  • dynamic-in - menapis laluan dinamik yang diterima oleh PPP dan DCHP

Penapisan membolehkan anda bukan sahaja membuang laluan, tetapi juga menukar beberapa pilihan: jarak, tanda laluan, ulasan, skop, skop sasaran, ...

Ini adalah alat yang sangat tepat dan jika anda boleh melakukan sesuatu tanpa Penapis Penghalaan (tetapi bukan skrip), maka jangan gunakan Penapis Penghalaan, jangan mengelirukan diri anda dan mereka yang akan mengkonfigurasi penghala selepas anda. Dalam konteks penghalaan dinamik, Penapis Penghalaan akan digunakan dengan lebih kerap dan lebih produktif.

Menetapkan Tanda Laluan untuk Laluan Dinamik
Contoh dari penghala rumah. Saya mempunyai dua sambungan VPN yang dikonfigurasikan dan trafik di dalamnya harus dibalut mengikut jadual penghalaan. Pada masa yang sama, saya mahu laluan dibuat secara automatik apabila antara muka diaktifkan:

#ΠŸΡ€ΠΈ создании vpn ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ созданиС default route ΠΈ Π·Π°Π΄Π°Π΅ΠΌ Π΄ΠΈΡΡ‚Π°Π½Ρ†ΠΈΡŽ
/interface pptp-client
add connect-to=X.X.X.X add-default-route=yes default-route-distance=101 ...
add connect-to=Y.Y.Y.Y  add-default-route=yes default-route-distance=100 ...

#Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ отправляСм ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° основС подсСти назначСния ΠΈ дистанции
/routing filter
add chain=dynamic-in distance=100 prefix=0.0.0.0/0 action=passthrough set-routing-mark=over-vpn1
add chain=dynamic-in distance=101 prefix=0.0.0.0/0 action=passthrough set-routing-mark=over-vpn2

Saya tidak tahu mengapa, mungkin pepijat, tetapi jika anda mencipta vrf untuk antara muka ppp, maka laluan ke 0.0.0.0/0 masih akan masuk ke dalam jadual utama. Jika tidak, semuanya akan menjadi lebih mudah.

Melumpuhkan Laluan Bersambung
Kadang-kadang ini diperlukan:

/route filter
add chain=connected-in prefix=192.168.100.0/24 action=reject

Alat nyahpepijat

RouterOS menyediakan beberapa alat untuk penyahpepijatan penghalaan:

  • [Tool]->[Tourch] - membolehkan anda melihat paket pada antara muka
  • /ip route check - membolehkan anda melihat gerbang mana paket akan dihantar, tidak berfungsi dengan jadual penghalaan
  • /ping routing-table=<name> ΠΈ /tool traceroute routing-table=<name> - ping dan jejak menggunakan jadual penghalaan yang ditentukan
  • action=log Π² [IP]->[Firewall] - alat yang sangat baik yang membolehkan anda mengesan laluan paket sepanjang aliran paket, tindakan ini tersedia dalam semua rantai dan jadual

Sumber: www.habr.com

Tambah komen