内容

概要

前提条件

要件

使用するコンポーネント

背景説明

問題

解決方法

SRグローバルブロック

SRマッピングサーバ

マッピングクライアント

トポロジ – Inter-ASオプションC（ルートリフレクタ付き）

トポロジダイアグラムの概要

IPアドレッシングスキーマ

設定

関連情報

概要

このドキュメントでは、ドメイン間MPLSのユースケースにおいてSRを適用する可能性を含め、部分的なSR展開を使用してLDPベースのトラフィックにSRの利点を提供する方法について説明します。

前提条件

要件

次の項目に関する知識があることが推奨されます。

- セグメントルーティング

- MPLS

- Inter-AS

- LDP

使用するコンポーネント

このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。

- サポートセグメントルーティング

- NCS5500、ASR9000

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期（デフォルト）設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。

背景説明

このドキュメントでは、SR対応ルータと非SR対応ルータが混在している場合に、SRがLDPと相互に動作するメカニズムについて説明します。これらのルータは同じネットワーク内、より正確には同じルーティングドメイン内に存在します。

ノードで動作するマルチキャストコントロールプレーンクライアント(MCC)は、ノードのMPLSデータプレーンにインストールされる着信ラベルが一意に割り当てられていることを確認する必要があります。また、セグメントルーティングは、ラベルの割り当てにセグメントルーティンググローバルブロック(SRGB)を使用します。SRGBを使用すると、SRは他のMCCと共存できます。

ヒント：この情報は、Inter-ASオプションCを使用したMPLS SRおよびMPLS LDPのInter-ASソリューションに役立ちます。

問題

SR MPLSコントロールプレーンを使用した異種環境でのSRの導入は、RFC 4364で定義されているInter-ASオプションCを使用して、MPLS LDPコントロールプレーンと相互運用できます。

このドキュメントでは、MPLS LDPおよびSR MPLSを使用するサービスプロバイダーネットワークがInter-ASオプションCを使用してバーチャルプライベートネットワーク(VPN)を提供する方法について説明します。

解決方法

Inter-ASオプションCの概要は次のとおりです。

Inter-ASオプションCは、RFC 4364でカバーされているマルチASバックボーンを相互接続するための3番目のオプションです。このオプションは、これまでで最もスケーラブルな3つのオプションであり、この設計を適切に適用するために注意する必要がある独自の適用シナリオを備えています。

選択肢Cはスケーラブルであるため、適切な候補です。ASBRはVPNルートを伝送せず、PEのラベル付きIPv4ルートを独自のAS内で配布するだけです。

スケーラビリティを向上させるために、1つのMP-EBGP VPNv4セッションでPEまたはRR間のすべてのVPNルート（外部ルート）が転送されます。RRを使用して外部ルートを交換する場合は、VPNv4ルートのネクストホップを保持する必要があります。

ASBRはEBGPを使用して、AS（内部ルート）間で内部PEルーティング情報を交換します。これらの内部ルートは、PEまたはRR間のマルチホップMP-EBGPセッションを通じてアドバタイズされた外部ルートのBGPネクストホップに対応します。ASBRによってアドバタイズされた内部ルートを使用して、PE間のMP-EBGPセッションを確立し、入力PEから出力PEへのLSP設定を可能にします。

選択肢Cは、拡張性の観点から見ると非常に優れたソリューションであり、同じSPのマルチASネットワークに適しています。

セグメントルーティングの概要は次のとおりです。

Segment Routing（SR；セグメントルーティング）は、ソースルーティングとトンネリングパラダイムを利用します。ノードは、パケットの先頭にSRヘッダーを付けることで、セグメントと呼ばれる制御された一連の命令を通じてパケットを転送します。セグメントは、トポロジカルまたはサービスベースの任意の命令を表すことができます。SRでは、SRドメインの入力ノードでのみフローごとの状態を維持しながら、任意のトポロジパスとサービスチェーンを通じてフローを強制できます。セグメントルーティングアーキテクチャは、フォワーディングプレーン上でわずかな変更を行うことなく、MPLSデータプレーンに直接適用できます。既存のリンクステートルーティングプロトコルに対するマイナーな拡張が必要です。セグメントルーティングは、新しいタイプのルーティング拡張ヘッダーを使用してIPv6に適用することもできます。

セグメントはMPLSラベルとしてエンコードされます。セグメントの順序付きリストは、ラベルのスタックとしてエンコードされます。処理するセグメントはスタックの最上部にあります。セグメントが完了すると、関連するラベルがスタックからポップされます。  セグメントルーティングMPLSデータプレーンの動作は、従来のMPLSフォワーディングと同様に、プッシュ、スワップ、ポップです。次のセグメントタイプは、セグメントルーティングで定義されます。

