セグメントルーティングで有効になる機能と設計とは?
セグメントルーティングは、BGPフリーコア、トラフィックエンジニアリング(TE)、ローカル修復バックアップパス、エニーキャストルーティング、マルチトポロジーネットワーキングなど、多くの便利な機能を実現します。これらの機能はすべて追加のシグナリングを必要とせず、既存のルーティングプロトコルを利用しています。さらに、一元化されたコントローラは、IGPエリアとレベル、およびBGP自律システム全体にわたって帯域幅予約とトラフィックエンジニアリングパスを作成できます。
前提となる知識
皆様が『 ネットワーキングにおけるセグメントルーティングとソースパケットルーティングとは』と、前提条件となるトピックを読んでいただいていることを前提にしています。
セグメントルーティング(SR)には、サービスプロバイダネットワーク、データセンターネットワーク、モバイルネットワーク、大企業ネットワークなど、さまざまなネットワークに多大な付加価値をもたらす強力な機能が数多く用意されています。
これらの機能の一部は、セグメントルーティング専用です。既存のパスプロトコルや、RSVPやLDPなどのトンネリングプロトコルも、他のいくつかの機能を提供しています。この場合でも、セグメントルーティングには、既存のオプションと比較して新たなメリットと機能強化があります。
このドキュメントでは、これらの機能の概要と、セグメントルーティングを展開するメリットについて幅広く理解することができます。また、これらの各機能を、その構成や検証など、より技術的に詳しく説明するさまざまなドキュメントも提供しています。
このガイドで説明されているすべての機能は、SR-MPLS で利用できます。ほとんどの機能は、SRv6でも利用できます。
他のSR対応デバイスへの最短パストンネルの自動フルメッシュ
運用担当者が Junos OS ルーターで MPLS と LDP を実行すると、各デバイスがネットワーク内の他のすべての LDP デバイスへの LSP(ラベルスイッチ パス)のフルメッシュを自動的に作成します。これらのLSPは、宛先までのIGP最短パスをたどるだけです。これは、BGPフリーコアや、イーサネットVPN(EVPN)やレイヤー3VPN(L3VPN)などのVPNサービスを供給するのに十分です。
セグメントルーティングは、SR-MPLSとSRv6の両方で、他のすべてのSR対応デバイスへの最短パストンネルを自動的に作成します。
SR-MPLSネットワークでは、inet.3ルーティングテーブルに、他のすべてのSR-MPLS対応デバイスへのIPv4 LSPを自動的に入力できます。これは、最も基本的なSR-MPLSの導入にも当てはまります。ネットワークでIPv6も実行している場合は、inet6.3テーブルにIPv6 LSPを入力することも簡単です。
図1 は、この概念を示しています。R1からR10までの番号が付けられた10台のルーターのネットワークを示しています。
IS-ISでSR-MPLSを有効にした後、以下の出力は、ルーターR1のinet.3テーブルに他の9台のルーターへのLSPのフルメッシュが含まれていることを示しています。SR-MPLS はこのフルメッシュを自動的に作成し、追加のシグナリングを必要としません。
user@R1> show route table inet.3
inet.3: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
192.168.1.2/32 *[L-ISIS/14] 00:06:45, metric 100
> to 10.1.2.2 via ge-0/0/0.0
192.168.1.3/32 *[L-ISIS/14] 00:02:18, metric 200
> to 10.1.2.2 via ge-0/0/0.0, Push 300403
192.168.1.4/32 *[L-ISIS/14] 00:02:18, metric 300
> to 10.1.2.2 via ge-0/0/0.0, Push 300404
192.168.1.5/32 *[L-ISIS/14] 00:02:18, metric 400
> to 10.1.2.2 via ge-0/0/0.0, Push 300405
192.168.1.6/32 *[L-ISIS/14] 00:06:45, metric 100
> to 10.1.6.6 via ge-0/0/2.0
192.168.1.7/32 *[L-ISIS/14] 00:02:18, metric 200
to 10.1.2.2 via ge-0/0/0.0, Push 300407
> to 10.1.6.6 via ge-0/0/2.0, Push 300407
192.168.1.8/32 *[L-ISIS/14] 00:02:18, metric 300
> to 10.1.2.2 via ge-0/0/0.0, Push 300408
to 10.1.6.6 via ge-0/0/2.0, Push 300408
192.168.1.9/32 *[L-ISIS/14] 00:02:18, metric 400
> to 10.1.2.2 via ge-0/0/0.0, Push 300409
to 10.1.6.6 via ge-0/0/2.0, Push 300409
192.168.1.10/32 *[L-ISIS/14] 00:02:18, metric 500
> to 10.1.2.2 via ge-0/0/0.0, Push 300410
to 10.1.6.6 via ge-0/0/2.0, Push 300410
送信 MPLS ラベルは、各リモート ノードで予測可能であるように見えることに注意してください。これは SR-MPLS のデフォルトの動作ではありませんが、数行の設定で非常に簡単に有効にできます。R7、R8、R9、R10へのLSPでは、ECMP(等価コストマルチパス)オプションが自動的に利用されることに注意してください。
SRv6ネットワークでは、すべてのデバイスでSRv6が実行されている場合、他のすべてのSRv6対応デバイスへのトンネルの自動フルメッシュを作成できます。ただし、すべてのトランジットデバイスでSRv6を実行するという厳密な要件はありません。例えば、古いトランジットデバイスがSRv6を実行できない場合でも、これらのデバイスを通常のIPv6に対して有効にすることができます。これは、これらのルーターがネットワーク内のSRv6トンネルにトランジット機能を提供するのに十分です。この場合、他のすべてのSRv6対応デバイスへのトンネルの少なくとも部分的なメッシュがあります。
柔軟なアルゴリズム
フレキシブルアルゴリズムまたはフレックスアルゴは、マルチトポロジーネットワークを作成するためのスケーラブルな方法です。管理グループを使用して、特定のリンクを特定のフレックスアルゴトポロジーに属するものとしてタグ付けできます。次に、そのトポロジーに固有の新しいセグメント命令が作成されます。これにより、トラフィックがトポロジー内にのみ含まれることが保証されます。トポロジー内のデバイスがトポロジー内でトラフィックをルーティングするため、トポロジーの一部ではないルーターにトラフィックが漏れることはありません。
図 2 は、この概念を示しています。すべてのルーターがメイントポロジーに参加しています。その後、特定のリンクは、1つ以上の小規模なトポロジーに追加で参加できます。
従来のマルチトポロジー方式では、設定と維持に多大な労力が必要でした。これに対して、管理グループを使用すると、トポロジー間で管理グループを再利用するか、1つ以上の管理グループを除外するか含めるかを選択できます。
各トポロジーには、数値カラーが関連付けられています。これにより、フレックスアルゴはBGPカラーコミュニティを利用して、プレフィックスを特定のトポロジーに自動的にバインドできます。これは、特定のマルチトポロジーネットワークにプレフィックスをバインドする従来の方法よりもはるかに拡張性のあるソリューションを提供します。
TI-LFA(Topology-Independent Loop-Free Alternate)
TI-LFAは、リンクまたはノードに障害が発生した場合にすぐに使用できるローカル修復バックアップパスを作成します。ローカル修復パスを提供するプロトコルは他にもあります。ただし、これらのプロトコルの中には、ループを作成する可能性のあるバックアップパスを回避する必要があるため、限られたトポロジーカバレッジしか提供できないものもあります。他のプロトコルはネットワーク全体をカバーできますが、各バックアップパスは個別に設定および維持する必要があります。
これに対し、TI-LFAは、追加のシグナリングなしで100%のトポロジーカバレッジを提供します。一連のセグメントをパケットにプッシュすることで、トポロジーループを完全に回避できます。さらに、TI-LFAバックアップパスは、リンクまたはノード障害からネットワークの収束が完了した後に使用されるパスと同じです。これは、ポストコンバージェンスパスと呼ばれます。つまり、トラフィックがバックアップパスに移動した後、新しいコンバージェンス後のパスに二度目にシフトする必要はありません。これにより、ネットワークのジッターが低減されます。
これらのバックアップパスを転送プレーンに事前にインストールすると、スイッチオーバー中にダウンタイムをわずか50msに短縮できることがよくわかります。
TI-LFAバックアップパスを使用して、プレーンIPトラフィックを保護することもできます。さらに、フレックスアルゴトポロジーは、TI-LFAバックアップパスが設計したトポロジー内にのみ含まれるように自動的にします。TI-LFAは強力な機能であり、ネットワーク事業者がセグメントルーティングを導入するかどうかを選択する際に考慮する主な推進要因の1つです。
マイクロループ回避
リンク状態ネットワークでは、異なるルーターが異なる時間にトポロジー変更の更新を学習し、処理します。これにより、ネットワーク コンバージェンス イベント中に一時的なループが発生する可能性があります。例えば、あるルーターが隣接するルーターより先に収束し、その隣人が次善のホップであると判断した場合、隣接するルーターがまだ収束を完了していなければ、隣接するがパケットを再度送り返す可能性があります。これらのループはマイクロループとして知られています。
マイクロループは、ミリ秒単位の短いイベントです。しかし、現代では、その間にかなりの量のトラフィックがリンクを通過する可能性があります。マイクロループには、一時的にリンクにトラフィックをフラッディングする機能があり、この間にそのリンクが完全に停止する可能性があります。
マイクロループ回避(MLA)は、マイクロループが発生する可能性のあるトポロジー内の領域を特定するセグメントルーティングの機能です。その後、リンクまたはノードに障害が発生した場合、Junos OS は一時的にセグメント命令をプッシュし、リモートルーターが新しいトポロジーへの収束をまだ完了していなくても、トラフィックを正しく転送できるようにします。多くの場合、これらのセグメントは数秒以下しか使用されませんが、コンバージェンスプロセス中の壊滅的な停止を防ぐにはこれで十分です。
エニーキャスト
2つ以上のルーターでプレフィックスを設定すると、両方のデバイスが、そのプレフィックスに向かって最短パスをトラフィックを送信する指示を表すセグメントをアナウンスできます。これは、共有ポイントツーポイントまたはブブロードキャスト リンクのプレフィックス、または 2 つ以上のデバイスで設定された /32 IPv4 または /128 IPv6 アドレスである可能性があります。
その結果、メトリックで最も近いルーターに向かってトラフィックを最短パスで送信できます。または、すべてのデバイスのコストが等しい場合は、デバイス間でトラフィックをロードバランシングできます。
この機能は、エニーキャストルーティングと呼ばれます。これはネットワークのコアでは一般的です。2台以上のコアルーターが同じセグメントを通知するように設定することで、利用可能な場合に等コストパスを利用する機能を備えたTEパスを作成できます。これは、RSVPなどのプロトコルでは不可能です。これらのパス間で負荷分散を行うには、2つ以上の個別の明示的なパスを作成する必要があります。
あまり一般的ではありませんが強力な例としては、同じプレフィックスとセグメントを通知するように 2 つ以上のルーター境界を設定することが挙げられます。この共有セグメントを BGP プロトコルのネクストホップとして使用する場合、トラフィックが最も近いエグレス ポイントに伝送されるだけの設計を作成できます。
オンデマンドネクストホップ
従来、トラフィックエンジニアリングでは、ネットワークオペレータは、各egressルーターへの各イングレスPEルーター上で個々のTEパスを設定する必要がありました。これらの TE パスの多くは、同様の TE 特性を共有していました。例えば、すべての TE パスは、IGP メトリックではなく TE メトリックを使用するように設定したり、リンクがまもなくメンテナンスされるかどうかを示す管理グループを回避したりすることができます。
セグメント ルーティングは、各 PE ルーター上のパスへのすべてのエンドポイントを個別に定義する代わりに、TE パスを作成するタイミングを自動的に検出する機能を提供します。この機能は、オンデマンドネクストホップ(ODN)と呼ばれます。
SR ネットワークで ODN を実行すると、パスが自動的に計算され、有効な BGP プレフィックス上の有効な BGP プロトコルのネクストホップに構築されます。次に、リモートPEへのパスは、選択した制約に基づいてD-CSPFを使用して計算されます。これにより、すべてのエンドポイントを個別に手動で定義するよりもはるかに拡張性に優れたソリューションが得られます。
この機能はRSVPでも利用できます。繰り返しになりますが、セグメントルーティングネットワークでは、これらのパスをシグナリングしたり、維持したりする必要はありません。
コントローラベースのトラフィックエンジニアリング
外部コントローラ(Juniper Paragon Pathfinderなど)を使用して、ネットワーク内のすべてのSR対応デバイスと直接通信できるPath Computation Element Protocol(PCEP)と呼ばれるプロトコルを実行できます。コントローラは、ネットワーク内のすべてのデバイスに代わって TE パスを計算し、PCEP を使用してそれらのパスをそのパスの ingressルーターに直接書き込むことができます。
1 つ以上の SR 対応ルーターは、BGP リンクステート(BGP-LS)を使用してトポロジー情報をコントローラーにアドバタイズできます。これにより、コントローラは、同じリンク状態トポロジーの一部になることなく、トポロジーを学習できます。これにより、コントローラは、トポロジーと、そのトポロジーを移動するトンネルのグラフィカルビューを自動的に生成できます。
複数のルーティングドメイン(異なるOSPFエリア、IS-ISレベル、自律システムなど)がある場合、これらの各ドメインでデバイスを設定して、トポロジーをコントローラにアドバタイズできます。その結果、コントローラはドメイン境界をまたぐパスを計算し、トンネルが移動するルーティングドメインの数に関係なく、パケットに書き込むべき正確なセグメントをingressルーターに通知できます。
コントローラは、パスごとの帯域幅予約など、セグメントルーティング自体では提供されない追加サービスを提供することもできます。また、コントローラは、ネットワークイベントに応じてパスを完全に最適化することもできます。たとえば、あるデバイス上で重要度の低いトンネルを別のパスに移動し、別のデバイス上で優先度の高いトンネル用のスペースを確保するなどです。
カラー認識型トラフィックエンジニアリング
ネットワーク事業者は多くの場合、トラフィックの重要性に基づいて各トンネルが異なるパスをたどれるように、2つのエンドポイント間に複数のトンネルを作成します。例えば、遅延の影響を受けやすいトラフィックは、ベストエフォート型トラフィックよりも短いパスを取る可能性があります。同様に、ベストエフォート型トラフィックを意図的にネットワーク内の物理的に最短のリンクから離してルーティングすることで、遅延の影響を受けやすいトラフィックは、ベストエフォート型トラフィックと競合することなく最速の経路を取ることができます。
従来、この機能は複雑なルーティング ポリシーを使用して、個々の BGP プレフィックスを特定のパスにマッピングする必要がありました。これらのルーティングポリシーは手動で保守する必要があることが多く、設定ミスがあってしまいやすいです。
対照的に、セグメントルーティングでは、トンネルのインテントを表す単なる数字識別子であるカラーでトンネルにトンネルをタグ付けできます。例えば、ベストエフォート型トラフィックを伝送するルーター上の任意のトンネルに、色値10を割り当てることができます。別の例として、色値20を使用して、遅延の影響を受けやすいトラフィックを伝送するトンネルを表すことができます。
その後、BGPカラーコミュニティを利用して、学習したプレフィックスを、一致するカラーを持つTEトンネルに自動的にバインドできます。これにより、同じ目標を達成するためにルーティングポリシーを手動で作成するという従来の複雑さが解消されます。また、宛先への複数のパスを展開する、はるかにスケーラブルな方法も提供します。
図3 は、この概念を示しています。
タグ付けされています
R1には、リモートルーターR5への2つのパスがあります。1 つのパスは遅延の影響を受けやすいトラフィックに使用され、もう 1 つはパブリック インターネットを宛先とするトラフィックに使用されます。R5が遅延の影響を受けやすいBGPプレフィックスをアドバタイズする場合、R5はこれらのプレフィックスにBGPカラーコミュニティ値1111を付けることができます。その後、R1 は、これらのプレフィックスを、一致するカラー値を持つパスに自動的に関連付けます。