Segment Routing IS-IS

今回は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を生成可能です。

R1

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を広報します。

R3

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が確認できます。

R1

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 SIDNon-FRR Adjacency SIDの2つが存在しますが、Non-FRR Adjacency SIDのSIDがAdjacency SIDとしてIS-ISネイバーに広報されます。Adjacency SIDのSIDはFRRを使用する場合に意味のある値になります。

R1

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が格納されています。

R1

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がセットされていることが確認できます。

R1

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がセットされていることが確認できます。

R3

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がセットされていないことが確認できます。

R1

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がインストールされていることが確認できます。

R1

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
            
R2

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を付加することが確認できます。

R1

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を削除していることが確認できます。

R1

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
            

コメント

タイトルとURLをコピーしました