以下の内容はhttps://yokohama539.hatenablog.com/entry/2025/05/09/012549より取得しました。


vJunosでSegment Routingしてみた。~SR-MPLS編その2~

前回に引き続き、vJunos-routerでSR-MPLSの検証をします。
今回は、前回のTopologyを踏襲しつつColored PathによるTraffic Engineeringを試してみます。
具合的には、MP-BGPで経路広報する際にColor Extended Communityを付与し、受信デバイス側でCommunity値によって異なるSR-Policyを適用し、宛先Prefix毎に違ったPathとさせることができる技術です。

1. SR-MPLS(Color-Based Traffic Engineering) 構成

今回の検証環境で考えると、vJR-06からBGPで経路を広報する際、Color Extended Community(RedとBlue)を付与します。
そして受信側のvJR-01にてSR-Policyを定義しておき、受信した経路情報のCommunity値によって、それぞれ異なるPathを使ってCE間通信するイメージになります。
今回は

  • 222.222.222.0/24宛はBlueルートとしてvJR-01→vJR-02→vJR-04→vJR-06経由
  • 221.221.221.0/24宛はRedルートとしてvJR-01→vJR-03→vJR-05→vJR-06経由

とします。
概要図としては以下の通りです。


2. SR-MPLS(Color-Based Traffic Engineering) 設定

では実際に設定していきます。
前提として、IGP(IS-IS)とMPLSの設定まで完了していることとします。

まず、vJR-06にてMP-BGPでColor Extended Communityを付与して経路を広報する設定をします。

//vJR-06
set routing-options autonomous-system 101
set policy-options community BLUE-COMM members color:0:2000
set policy-options community RED-COMM members color:0:1000
set policy-options policy-statement EXPORT_BGP_R1 term 0011 from protocol direct
set policy-options policy-statement EXPORT_BGP_R1 term 0011 from route-filter 221.221.221.0/24 exact
set policy-options policy-statement EXPORT_BGP_R1 term 0011 then community add RED-COMM
set policy-options policy-statement EXPORT_BGP_R1 term 0011 then accept
set policy-options policy-statement EXPORT_BGP_R1 term 0021 from protocol direct
set policy-options policy-statement EXPORT_BGP_R1 term 0021 from route-filter 222.222.222.0/24 exact
set policy-options policy-statement EXPORT_BGP_R1 term 0021 then community add BLUE-COMM
set policy-options policy-statement EXPORT_BGP_R1 term 0021 then accept
set policy-options policy-statement EXPORT_BGP_R1 term 9991 then reject
set protocols bgp group INTERNAL type internal
set protocols bgp group INTERNAL local-address 6.6.6.6
set protocols bgp group INTERNAL family inet segment-routing-te
set protocols bgp group INTERNAL family inet unicast extended-nexthop-color
set protocols bgp group INTERNAL neighbor 1.1.1.1 export EXPORT_BGP_R1


vJR-01にもMP-BGPの設定をします。

//vJR-01
set routing-options autonomous-system 101
set policy-options policy-statement EXPORT_BGP_R6 term 0011 from protocol direct
set policy-options policy-statement EXPORT_BGP_R6 term 0011 from route-filter 111.111.111.0/24 exact
set policy-options policy-statement EXPORT_BGP_R6 term 0011 then accept
set policy-options policy-statement EXPORT_BGP_R6 term 9991 then reject
set protocols bgp group INTERNAL type internal
set protocols bgp group INTERNAL local-address 1.1.1.1
set protocols bgp group INTERNAL family inet segment-routing-te
set protocols bgp group INTERNAL family inet unicast extended-nexthop-color
set protocols bgp group INTERNAL neighbor 6.6.6.6 export EXPORT_BGP_R6


続いてvJR-01へSR-MPLSの設定をします。
前回同様、「set chassis network-services enhanced-ip」の設定をcommitした後はrebootを行う必要があります。
また、vJR-02~vJR-06にも前回と同じ設定が必要です。

