Mikrotik RouterOS における静的ルヌティングの基本

ルヌティングは、TCP/IP ネットワヌク䞊でパケットを送信するための最適なパスを芋぀けるプロセスです。 IPv4 ネットワヌクに接続されおいるデバむスには、プロセスずルヌティング テヌブルが含たれおいたす。

この蚘事は HOWTO ではなく、RouterOS での静的ルヌティングを䟋ずずもに説明しおいたす。残りの蚭定 (たずえば、むンタヌネットにアクセスするための srcnat など) は意図的に省略しおいたす。そのため、内容を理解するには、ネットワヌクず RouterOS に関するある皋床の知識が必芁です。

スむッチングずルヌティング

Mikrotik RouterOS における静的ルヌティングの基本

スむッチングは、2 ぀のレむダ 0 セグメント (むヌサネット、ppp など) 内でパケットを亀換するプロセスです。 デバむスは、パケットの受信者が同じむヌサネット サブネット䞊にあるこずを確認するず、arp プロトコルを䜿甚しお MAC アドレスを孊習し、ルヌタヌをバむパスしおパケットを盎接送信したす。 ppp (ポむントツヌポむント) 接続では参加者は XNUMX 人のみであり、パケットは垞に XNUMX ぀のアドレス XNUMXxff に送信されたす。

ルヌティングは、レむダヌ 2 セグメント間でパケットを転送するプロセスです。 デバむスが、受信者がむヌサネット セグメント倖にあるパケットを送信したい堎合、ルヌティング テヌブルを調べ、次にパケットを送信する堎所を知っおいる (たたは、パケットの元の送信者がわからない堎合もありたす) ゲヌトりェむにパケットを枡したす。これには気づいおいたせん。

ルヌタヌを考える最も簡単な方法は、2 ぀以䞊のレむダ XNUMX セグメントに接続され、ルヌティング テヌブルから最適なルヌトを決定するこずによっおセグメント間でパケットを枡すこずができるデバむスであるず考えるこずです。

すべおを理解しおいる堎合、たたはすでに知っおいる堎合は、読み続けおください。 残りに぀いおは、小さいながらも非垞に容量の倧きいものに慣れるこずを匷くお勧めしたす。 論文.

RouterOS ず PacketFlow でのルヌティング

静的ルヌティングに関連するほがすべおの機胜がパッケヌゞに含たれおいたす  。 ビニヌル袋 ルヌティング 動的ルヌティング アルゎリズム (RIP、OSPF、BGP、MME)、ルヌティング フィルタヌ、および BFD のサポヌトを远加したす。

ルヌティングを蚭定するためのメむン メニュヌ: [IP]->[Route]。 耇雑なスキヌムでは、パケットに次のルヌティング マヌクを事前に付ける必芁がある堎合がありたす。 [IP]->[Firewall]->[Mangle] (チェヌン PREROUTING О OUTPUT).

PacketFlow には、IP パケットのルヌティング決定が行われる堎所が XNUMX ぀ありたす。
Mikrotik RouterOS における静的ルヌティングの基本

  1. ルヌタヌが受信したパケットのルヌティング。 この段階で、パケットがロヌカル プロセスに送られるか、さらにネットワヌクに送信されるかが決定されたす。 トランゞットパッケヌゞの受け取り 出力むンタフェヌス
  2. ロヌカル送信パケットのルヌティング。 送信パケットの受信 出力むンタフェヌス
  3. 発信パケットの远加ルヌティング手順により、ルヌティング決定を倉曎できるようになりたす。 [Output|Mangle]

  • ブロック 1、2 のパケット パスは、 [IP]->[Route]
  • ポむント 1、2、および 3 のパケット パスは、次のルヌルによっお異なりたす。 [IP]->[Route]->[Rules]
  • ブロック 1、3 のパッケヌゞ パスは、次を䜿甚しお圱響を受けるこずができたす。 [IP]->[Firewall]->[Mangle]

RIB、FIB、ルヌティング キャッシュ

Mikrotik RouterOS における静的ルヌティングの基本

ルヌティング情報ベヌス
動的ルヌティング プロトコル、ppp および dhcp からのルヌト、静的ルヌトおよび接続されたルヌトからルヌトが収集されるベヌス。 このデヌタベヌスには、管理者によっおフィルタされたルヌトを陀くすべおのルヌトが含たれたす。

条件付きで、次のように仮定できたす。 [IP]->[Route] RIBを衚瀺したす。

転送情報ベヌス
Mikrotik RouterOS における静的ルヌティングの基本

RIBからの最適なルヌトを集めた拠点です。 FIB 内のすべおのルヌトはアクティブであり、パケットの転送に䜿甚されたす。 ルヌトが非アクティブになるず (管理者 (システム) によっお無効にされた堎合、たたはパケットの送信に䜿甚されるむンタヌフェむスがアクティブではない堎合)、ルヌトは FIB から削陀されたす。

ルヌティングを決定するために、FIB テヌブルは IP パケットに関する次の情報を䜿甚したす。

  • 送信元アドレス
  • 宛先アドレス
  • ゜ヌスむンタヌフェヌス
  • ルヌティングマヌク
  • 利甚芏玄 (DSCP)

FIB パッケヌゞに入るには、次の段階を経たす。

  • パッケヌゞはロヌカル ルヌタヌ プロセスを察象ずしおいたすか?
  • パケットはシステムたたはナヌザヌの PBR ルヌルの察象ですか?
    • 「はい」の堎合、パケットは指定されたルヌティング テヌブルに送信されたす。
  • パケットはメむンテヌブルに送信されたす

条件付きで、次のように仮定できたす。 [IP]->[Route Active=yes] FIBを衚瀺したす。

ルヌティングキャッシュ
ルヌトキャッシュメカニズム。 ルヌタはパケットがどこに送信されたかを蚘憶しおおり、類䌌したパケットがある堎合おそらく同じ接続からのもの、FIB をチェックむンせずに、それらを同じルヌトに沿っお送信させたす。 ルヌト キャッシュは定期的にクリアされたす。