- プレフィックスセグメント

- 隣接関係セグメント

- BGPピアリングセグメント

- BGPプレフィックスセグメント

SRグローバルブロック

セグメントルーティンググローバルブロック(SRGB)は、LSDのセグメントルーティング用に保持されるラベル値の範囲です。SRGBラベル値は、SR対応ノードにプレフィックスセグメント識別子(SID)として割り当てられ、ドメイン全体でグローバルな意味を持ちます。

- SRラベルの範囲は16,000未満から開始することはできません。デフォルトのSRグローバルブロックは：16,000 ～ 24,000です。

- で定義されているルータ機能TLVの「SR-Capabilities Sub-TLV」はアドレスファミリ固有ではないため、SRGB設定はアドレスファミリ固有ではありません。

- CLIがデフォルトのSRGBを拡大または移動する結果になった場合は、新しい範囲のラベルを持つクライアントが存在する場合に限り、リロードを要求しても構いません。

- SRGBを設定する前に、管理者は、セグメントルーティング用に設定されているラベルベースの一部が空いていて、他のMPLS LSDクライアントによって使用されていないことを確認する必要があります。

SRマッピングサーバ

マッピングサーバは、一部またはすべての既知のプレフィックスに対してプレフィックスSIDを一元的に割り当てます。ルータは、マッピングサーバ、マッピングクライアント、またはその両方として機能できる必要があります。

- マッピングサーバはコントロールプレーンメカニズムであり、その位置はBGPルートリフレクタに相当します

- 一部またはすべてのプレフィックスのプレフィックスSIDを指定する、重複しないSIDマッピングエントリを構成できるようにします。

- ISISは、ローカルSIDマッピングポリシーを「SID/ラベルバインディングTLV」でアドバタイズします

- マッピングサーバは復元力が高く、冗長性を提供する必要があります

Mapping Serverの主な機能は次のとおりです。

- 他の非SR対応ノードの代わりにIGPでプレフィックスからSIDへのマッピングをアドバタイズするプレフィックスからSIDへのマッピングは、マッピングサーバーで構成されます

- SR対応ノードが（SR非対応の）LDPノードとインターワーキングできるようにするには、SR/LDPインターワーキングにマッピングサーバが必要です

マッピングクライアント

- リモートで受信したSID/ラベルバインドTLVを受信して解析し、リモートSIDマッピングエントリを作成します。リモートで学習され、ローカルに設定されたマッピングエントリを使用して、オーバーラップしない一貫したアクティブマッピングポリシーを構築します。

- IGPインスタンスは、アクティブなマッピングポリシーを使用して、一部またはすべてのプレフィックスのプレフィックスSIDを（再）計算します。

このセクションでは、SR対応ネットワークを使用したプロバイダーネットワーク間のL3バーチャルプライベートネットワーク(VPN)サービスの理解と設定、およびSR非対応ネットワークとのピアリング/接続について説明します。このセクションでは、RFC "4364"で定義されているオプションCの設定方法と使用例について学習します。

トポロジ – Inter-ASオプションC（ルートリフレクタ付き）

トポロジダイアグラムの概要

トポロジ図の上部には、ルートリフレクタ、プロバイダーエッジルータ、およびカスタマーエッジルータで構成されるSR対応ネットワークがあります。

カスタマーエッジルータCE1とCE2には、それぞれVRF AとVRF Bがあります。これはAS 65002に属します。

トポロジ図の下部には、ルートリフレクタ、プロバイダーエッジルータ、およびカスタマーエッジルータで構成されるLDP対応ネットワークがあります。

カスタマーエッジルータCE3とCE4には、それぞれVRF AとVRF Bがあります。これはAS65001に属します。

SRとLDPのいずれかの側のVRF AとVRF Bは、ネットワークが相互に通信する必要がある場合に有効になります。

IPアドレッシングスキーマ

[hostname]

iSCSIポータルの

RR-01

10.0.0.1

RR-02

10.0.0.2

PE1

10.0.0.3

PE2

10.0.0.4

CE1

10.0.0.5

CE2

10.0.0.6

RR-03

10.0.1.1

RR-04

10.0.1.2

PE5

10.0.1.3

PE6

10.0.1.4

CE3

10.0.1.5

CE4

10.0.1.6

設定