//vJR-01
set chassis network-services enhanced-ip
set protocols isis source-packet-routing srgb start-label 10000
set protocols isis source-packet-routing srgb index-range 5000
set protocols isis source-packet-routing node-segment ipv4-index 401
set protocols source-packet-routing segment-list RED-ROUTE HOP01 label 10403
set protocols source-packet-routing segment-list RED-ROUTE HOP02 label 10405
set protocols source-packet-routing segment-list RED-ROUTE HOP03 label 10406
set protocols source-packet-routing segment-list BLUE-ROUTE HOP01 label 10402
set protocols source-packet-routing segment-list BLUE-ROUTE HOP02 label 10404
set protocols source-packet-routing segment-list BLUE-ROUTE HOP03 label 10406
set protocols source-packet-routing source-routing-path TO-R6-RED to 6.6.6.6
set protocols source-packet-routing source-routing-path TO-R6-RED color 1000
set protocols source-packet-routing source-routing-path TO-R6-RED primary RED-ROUTE
set protocols source-packet-routing source-routing-path TO-R6-BULE to 6.6.6.6
set protocols source-packet-routing source-routing-path TO-R6-BULE color 2000
set protocols source-packet-routing source-routing-path TO-R6-BULE primary BLUE-ROUTE

以上で設定は完了です。

3. SR-MPLS(Color-Based Traffic Engineering) 確認

動作確認を行います。
まず、vJR-06にてColor Extended Communityが付与された経路広報ができてるか確認します。
(BGP Peerが張れているかの確認は省略します)

//vJR-06
lab@vJR-06# run show route advertising-protocol bgp 1.1.1.1 extensive

inet.0: 21 destinations, 21 routes (21 active, 0 holddown, 0 hidden)
* 221.221.221.0/24 (1 entry, 1 announced)
 BGP group INTERNAL type Internal
     Nexthop: Self
     Localpref: 100
     AS path: [101] I
     Communities: color:0:1000

* 222.222.222.0/24 (1 entry, 1 announced)
 BGP group INTERNAL type Internal
     Nexthop: Self
     Localpref: 100
     AS path: [101] I
     Communities: color:0:2000

221.221.221.0/24の経路情報に「Communities: color:0:1000」、
222.222.222.0/24の経路情報に「Communities: color:0:2000」が表示されていますね。
問題なくColor Extended Communityが付与されてそうです。

続いてvJR-01で確認していきます。
まず、vJR-06からの経路情報が受信できているか確認します。

//vJR-01
lab@vJR-01# run show route receive-protocol bgp 6.6.6.6 extensive

inet.0: 20 destinations, 20 routes (20 active, 0 holddown, 0 hidden)
* 221.221.221.0/24 (1 entry, 1 announced)
     Accepted
     Nexthop: 6.6.6.6
     Localpref: 100
     AS path: I
     Communities: color:0:1000

* 222.222.222.0/24 (1 entry, 1 announced)
     Accepted
     Nexthop: 6.6.6.6
     Localpref: 100
     AS path: I
     Communities: color:0:2000

221.221.221.0/24と222.222.222.0/24の経路情報が受信できてますね。Color Extended Communityも付与されています。

続いてTraffic Engineeringの設定の確認をします。

//vJR-01
lab@vJR-01# run show spring-traffic-engineering route
To                      Source                  SR Override Pref/Pref       LSP Name                              Segment Lists
6.6.6.6-2000<c>         Static configuration                100 / 100       TO-R6-BULE                            BLUE-ROUTE
6.6.6.6-1000<c>         Static configuration                100 / 100       TO-R6-RED                             RED-ROUTE

上のEntryの「6.6.6.6-2000」宛はTO-R6-BULEのSR-Policy(Static LSP)が適用され、
下のEntryの「6.6.6.6-1000」宛はTO-R6-REDのSR-Policyが適用されていることが確認できます。

続いてRouting Tableを確認します。
Color Extended Communityが付与された経路情報の場合、(inet.3ではなく)「inetcolor.0」というRIBにインストールされます。
(IPv6だと「inet6color.0」というRIBにインストールされます)