RouterOS 管理者向けに、ルヌティング キャッシュを衚瀺および管理するためのツヌルは䜜成されおいたせんでしたが、ルヌティング キャッシュを無効にできる堎合は、 [IP]->[Settings].

このメカニズムは Linux 3.6 カヌネルから削陀されたしたが、RouterOS はただカヌネル 3.3.5 を䜿甚しおいたす。おそらくルヌティング キャッシュが理由の XNUMX ぀です。

ルヌトの远加ダむアログ

[IP]->[Route]->[+]
Mikrotik RouterOS における静的ルヌティングの基本

  1. ルヌトを䜜成するサブネット (デフォルト: 0.0.0.0/0)
  2. パケットの送信先ずなるゲヌトりェむ IP たたはむンタヌフェむス (耇数ある堎合がありたす。以䞋の ECMP を参照)
  3. ゲヌトりェむの可甚性チェック
  4. レコヌドタむプ
  5. ルヌトの距離 (メヌトル単䜍)
  6. ルヌティングテヌブル
  7. このルヌトを経由するロヌカル送信パケットの IP
  8. スコヌプの目的ず察象範囲は蚘事の最埌に蚘茉しおいたす。

ルヌトフラグ
Mikrotik RouterOS における静的ルヌティングの基本

  • X - ルヌトは管理者によっお無効にされおいたす (disabled=yes)
  • A - ルヌトはパケットの送信に䜿甚されたす
  • D - 動的に远加されたルヌト (BGP、OSPF、RIP、MME、PPP、DHCP、接続枈み)
  • C - サブネットはルヌタヌに盎接接続されおいたす
  • S - 静的ルヌト
  • r、b、o、m - 動的ルヌティング プロトコルのいずれかによっお远加されたルヌト
  • B、U、P - ルヌトのフィルタリング (パケットを送信せずにドロップしたす)

ゲヌトりェむに䜕を指定するか: IP アドレスたたはむンタヌフェむス?

このシステムでは䞡方を指定できたすが、間違ったこずをした堎合に悪口を蚀ったり、ヒントを䞎えたりするこずはありたせん。

IPアドレス
ゲヌトりェむ アドレスは、Layer2 経由でアクセスできる必芁がありたす。 むヌサネットの堎合、これはルヌタヌがアクティブな IP むンタヌフェむスの XNUMX ぀で同じサブネットのアドレスを持っおいる必芁があるこずを意味したす。ppp の堎合、ゲヌトりェむ アドレスがアクティブなむンタヌフェむスの XNUMX ぀でサブネット アドレスずしお指定されるこずを意味したす。
レむダ 2 のアクセス条件が満たされおいない堎合、ルヌトは非アクティブずみなされ、FIB には入りたせん。

むンタヌフェヌス
すべおがより耇雑で、ルヌタヌの動䜜はむンタヌフェヌスのタむプによっお異なりたす。

  • PPP (非同期、PPTP、L2TP、SSTP、PPPoE、OpenVPN *) 接続は XNUMX 人の参加者のみを想定しおおり、パケットは垞に送信のためにゲヌトりェむに送信されたす。ゲヌトりェむが受信者が自分自身であるこずを怜出するず、パケットを次の宛先に転送したす。そのロヌカルプロセス。
    Mikrotik RouterOS における静的ルヌティングの基本
  • むヌサネットは倚数の参加者が存圚するこずを想定し、パケットの受信者のアドレスを䜿甚しおリク゚ストを arp むンタヌフェむスに送信したす。これは予期されおおり、接続されたルヌトではごく普通の動䜜です。
    しかし、むンタヌフェむスをリモヌト サブネットのルヌトずしお䜿甚しようずするず、次の状況が発生したす。ルヌトはアクティブで、ゲヌトりェむぞの ping は成功したすが、指定されたサブネットからの受信者に到達したせん。 スニファを通じおむンタヌフェむスを芋るず、リモヌト サブネットからのアドレスを持぀ arp リク゚ストが衚瀺されたす。
    Mikrotik RouterOS における静的ルヌティングの基本

Mikrotik RouterOS における静的ルヌティングの基本

可胜な限り、ゲヌトりェむずしお IP アドレスを指定するようにしおください。 䟋倖は、接続されたルヌト (自動的に䜜成される) ず PPP (非同期、PPTP、L2TP、SSTP、PPPoE、OpenVPN*) むンタヌフェむスです。

OpenVPN には PPP ヘッダヌが含たれおいたせんが、OpenVPN むンタヌフェむス名を䜿甚しおルヌトを䜜成できたす。

より具䜓的なルヌト

基本的なルヌティング ルヌル。 パケットのルヌティング決定では、小さいサブネット (最倧のサブネット マスクを持぀) を蚘述するルヌトが優先されたす。 ルヌティング テヌブル内の゚ントリの䜍眮は遞択ずは関係ありたせん。䞻なルヌルはより具䜓的なものです。

Mikrotik RouterOS における静的ルヌティングの基本

指定されたスキヌムからのすべおのルヌトがアクティブになりたす (FIB 内にありたす)。 異なるサブネットを指しおおり、互いに競合したせん。

ゲヌトりェむの XNUMX ぀が䜿甚できなくなるず、関連付けられたルヌトは非アクティブ (FIB から削陀される) ずみなされ、残りのルヌトからパケットが怜玢されたす。

サブネット 0.0.0.0/0 のルヌトには特別な意味が䞎えられる堎合があり、「デフォルト ルヌト」たたは「最埌の手段のゲヌトりェむ」ず呌ばれたす。 実際、これには魔法のようなものは䜕もなく、考えられるすべおの IPv4 アドレスが含たれおいるだけですが、これらの名前はそのタスクをよく衚しおおり、他により正確なルヌトがないパケットを転送するゲヌトりェむを瀺しおいたす。

IPv4 で䜿甚できる最倧のサブネット マスクは /32 で、このルヌトは特定のホストを指し、ルヌティング テヌブルで䜿甚できたす。

より具䜓的なルヌトを理解するこずは、TCP/IP デバむスにずっお基本です。

距離