以下に、デバイスの設定について説明されています。

RR-1

segment-routing mpls

!

mapping-server

!

prefix-sid-map

address-family ipv4

10.0.0.1/32 index 200 range 10

exit-address-family

!

!

interface Loopback0

description Loopback0

ip address 10.0.0.1 255.255.255.255

ip router isis 65002

!

!

router isis 65002

net xx.xxxx.xxxx.xxxx.xx

metric-style wide

segment-routing mpls

segment-routing prefix-sid-map advertise-local

!

router bgp 65002

bgp router-id 10.0.0.1

neighbor 10.0.0.3 remote-as 65002

neighbor 10.0.0.3 description rr client

neighbor 10.0.0.3 update-source Loopback0

neighbor 10.0.0.4 remote-as 65002

neighbor 10.0.0.4 description rr client

neighbor 10.0.0.4 update-source Loopback0

neighbor 10.0.0.2 remote-as 65002

neighbor 10.0.0.2 description iBGP peer

neighbor 10.0.0.2 update-source Loopback0

neighbor 10.0.1.1 remote-as 65001

neighbor 10.0.1.1 ebgp-multihop 255

neighbor 10.0.1.1 update-source Loopback0

neighbor 10.0.1.2 remote-as 65001

neighbor 10.0.1.2 ebgp-multihop 255

neighbor 10.0.1.2 update-source Loopback0

!

address-family ipv4

neighbor 10.0.0.3 activate

neighbor 10.0.0.3 route-reflector-client

neighbor 10.0.0.4 activate

neighbor 10.0.0.4 route-reflector-client

neighbor 10.0.0.2 activate

neighbor 10.0.1.1 activate

neighbor 10.0.1.2 activate

exit-address-family

!

address-family vpnv4

neighbor 10.0.0.3 activate

neighbor 10.0.0.3 send-community extended

neighbor 10.0.0.3 route-reflector-client

neighbor 10.0.0.4 activate

neighbor 10.0.0.4 send-community extended

neighbor 10.0.0.4 route-reflector-client

neighbor 10.0.0.2 activate

neighbor 10.0.0.2 send-community extended

neighbor 10.0.1.1 activate

neighbor 10.0.1.1 send-community both

neighbor 10.0.1.1 next-hop-unchanged

neighbor 10.0.1.2 activate

neighbor 10.0.1.2 send-community both

neighbor 10.0.1.2 next-hop-unchanged

exit-address-family

!

RR-2

segment-routing mpls

!

mapping-server

!

prefix-sid-map

address-family ipv4

10.0.0.2/32 index 200 range 10

exit-address-family

!

!

interface Loopback0

description Loopback0

ip address 10.0.0.2 255.255.255.255

ip router isis 65002

!

!

router isis 65002

net xx.xxxx.xxxx.xxxx.xx

metric-style wide

segment-routing mpls

segment-routing prefix-sid-map advertise-local

!

router bgp 65002

bgp router-id 10.0.0.2

neighbor 10.0.0.3 remote-as 65002

neighbor 10.0.0.3 description rr client

neighbor 10.0.0.3 update-source Loopback0

neighbor 10.0.0.4 remote-as 65002

neighbor 10.0.0.4 description rr client

neighbor 10.0.0.4 update-source Loopback0

neighbor 10.0.0.1 remote-as 65002

neighbor 10.0.0.1 description iBGP peer

neighbor 10.0.0.1 update-source Loopback0

neighbor 10.0.1.1 remote-as 65001

neighbor 10.0.1.1 ebgp-multihop 255

neighbor 10.0.1.1 update-source Loopback0

neighbor 10.0.1.2 remote-as 65001

neighbor 10.0.1.2 ebgp-multihop 255

neighbor 10.0.1.2 update-source Loopback0

!

address-family ipv4

neighbor 10.0.0.3 activate

neighbor 10.0.0.3 route-reflector-client

neighbor 10.0.0.4 activate

neighbor 10.0.0.4 route-reflector-client

neighbor 10.0.0.1 activate

neighbor 10.0.1.1 activate

neighbor 10.0.1.2 activate

exit-address-family

!

address-family vpnv4

neighbor 10.0.0.3 activate

neighbor 10.0.0.3 send-community extended

neighbor 10.0.0.3 route-reflector-client

neighbor 10.0.0.4 activate

neighbor 10.0.0.4 send-community extended

neighbor 10.0.0.4 route-reflector-client

neighbor 10.0.0.1 activate

neighbor 10.0.0.1 send-community extended

neighbor 10.0.1.1 activate

