今回はIS-ISで使用されるSegment Routing用のTLVについてまとめていきます。
概要
Segment Routing用のIS-ISのTLV
IS-ISではSR用に様々なTLV、Sub-TLVが定義されました。
SR用のTLVとSub-TLVは、LSP(Link State Packet Data Unit)に格納されて、IS-ISネイバーに広報されます。
Router Capability TLV(Type = 8)
Router Capability TLVには、ルータがサポートしているSegment Routingのアルゴリズム、SRGBの情報等が格納されます。(Router Reachability TLVはSR専用のTLVではなく、以前から使用されています。)
・D(Down) bit
1の場合はIS-ISのLevel 2からLevel 1にLeakされたことを示します。
・S(Scope) bit
1の場合はこのTLVはIS-ISネットワーク全体に広報されることを示します。
SR Capability Sub-TLV(Sub Type = 2)
・I(MPLS IPv4) Flag
1の場合はThimヘッダが付加されたIPv4パケットを処理できることを示します。
・V(MPLS IPv6) Flag
1の場合はThimヘッダが付加されたIPv6パケットを処理できることを示します。
SR Algorithms Sub-TLV(Sub Type = 19)
Extended IP Reachability TLV(Type = 135)
Extended IP Reachability TLVにはPrefix SID等のPrefixの情報が格納されます。(Extended IP Reachability TLVはSR専用のTLVではなく、以前から使用されています。)
・D(Down) bit
1の場合はIS-ISのLevel 2からLevel 1にLeakされたことを示します。
・S(Scope) bit
1の場合はこのTLVはIS-ISネットワーク全体に広報されることを示します。
Prefix-SID Sub-TLV(Sub Type = 3)
・R(Re-Advertise) Flag
1の場合はSIDが割り当てられたPrefixが別のLevelで生成されたことを示します。
・N(Node-SID) Flag
1の場合はNode SIDであることを示します。
・P(PHP-off) Flag
1の場合はPHPが無効なことを示します。
・E(Explicit-Null) Flag
1の場合はExplicit Nullが有効なことを示します。
・V(Value) Flag
0の場合はSIDがIndex、1の場合はSIDがAbsolute Valueであることを示します。
・L(Local) Flag
0の場合はSIDがグローバルで意味のある値、1の場合はSIDが生成元のルータローカルでのみ意味のある値であることを示します。
Extended IS Reachability TLV(Type = 22)
Extended IS Reachability TLVにはAdjacency SID等のリンクの情報が格納されます。(Extended IS Reachability TLVはSR専用のTLVではなく、以前から使用されています。)
Adj-SID Sub-TLV(Sub Type = 31)
・F(Address Family) Flag
0の場合はThimヘッダが付加されたIPv4パケット、1の場合はThimヘッダが付加されたIPv6パケットの処理が可能なことを示します。
・B(Backup) Flag
1の場合はFRR(Fast Reroute)によりバックアップ用のLSPが生成されていることを示します。
・V(Value) Flag
0の場合はSIDがIndex、1の場合はSIDがAbsolute Valueであることを示します。
・L(Local) Flag
0の場合はSIDがグローバルで意味のある値、1の場合はSIDが生成元のルータローカルでのみ意味のある値であることを示します。
・S(Set) Flag
1の場合はAdjacency Groupを参照していることを示します。
検証の基本設定
基本設定の内容
R1-R2-R3間でIS-IS Area 49.0001を構成します。
R1、R2、R3をL2 Routerとして動作させます。
IS-ISでSRを有効にします。
R3でLoopback Interfaceの3.3.3.3/32にPrefix SIDとして20301を割り当てます。
初期設定
interface Loopback0
ipv4 address 1.1.1.1 255.255.255.255
!
interface GigabitEthernet0/0/0/0
ipv4 address 10.1.1.1 255.255.255.0
!
router isis 1
is-type level-2-only
net 49.0001.0000.0000.0001.00
address-family ipv4 unicast
metric-style wide
segment-routing mpls
!
interface Loopback0
address-family ipv4 unicast
!
!
interface GigabitEthernet0/0/0/0
point-to-point
address-family ipv4 unicast
interface Loopback0
ipv4 address 2.2.2.2 255.255.255.255
!
interface GigabitEthernet0/0/0/0
ipv4 address 10.1.1.2 255.255.255.0
!
interface GigabitEthernet0/0/0/1
ipv4 address 10.2.2.2 255.255.255.0
!
router isis 1
is-type level-2-only
net 49.0001.0000.0000.0002.00
address-family ipv4 unicast
metric-style wide
segment-routing mpls
!
interface Loopback0
address-family ipv4 unicast
!
!
interface GigabitEthernet0/0/0/0
point-to-point
address-family ipv4 unicast
!
!
interface GigabitEthernet0/0/0/1
point-to-point
address-family ipv4 unicast
interface Loopback0
ipv4 address 3.3.3.3 255.255.255.255
!
interface GigabitEthernet0/0/0/0
ipv4 address 10.2.2.3 255.255.255.0
!
router isis 1
is-type level-2-only
net 49.0001.0000.0000.0003.00
address-family ipv4 unicast
metric-style wide
segment-routing mpls
!
interface Loopback0
address-family ipv4 unicast
prefix-sid absolute 20301
!
!
interface GigabitEthernet0/0/0/0
point-to-point
address-family ipv4 unicast
設定と状態確認
Segment Routingの設定確認
IS-ISはIPv4アドレス、IPv6アドレスのルート情報のやり取りをサポートしているため、Address Family単位でsegment-routing mplsコマンドを設定し、SRを有効にします。
また、metric-style wideコマンドにより、Wide Metricを有効化することで、SR専用のTLVを生成可能です。
router isis 1
address-family ipv4 unicast
metric-style wide
segment-routing mpls
Prefix SIDはprefix-sid absolute <sid>コマンド、または、prefix-sid index <sid>コマンドにより割り当て可能です。自動的にNode SIDであることを示すN Flagがセットされます。また、どちらのコマンドを使用しても、IS-ISはSIDのIndexを広報します。
router isis 1
interface Loopback0
address-family ipv4 unicast
prefix-sid absolute 20301
Prefix SIDの設定確認
Prefix SIDはshow isis segment-routing label tableコマンドで確認できます。
IS-ISではIndexである4301ではなく、Absolute Valueである20301が確認できます。
RP/0/RP0/CPU0:R3#show isis segment-routing label table
IS-IS 1 IS Label Table
Label Prefix/Interface
---------- ----------------
20301 Loopback0
Adjacency SIDの設定確認
IS-ISネイバーに対して割り当てられたAdjacency SIDはshow isis adjacency detailコマンドで確認できます。
Adjacency SIDとNon-FRR Adjacency SIDの2つが存在しますが、Non-FRR Adjacency SIDのSIDがAdjacency SIDとしてIS-ISネイバーに広報されます。Adjacency SIDのSIDはFRRを使用する場合に意味のある値になります。
RP/0/RP0/CPU0:R1#show isis adjacency detail
IS-IS 1 Level-2 adjacencies:
System Id Interface SNPA State Hold Changed NSF IPv4 IPv6
BFD BFD
R2 Gi0/0/0/0 *PtoP* Up 22 00:15:57 Yes None None
Area Address: 49.0001
Neighbor IPv4 Address: 10.1.1.2*
Adjacency SID: 24000
Non-FRR Adjacency SID: 24001
Topology: IPv4 Unicast
BFD Status: BFD Not Required, Neighbor Useable
Total adjacency count: 1
LSDBの確認
IS-ISのLSDBを見てみると、OSPFとは異なり、各ルータが1個のLSPを生成していることが確認できます。このLSPの中に、SR用の様々なTLVが格納されています。
RP/0/RP0/CPU0:R1#show isis database
IS-IS 1 (Level-2) Link State Database
LSPID LSP Seq Num LSP Checksum LSP Holdtime/Rcvd ATT/P/OL
R1.00-00 * 0x00000006 0xa750 815 /* 0/0/0
R2.00-00 0x00000008 0x4e07 803 /1200 0/0/0
R3.00-00 0x00000007 0x0596 995 /1200 0/0/0
Total Level-2 LSP count: 3 Local Level-2 LSP count: 1
Router Capability TLVの確認
Router Capability TLVの内容を見ると、SRGBの先頭のSIDとSRGBのサイズが格納されていることが確認できます。また、今回はIPv4のSRなのでI Flagがセットされていることが確認できます。
RP/0/RP0/CPU0:R1#show isis database R1.00-00 verbose
IS-IS 1 (Level-2) Link State Database
LSPID LSP Seq Num LSP Checksum LSP Holdtime/Rcvd ATT/P/OL
R1.00-00 * 0x00000006 0xa750 678 /* 0/0/0
Area Address: 49.0001
NLPID: 0xcc
IP Address: 1.1.1.1
Metric: 10 IP-Extended 1.1.1.1/32
Prefix Attribute Flags: X:0 R:0 N:1
Metric: 10 IP-Extended 10.1.1.0/24
Prefix Attribute Flags: X:0 R:0 N:0
Hostname: R1
Router Cap: 1.1.1.1 D:0 S:0
Segment Routing: I:1 V:0, SRGB Base: 16000 Range: 8000
Node Maximum SID Depth:
Label Imposition: 10
SR Algorithm:
Algorithm: 0
Algorithm: 1
Metric: 10 IS-Extended R2.00
Interface IP Address: 10.1.1.1
Neighbor IP Address: 10.1.1.2
Link Maximum SID Depth:
Label Imposition: 10
ADJ-SID: F:0 B:0 V:1 L:1 S:0 P:0 weight:0 Adjacency-sid:24001
以下はRouter Capability TLVのキャプチャになります。SRGBの情報が格納されていることが確認できます。
Extended IP Reachability TLVの確認
R3の3.3.3.3/32に関するExtended IP Reachability TLVの内容を見ると、3.3.3.3/32にPrefix SIDのIndexである4301が割り当てられていることが確認できます。また、Node SIDを示すN Flagがセットされていることが確認できます。
RP/0/RP0/CPU0:R1#show isis database R3.00-00 verbose
IS-IS 1 (Level-2) Link State Database
LSPID LSP Seq Num LSP Checksum LSP Holdtime/Rcvd ATT/P/OL
R3.00-00 0x00000007 0x0596 808 /1200 0/0/0
Area Address: 49.0001
Metric: 10 IS-Extended R2.00
Interface IP Address: 10.2.2.3
Neighbor IP Address: 10.2.2.2
Link Maximum SID Depth:
Label Imposition: 10
ADJ-SID: F:0 B:0 V:1 L:1 S:0 P:0 weight:0 Adjacency-sid:24001
NLPID: 0xcc
IP Address: 3.3.3.3
Metric: 10 IP-Extended 10.2.2.0/24
Prefix Attribute Flags: X:0 R:0 N:0
Metric: 10 IP-Extended 3.3.3.3/32
Prefix-SID Index: 4301, Algorithm:0, R:0 N:1 P:0 E:0 V:0 L:0
Prefix Attribute Flags: X:0 R:0 N:1
Hostname: R3
Router Cap: 3.3.3.3 D:0 S:0
Segment Routing: I:1 V:0, SRGB Base: 16000 Range: 8000
Node Maximum SID Depth:
Label Imposition: 10
SR Algorithm:
Algorithm: 0
Algorithm: 1
以下はExtended IP Reachability TLVのキャプチャになります。Prefix SIDとしてIndexの4301が格納されていること、また、Node SIDを示すN Flagがセットされていることが確認できます。
Extended IS Reachability TLVの確認
Extended IS Reachability TLVの内容を見ると、Adjacency SIDとして24000が格納されていることが確認できます。また、IPv4のSRなのでF Flagがセットされていないことが確認できます。
RP/0/RP0/CPU0:R1#show isis database R1.00-00 verbose
IS-IS 1 (Level-2) Link State Database
LSPID LSP Seq Num LSP Checksum LSP Holdtime/Rcvd ATT/P/OL
R1.00-00 * 0x00000006 0xa750 678 /* 0/0/0
Area Address: 49.0001
NLPID: 0xcc
IP Address: 1.1.1.1
Metric: 10 IP-Extended 1.1.1.1/32
Prefix Attribute Flags: X:0 R:0 N:1
Metric: 10 IP-Extended 10.1.1.0/24
Prefix Attribute Flags: X:0 R:0 N:0
Hostname: R1
Router Cap: 1.1.1.1 D:0 S:0
Segment Routing: I:1 V:0, SRGB Base: 16000 Range: 8000
Node Maximum SID Depth:
Label Imposition: 10
SR Algorithm:
Algorithm: 0
Algorithm: 1
Metric: 10 IS-Extended R2.00
Interface IP Address: 10.1.1.1
Neighbor IP Address: 10.1.1.2
Link Maximum SID Depth:
Label Imposition: 10
ADJ-SID: F:0 B:0 V:1 L:1 S:0 P:0 weight:0 Adjacency-sid:24001
以下はExtended IS Reachability TLVのキャプチャになります。Adjacency SIDとして24001が格納されていることが確認できます。また、IPv4のSRなのでF Flagがセットされていないことが確認できます。
LFIBとFIBの確認
R1とR2のLFIBを見ると、3.3.3.3/32のPrefix SIDである20301がインストールされていることが確認できます。
RP/0/RP0/CPU0:R1#show mpls forwarding
Local Outgoing Prefix Outgoing Next Hop Bytes
Label Label or ID Interface Switched
------ ----------- ------------------ ------------ --------------- ------------
20301 20301 SR Pfx (idx 4301) Gi0/0/0/0 10.1.1.2 500
24000 Pop SR Adj (idx 1) Gi0/0/0/0 10.1.1.2 0
24001 Pop SR Adj (idx 3) Gi0/0/0/0 10.1.1.2 0
RP/0/RP0/CPU0:R2#show mpls forwarding
Local Outgoing Prefix Outgoing Next Hop Bytes
Label Label or ID Interface Switched
------ ----------- ------------------ ------------ --------------- ------------
20301 Pop SR Pfx (idx 4301) Gi0/0/0/1 10.2.2.3 500
24000 Pop SR Adj (idx 1) Gi0/0/0/0 10.1.1.1 0
24001 Pop SR Adj (idx 3) Gi0/0/0/0 10.1.1.1 0
24002 Pop SR Adj (idx 1) Gi0/0/0/1 10.2.2.3 0
24003 Pop SR Adj (idx 3) Gi0/0/0/1 10.2.2.3 0
R1のFIBを確認すると、R1は3.3.3.3/32宛のパケットに対して、SID 20301を付加することが確認できます。
RP/0/RP0/CPU0:R1#show cef 3.3.3.3/32
3.3.3.3/32, version 18, labeled SR, internal 0x1000001 0x81 (ptr 0xe315728) [1], 0x0 (0xe4d6668), 0xa28 (0xe9a4228)
Updated Jun 3 21:58:59.527
remote adjacency to GigabitEthernet0/0/0/0
Prefix Len 32, traffic index 0, precedence n/a, priority 1
via 10.1.1.2/32, GigabitEthernet0/0/0/0, 4 dependencies, weight 0, class 0 [flags 0x0]
path-idx 0 NHID 0x0 [0xf147140 0x0]
next hop 10.1.1.2/32
remote adjacency
local label 20301 labels imposed {20301}
疎通確認
R1の1.1.1.1からR3の3.3.3.3へTracerouteを実施します。
R1はSID 20301をパケットに付加して転送していることが確認できます。また、R2はパケットからSID 20301を削除していることが確認できます。
RP/0/RP0/CPU0:R1#traceroute 3.3.3.3 source 1.1.1.1
Type escape sequence to abort.
Tracing the route to 3.3.3.3
1 10.1.1.2 [MPLS: Label 20301 Exp 0] 96 msec 95 msec 96 msec
2 10.2.2.3 82 msec * 100 msec
コメント