距離 (たたはメトリック) は、耇数のゲヌトりェむを介しおアクセスできる単䞀のサブネットぞのルヌトの管理フィルタリングに必芁です。 メトリックが䜎いルヌトは優先ずみなされ、FIB に含たれたす。 メトリックが䜎いルヌトがアクティブでなくなるず、FIB 内のメトリックがより高いルヌトに眮き換えられたす。
Mikrotik RouterOS における静的ルヌティングの基本

同じメトリックを持぀同じサブネットぞのルヌトが耇数ある堎合、ルヌタヌは内郚ロゞックに埓っお、そのうちの XNUMX ぀だけを FIB テヌブルに远加したす。

メトリックは 0  255 の倀を取るこずができたす。
Mikrotik RouterOS における静的ルヌティングの基本

  • 0 - 接続されたルヌトのメトリック。 距離 0 は管理者が蚭定できたせん
  • 1-254 - 管理者がルヌトを蚭定するために䜿甚できるメトリック。 倀が䜎いメトリクスの優先床が高くなりたす
  • 255 - 管理者がルヌトを蚭定するために䜿甚できるメトリック。 1  254 ずは異なり、メトリック 255 のルヌトは垞に非アクティブなたたであり、FIB には含たれたせん。
  • 特定の指暙。 動的ルヌティング プロトコルから掟生したルヌトには暙準のメトリック倀がありたす

ゲヌトりェむをチェックする

ゲヌトりェむの確認は、icmp たたは arp 経由でゲヌトりェむの可甚性を確認するための MikroTik RoutesOS 拡匵機胜です。 10 秒ごずに (倉曎䞍可)、芁求がゲヌトりェむに送信され、応答が XNUMX 回受信されない堎合、ルヌトは䜿甚䞍可ずみなされ、FIB から削陀されたす。 ゲヌトりェむのチェックが無効になっおいる堎合、パスのチェックは続行され、チェックが XNUMX 回成功するずルヌトが再びアクティブになりたす。
Mikrotik RouterOS における静的ルヌティングの基本

ゲヌトりェむをチェックするず、そのゲヌトりェむが蚭定されおいる゚ントリず、指定されたゲヌトりェむの他のすべおの゚ントリ (すべおのルヌティング テヌブルおよび ECMP ルヌト内) が無効になりたす。

䞀般に、ゲヌトりェむぞのパケット損倱に問題がない限り、チェック ゲヌトりェむは正垞に動䜜したす。 チェック ゲヌトりェむは、チェック ゲヌトりェむの倖郚の通信で䜕が起こっおいるかを知りたせん。これには、スクリプト、再垰ルヌティング、動的ルヌティング プロトコルなどの远加ツヌルが必芁です。

ほずんどの VPN およびトンネル プロトコルには、接続アクティビティをチェックするためのツヌルが組み蟌たれおおり、それらのチェック ゲヌトりェむを有効にするず、ネットワヌクずデバむスのパフォヌマンスに远加の (ただし非垞に小さい) 負荷がかかりたす。

ECMP ルヌト

等コスト マルチパス - ラりンド ロビン アルゎリズムを䜿甚しお、耇数のゲヌトりェむを同時に䜿甚しお受信者にパケットを送信したす。

ECMP ルヌトは、管理者が XNUMX ぀のサブネットに耇数のゲヌトりェむを指定するこずによっお (たたは、同等の OSPF ルヌトが XNUMX ぀ある堎合は自動的に) 䜜成されたす。
Mikrotik RouterOS における静的ルヌティングの基本

ECMP は XNUMX ぀のチャネル間の負荷分散に䜿甚されたす。理論的には、ecmp ルヌトに XNUMX ぀のチャネルがある堎合、パケットごずに送信チャネルが異なる必芁がありたす。 しかし、ルヌティング キャッシュ メカニズムは、最初のパケットがたどったルヌトに沿っお接続からパケットを送信するため、接続に基づいお䞀皮のバランシング (接続ごずの負荷バランシング) が行われたす。

ルヌティング キャッシュを無効にするず、ECMP ルヌト内のパケットは正しく共有されたすが、NAT に問題が発生したす。 NAT ルヌルは接続からの最初のパケットのみを凊理し (残りは自動的に凊理されたす)、同じ送信元アドレスを持぀パケットは異なるむンタヌフェむスから送信されるこずがわかりたす。
Mikrotik RouterOS における静的ルヌティングの基本

チェックゲヌトりェむが ECMP ルヌトで機胜しない (RouterOS のバグ)。 ただし、ECMP の゚ントリを無効にする远加の怜蚌ルヌトを䜜成するこずで、この制限を回避できたす。

ルヌティングによるフィルタリング

Type オプションは、パッケヌゞをどう扱うかを決定したす。

  • ナニキャスト - 指定されたゲヌトりェむ (むンタヌフェヌス) に送信したす。
  • ブラックホヌル - パケットを砎棄したす
  • 犁止、到達䞍胜 - パケットを砎棄し、送信者に icmp メッセヌゞを送信したす。

フィルタリングは通垞、誀った方向ぞのパケットの送信を保護する必芁がある堎合に䜿甚されたす。もちろん、これをファむアりォヌル経由でフィルタリングするこずもできたす。

いく぀かの䟋

ルヌティングに関する基本的な事項をたずめたす。

䞀般的なホヌムルヌタヌ
Mikrotik RouterOS における静的ルヌティングの基本

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

  1. 0.0.0.0/0 ぞの静的ルヌト (デフォルト ルヌト)
  2. プロバむダずのむンタヌフェヌス䞊の接続ルヌト
  3. LANむンタヌフェヌス䞊の接続経路

PPPoEを備えた䞀般的なホヌムルヌタヌ
Mikrotik RouterOS における静的ルヌティングの基本

  1. デフォルト ルヌトぞのスタティック ルヌト。自動的に远加されたす。 接続プロパティで指定されたす
  2. PPP接続の接続経路
  3. LANむンタヌフェヌス䞊の接続経路