neighbor 10.0.1.1 send-community both

neighbor 10.0.1.1 next-hop-unchanged

neighbor 10.0.1.2 activate

neighbor 10.0.1.2 send-community both

neighbor 10.0.1.2 next-hop-unchanged

exit-address-family

!

PE-1

interface Loopback0

description Loopback0

ip address 10.0.0.3 255.255.255.255

ip router isis 65002

!

vrf A                               # Define VRF A

address-family ipv4 unicast

import route-target

65000:1

!

export route-target

65000:1

!

!

vrf B                               # Define VRF B

address-family ipv4 unicast

import route-target

65000:2

!

export route-target

65000:2

!

!

router isis 65002                   # ISIS Level 2

is-type level-2-only

net xx.xxxx.xxxx.xxxx.xx

address-family ipv4 unicast

metric-style wide

advertise link attributes

mpls traffic-eng level-2-only

mpls traffic-eng router-id Loopback0

router-id Loopback0

segment-routing mpls sr-prefer

!

router bgp 65002                    # BGP

bgp router-id 10.0.0.3

neighbor-group RR

remote-as 65002

update-source Loopback0

address-family vpnv4 unicast

!

!

neighbor 10.0.0.1

use neighbor-group RR

!

neighbor 10.0.0.2

use neighbor-group RR

vrf A

rd 65000:1

address-family ipv4 unicast

redistribute connected

allocate-label all

!

neighbor 10.0.0.5           # IP address of CE1

remote-as 61001

ebgp-multihop 255

update-source Loopback100

address-family ipv4 unicast

!

vrf B

rd 65000:2

address-family ipv4 unicast

redistribute connected

allocate-label all

!

neighbor 10.0.0.6           # IP address of CE2

remote-as 61001

ebgp-multihop 255

update-source Loopback101

address-family ipv4 unicast

!

interface GigabitEthernet1         # Link to CE-01

vrf A

ipv4 address x.x.x.x 255.255.255.0

!

interface GigabitEthernet2         # Link to CE-02

vrf B

ipv4 address x.x.x.x 255.255.255.0

!

segment-routing

global-block 16000 23999

!

RR-3

interface Loopback0

description Loopback0

ip address 10.0.1.1 255.255.255.255

ip router isis 65001

!

!

router isis 65001

net xx.xxxx.xxxx.xxxx.xx

metric-style wide

segment-routing mpls

segment-routing prefix-sid-map advertise-local

!

router bgp 65001

bgp router-id 10.0.1.1

neighbor 10.0.1.3 remote-as 65001

neighbor 10.0.1.3 description rr client

neighbor 10.0.1.3 update-source Loopback0

neighbor 10.0.1.4 remote-as 65001

neighbor 10.0.1.4 description rr client

neighbor 10.0.1.4 update-source Loopback0

neighbor 10.0.1.2 remote-as 65001

neighbor 10.0.1.2 description iBGP peer

neighbor 10.0.1.2 update-source Loopback0

neighbor 10.0.0.1 remote-as 65002

neighbor 10.0.0.1 ebgp-multihop 255

neighbor 10.0.0.1 update-source Loopback0

neighbor 10.0.0.2 remote-as 65002

neighbor 10.0.0.2 ebgp-multihop 255

neighbor 10.0.0.2 update-source Loopback0

!

address-family ipv4

neighbor 10.0.1.3 activate

neighbor 10.0.1.3 route-reflector-client

neighbor 10.0.1.4 activate

neighbor 10.0.1.4 route-reflector-client

neighbor 10.0.1.2 activate

neighbor 10.0.0.1 activate

neighbor 10.0.0.2 activate

exit-address-family

!

address-family vpnv4

neighbor 10.0.1.3 activate

neighbor 10.0.1.3 send-community extended

neighbor 10.0.1.3 route-reflector-client

neighbor 10.0.1.4 activate

neighbor 10.0.1.4 send-community extended

neighbor 10.0.1.4 route-reflector-client

neighbor 10.0.1.2 activate

neighbor 10.0.1.2 send-community extended

neighbor 10.0.0.1 activate

neighbor 10.0.0.1 send-community both

neighbor 10.0.0.1 next-hop-unchanged

neighbor 10.0.0.2 activate

neighbor 10.0.0.2 send-community both

neighbor 10.0.0.2 next-hop-unchanged

exit-address-family

!

RR-4

interface Loopback0

description Loopback0

ip address 10.0.1.2 255.255.255.255

ip router isis 65001

!

!

router isis 65001

