前回に引き続き、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) 構成
- 2. SR-MPLS(Color-Based Traffic Engineering) 設定
- 3. SR-MPLS(Color-Based Traffic Engineering) 確認
- 4. 参考資料
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:2000221.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:2000221.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
下のEntryの「6.6.6.6-1000
続いて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
下のEntryの「6.6.6.6-1000
先ほど設定(と確認)した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: Resolved221.221.221.0/24のProtocol next hopは6.6.6.6-1000
222.222.222.0/24のProtocol next hopは6.6.6.6-2000
最後に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色々