//vJR-01
lab@vJR-01# run show route table inetcolor.0

inetcolor.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

6.6.6.6-2000<c>/64
                   *[SPRING-TE/8] 01:19:52, metric 1, metric2 30
                    >  to 12.12.12.2 via ge-0/0/1.0, Push 10406, Push 10404(top)
6.6.6.6-1000<c>/64
                   *[SPRING-TE/8] 01:19:42, metric 1, metric2 30
                    >  to 13.13.13.3 via ge-0/0/2.0, Push 10406, Push 10405(top)

上のEntryの「6.6.6.6-2000/64」のPathは(vJR-01→)vJR-02→vJR-04→vJR-06、
下のEntryの「6.6.6.6-1000/64」のPathは(vJR-01→)vJR-03→vJR-05→vJR-06になってますね。
先ほど設定(と確認)したSegment Listsの通りになっています。

そして、CEネットワークの経路情報を確認します。

lab@vJR-01# run show route 220./6

inet.0: 20 destinations, 20 routes (20 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

221.221.221.0/24   *[BGP/170] 01:27:40, localpref 100, from 6.6.6.6
                      AS path: I, validation-state: unverified
                    >  to 13.13.13.3 via ge-0/0/2.0, Push 10406, Push 10405(top)
222.222.222.0/24   *[BGP/170] 01:27:40, localpref 100, from 6.6.6.6
                      AS path: I, validation-state: unverified
                    >  to 12.12.12.2 via ge-0/0/1.0, Push 10406, Push 10404(top)

最初に決めた通り、221.221.221.0/24宛のPathは(vJR-01→)vJR-03→vJR-05→vJR-06(=Redルート)、
222.222.222.0/24宛のPathは(vJR-01→)vJR-02→vJR-04→vJR-06(=Blueルート)となっていますね。

補足として、各宛先のProtocol next hop(BGPでのNext-Hop)を確認します。

lab@vJR-01# run show route 221.221.221.0/24 extensive | match Protocol
                Protocol next hop: 6.6.6.6-1000<c>
                        Protocol next hop: 6.6.6.6-1000<c> Metric: 30 ResolvState: Resolved
                                Protocol next hop: 10403 Metric: 10 ResolvState: Resolved

lab@vJR-01# run show route 222.222.222.0/24 extensive | match Protocol
                Protocol next hop: 6.6.6.6-2000<c>
                        Protocol next hop: 6.6.6.6-2000<c> Metric: 30 ResolvState: Resolved
                                Protocol next hop: 10402 Metric: 10 ResolvState: Resolved

221.221.221.0/24のProtocol next hopは6.6.6.6-1000(=Redルート)、
222.222.222.0/24のProtocol next hopは6.6.6.6-2000(=Blueルート)となっているのが確認できます。意図した通りの動作になってそうですね。

最後にCE(vJR-11)からPingを飛ばして各Linkでパケットキャプチャーして確認します。
まず、vJR-11からvJR-21に飛ばして、vJR-01~vJR-03間でパケットキャプチャーします。

「10405」「10406」のLabelがStackされているので、(最初に決めたとおり)Redルートを通ってます。

次に、vJR-11からvJR-22に飛ばして、vJR-01~vJR-02間でパケットキャプチャーします。

「10404」「10406」のLabelがStackされているので、(最初に決めたとおり)Blueルートを通ってます。

無事、Color Extended Communityよって異なるPathでSegment Routingされてるのが確認できました!!

という訳で今回は以上です。
ここまでお読みくださり、ありがとうございました!!!!

4. 参考資料

書籍 Cisco Press 「Segment Routing for Service Provider and Enterprise Networks」
Juniper Documentation - MPLS Applications User Guide - Source Packet Routing in Networking (SPRING) or Segment Routingwww.juniper.net
Juniper Documentation - MPLS Applications User Guide - Color-Based Traffic Engineering Configurationwww.juniper.net
Juniper DocumentationのUser Guide色々




以上の内容はhttps://yokohama539.hatenablog.com/entry/2025/05/09/012549より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14