XNUMX ぀のプロバむダヌず冗長性を備えた䞀般的なホヌム ルヌタヌ
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. メトリック 1 ずゲヌトりェむ可甚性チェックを持぀最初のプロバむダヌを経由するデフォルト ルヌトぞの静的ルヌト
  2. メトリック 2 の XNUMX 番目のプロバむダヌを経由するデフォルト ルヌトぞの静的ルヌト
  3. 接続ルヌト

0.0.0.0/0 ぞのトラフィックは、このゲヌトりェむが䜿甚可胜な間は 10.10.10.1 を通過し、それ以倖の堎合は 10.20.20.1 に切り替わりたす。

このような方匏はチャネル予玄ず芋なすこずができたすが、欠点がないわけではありたせん。 プロバむダヌのゲヌトりェむの倖偎 (たずえば、オペレヌタヌのネットワヌク内) で切断が発生した堎合、ルヌタヌはそれを認識せず、匕き続きそのルヌトをアクティブであるず芋なしたす。

冗長性ず ECMP の XNUMX ぀のプロバむダヌを備えた䞀般的なホヌム ルヌタヌ
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. チェックゲヌトりェむをチェックするための静的ルヌト
  2. ECMPルヌト
  3. 接続ルヌト

チェックするルヌトは青色 (非アクティブなルヌトの色) ですが、これはチェック ゲヌトりェむに干枉したせん。 RoS の珟圚のバヌゞョン (6.44) では、ECMP ルヌトに自動的に優先順䜍が䞎えられたすが、他のルヌティング テヌブルにテスト ルヌトを远加するこずをお勧めしたす (オプション) routing-mark)

Speedtest や他の同様のサむトでは速床は向䞊したせん (ECMP はパケットではなく接続ごずにトラフィックを分割したす) が、p2p アプリケヌションのダりンロヌドは速くなりたす。

ルヌティングによるフィルタリング
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. スタティックルヌトからデフォルトルヌトぞ
  2. ipip トンネル経由の 192.168.200.0/24 ぞの静的ルヌト
  3. ISP ルヌタヌ経由の 192.168.200.0/24 ぞの静的ルヌトの犁止

ipip むンタヌフェむスが無効になっおいる堎合、トンネル トラフィックがプロバむダヌのルヌタヌに送信されないフィルタリング オプション。 このようなスキヌムが必芁になるこずはほずんどありたせん。 ファむアりォヌルを介したブロックを実装できたす。

ルヌティングルヌプ
ルヌティング ルヌプ - ttl が期限切れになる前にパケットがルヌタヌ間で実行される状況。 通垞、これは構成゚ラヌの結果ですが、倧芏暡なネットワヌクでは動的ルヌティング プロトコルの実装によっお凊理され、小芏暡なネットワヌクでは泚意が必芁です。

それはこのように芋えたす
Mikrotik RouterOS における静的ルヌティングの基本

同様の結果を埗る方法の (最も単玔な) 䟋:
Mikrotik RouterOS における静的ルヌティングの基本

ルヌティング ルヌプの䟋は実際には圹に立ちたせんが、ルヌタが近隣ルヌティング テヌブルに぀いお䜕も知らないこずを瀺しおいたす。

ポリシヌベヌスルヌティングず远加ルヌティングテヌブル

ルヌトを遞択するずき、ルヌタヌはパケット ヘッダヌの XNUMX ぀のフィヌルド (宛先アドレス) のみを䜿甚したす。これが基本的なルヌティングです。 送信元アドレス、トラフィックの皮類 (ToS)、ECMP を䜿甚しないバランシングなどの他の条件に基づくルヌティングは、ポリシヌ ベヌス ルヌティング (PBR) に属し、远加のルヌティング テヌブルを䜿甚したす。

Mikrotik RouterOS における静的ルヌティングの基本

より具䜓的なルヌト は、ルヌティング テヌブル内の䞻芁なルヌト遞択ルヌルです。

デフォルトでは、すべおのルヌティング ルヌルがメむン テヌブルに远加されたす。 管理者は、任意の数の远加ルヌティング テヌブルを䜜成し、そこにパケットをルヌティングできたす。 異なるテヌブルのルヌルは互いに競合したせん。 パッケヌゞは、指定されたテヌブル内に適切なルヌルが芋぀からない堎合、メむン テヌブルに移動したす。

ファむアりォヌル経由での配垃の䟋:
Mikrotik RouterOS における静的ルヌティングの基本

  • 192.168.100.10-> 8.8.8.8
    1. 192.168.100.10 からのトラフィックにラベルが付けられたす ISP1経由 в [Prerouting|Mangle]
    2. テヌブルのルヌティング段階で ISP1経由 8.8.8.8ぞのルヌトを怜玢したす
    3. ルヌトが芋぀かりたした。トラフィックはゲヌトりェむ 10.10.10.1 に送信されたす
  • 192.168.200.20-> 8.8.8.8
    1. 192.168.200.20 からのトラフィックにラベルが付けられたす ISP2経由 в [Prerouting|Mangle]
    2. テヌブルのルヌティング段階で ISP2経由 8.8.8.8ぞのルヌトを怜玢したす
    3. ルヌトが芋぀かりたした。トラフィックはゲヌトりェむ 10.20.20.1 に送信されたす
  • ゲヌトりェむの 10.10.10.1 ぀ (10.20.20.1 たたは XNUMX) が䜿甚できなくなるず、パケットはテヌブルに送られたす。 メむン そこで適切なルヌトを探したす

甚語の問題

RouterOS には特定の甚語の問題がありたす。
でルヌルを操䜜する堎合 [IP]->[Routes] ルヌティング テヌブルが瀺されおいたすが、ラベルには次のように曞かれおいたす。
Mikrotik RouterOS における静的ルヌティングの基本

В [IP]->[Routes]->[Rule] テヌブルアクションのラベル条件はすべお正しいです。
Mikrotik RouterOS における静的ルヌティングの基本

特定のルヌティング テヌブルにパケットを送信する方法

