Cisco XRd (7.11.21)のshow segmet-routing srv6 managerコマンド上で表示されるEndpoint behaviorの挙動を可能な範囲で確認してみた
現時点で勉強不足および勝手な憶測が多分に含まれるので今後適宜修正予定
以下コマンド上表示されるEndpoint behavior
RP/0/RP0/CPU0:xrd01#show segment-routing srv6 manager
(略)
Platform Capabilities:
SRv6: Yes
TILFA: Yes
Microloop-Avoidance: Yes
Endpoint behaviors:
End.DX6
End.DX4
End.DT6
End.DT4
End.DT46
End.DX2
End.DT2U
End.DT2M
End (PSP/USD)
End.X (PSP/USD)
uN (shift)
uN (PSP/USD)
uA (shift)
uA (PSP/USD)
uDX6
uDX4
uDT6
uDT4
uDT46
uDX2
uDT2U
uDT2M
uB6 (Insert.Red)
uB6 (Encaps.Red)
uB6 (PSP/USD Insert.Red)
uB6 (PSP/USD Encaps.Red)
(略)
uSIDでの確認となるので、今回確認するbehaviorは下記の12個
uN (shift)
uN (PSP/USD)
uA (PSP/USD)
uDX6
uDX4
uDT6
uDT4
uDT46
uDX2
uDT2U
uDT2M
uB6 (Insert.Red)
uB6 (Encaps.Red)
※ uB6 (PSP/USD Insert.Red)とuB6 (PSP/USD Encaps.Red)に関しては結構色々調べてみたりconfigを試してみたがshow segment-routing srv6 sid上には表示されることはなかったので今回はスルー。uA(shift)はuNでshiftの挙動を確認するので割愛
そのうちEnd-to-Endでのping OKによる挙動確認ができたのは下記の8個
uN (PSP/USD)
uA (PSP/USD)
uDX6
uDX4
uDT6
uDT4
uDT46
uDX2
uDT2U、uDT2M、uB6 (Insert.Red)、uB6 (Encaps.Red)に関してはshow segment-routing srv6 sid上に表示させることは出来たが、ping NGだった。xrd-control-planeを利用していることが原因の可能性があるため余裕ある時にxrd vRouterで試すか、XRvで試すかしてみる予定
(uDT2U、uDT2Mは今持っているXRvのversionだとcommitしようとすると
VPLS Bridge domains not supported on this platformとエラーになってしまうため、vRouterでダメだったら現状お手上げ)
全てのconfig投入後のsrv6 sidは以下の通り。uDT46のみxr05側に実装
構成
XR1、XR5がPE相当で、vrfとしてGREENとBLUEの二つを設定
IFはRouterの左側IFをGi0/0/0/0
右側IFをGi0/0/0/1
上下IFをGi0/0/0/2
XR4/XR10間はGi0/0/0/3
各Routerの最終configは最後の方に記載
挙動確認
挙動確認方法としては、
- XR1(PE/Head-End)からXR5(PE/Endpoint)へのping/traceroute
- XR11,XR12(左側CE GREEN/BLUE)からXR13,14,15,16(右側CE GREEN/BLUE)へのping
の二パターンを実施してそれぞれのRouterにてwiresharkでパケットを確認していく
uN (PSP/USD、shift)
まずは基本的な動作のuNから
uNのbehaviorはshift-onlyとpsp-usdの二種類がある
基本的にはpsp-usdを利用すれば良いと思っており、shiftを積極的に利用する場面が今回の挙動理解を通してあまり想像できなかった
・PSPは次が最終ノードの場合、SRHをpopする
・USDは自身が最終ノードの場合、次ヘッダー処理を行う
※参照(https://www.nic.ad.jp/ja/materials/iw/2019/proceedings/s04/s4-miyasaka.pdf) p24
shiftの場合、単純なuNの転送処理はできるが、最終ノードとしてパケットを受け取った後の処理ができないため、最終ノードにてパケットをdropしているように見える。そのため、P-Router上での使用は問題ないがPE-Router上だと機能しないので、使い道としてはP-Rotuer上のみな気がしている
uN(PSP/USD, shift)のconfigは以下
segment-routing
srv6
locators
locator PSPUSD
micro-segment behavior unode psp-usd
prefix fcbb:bb11:1::/48
!
locator SHIFT
micro-segment behavior unode shift-only
prefix fcbb:bb22:1::/48
!
config投入後はuNのsidが有効となる
SRv6 routerからであればSID宛へのping確認が可能
XR5のSIDは以下だがこのうちPSP/USDであればどれでもping OK、shiftに関してはping NGとなる
SRHの扱いを確認するため、SRv6 Policy explicitにて複数のRouterを経由させてることでSRHを付与
経路は以下のように指定。ドキュメント的には最後のindex 90に設定しているfcbb:bb11:5::はendpointなので設定は不要とあるが、これを設定しないと何故かinedex 80のfcbb:bb11:10::が設定されずfcbb:bb11:6:7:2:3:8:5:9::となってしまうため今回はendpointまで設定を実施。ここらへんの理由は別途確認予定
segment-routing
traffic-eng
segment-lists
srv6
sid-format usid-f3216
!
segment-list FULL-PATH
srv6
index 10 sid fcbb:bb11:6::
index 20 sid fcbb:bb11:7::
index 30 sid fcbb:bb11:2::
index 40 sid fcbb:bb11:3::
index 50 sid fcbb:bb11:8::
index 60 sid fcbb:bb11:9::
index 70 sid fcbb:bb11:4::
index 80 sid fcbb:bb11:10::
index 90 sid fcbb:bb11:5::
!
!
policy COLOR10
srv6
locator PSPUSD binding-sid dynamic behavior ub6-insert-reduced
!
color 10 end-point ipv6 fcbb:bb11:5::1
candidate-paths
preference 100
explicit segment-list FULL-PATH
!
!
!
!
ping/tracerouteはpolicy宛でも可能
※CEからpingを打った場合のDAはfcbb:bb11:6:7:2:3:8:9::のようになるが、このping/tracerouteの方法だと何故か最初のDAがfcbb:bb11:6::となりその後はSRH2つに格納される形になっている。ここらへんの仕組みは今回調べてないので、仕組み理解は後日
この時のIPv6 HeaderおよびSRHの様子をキャプチャポイントごとに確認してみる
キャプチャするpingはuDT4のSIDが含まれる形(SRv6 L3VPN)となるが、XR11→XR13のpingで確認
Destination Addressがfcbb:bb11:6:7:2:3:8:9となっており、uSIDが6node以上となっているので、残りのSIDがSRHに格納されている
正しく13.13.13.13/32の経路に対してSRv6 Policyが適用されている
XR6でuNが正しく処理されているので、Destination Addressから"6"が削除され、16bit左にshiftされ、shitした分"0"が追加となりfcbb:bb11:7:2:3:7:8:9:0となっている
同様の処理がXR8に到達するまで経由するRouterにて実行され、XR9到達時のDAはfcbb:bb11:9::となる
DAにはSRHのAddress[1]に格納されていたAddressが設定され、Segments Leftの値が-1される
このタイミングではSegments Leftは0でないため、削除されない
PSPによる正しくSRHがpopされており、XR5に転送されている
uN(PSP/USD)は問題なし
続いてuN(Shift)
fcbb:bb22:X/48をShiftとしてlocator設定しているので、fcbb:bb22のアドレスが設定されていればshiftの起動確認ができていることになる
構成としては、XR12(12.12.12.12/32)→XE15(15.15.15.15/32)のping確認で、uN(PSP/USD)と同様にexplicitによる確認(color 30)
キャプチャを見ながらどこでNGとなっているか確認してみる
XR1→XR6→XR7のキャプチャを確認することここはPSP/USDと同様正しくshift処理されている
NG箇所としてはXR9→XR4に転送する箇所となり、DAのuSIDが全て処理され次のSRHのAddressが設定されるタイミングでNGとなって、XR9がおそらくDAを設定できずにここでdropしている
下のキャプチャに関しては、XR9のIF anyで取得しているが、XR8→XR9で受信したicmpしか確認できない(XR9→XR4のicmp requestがキャプチャされてない)
なのでshiftの挙動としては、単純なshift処理のみ対応可能ということになるため、PEでの次ヘッダ処理やSRHが-1となるRouterでは機能しない
uA (PSP/USD)
shiftの挙動は概ねわかったのでuAに関してはPSP/USDのみ確認
configは以下
router isis CORE
is-type level-2-only
net 49.0000.0000.0001.00
distribute link-state
address-family ipv6 unicast
metric-style wide
segment-routing srv6
locator SHIFT
!
locator PSPUSD
!
!
!
interface GigabitEthernet0/0/0/1
point-to-point
address-family ipv6 unicast
!
!
interface GigabitEthernet0/0/0/2
point-to-point
address-family ipv6 unicast
!
!
!
isisの設定を実施し、isis neighborが確立するとshow segment-routing srv6 sid上にuAとして表示される
neighbor確立しているIF分SIDがアサインされる
こちらも確認方法としては、explicit path設定をして挙動確認
今回変更したのはindex 30でXR7→XR2の転送をuAを利用しての転送として挙動を確認
uAはRouter内でのみアサインされているので、XR7上でsidを確認する必要がある
uA SIDは動的に払い出されるため再起動等が発生すると値が変わってしまうため本来explicit等で使う場合には固定設定した上でsegment-listで使用する形となる
まずはXR1からのtracerouteで確認
XR7のXR2向け(XR7 Gi0/0/0/2)のuA fcbb:bb11:7:e000::が設定されており、正しくXR2に転送されている
CEからのpingでも確認
キャプチャはXR7とXR2で実施
XR7ではuA fcbb:bb11:7:e000を処理してキャプチャ的にはどのIFに転送しているか分からないが、XR2接続先のGi0/0/0/2から正しく転送している
XR2もXR7からのパケットをそのままfcbb:bb11:3::にしたがってXR3に転送している
uDT4/uDT6/uDT46
ここからのbehaviorはuB6以外 L2VPN/L3VPNといったSRv6 VPN関連のBehaviorとなる
比較的利用場面が多そうな順番で確認していく
まずはすでにCE間でのping確認の際に合わせて挙動確認できているが、L3VPN(IPv4/IPv6)を利用する際のbehavior
per-vrf設定だとuDT4/6を利用(特定のRouting tableをLookup)し、per-ce設定だとuDX2/4を利用(特定のInterfaceへRouting)する挙動となる
configは以下
router bgp 100
bgp router-id 1.1.1.1
address-family vpnv4 unicast
!
address-family vpnv6 unicast
!
neighbor fcbb:bb11:5::1
remote-as 100
update-source Loopback0
address-family vpnv4 unicast
!
address-family vpnv6 unicast
!
!
vrf GREEN
rd auto
address-family ipv4 unicast
segment-routing srv6
locator PSPUSD
alloc mode per-vrf
!
!
address-family ipv6 unicast
segment-routing srv6
locator PSPUSD
alloc mode per-vrf
!
!
neighbor 2001:11:1::11
remote-as 65000
address-family ipv6 unicast
route-policy PASS in
route-policy PASS out
as-override
!
!
neighbor 192.168.111.11
remote-as 65000
address-family ipv4 unicast
route-policy PASS in
route-policy PASS out
as-override
!
!
!
!
こちらもbgpがestablishしたタイミングからshow segment-routing srv6 sid上に表示される
L3VPN IPv4とL3VPN IPv6それぞれにuSIDが割り当てられる形となるので、XR13からXR11宛として11.11.11.11/32のIPv4であればuSIDとしてfcbb:bb11:1:e0008::が使用され、fcbb:bb11:11::1/128宛であればfcbb:bb11:1:e0007::が使用される
XR5側はuDT46のconfig設定
BGP配下のvrf設定にてalloc modeでper-vrf46を指定することでuDT46のsidが割り当てられる
XR11からXR13宛として13.13.13.13/32、fcbb:bb11:13::1/128どちらでもfcbb:bb11:1:e0008が使用される
vrf GREEN
rd auto
address-family ipv4 unicast
segment-routing srv6
locator PSPUSD
alloc mode per-vrf-46
!
!
address-family ipv6 unicast
segment-routing srv6
locator PSPUSD
alloc mode per-vrf-46
パケットにて実際の挙動を確認。まずはuDT4/uDT6の確認としてXR13からXR11宛のpingをIPv4,IPv6実施してそれぞれ異なるsidが使用されping OKであることを確認
IPv4アドレス宛はuDT4のfcbb:bb11:e008::が使用されてIPv6アドレス宛はuDT6のfcbb:bb11:e007::が使用されている
次はuDT46の確認でXR11からXR13宛にIPv4,IPv6のpingを実行して確認
こちらIPv4,IPv6ともにfcbb:bb11:1:e008::が利用されおり、1つのsidでL3VPN IPv4/IPv6の処理が可能となる
uDX4/uDX6
先ほどはper-vrf設定だったがこちらはper-ce設定時に使用する挙動となる
こちらはvrf BLUE構成で確認
configはBGP配下で以下
vrf BLUE
rd auto
address-family ipv4 unicast
segment-routing srv6
locator PSPUSD
alloc mode per-ce
!
!
address-family ipv6 unicast
segment-routing srv6
locator PSPUSD
alloc mode per-ce
!
!
per-vrfはvrf毎にsidが割り当てられるが、per-ceはce毎(IF毎)にsidが割り当てられており、XR5側はCEが2台繋がっている構成のため、uDX2/uDX4がそれぞれ2つずつ割り当てられている
XR12からXR15宛がfcbb:bb11:5:e005::(uDX4),fcbb:bb11:5:e0006::(uDX6)
XR13からXR16宛がfcbb:bb11:5:e009::(uDX4),fcbb:bb11:5:e0007::(uDX6)
であることをキャプチャにて確認
それぞれ想定通りのsidにて処理されている
uDX2
こちらはSRv6 L2VPN構成時に使用されるBehavior。uDX2は特定のIFに転送する処理となるため、P2P構成のE-LINE構成時に使用される
L2VPNはEVPNを使用
L2VPN周り(EVPN含めて)の細かな挙動確認および技術理解はまた後日。今回は基本的にはsidを割り当てるためのconfigとパケットとして正しくsidが利用されているかの確認レベル
configは以下。config説明等もこれまた後日
interface GigabitEthernet0/0/0/0.300 l2transport
encapsulation dot1q 300
rewrite ingress tag pop 1 symmetric
!
router bgp 100
bgp router-id 1.1.1.1
address-family l2vpn evpn
!
neighbor fcbb:bb11:5::1
address-family l2vpn evpn
!
!
!
evpn
segment-routing srv6
locator PSPUSD
!
!
!
l2vpn
xconnect group EVPN
p2p EVPN
interface GigabitEthernet0/0/0/0.300
neighbor evpn evi 300 target 300 source 300 segment-routing srv6
!
!
!
!
XR11(172.16.0.11)からXR13(172.16.0.13)宛の同一セグメントへのpingを実施して挙動を確認
pingはOK
uSIDも正しくuDT2のfcbb:bb11:5:e002::が使用されている
uDT2U/uDT2M
こちらはVLAN L2 tableをlookupして転送する挙動となっており、複数拠点のE-LAN構成時に使用されるbehavior
P2PのL2VPN(E-LINE)はuDT2、複数拠点のL2VPN(E-LAN)はuDT2U/uDT2Mという感じ
uDT2Mはほとんど調べられてないためあまり理解できておらず。BUMトラフィックに対して利用されるような雰囲気
冒頭にも記載したがこちらはping NG状態であり、キャプチャ上でもsidの利用を確認することができなかった。設定的には問題なさそうで、interfaceとしてはarpを受信しているにも関わらずshow evpn evi vpn-id x macにて
mac addressが表示されずで原因は現時点で不明
configは以下
interface GigabitEthernet0/0/0/3.400 l2transport
encapsulation dot1q 400
rewrite ingress tag pop 1 symmetric
!
evpn
evi 400 segment-routing srv6
advertise-mac
!
locator PSPUSD
!
!
!
l2vpn
bridge group E-LAN
bridge-domain E-LAN
interface GigabitEthernet0/0/0/3.400
!
evi 400 segment-routing srv6
!
!
!
!
uB6 (Insert.Red/Encaps.Red)
最後はBinding sidのbehavior
SRv6 Policyに割り当てられるsidとなり、uB6を使用することでuSIDの利用を節約することが可能となる
こちらはInsertはなんとなく挙動は確認できたが、Encapsは色々試してみたが全く上手くいかず
結構調べてみてはしたものの情報としてはたどり着くことができずちゃんとした挙動確認は当分先になりそう
configは以下
segment-routing
traffic-eng
segment-lists
srv6
sid-format usid-f3216
!
segment-list FULL-PATH
srv6
index 10 sid fcbb:bb11:6::
index 20 sid fcbb:bb11:7::
index 30 sid fcbb:bb11:2::
index 40 sid fcbb:bb11:3::
index 50 sid fcbb:bb11:8::
index 60 sid fcbb:bb11:9::
index 70 sid fcbb:bb11:4::
index 80 sid fcbb:bb11:10::
index 90 sid fcbb:bb11:5::
!
!
policy COLOR10
srv6
locator PSPUSD binding-sid dynamic behavior ub6-insert-reduced
!
color 10 end-point ipv6 fcbb:bb11:5::1
candidate-paths
preference 100
explicit segment-list FULL-PATH
!
!
!
!
policy COLOR20
srv6
locator PSPUSD binding-sid dynamic behavior ub6-encaps-reduced
!
color 20 end-point ipv6 fcbb:bb11:5::1
candidate-paths
preference 100
explicit segment-list FULL-PATH
!
!
!
!
locator PSPUSD binding-sid dynamic behaviorの引数として ub6-insert-reducedを設定するとuB6(Insert.Red)、ub6-encaps-reducedを設定すると(Encaps.Red)のuSIDが割り当てられる
今回の挙動確認方法としては、XR3にSRv6 Policyを設定させて割り当てられてsidをXR1のexplicit pathにて指定させることで、XR3に転送された後、XR3にて設定したPolicyに従って転送されるかどうかで確認した
# XR1のPolicy設定
segment-routing
traffic-eng
segment-lists
segment-list PATH
srv6
index 10 sid fcbb:bb11:3:e003::
!
!
policy COLOR40
srv6
locator PSPUSD binding-sid dynamic behavior ub6-insert-reduced
!
color 40 end-point ipv6 fcbb:bb11:5::1
candidate-paths
preference 100
explicit segment-list PATH
!
XRのPolicy設定
想定としてはXR1→XR3→XR8→XR9→XR10→XR5にて転送されてping OKとなるかと思っていたが、pingはNG
XR3まではfcbb:bb11:3:e003::で到達しているがその後、XR3でICMPv6のParameter Problemをreplyしており、XR3からXR8への転送ができていない状態
ただXR1からのtracerouteで via srv6-carriersにuB6を指定すると、XR3では正しくuB6を処理しているように見える。ただpingはNGとなっておりキャプチャを見てみるとICMPv6パケットがMalformed Packetとなっており、icmpとして処理されていないため、XR10でdropしているようにみえる
キャプチャ上ではfcbb:bb11:3:e003::がfcbb:bb11:8:9:10::に変換されているので、uB6は機能しているようには見えるが、それ以外の何かしらの原因がありpingがNGとなっているようにみえる。現時点で原因は全く不明
というわけで可能な範囲でSRv6 Endpoint behavior (uSID) を色々と試してみた。まだまだ課題は山積みかつ勉強不足箇所多すぎということで少しずつ理解できるよう定期的にSRv6のお勉強頑張っていきたい
そして今回の記事を新たに判明したことがあり次第定期的に更新していければと
Config(関連箇所のみ記載)
XR1
XR1の最終的なconfigは以下(関係のある箇所のみ抽出)
vrf BLUE
address-family ipv4 unicast
import route-target
200:200
!
export route-target
200:200
!
!
address-family ipv6 unicast
import route-target
200:200
!
export route-target
200:200
!
!
!
vrf GREEN
address-family ipv4 unicast
import route-target
100:100
!
export route-target
100:100
!
!
address-family ipv6 unicast
import route-target
100:100
!
export route-target
100:100
!
!
!
interface Loopback0
ipv4 address 1.1.1.1 255.255.255.255
ipv6 address fcbb:bb11:1::1/128
!
interface GigabitEthernet0/0/0/0.100
vrf GREEN
ipv4 address 192.168.111.1 255.255.255.0
ipv6 address 2001:11:1::1/64
encapsulation dot1q 100
!
interface GigabitEthernet0/0/0/0.300 l2transport
encapsulation dot1q 300
rewrite ingress tag pop 1 symmetric
!
interface GigabitEthernet0/0/0/1
ipv6 enable
!
interface GigabitEthernet0/0/0/2
ipv6 enable
!
interface GigabitEthernet0/0/0/3.200
vrf BLUE
ipv4 address 192.168.121.1 255.255.255.0
ipv6 address 2001:12:1::1/64
encapsulation dot1q 200
!
interface GigabitEthernet0/0/0/3.400 l2transport
encapsulation dot1q 400
rewrite ingress tag pop 1 symmetric
!
interface preconfigure GigabitEthernet0/0/0/4
l2transport
!
!
route-policy PASS
pass
end-policy
!
router isis CORE
is-type level-2-only
net 49.0000.0000.0001.00
distribute link-state
address-family ipv6 unicast
metric-style wide
segment-routing srv6
locator SHIFT
!
locator PSPUSD
!
!
!
interface GigabitEthernet0/0/0/1
point-to-point
address-family ipv6 unicast
!
!
interface GigabitEthernet0/0/0/2
point-to-point
address-family ipv6 unicast
!
!
!
router bgp 100
bgp router-id 1.1.1.1
address-family vpnv4 unicast
!
address-family vpnv6 unicast
!
address-family l2vpn evpn
!
neighbor fcbb:bb11:5::1
remote-as 100
update-source Loopback0
address-family vpnv4 unicast
!
address-family vpnv6 unicast
!
address-family l2vpn evpn
!
!
vrf BLUE
rd auto
address-family ipv4 unicast
segment-routing srv6
locator PSPUSD
alloc mode per-ce
!
!
address-family ipv6 unicast
segment-routing srv6
locator PSPUSD
alloc mode per-ce
!
!
neighbor 2001:12:1::12
remote-as 65100
address-family ipv6 unicast
route-policy PASS in
route-policy PASS out
as-override
!
!
neighbor 192.168.121.12
remote-as 65100
as-override
address-family ipv4 unicast
route-policy PASS in
route-policy PASS out
!
!
!
vrf GREEN
rd auto
address-family ipv4 unicast
segment-routing srv6
locator PSPUSD
alloc mode per-vrf
!
!
address-family ipv6 unicast
segment-routing srv6
locator PSPUSD
alloc mode per-vrf
!
!
neighbor 2001:11:1::11
remote-as 65000
address-family ipv6 unicast
route-policy PASS in
route-policy PASS out
as-override
!
!
neighbor 192.168.111.11
remote-as 65000
address-family ipv4 unicast
route-policy PASS in
route-policy PASS out
as-override
!
!
!
!
evpn
evi 400 segment-routing srv6
advertise-mac
!
locator PSPUSD
!
!
segment-routing srv6
locator PSPUSD
!
!
!
l2vpn
xconnect group EVPN
p2p EVPN
interface GigabitEthernet0/0/0/0.300
neighbor evpn evi 300 target 300 source 300 segment-routing srv6
!
!
!
bridge group E-LAN
bridge-domain E-LAN
interface GigabitEthernet0/0/0/3.400
!
evi 400 segment-routing srv6
!
!
!
!
segment-routing
traffic-eng
segment-lists
srv6
sid-format usid-f3216
!
segment-list PATH
srv6
index 10 sid fcbb:bb11:3:e003::
!
!
segment-list PATH2
srv6
index 10 sid fcbb:bb11:3:e004::
!
!
segment-list FULL-PATH
srv6
index 10 sid fcbb:bb11:6::
index 20 sid fcbb:bb11:7::
index 30 sid fcbb:bb11:3::
index 40 sid fcbb:bb11:8::
index 50 sid fcbb:bb11:9::
index 60 sid fcbb:bb11:4::
index 70 sid fcbb:bb11:10::
index 80 sid fcbb:bb11:5::
!
!
segment-list FULL-PATH-SHIFT
srv6
index 10 sid fcbb:bb22:6::
index 20 sid fcbb:bb22:7::
index 30 sid fcbb:bb22:3::
index 40 sid fcbb:bb22:8::
index 50 sid fcbb:bb22:9::
index 60 sid fcbb:bb22:4::
index 70 sid fcbb:bb22:10::
index 80 sid fcbb:bb22:5::
!
!
!
policy COLOR10
srv6
locator PSPUSD binding-sid dynamic behavior ub6-insert-reduced
!
color 10 end-point ipv6 fcbb:bb11:5::1
candidate-paths
preference 100
explicit segment-list FULL-PATH
!
!
!
!
policy COLOR20
srv6
locator PSPUSD binding-sid dynamic behavior ub6-encaps-reduced
!
color 20 end-point ipv6 fcbb:bb11:5::1
candidate-paths
preference 100
explicit segment-list FULL-PATH
!
!
!
!
policy COLOR30
srv6
locator SHIFT binding-sid dynamic behavior ub6-insert-reduced
!
color 30 end-point ipv6 fcbb:bb11:5::1
candidate-paths
preference 100
explicit segment-list FULL-PATH-SHIFT
!
!
!
!
policy COLOR40
srv6
locator PSPUSD binding-sid dynamic behavior ub6-insert-reduced
!
color 40 end-point ipv6 fcbb:bb11:5::1
candidate-paths
preference 100
explicit segment-list PATH
!
!
!
!
policy COLOR50
srv6
locator PSPUSD binding-sid dynamic behavior ub6-encaps-reduced
!
color 50 end-point ipv6 fcbb:bb11:5::1
candidate-paths
preference 100
explicit segment-list PATH2
!
!
!
!
!
srv6
locators
locator SHIFT
micro-segment behavior unode shift-only
prefix fcbb:bb22:1::/48
!
locator PSPUSD
micro-segment behavior unode psp-usd
prefix fcbb:bb11:1::/48
!
!
!
!
XR5
vrf BLUE
address-family ipv4 unicast
import route-target
200:200
!
export route-policy SET-COLOR
export route-target
200:200
!
!
address-family ipv6 unicast
import route-target
200:200
!
export route-target
200:200
!
!
!
vrf GREEN
address-family ipv4 unicast
import route-target
100:100
!
export route-policy SET-COLOR
export route-target
100:100
!
!
address-family ipv6 unicast
import route-target
100:100
!
export route-target
100:100
!
!
!
interface Loopback0
ipv4 address 5.5.5.5 255.255.255.255
ipv6 address fcbb:bb11:5::1/128
!
interface GigabitEthernet0/0/0/0
ipv6 enable
!
interface GigabitEthernet0/0/0/1.100
vrf GREEN
ipv4 address 192.168.135.5 255.255.255.0
ipv6 address 2001:13:5::5/64
encapsulation dot1q 100
!
interface GigabitEthernet0/0/0/1.300 l2transport
encapsulation dot1q 300
rewrite ingress tag pop 1 symmetric
!
interface GigabitEthernet0/0/0/2
ipv6 enable
!
interface GigabitEthernet0/0/0/3.100
vrf GREEN
ipv4 address 192.168.145.5 255.255.255.0
ipv6 address 2001:14:5::5/64
encapsulation dot1q 100
!
interface GigabitEthernet0/0/0/4.200
vrf BLUE
ipv4 address 192.168.155.5 255.255.255.0
ipv6 address 2001:15:5::5/64
encapsulation dot1q 200
!
interface GigabitEthernet0/0/0/4.400 l2transport
encapsulation dot1q 400
rewrite ingress tag pop 1 symmetric
!
interface GigabitEthernet0/0/0/5.200
vrf BLUE
ipv4 address 192.168.165.5 255.255.255.0
ipv6 address 2001:16:5::5/64
encapsulation dot1q 200
!
interface GigabitEthernet0/0/0/5.400 l2transport
encapsulation dot1q 400
rewrite ingress tag pop 1 symmetric
!
extcommunity-set opaque COLOR10
10
end-set
!
extcommunity-set opaque COLOR20
20
end-set
!
extcommunity-set opaque COLOR30
30
end-set
!
extcommunity-set opaque COLOR40
40
end-set
!
extcommunity-set opaque COLOR50
50
end-set
!
prefix-set 16.16.0.16
16.16.0.16
end-set
!
prefix-set 13.13.13.13
13.13.13.13
end-set
!
prefix-set 14.14.14.14
14.14.14.14
end-set
!
prefix-set 15.15.15.15
15.15.15.15
end-set
!
prefix-set 16.16.16.16
16.16.16.16
end-set
!
route-policy PASS
pass
end-policy
!
route-policy SET-COLOR
if destination in 13.13.13.13 then
set extcommunity color COLOR10
elseif destination in 14.14.14.14 then
set extcommunity color COLOR20
elseif destination in 15.15.15.15 then
set extcommunity color COLOR30
elseif destination in 16.16.16.16 then
set extcommunity color COLOR40
elseif destination in 16.16.0.16 then
set extcommunity color COLOR50
endif
end-policy
!
router isis CORE
is-type level-2-only
net 49.0000.0000.0005.00
distribute link-state
address-family ipv6 unicast
metric-style wide
segment-routing srv6
locator SHIFT
!
locator PSPUSD
!
!
!
interface GigabitEthernet0/0/0/0
point-to-point
address-family ipv6 unicast
!
!
interface GigabitEthernet0/0/0/2
point-to-point
address-family ipv6 unicast
!
!
!
router bgp 100
bgp router-id 5.5.5.5
address-family ipv4 unicast
!
address-family vpnv4 unicast
!
address-family vpnv6 unicast
!
address-family l2vpn evpn
!
neighbor fcbb:bb11:1::1
remote-as 100
update-source Loopback0
address-family vpnv4 unicast
!
address-family vpnv6 unicast
!
address-family l2vpn evpn
!
!
vrf BLUE
rd auto
address-family ipv4 unicast
segment-routing srv6
locator PSPUSD
alloc mode per-ce
!
!
address-family ipv6 unicast
segment-routing srv6
locator PSPUSD
alloc mode per-ce
!
!
neighbor 2001:15:5::15
remote-as 65100
address-family ipv6 unicast
route-policy PASS in
route-policy PASS out
as-override
!
!
neighbor 2001:16:5::16
remote-as 65100
address-family ipv6 unicast
route-policy PASS in
route-policy PASS out
as-override
!
!
neighbor 192.168.155.15
remote-as 65100
address-family ipv4 unicast
route-policy PASS in
route-policy PASS out
as-override
!
!
neighbor 192.168.165.16
remote-as 65100
address-family ipv4 unicast
route-policy PASS in
route-policy PASS out
as-override
!
!
!
vrf GREEN
rd auto
address-family ipv4 unicast
segment-routing srv6
locator PSPUSD
alloc mode per-vrf-46
!
!
address-family ipv6 unicast
segment-routing srv6
locator PSPUSD
alloc mode per-vrf-46
!
!
neighbor 2001:13:5::13
remote-as 65000
address-family ipv6 unicast
route-policy PASS in
route-policy PASS out
as-override
!
!
neighbor 2001:14:5::14
remote-as 65000
address-family ipv6 unicast
route-policy PASS in
route-policy PASS out
as-override
!
!
neighbor 192.168.135.13
remote-as 65000
address-family ipv4 unicast
route-policy PASS in
route-policy PASS out
as-override
!
!
neighbor 192.168.145.14
remote-as 65000
address-family ipv4 unicast
route-policy PASS in
route-policy PASS out
as-override
!
!
!
!
evpn
evi 400 segment-routing srv6
advertise-mac
!
locator PSPUSD
!
!
segment-routing srv6
locator PSPUSD
!
!
!
l2vpn
xconnect group EVPN
p2p EVPN
interface GigabitEthernet0/0/0/1.300
neighbor evpn evi 300 target 300 source 300 segment-routing srv6
!
!
!
bridge group E-LAN
bridge-domain E-LAN
interface GigabitEthernet0/0/0/4.400
!
interface GigabitEthernet0/0/0/5.400
!
evi 400 segment-routing srv6
!
!
!
!
segment-routing
srv6
locators
locator SHIFT
micro-segment behavior unode shift-only
prefix fcbb:bb22:5::/48
!
locator PSPUSD
micro-segment behavior unode psp-usd
prefix fcbb:bb11:5::/48
!
!
!
!