最初の状況は次のとおりです。国のさまざまな場所に8つのオフィスがあり、災害時に各オフィスの可用性が最大になるように、それらを単一のネットワークに取り込む必要があります。 すべてのオフィスのルーターはMikrotikです。 メインサイト-CCR CCR1036-12G、残り-1100 AHx2
インターネットの問題を回避するために、2つのチャネルが異なるプロバイダーから引き伸ばされたため、電力を確保し、「どのネットワークを構築する必要があるか」という質問に答えました。 記事の名前が示すように、最終的にFullMeshをビルドすることにしました。
このスキームは、管理の要件を完全に満たしています。インターネットチャネルやオフィスに障害が発生しても、ネットワークは接続されたままです。 ルーティングに関する質問のみがありました。 オプションの1つは、RSTP、OSPF、および静的ルートを持つユニバーサルブリッジでした。 当然、最終的に私はOSPFを選択しました-RSTPを使用する場合よりも静的で問題が少なく、ルーターの負荷が少ないです。
設定自体とカットの下の完成した設定。
EoIPトンネルを使用してルーターを接続することにしました。ペアごとに2つ-プライマリプロバイダーからプライマリへ、バックアップからバックアップへ。 残りは同じように構成されているため、1つのペアの構成について説明します。
最初のルーターで、2つのトンネルを作成します。
/interface eoip ladd keepalive=1s,3 local-address=xxx.xxx.xxx.xxx name=FIRST remote-address=yyy.yyy.yyy.yyy tunnel-id=1 add keepalive=1s,3 local-address=zzz.zzz.zzz.zzz name=FIRST_BAK remote-address=www.www.www.www tunnel-id=2
トンネルを2番目の側面から持ち上げます。
/interface eoip ladd keepalive=1s,3 local-address=yyy.yyy.yyy.yyy name=FIRST remote-address=xxx.xxx.xxx.xxx tunnel-id=1 add keepalive=1s,3 local-address=www.www.www.www name=FIRST_BAK remote-address=zzz.zzz.zzz.zzz tunnel-id=2
OSPFを構成し、バックボーンゾーンを介してルートを交換します。
最初のルーター:
/routing ospf area add area-id=192.168.0.1 name=FIRST /routing ospf interface add cost=10 dead-interval=5s hello-interval=1s interface=FIRST \ network-type=point-to-point use-bfd=yes add cost=10 dead-interval=5s hello-interval=1s interface=FIRST_BAK \ network-type=point-to-point use-bfd=yes /routing ospf network add area=FIRST network=192.168.0.0/24 add area=backbone network=10.0.0.0/22
2番目のルーター:
/routing ospf area add area-id=192.168.1.1 name=SECOND /routing ospf interface add cost=10 dead-interval=5s hello-interval=1s interface=FIRST \ network-type=point-to-point use-bfd=yes add cost=10 dead-interval=5s hello-interval=1s interface=FIRST_BAK \ network-type=point-to-point use-bfd=yes /routing ospf network add area=SECOND network=192.168.1.0/24 add area=backbone network=10.0.0.0/22
最後に、作成されたトンネルのアドレスを追加します。
最初のルーター:
ip address add address=10.0.1.1/30 interface=FIRST network=10.0.1.0 ip address add address=10.0.1.5/30 interface=FIRST_BAK network=10.0.1.4
2番目のルーター:
ip address add address=10.0.1.2/30 interface=FIRST network=10.0.1.0 ip address add address=10.0.1.6/30 interface=FIRST_BAK network=10.0.1.4
OSPFを使用してゾーンにルートを交換する2つのルーターを取得します。 この手順をルーターのすべてのペアに対して繰り返します。
その結果、まさにそのようなFullMeshネットワークが得られます(回路の品質について事前に謝罪します-オンラインのGliffy描画を使用したため、Linuxでネットワーク図を適切に描画する方法が見つかりませんでした)。
すべてのルーターは、ID 0.0.0.0 +の共通バックボーンエリアに含まれており、それぞれがルーターのローカルIPと等しいIDを持つ独自のゾーンの境界線です。
ルーターはお互いを発見した直後に、知っているルートを交換し、リンクのコストに基づいて最適なルートを選択します。 この構成では、障害が発生した場合、障害が発生したルートを通過するトラフィックが利用可能なすべてのルーターを介して配信されるため、最適なルートは常に最も直接的です(より正確には2つの直接ルート-メインとバックアップ)。
したがって、プロバイダーの技術的な作業や、特定の方向へのGREパケットの通過に関する定期的な問題にもはや恐れられませんでした。完全なネットワーク接続には、既存のトンネルの半分未満で十分です。 まあ、ボーナスとして、トンネル間でトラフィックバランシングが行われました。メイントンネルとバックアップトンネルのコストが同じであるため、OSPFは自動的に両方のトンネルにトラフィックを送信し、トンネル間の負荷をほぼ均等に分散します。
この構成の最適化に関する質問や提案がある場合は、コメントを歓迎します。
約束どおり、ルーターの1つの既製の構成(すべての名前とIPはセキュリティサービスとの合意により変更されます):
UPD:この構成は、販売ではなく、テストラボからマージされます。 prodでこの記事を書いた瞬間から、彼らはルーティングのためにOSPFを持つプロバイダーからのL2VPNを支持して、このスキームを放棄することに成功しました。