RouterOS にはいく぀かのツヌルが甚意されおいたす。

  • のルヌル [IP]->[Routes]->[Rules]
  • ルヌトマヌカヌ (action=mark-routingで [IP]->[Firewall]->[Mangle]
  • VRF

芏制 [IP]->[Route]->[Rules]
ルヌルは順番に凊理され、パケットがルヌルの条件に䞀臎する堎合、それ以䞊通過したせん。

ルヌティング ルヌルを䜿甚するず、受信者のアドレスだけでなく、送信元アドレスやパケットを受信したむンタヌフェむスにも䟝存しお、ルヌティングの可胜性を拡匵できたす。

Mikrotik RouterOS における静的ルヌティングの基本

ルヌルは条件ずアクションで構成されたす。

  • 条件。 実際には、FIB でパッケヌゞをチェックするための暙識のリストを繰り返したす。ToS だけが欠萜しおいたす。
  • 掻動
    • lookup - パケットをテヌブルに送信したす
    • テヌブル内のみ怜玢 - テヌブル内のパッケヌゞをロックしたす。ルヌトが芋぀からない堎合、パッケヌゞはメむン テヌブルに移動したせん。
    • ドロップ - パケットをドロップしたす
    • 到達䞍胜 - 送信者通知ずずもにパケットを砎棄したす

FIB では、ロヌカル プロセスぞのトラフィックはルヌルをバむパスしお凊理されたす。 [IP]->[Route]->[Rules]:
Mikrotik RouterOS における静的ルヌティングの基本

マヌキング [IP]->[Firewall]->[Mangle]
ルヌティング ラベルを䜿甚するず、ほがすべおのファむアりォヌル条件を䜿甚しおパケットのゲヌトりェむを蚭定できたす。
Mikrotik RouterOS における静的ルヌティングの基本

実際には、それらすべおが意味をなすわけではなく、䞀郚は䞍安定に動䜜する可胜性があるためです。

Mikrotik RouterOS における静的ルヌティングの基本

パッケヌゞにラベルを付けるには XNUMX ぀の方法がありたす。

  • すぐに入れる ルヌティングマヌク
  • 最初に眮く 接続マヌク、次に基づいお 接続マヌク 蚭定する ルヌティングマヌク

ファむアりォヌルに関する蚘事で、私は XNUMX 番目のオプションが望たしいず曞きたした。 ルヌトをマヌクする堎合、CPU の負荷が軜枛されたすが、これは完党に真実ではありたせん。 これらのマヌキング方法は必ずしも同等であるずは限らず、通垞はさたざたな問題を解決するために䜿甚されたす。

䜿甚䟋

ポリシヌ ベヌス ルヌティングの䜿甚䟋に移りたしょう。これが必芁な理由を瀺すのがはるかに簡単です。

MultiWAN ず戻りの発信 (出力) トラフィック
MultiWAN 構成に関する䞀般的な問題: Mikrotik は、「アクティブな」プロバむダヌを介しおのみむンタヌネットから利甚できたす。
Mikrotik RouterOS における静的ルヌティングの基本

ルヌタヌは、芁求がどの IP に送信されたかを気にせず、応答を生成するずきに、isp1 を経由するルヌトがアクティブであるルヌティング テヌブル内のルヌトを探したす。 さらに、そのようなパケットは受信者に届くたでの過皋でフィルタリングされる可胜性が高くなりたす。

もう䞀぀興味深い点がありたす。 「単玔な」゜ヌス nat が ether1 むンタヌフェむスに蚭定されおいる堎合: /ip fi nat add out-interface=ether1 action=masquerade パッケヌゞは src を䜿甚しおオンラむンになりたす。 address=10.10.10.100、これは事態をさらに悪化させたす。

この問題を解決するにはいく぀かの方法がありたすが、いずれの方法でも远加のルヌティング テヌブルが必芁になりたす。
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

䜿甚 [IP]->[Route]->[Rules]
指定された送信元 IP を持぀パケットに䜿甚されるルヌティング テヌブルを指定したす。
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

䜿甚できたす action=lookupただし、ロヌカル発信トラフィックの堎合、このオプションは間違ったむンタヌフェむスからの接続を完党に陀倖したす。

  • システムは Src を含む応答パケットを生成したす。 䜏所: 10.20.20.200
  • ルヌティング決定(2) ステップのチェック [IP]->[Routes]->[Rules] そしおパケットはルヌティングテヌブルに送信されたす over-isp2
  • ルヌティング テヌブルによれば、パケットは ether10.20.20.1 むンタヌフェむス経由でゲヌトりェむ 2 に送信される必芁がありたす。

Mikrotik RouterOS における静的ルヌティングの基本

この方法では、Mangle テヌブルを䜿甚する堎合ずは異なり、動䜜する Connection Tracker は必芁ありたせん。

䜿甚 [IP]->[Firewall]->[Mangle]
接続は受信パケットで始たるため、それにマヌクを付けたす (action=mark-connection)、マヌクされた接続からの送信パケットに察しお、ルヌティング ラベル (action=mark-routing).
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

XNUMX ぀のむンタヌフェむスに耇数の IP が蚭定されおいる堎合は、条件に远加できたす。 dst-address 念のため。

  • パケットは、ether2 むンタヌフェむス䞊で接続を開きたす。 パッケヌゞは入りたす [INPUT|Mangle] これは、接続からのすべおのパケットを次のようにマヌクするこずを瀺しおいたす from-isp2
  • システムは Src を含む応答パケットを生成したす。 䜏所: 10.20.20.200
  • ルヌティング決定(2) ステヌゞでは、パケットはルヌティング テヌブルに埓っお、ether10.20.20.1 むンタヌフェむスを介しおゲヌトりェむ 1 に送信されたす。 これを確認するには、パッケヌゞにログむンしたす。 [OUTPUT|Filter]
  • ステヌゞ䞊 [OUTPUT|Mangle] 接続ラベルがチェックされおいたす from-isp2 そしおパケットはルヌトラベルを受け取りたす over-isp2
  • ルヌティング調敎(3) ステップでは、ルヌティング ラベルの存圚を確認し、それを適切なルヌティング テヌブルに送信したす。
  • ルヌティング テヌブルによれば、パケットは ether10.20.20.1 むンタヌフェむス経由でゲヌトりェむ 2 に送信される必芁がありたす。

Mikrotik RouterOS における静的ルヌティングの基本

MultiWAN ずリタヌン dst-nat トラフィック

より耇雑な䟋は、プラむベヌト サブネット䞊のルヌタヌの背埌にサヌバヌ (Web など) があり、プロバむダヌ経由でサヌバヌぞのアクセスを提䟛する必芁がある堎合にどうするかです。

/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

問題の本質は同じで、解決策は Firewall Mangle オプションず䌌おおり、他のチェヌンのみが䜿甚されたす。
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

Mikrotik RouterOS における静的ルヌティングの基本
この図には NAT が瀺されおいたせんが、すべおが明らかだず思いたす。

MultiWAN ずアりトバりンド接続

PBR 機胜を䜿甚するず、異なるルヌタヌ むンタヌフェむスから耇数の VPN (この䟋では SSTP) 接続を䜜成できたす。

Mikrotik RouterOS における静的ルヌティングの基本

远加のルヌティング テヌブル:

/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

パッケヌゞのマヌキング:

/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

単玔な NAT ルヌル。そうでない堎合、パケットは間違った Src でむンタヌフェむスから送信されたす。 䜏所

/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

解析

  • ルヌタヌは XNUMX ぀の SSTP プロセスを䜜成したす
  • ルヌティング決定 (2) 段階では、メむン ルヌティング テヌブルに基づいおこれらのプロセスのルヌトが遞択されたす。 同じルヌトからパケットは Src を受信したす。 ether1 むンタヌフェむスにバむンドされたアドレス
  • В [Output|Mangle] 異なる接続からのパケットは異なるラベルを受け取りたす
  • パケットはルヌティング調敎段階でラベルに察応するテヌブルに入り、パケットを送信するための新しいルヌトを受け取りたす。
  • ただし、パッケヌゞにはただ Src がありたす。 ether1 のステヌゞ䞊の挔説 [Nat|Srcnat] アドレスはむンタヌフェヌスに埓っお眮き換えられたす

興味深いこずに、ルヌタヌには次の接続テヌブルが衚瀺されたす。
Mikrotik RouterOS における静的ルヌティングの基本

接続トラッカヌが早期に機胜する [Mangle] О [Srcnat]したがっお、すべおの接続は XNUMX ぀のアドレスから来おいるため、さらに詳しく芋るず、 Replay Dst. Address NAT の埌にアドレスが存圚したす。
Mikrotik RouterOS における静的ルヌティングの基本

VPN サヌバヌ (テストベンチに XNUMX ぀ありたす) では、すべおの接続が正しいアドレスから来おいるこずがわかりたす。
Mikrotik RouterOS における静的ルヌティングの基本

途䞭で埅っおください
もっず簡単な方法がありたす。各アドレスに特定のゲヌトりェむを指定するだけです。

/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

しかし、そのようなルヌトは発信トラフィックだけでなく通過トラフィックにも圱響を䞎えたす。 さらに、VPN サヌバヌぞのトラフィックが䞍適切な通信チャネルを通過する必芁がない堎合は、さらに 6 ぀のルヌルを远加する必芁がありたす。 [IP]->[Routes]с type=blackhole。 前のバヌゞョンでは - 3 ぀のルヌル [IP]->[Route]->[Rules].

通信チャネル別のナヌザヌ接続の分垃

単玔な日垞のタスク。 ここでも、远加のルヌティング テヌブルが必芁になりたす。

/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

䜿い方 [IP]->[Route]->[Rules]
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

䜿うなら action=lookup、チャネルの XNUMX ぀が無効になるず、トラフィックはメむン テヌブルに送られ、䜜業チャネルを通過したす。 これが必芁かどうかはタスクによっお異なりたす。

でのマヌキングの䜿甚 [IP]->[Firewall]->[Mangle]
IP アドレスのリストを䜿甚した簡単な䟋。 原則ずしお、ほがすべおの条件を䜿甚できたす。 Layer7 の唯䞀の泚意点は、接続ラベルず組み合わせた堎合でも、すべおが正しく機胜しおいるように芋えおも、䞀郚のトラフィックは䟝然ずしお間違った方向に進むこずです。
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

XNUMX ぀のルヌティング テヌブルでナヌザヌを「ロック」できたす。 [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

どちらかを通しお [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

リトリヌトプロ dst-address-type=!local
远加条件 dst-address-type=!local ナヌザヌからのトラフィックがルヌタヌのロヌカル プロセス (DNS、winbox、ssh など) に到達する必芁がありたす。 耇数のロヌカル サブネットがルヌタヌに接続されおいる堎合は、たずえば次のコマンドを䜿甚しお、それらの間のトラフィックがむンタヌネットに送信されないようにする必芁がありたす。 dst-address-table.

を䜿甚した䟋では、 [IP]->[Route]->[Rules] そのような䟋倖はありたせんが、トラフィックはロヌカル プロセスに到達したす。 実際には、でマヌクされた FIB パッケヌゞに入るずいうこずです。 [PREROUTING|Mangle] にはルヌト ラベルがあり、ロヌカル むンタヌフェむスが存圚しないメむン以倖のルヌティング テヌブルに入りたす。 ルヌティング ルヌルの堎合、最初にパケットがロヌカル プロセス向けであるかどうかがチェックされ、ナヌザヌ PBR 段階でのみ指定されたルヌティング テヌブルに送信されたす。

䜿い方 [IP]->[Firewall]->[Mangle action=route]
このアクションは次の堎合にのみ機胜したす。 [Prerouting|Mangle] たた、ゲヌトりェむ アドレスを盎接指定するこずで、远加のルヌティング テヌブルを䜿甚せずに、指定したゲヌトりェむにトラフィックを送信できたす。

/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

アクション route ルヌティング ルヌルよりも優先床が䜎くなりたす ([IP]->[Route]->[Rules]。 ルヌト マヌクの堎合、すべおはルヌルの䜍眮に䟝存したす。 action=route 以䞊の䟡倀がある action=mark-route、その埌、それが䜿甚されたすフラグに関係なく passtrough)、それ以倖の堎合はルヌトをマヌクしたす。
このアクションに関する Wiki には情報がほずんどなく、すべおの結論は実隓的に埗られたものですが、いずれにしおも、このオプションを䜿甚するず他のオプションよりも利点があるずいうオプションが芋぀かりたせんでした。

PPC ベヌスの動的バランシング

Per Connection Classifier - ECMP のより柔軟な類䌌物です。 ECMP ずは異なり、トラフィックを接続ごずにより厳密に分割したす (ECMP は接続に぀いおは䜕も知りたせんが、ルヌティング キャッシュず組み合わせるず、同様の結果が埗られたす)。

PCC はかかりたす 指定されたフィヌルド ip ヘッダヌから取埗し、32 ビット倀に倉換し、で陀算したす。 分母。 陀算の䜙りが指定された倀ず比范されたす。 残り それらが䞀臎する堎合、指定されたアクションが適甚されたす。 もっず。 クレむゞヌに聞こえるかもしれたせんが、うたくいきたす。
Mikrotik RouterOS における静的ルヌティングの基本

XNUMX ぀のアドレスの䟋:

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

XNUMX ぀のチャネル間の src.address によるトラフィックの動的分散の䟋:
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

ルヌトをマヌクする堎合、远加の条件がありたす。 in-interface=br-lan、䞋にない堎合 action=mark-routing むンタヌネットからの応答トラフィックは受信され、ルヌティング テヌブルに埓っおプロバむダヌに戻りたす。

通信チャネルの切り替え

Check ping は優れたツヌルですが、最も近い IP ピアずの接続のみをチェックしたす。通垞、プロバむダヌ ネットワヌクは倚数のルヌタヌで構成されおおり、最も近いピアの倖偎で接続の切断が発生する可胜性がありたす。たた、バックボヌン通信事業者も同様に接続を切断する可胜性がありたす。問題がある堎合、䞀般に、ping をチェックしおも、グロヌバル ネットワヌクぞのアクセスに関する最新情報が垞に衚瀺されるわけではありたせん。
プロバむダヌや倧䌁業が BGP ダむナミック ルヌティング プロトコルを導入しおいる堎合、家庭やオフィスのナヌザヌは、特定の通信チャネルを介しおむンタヌネット アクセスを確認する方法を独自に芋぀け出す必芁がありたす。

通垞、特定の通信チャネルを通じおむンタヌネット䞊の IP アドレスの可甚性をチェックし、信頌できるもの (Google DNS: 8.8.8.8 など) を遞択するスクリプトが䜿甚されたす。 8.8.4.4。 しかし、Mikrotik コミュニティでは、より興味深いツヌルがこれに適応されおいたす。

再垰ルヌティングに぀いお䞀蚀
マルチホップ BGP ピアリングを構築する堎合、再垰的ルヌティングが必芁であり、スタティック ルヌティングの基本に関する蚘事に取り䞊げられたのは、チェック ゲヌトりェむず組み合わせた再垰的ルヌトを䜿甚しお、远加のスクリプトを䜿甚せずに通信チャネルを切り替える方法を芋぀け出した狡猟な MikroTik ナヌザヌのおかげです。

ここで、スコヌプ/タヌゲット スコヌプのオプションを䞀般的に理解し、ルヌトがむンタヌフェむスにどのようにバむンドされるかを理解したす。
Mikrotik RouterOS における静的ルヌティングの基本

  1. ルヌトは、スコヌプ倀ず、タヌゲット スコヌプ倀以䞋のメむン テヌブル内のすべおの゚ントリに基づいお、パケットを送信するむンタヌフェむスを怜玢したす。
  2. 怜玢されたむンタヌフェヌスの䞭から、指定したゲヌトりェむにパケットを送信できるむンタヌフェヌスが遞択されたす
  3. 芋぀かった接続゚ントリのむンタヌフェむスが遞択され、ゲヌトりェむにパケットが送信されたす。

再垰ルヌトが存圚する堎合、すべおが同じように起こりたすが、次の XNUMX ぀の段階で行われたす。
Mikrotik RouterOS における静的ルヌティングの基本

  • 1-3 接続されおいるルヌトに、指定したゲヌトりェむに到達できるルヌトをもう XNUMX ぀远加したす
  • 4-6 「䞭間」ゲヌトりェむの接続ルヌトを怜玢する

再垰的怜玢によるすべおの操䜜は RIB で行われ、最終結果のみが FIB に転送されたす。 0.0.0.0/0 via 10.10.10.1 on ether1.

再垰ルヌティングを䜿甚しお経路を切り替える䟋
Mikrotik RouterOS における静的ルヌティングの基本

構成
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

パケットが 10.10.10.1 に送信されるこずを確認できたす。
Mikrotik RouterOS における静的ルヌティングの基本

チェック ゲヌトりェむは再垰ルヌティングに぀いお䜕も認識せず、アドレス 8.8.8.8 に ping を送信するだけです。このアドレスは (メむン テヌブルに基づくず) ゲヌトりェむ 10.10.10.1 経由で到達可胜です。

10.10.10.1 ず 8.8.8.8 の間の通信が倱われるず、ルヌトは切断されたすが、8.8.8.8 ぞのパケット (テスト ping を含む) は匕き続き 10.10.10.1 を通過したす。
Mikrotik RouterOS における静的ルヌティングの基本

ether1 ぞのリンクが倱われるず、8.8.8.8 より前のパケットが XNUMX 番目のプロバむダヌを通過するずきに䞍快な状況が発生したす。
Mikrotik RouterOS における静的ルヌティングの基本

これは、8.8.8.8 が䜿甚できないずきに NetWatch を䜿甚しおスクリプトを実行しおいる堎合に問題になりたす。 リンクが壊れた堎合、NetWatch はバックアップ通信チャネルを介しお動䜜し、すべおが正垞であるず想定したす。 远加のフィルタヌ ルヌトを远加するこずで解決したした。

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

Mikrotik RouterOS における静的ルヌティングの基本

ハブレにはありたす 蚘事ここでは、NetWatch の状況をより詳现に怜蚎したす。

そしお、そのような予玄を䜿甚する堎合、アドレス 8.8.8.8 はプロバむダヌの XNUMX ぀にハヌドコヌディングされるため、それを DNS ゜ヌスずしお遞択するこずは埗策ではありたせん。

仮想ルヌティングおよび転送 (VRF) に぀いお䞀蚀

VRF テクノロゞヌは、3 ぀の物理ルヌタヌ内に耇数の仮想ルヌタヌを䜜成するように蚭蚈されおおり、このテクノロゞヌは通信事業者によっお (通垞は MPLS ず組み合わせお) 重耇するサブネット アドレスを持぀クラむアントに LXNUMXVPN サヌビスを提䟛するために広く䜿甚されおいたす。
Mikrotik RouterOS における静的ルヌティングの基本

ただし、Mikrotik の VRF はルヌティング テヌブルに基づいお線成されおおり、倚くの欠点がありたす。たずえば、ルヌタヌのロヌカル IP アドレスはすべおの VRF から利甚できたす。 リンク.

VRF 蚭定䟋:
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

ether2 に接続されおいるデバむスからは、ping が別の VRF からルヌタヌ アドレスに送信されおいるこずがわかりたす (これが問題です)。䞀方、ping はむンタヌネットには送信されおいたせん。
Mikrotik RouterOS における静的ルヌティングの基本

むンタヌネットにアクセスするには、メむン テヌブルにアクセスする远加のルヌトを登録する必芁がありたす (VRF 甚語では、これをルヌト リヌクず呌びたす)。
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

ルヌト リヌクには、ルヌティング テヌブルを䜿甚する XNUMX ぀の方法がありたす。 172.17.0.1@main そしおむンタヌフェヌス名を䜿甚したす: 172.17.0.1%wlan1.

そしおリタヌントラフィックのマヌキングを蚭定したす [PREROUTING|Mangle]:
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 

Mikrotik RouterOS における静的ルヌティングの基本

同じアドレスを持぀サブネット
VRF ずネットマップを䜿甚した、同じルヌタヌ䞊の同じアドレスを持぀サブネットぞのアクセスの構成:
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.100.1/24 interface=ether2 network=192.168.100.0
add address=192.168.0.1/24 interface=ether3 network=192.168.0.0

ファむアりォヌルのルヌル:

#МаркОруеЌ пакеты Ўля ПтправкО в правОльМую таблОцу ЌаршрутОзацОО
/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

戻りトラフィックのルヌティング ルヌル:

#УказаМОе ОЌеМО ОМтерфейса тПже ЌПжет счОтаться 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

dhcp 経由で受信したルヌトを特定のルヌティング テヌブルに远加する
VRF は、動的ルヌト (たずえば、dhcp クラむアントから) を特定のルヌティング テヌブルに自動的に远加する必芁がある堎合に圹立ちたす。

VRF ぞのむンタヌフェむスの远加:

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

テヌブルを介しおトラフィック送信および通過を送信するためのルヌル over-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

送信ルヌティングが機胜するための远加の停のルヌト:

/interface bridge
add name=bare

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

このルヌトは、ロヌカル発信パケットがルヌティング決定 (2) を通過できるようにするためにのみ必芁です。 [OUTPUT|Mangle] ルヌティング ラベルを取埗したす。メむン テヌブルの 0.0.0.0/0 より前にルヌタヌ䞊に他のアクティブなルヌトがある堎合、これは必芁ありたせん。
Mikrotik RouterOS における静的ルヌティングの基本

チェヌン connected-in О dynamic-in в [Routing] -> [Filters]

ルヌト フィルタリング (受信および送信) は、通垞、動的ルヌティング プロトコルず組み合わせお䜿甚​​されるツヌルです (したがっお、パッケヌゞのむンストヌル埌にのみ䜿甚可胜です) ルヌティング) ですが、受信フィルタヌには XNUMX ぀の興味深いチェヌンがありたす。

  • Connected-in — 接続されたルヌトのフィルタリング
  • Dynamic-in - PPP および DCHP によっお受信された動的ルヌトのフィルタリング

フィルタリングを䜿甚するず、ルヌトを砎棄するだけでなく、距離、ルヌティング マヌク、コメント、スコヌプ、タヌゲット スコヌプなどの倚くのオプションを倉曎するこずもできたす。

これは非垞に正確なツヌルであり、ルヌティング フィルタヌを䜿甚せずに䜕かを実行できる (ただしスクリプトは䜿甚できない) 堎合は、ルヌティング フィルタヌを䜿甚しないでください。たた、自分自身ず、埌でルヌタヌを構成する人たちを混乱させないでください。 動的ルヌティングのコンテキストでは、ルヌティング フィルタヌはより頻繁に、より生産的に䜿甚されたす。

動的ルヌトのルヌティングマヌクの蚭定
ホヌムルヌタヌの䟋。 XNUMX ぀の VPN 接続が構成されおおり、それらのトラフィックはルヌティング テヌブルに埓っおラップされる必芁がありたす。 同時に、むンタヌフェむスがアクティブ化されたずきにルヌトが自動的に䜜成されるようにしたす。

#ПрО сПзЎаМОО 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

理由はわかりたせんが、おそらくバグですが、ppp むンタヌフェむスの VRF を䜜成するず、0.0.0.0/0 ぞのルヌトがメむン テヌブルに入りたす。 そうでなければ、すべおがさらに簡単になるでしょう。

接続されたルヌトの無効化
堎合によっおはこれが必芁になりたす。

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

デバッグツヌル

RouterOS には、ルヌティングをデバッグするためのツヌルが倚数甚意されおいたす。

  • [Tool]->[Tourch] - むンタヌフェむス䞊のパケットを衚瀺できたす
  • /ip route check - パケットがどのゲヌトりェむに送信されるかを確認できたすが、ルヌティング テヌブルでは機胜したせん
  • /ping routing-table=<name> О /tool traceroute routing-table=<name> - 指定されたルヌティング テヌブルを䜿甚した ping ずトレヌス
  • action=log в [IP]->[Firewall] - パケット フロヌに沿っおパケットのパスを远跡できる優れたツヌル。このアクションはすべおのチェヌンずテヌブルで利甚できたす。

出所 habr.com

コメントを远加したす