net xx.xxxx.xxxx.xxxx.xx

metric-style wide

segment-routing mpls

segment-routing prefix-sid-map advertise-local

!

router bgp 65001

bgp router-id 10.0.1.2

neighbor 10.0.1.3 remote-as 65001

neighbor 10.0.1.3 description rr client

neighbor 10.0.1.3 update-source Loopback0

neighbor 10.0.1.4 remote-as 65001

neighbor 10.0.1.4 description rr client

neighbor 10.0.1.4 update-source Loopback0

neighbor 10.0.1.1 remote-as 65001

neighbor 10.0.1.1 description iBGP peer

neighbor 10.0.1.1 update-source Loopback0

neighbor 10.0.0.1 remote-as 65002

neighbor 10.0.0.1 ebgp-multihop 255

neighbor 10.0.0.1 update-source Loopback0

neighbor 10.0.0.2 remote-as 65002

neighbor 10.0.0.2 ebgp-multihop 255

neighbor 10.0.0.2 update-source Loopback0

!

address-family ipv4

neighbor 10.0.1.3 activate

neighbor 10.0.1.3 route-reflector-client

neighbor 10.0.1.4 activate

neighbor 10.0.1.4 route-reflector-client

neighbor 10.0.1.1 activate

neighbor 10.0.0.1 activate

neighbor 10.0.0.2 activate

exit-address-family

!

address-family vpnv4

neighbor 10.0.1.3 activate

neighbor 10.0.1.3 send-community extended

neighbor 10.0.1.3 route-reflector-client

neighbor 10.0.1.4 activate

neighbor 10.0.1.4 send-community extended

neighbor 10.0.1.4 route-reflector-client

neighbor 10.0.1.1 activate

neighbor 10.0.1.1 send-community extended

neighbor 10.0.0.1 activate

neighbor 10.0.0.1 send-community both

neighbor 10.0.0.1 next-hop-unchanged

neighbor 10.0.0.2 activate

neighbor 10.0.0.2 send-community both

neighbor 10.0.0.2 next-hop-unchanged

exit-address-family

!

PE-6

interface Loopback0

description Loopback0

ip address 10.0.1.3 255.255.255.255

ip router isis 65001

!

vrf A                               # Define VRF A

address-family ipv4 unicast

import route-target

65000:1

!

export route-target

65000:1

!

vrf B                               # Define VRF B

address-family ipv4 unicast

import route-target

65000:2

!

export route-target

65000:2

!

router isis 65001

is-type level-2-only

net xx.xxxx.xxxx.xxxx.xx

address-family ipv4 unicast

metric-style wide

advertise link attributes

mpls traffic-eng level-2-only

mpls traffic-eng router-id Loopback0

router-id Loopback0

segment-routing mpls sr-prefer

!

router bgp 65001

bgp router-id 10.0.1.3

neighbor-group RR

remote-as 65002

update-source Loopback0

address-family vpnv4 unicast

!

!

neighbor 10.0.1.1

use neighbor-group RR

!

neighbor 10.0.1.2

use neighbor-group RR

vrf A

rd 65000:1

address-family ipv4 unicast

redistribute connected

allocate-label all

!

neighbor 10.0.1.5           # IP address of CE3

remote-as 61001

ebgp-multihop 255

update-source Loopback100

address-family ipv4 unicast

!

vrf B

rd 65000:2

address-family ipv4 unicast

redistribute connected

allocate-label all

!

neighbor 10.0.1.6           # IP address of CE4

remote-as 61001

ebgp-multihop 255

update-source Loopback101

address-family ipv4 unicast

!

interface GigabitEthernet1         # Link to CE3

vrf A

ipv4 address x.x.x.x 255.255.255.0

!

interface GigabitEthernet2         # Link to CE4

vrf B

ipv4 address x.x.x.x 255.255.255.0

!

関連情報

- テクニカル サポートとドキュメント – Cisco Systems

- https://tools.ietf.org/html/rfc8661

- https://tools.ietf.org/html/rfc4659

- https://tools.ietf.org/html/rfc4364

- https://tools.ietf.org/html/draft-ietf-spring-segment-routing-ldp-interop-08

- https://tools.ietf.org/html/draft-ietf-isis-segment-routing-extensions-19

- https://tools.ietf.org/html/draft-ietf-spring-segment-routing-ldp-interop-15#ref-I-D.ietf-isis-segment-routing-extensions

- https://learningnetwork.cisco.com/s/question/0D53i00000Ksqy9CAB/interas-option-c