狠狠撸

狠狠撸Share a Scribd company logo
?WAN SDN 実践入門!
OpenDayLightのPCEP/BGPに触れてみる
Masahiko Suzuki
Cisco Systems G.K.
はじめに
o 本セッションはWAN SDNの概念を理解することを目的とします。
o 最も基本的な構成を用いてApplicationからLSPをコントロールする
一連の流れを確認します。
App ----------?SDN Controller---------?Router
(REST) (PCEP)
o 本資料に記載される動作内容は予告なしに変更される場合がある
ため、予めご了承ください。
アジェンダ
? WAN SDNとBGP-LS/PCEP
? デモ
? ユースケース
? 所管
MPLS-TEパス計算モデル
分散型
Tail End
Head End
参考:http://www.janog.gr.jp/meeting/janog33/doc/janog33-mpls-tsuchiya-1.pdf
o リンクステートプロトコルにより、トポロジ情報
を分配
o ルータ自身が所持する帯域やトポロジ情報に基づ
き、パスをセットアップする
o ネットワーク全体のエンドツーエンドの情報を把
握することが出来ない場合がある
TED
TED
TED
MPLS-TEパス計算モデル
集中型
TED
LSP DB
PCEP
Head End Tail End
コントローラ
o ネットワーク全体のトポロジ情報およびLSPステー
ト情報をコントローラにて所持
o ネットワーク全体の帯域状況を把握した上で、パ
ス計算を実行する
o コントローラはNorthboundにREST APIを持つことに
より、アプリケーションとの親和性あり
WAN SDN
WAN SDN要素技術
BGP-LS(BGP-LinkState)
o MPLS-TEに必要なLSDB, TEDBをBGPを用いて配信
o BGPのポリシーコントロールの仕組みを利用可能
o 新たなアドレスファミリーを定義
? AFI = 16388
? SAFI = 71
o 利点
? BGP機能を利用可能(Policy-base, Security, Transport)
? IGPマルチドメイン環境でも全体を把握可能
? IGPを外部エンティティから分離 Domain 1 Domain 2
Domain
0
BGP-LS
TED
BGP-LS BGP-LS
RR
PCE
WAN SDN要素技術
PCEP(Path Computation Element Protocol)
o MPLSにおける集中型計算モデル
? 元々はInter-Area/AS TEのためのモデル
o 用語
? PCE (Path Computation Element)
-> コントローラ
? PCC (Path Computation Client)
-> ルータ上のエージェント
? PCEP (PCE Protocol)
-> PCEとPCE間のプロトコル
? TED (Traffic Engineering Database)
-> トポロジとリソース情報のDB(LSDB等)
PCEP
Stateful PCE
TED
LSP DB
PCC
PCE-initiated
LSP
WAN SDN要素技術
PCEP(Path Computation Element Protocol)
o ステートレス
? 新規パス計算時、過去に生成したLSPが考慮されない
o ステートフル (WAN SDNで使用)
? PCEとPCC間でトポロジ、リソース、LSPステートを同期する
? PCEはパス計算時に上記の情報を考慮する
? LSPのDelegation(Create)、Update、Deleteをサポート(後ほど動作確認)
OpenDaylight Helium Rlease
OpenDaylight Helium Rlease
Contribution by companies(LOC)
引用:http://spectrometer.opendaylight.org/?metric=loc&release=helium
o All Modules
OpenDaylight Helium Rlease
Contribution by companies & Engineer(LOC)
o Module: bgpcep (BGP-LS/PCEP)
引用:http://spectrometer.opendaylight.org/?metric=loc&release=helium&module=bgpcep-group
アジェンダ
? WAN SDNとBGP-LS/PCEP
? デモ
? ユースケース
? 所管
環境情報
o アプリケーション
? Google POSTMAN
o コントローラ
? Cisco SDN Controller
? EFT(Early Field Trial)版
? ODL Heliumとほぼ同じ
o ネットワークインフラ
? XRv (Version 5.3.0)
OpenDaylight と Cisco Open SDN Contorller
Community Support Cisco Supported
“HELIUM” Open SDN Controller
Common Content
Incremental
Cisco
Value
Precluded
OpenDaylight
Content
OpenDaylight &Virtual Infra Setup
REST
BGP-LS
PCEP
SDN Controller
Application
Network Infra
OpenDaylight
Controller
POSTMAN
(Google Chrome)
NetworkTopology
IGP & MPLS
PE2
GE0/0/0/0 GE0/0/0/0
GE0/0/0/1 GE0/0/0/1
GE0/0/0/0
10.1.14.0/24
.1
OpenDaylight
Controller
BGP-LS PCEP
PE(X) IP Address
Loopback-IF: X.X.X.X
Southbound-IF: 172.16.1.X
172.16.1.251
AS=100
IGP: OSPF
POSTMAN
(Google Chrome)
REST
PE3
PE1
GE0/0/0/1
GE0/0/0/1 GE0/0/0/0
.2 .3
10.1.23.0/24
10.1.13.0/24 10.0.34.0/24
.4
PE4
PE1 設定
IGP & MPLS
ipv4 unnumbered mpls traffic-eng Loopback0
!
interface Loopback0
description Loopback
ipv4 address 1.1.1.1 255.255.255.255
!
interface MgmtEth0/0/CPU0/0
shutdown
!
interface GigabitEthernet0/0/0/0
description to PE4
ipv4 address 10.1.14.1 255.255.255.0
!
interface GigabitEthernet0/0/0/1
description to PE2
ipv4 address 10.1.12.1 255.255.255.0
!
interface GigabitEthernet0/0/0/2
description to Multipoint_Connection-1
ipv4 address 172.16.1.1 255.255.255.0
!
interface GigabitEthernet0/0/0/3
description to CE1
ipv4 address 192.2.1.1 255.255.255.0
router ospf 1
distribute bgp-ls
router-id 1.1.1.1
area 0
mpls traffic-eng
interface Loopback0
passive enable
!
interface GigabitEthernet0/0/0/0
network point-to-point
!
interface GigabitEthernet0/0/0/1
network point-to-point
!
!
mpls traffic-eng router-id Loopback0
!
PE1 設定
IGP & MPLS
rsvp
interface GigabitEthernet0/0/0/0
bandwidth percentage 100
!
interface GigabitEthernet0/0/0/1
bandwidth percentage 100
!
!
mpls traffic-eng
interface GigabitEthernet0/0/0/0
!
interface GigabitEthernet0/0/0/1
!
pce
peer source ipv4 172.16.1.1
peer ipv4 172.16.1.251
!
stateful-client
instantiation
delegation
!
!
auto-tunnel pcc
tunnel-id min 1 max 1024
PE1 確認コマンド
IGP & MPLS
RP/0/0/CPU0:PE1#show mpls traffic-eng topology ospf
Tue Feb 17 05:24:55.987 UTC
My_System_id: 1.1.1.1 (OSPF 1 area 0)
My_BC_Model_Type: RDM
Signalling error holddown: 10 sec Global Link Generation 140
IGP Id: 1.1.1.1, MPLS TE Id: 1.1.1.1 Router Node (OSPF 1 area 0)
Link[0]:Point-to-Point, Nbr IGP Id:4.4.4.4, Nbr Node Id:4, gen:133
Frag Id:4, Intf Address:10.1.14.1, Intf Id:0
Nbr Intf Address:10.1.14.4, Nbr Intf Id:0
TE Metric:1, IGP Metric:1
Attribute Flags: 0x0
Ext Admin Group:
Length: 256 bits
Value : 0x::
Attribute Names:
Switching Capability:None, Encoding:unassigned
BC Model ID:RDM
Physical BW:1000000 (kbps), Max Reservable BW Global:1000000 (kbps)
Max Reservable BW Sub:0 (kbps)
Global Pool Sub Pool
Total Allocated Reservable Reservable
BW (kbps) BW (kbps) BW (kbps)
--------------- ----------- ----------
bw[0]: 0 1000000 0
bw[1]: 0 1000000 0
bw[2]: 0 1000000 0
<SNIP>
NetworkTopology
BGP-LS
PE2
GE0/0/0/0 GE0/0/0/0
GE0/0/0/1 GE0/0/0/1
GE0/0/0/0
10.1.14.0/24
.1
OpenDaylight
Controller
BGP-LS PCEP 172.16.1.251
AS=100
IGP: OSPF
POSTMAN
(Google Chrome)
REST
TED
PE3
PE1
GE0/0/0/1
GE0/0/0/1 GE0/0/0/0
.2 .3
10.1.23.0/24
10.1.13.0/24 10.0.34.0/24
.4
PE4
BGP-LS Connection
PE(X) IP Address
Loopback-IF: X.X.X.X
Southbound-IF: 172.16.1.X
PE1 設定
BGP-LS
RP/0/0/CPU0:PE1#sh run router bgp
Tue Feb 17 05:30:32.114 UTC
router bgp 100
bgp router-id 1.1.1.1
address-family ipv4 unicast
network 1.1.1.1/32
!
address-family link-state link-state
!
neighbor 172.16.1.251
remote-as 100
address-family link-state link-state
RP/0/0/CPU0:PE1# sh run router ospf
Tue Feb 17 05:32:10.447 UTC
router ospf 1
distribute bgp-ls
router-id 1.1.1.1
area 0
mpls traffic-eng
interface Loopback0
passive enable
!
interface GigabitEthernet0/0/0/0
network point-to-point
!
interface GigabitEthernet0/0/0/1
network point-to-point
!
!
mpls traffic-eng router-id Loopback0
ODL 設定
BGP Listener – RIB設定
<module xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
<type xmlns:x="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl">x:rib-impl</type>
<name>example-bgp-rib</name>
<bgp-rib-id xmlns="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl">172.16.1.251</bgp-rib-id>
<local-as xmlns="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl">100</local-as>
</module>
POST
URI
http://{ODL-IPADDR}:8181/restconf/config/opendaylight-inventory:nodes/node/controller-config/yang-ext:mount/config:modules/
BGP-RIB-IDの指定
Local ASの指定
参考:https://wiki.opendaylight.org/view/BGP_LS_PCEP:User_Guide#Configuration_through_RESTCONF
ODL 設定
BGP Listener – RIB設定
<module xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
<type xmlns:x="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl">x:bgp-peer</type>
<name>example-bgp-peer</name>
<host xmlns="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl">172.16.1.1</host>
<holdtimer xmlns="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl">180</holdtimer>
<rib xmlns="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl">
<type xmlns:x="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:cfg">x:rib</type>
<name>example-bgp-rib</name>
</rib>
<peer-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl">
<type xmlns:x="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl">x:bgp-peer-registry</type>
<name>global-bgp-peer-registry</name>
</peer-registry>
<advertized-table xmlns="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl">
<type xmlns:x="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl">x:bgp-table-type</type>
<name>ipv4-unicast</name>
</advertized-table>
<SNIP>
POST
URI
http://{ODL-IPADDR}:8181/restconf/config/opendaylight-inventory:nodes/node/controller-config/yang-ext:mount/config:modules/
BGP-LS Peerの指定(PE1)
参考:https://wiki.opendaylight.org/view/BGP_LS_PCEP:User_Guide#Configuration_through_RESTCONF
Hold Timerの設定
PE1 確認コマンド
BGP-LS – neighbor
RP/0/0/CPU0:PE1#show bgp link-state link-state summary
Tue Feb 17 05:57:13.074 UTC
BGP router identifier 1.1.1.1, local AS number 100
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0x0 RD version: 52
BGP main routing table version 52
BGP NSR Initial initsync version 25 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs
BGP is operating in STANDALONE mode.
Process RcvTblVer bRIB/RIB LabelVer ImportVer SendTblVer StandbyVer
Speaker 52 52 52 52 52 0
Neighbor Spk AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down St/PfxRcd
172.16.1.251 0 100 46 80 52 0 0 00:44:33 0
PE1 確認コマンド
BGP-LS – table
RP/0/0/CPU0:PE1#show bgp link-state link-state
Tue Feb 17 05:58:25.069 UTC
BGP router identifier 1.1.1.1, local AS number 100
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0x0 RD version: 52
BGP main routing table version 52
BGP NSR Initial initsync version 25 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Prefix codes: E link, V node, T IP reacheable route, u/U unknown
I Identifier, N local node, R remote node, L link, P prefix
L1/L2 ISIS level-1/level-2, O OSPF, D direct, S static
a area-ID, l link-ID, t topology-ID, s ISO-ID,
c confed-ID/ASN, b bgp-identifier, r router-ID,
i if-address, n nbr-address, o OSPF Route-type, p IP-prefix
d designated router address
Network Next Hop Metric LocPrf Weight Path
*> [V][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r1.1.1.1]]/376
0.0.0.0 0 i
*> [V][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r2.2.2.2]]/376
0.0.0.0 0 i
*> [V][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r3.3.3.3]]/376
0.0.0.0 0 I
<SNIP>
PE1 確認コマンド
BGP-LS – advertisement to ODL
RP/0/0/CPU0:PE1#show bgp link-state link-state neighbors 172.16.1.251 advertise
Tue Feb 17 06:01:29.007 UTC
Network Next Hop From AS Path
[V][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r1.1.1.1]]/376
172.16.1.1 Local i
[V][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r2.2.2.2]]/376
172.16.1.1 Local i
[V][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r3.3.3.3]]/376
172.16.1.1 Local i
[V][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r4.4.4.4]]/376
172.16.1.1 Local i
[E][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r1.1.1.1]][R[c100][b1.1.1.1][a0.0.0.0][r2.2.2.2]][L[i10.1.12.1][n10.1.12.2]]/792
172.16.1.1 Local i
[E][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r1.1.1.1]][R[c100][b1.1.1.1][a0.0.0.0][r4.4.4.4]][L[i10.1.14.1][n10.1.14.4]]/792
172.16.1.1 Local i
[E][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r2.2.2.2]][R[c100][b1.1.1.1][a0.0.0.0][r1.1.1.1]][L[i10.1.12.2][n10.1.12.1]]/792
172.16.1.1 Local i
[E][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r2.2.2.2]][R[c100][b1.1.1.1][a0.0.0.0][r3.3.3.3]][L[i10.1.23.2][n10.1.23.3]]/792
172.16.1.1 Local i
[E][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r3.3.3.3]][R[c100][b1.1.1.1][a0.0.0.0][r2.2.2.2]][L[i10.1.23.3][n10.1.23.2]]/792
172.16.1.1 Local i
[E][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r3.3.3.3]][R[c100][b1.1.1.1][a0.0.0.0][r4.4.4.4]][L[i10.1.34.3][n10.1.34.4]]/792
172.16.1.1 Local i
[E][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r4.4.4.4]][R[c100][b1.1.1.1][a0.0.0.0][r1.1.1.1]][L[i10.1.14.4][n10.1.14.1]]/792
172.16.1.1 Local i
[E][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r4.4.4.4]][R[c100][b1.1.1.1][a0.0.0.0][r3.3.3.3]][L[i10.1.34.4][n10.1.34.3]]/792
172.16.1.1 Local i
[T][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r1.1.1.1]][P[o0x01][p10.1.12.0/24]]/480
<SNIP>
PE1 確認コマンド
BGP-LS – NLRI詳細
RP/0/0/CPU0:PE1#show bgp link-state link-state [E][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r1.1.1.1]][R[c100][b1.1.1.1][a0.0.0.0][r2.2.2.2]][L[i10.1.12.1][n10.1.12.2]]/792
Tue Feb 17 06:03:21.359 UTC
BGP routing table entry for [E][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r1.1.1.1]][R[c100][b1.1.1.1][a0.0.0.0][r2.2.2.2]][L[i10.1.12.1][n10.1.12.2]]/792
Versions:
Process bRIB/RIB SendTblVer
Speaker 33 33
Last Modified: Feb 17 05:13:04.777 for 00:50:16
Paths: (1 available, best #1)
Advertised to peers (in unique update groups):
172.16.1.251
Path #1: Received by speaker 0
Advertised to peers (in unique update groups):
172.16.1.251
Local
0.0.0.0 from 0.0.0.0 (1.1.1.1)
Origin IGP, localpref 100, valid, redistributed, best, group-best
Received Path ID 0, Local Path ID 1, version 33
Link-state: Local TE Router-ID: 1.1.1.1, Remote TE Router-ID:
2.2.2.2 admin-group: 0x00000000, max-link-bw (kbits/sec): 1000000
max-reserv-link-bw (kbits/sec): 1000000, max-unreserv-link-bw (kbits/sec):
1000000 1000000 1000000 1000000 1000000 1000000 1000000
1000000 TE-default-metric: 1, metric: 1
NetworkTopology
PCEP
PE2
GE0/0/0/0 GE0/0/0/0
GE0/0/0/1 GE0/0/0/1
GE0/0/0/0
10.1.14.0/24
.1
OpenDaylight
Controller
BGP-LS PCEP 172.16.1.251
AS=100
IGP: OSPF
POSTMAN
(Google Chrome)
REST
TED
LSP DB
PE3
PE1
GE0/0/0/1
GE0/0/0/1 GE0/0/0/0
.2 .3
10.1.23.0/24
10.1.13.0/24 10.0.34.0/24
.4
PE4
PCEP Connection
BGP-LS Connection
PE(X) IP Address
Loopback-IF: X.X.X.X
Southbound-IF: 172.16.1.X
PE1 設定
BGP-LS
RP/0/0/CPU0:PE1#sh run mpls traffic-eng
Tue Feb 17 06:06:59.224 UTC
mpls traffic-eng
interface GigabitEthernet0/0/0/0
!
interface GigabitEthernet0/0/0/1
!
pce
peer source ipv4 172.16.1.1
peer ipv4 172.16.1.251
!
stateful-client
instantiation
delegation
!
!
auto-tunnel pcc
tunnel-id min 1 max 1024
PCEサーバ(ODL)の指定
Stateful PCEとしてのCapabilityを定義
PCEで使うTunnel-IDの範囲指定
ODL 設定
PCEP
参考:https://wiki.opendaylight.org/view/BGP_LS_PCEP:User_Guide#Configure_draft_versions
o デフォルトで以下のdraftに基づき動作する
? draft-ietf-pce-stateful-pce - version 07
? draft-ietf-pce-pce-initiated-lsp – ietf-initiated-00
o 以下のdraftの動作にする場合はRESTConfによる設定変更が必要
? draft-ietf-pce-stateful-pce - version 02
? draft-ietf-pce-pce-initiated-lsp - crabbe-initiated-00
PE1 確認コマンド
PCEP Peer
RP/0/0/CPU0:PE1#show mpls traffic-eng pce peer
Tue Feb 17 07:09:59.679 UTC
Address Precedence State Learned From
--------------- ------------ ------------ --------------------
172.16.1.251 255 Up Static config
NetworkTopology
REST
PE2
GE0/0/0/0 GE0/0/0/0
GE0/0/0/1 GE0/0/0/1
GE0/0/0/0
10.1.14.0/24
.1
OpenDaylight
Controller
BGP-LS PCEP 172.16.1.251
AS=100
IGP: OSPF
POSTMAN
(Google Chrome)
REST
HTTP GET
TED
LSP DB
PE3
PE1
GE0/0/0/1
GE0/0/0/1 GE0/0/0/0
.2 .3
10.1.23.0/24
10.1.13.0/24 10.0.34.0/24
.4
PE4
PCEP Connection
BGP-LS Connection
PE(X) IP Address
Loopback-IF: X.X.X.X
Southbound-IF: 172.16.1.X
HTTP GET
Link-State
URI
http://{ODL-IPADDR}:8181/restconf/operational/network-topology:network-topology/topology/example-linkstate-topology
参考:https://wiki.opendaylight.org/view/BGP_LS_PCEP:Restconf
出力例
HTTP GET
PCE
URI
http://{ODL-IPADDR}:8181/restconf/operational/network-topology:network-topology/topology/pcep-topology
参考:https://wiki.opendaylight.org/view/BGP_LS_PCEP:Restconf
出力例
NetworkTopology
Create LSP
PE2
GE0/0/0/0 GE0/0/0/0
GE0/0/0/1 GE0/0/0/1
GE0/0/0/0
10.1.14.0/24
.1
OpenDaylight
Controller
BGP-LS PCEP 172.16.1.251
AS=100
IGP: OSPF
POSTMAN
(Google Chrome)
REST
HTTP POST
TED
LSP DB
PE3
PE1
GE0/0/0/1
GE0/0/0/1 GE0/0/0/0
.2 .3
10.1.23.0/24
10.1.13.0/24 10.0.34.0/24
.4
PE4
PCEP Connection
BGP-LS Connection
PE(X) IP Address
Loopback-IF: X.X.X.X
Southbound-IF: 172.16.1.X
lsp1
HTTP POST
Create LSP
<input>
<node>pcc://172.16.1.1</node>
<name>lsp1</name>
<arguments>
<lsp xmlns:stateful="urn:opendaylight:params:xml:ns:yang:pcep:ietf:stateful07">
<delegate>true</delegate>
<administrative>true</administrative>
<endpoints-obj>
<ipv4>
<source-ipv4-address>1.1.1.1</source-ipv4-address>
<destination-ipv4-address>4.4.4.4</destination-ipv4-address>
</ipv4>
</endpoints-obj>
<ero>
<subobject>
<loose>false</loose>
<ip-prefix><ip-prefix>10.1.14.4/32</ip-prefix></ip-prefix>
</subobject>
</ero>
</arguments>
<network-topology-ref xmlns:topo="urn:TBD:params:xml:ns:yang:network-topology">/topo:network-topology/topo:topology[topo:topology-id="pcep-topology"]</network-topology-ref>
</input>
POST
URI
http://{ODL-IPADDR}:8181/restconf/operations/network-topology-pcep:add-lsp
参考:https://wiki.opendaylight.org/view/BGP_LS_PCEP:Restconf
PE1 確認コマンド
MPLS-TEトンネルの表示
RP/0/0/CPU0:PE1#show mpls traffic-eng tunnel
Tue Feb 17 07:26:18.951 UTC
Name: tunnel-te2 Destination: 4.4.4.4 Ifhandle:0x580 (auto-tunnel pcc)
Signalled-Name: lsp1
Status:
Admin: up Oper: up Path: valid Signalling: connected
path option 10, (verbatim) type explicit (autopcc_te2) (Basis for Setup, path weight 0)
G-PID: 0x0800 (derived from egress interface properties)
Bandwidth Requested: 0 kbps CT0
Creation Time: Tue Feb 17 07:26:13 2015 (00:00:06 ago)
Config Parameters:
Bandwidth: 0 kbps (CT0) Priority: 7 7 Affinity: 0x0/0xffff
Metric Type: TE (default)
Hop-limit: disabled
Cost-limit: disabled
AutoRoute: disabled LockDown: disabled Policy class: not set
Forward class: 0 (default)
Forwarding-Adjacency: disabled
Loadshare: 0 equal loadshares
Auto-bw: disabled
Fast Reroute: Disabled, Protection Desired: None
Path Protection: Not Enabled
BFD Fast Detection: Disabled
Reoptimization after affinity failure: Enabled
Soft Preemption: Disabled
Show runには表示されない
PE1 確認コマンド
MPLS-TEトンネルの表示
Auto PCC:
Symbolic name: lsp1
PCEP ID: 3
Delegated to: 172.16.1.251
Created by: 172.16.1.251
History:
Tunnel has been up for: 00:00:05 (since Tue Feb 17 07:26:14 UTC 2015)
Current LSP:
Uptime: 00:00:05 (since Tue Feb 17 07:26:14 UTC 2015)
Path info (PCE controlled):
Hop0: 10.1.14.4
Displayed 1 (of 1) heads, 0 (of 0) midpoints, 0 (of 0) tails
Displayed 1 up, 0 down, 0 recovering, 0 recovered heads
Show runには表示されない
NetworkTopology
Update LSP
PE2
GE0/0/0/0 GE0/0/0/0
GE0/0/0/1 GE0/0/0/1
GE0/0/0/0
10.1.14.0/24
.1
OpenDaylight
Controller
BGP-LS PCEP 172.16.1.251
AS=100
IGP: OSPF
POSTMAN
(Google Chrome)
REST
HTTP POST
TED
LSP DB
PE3
PE1
GE0/0/0/1
GE0/0/0/1 GE0/0/0/0
.2 .3
10.1.23.0/24
10.1.13.0/24 10.0.34.0/24
.4
PE4
PCEP Connection
BGP-LS Connection
PE(X) IP Address
Loopback-IF: X.X.X.X
Southbound-IF: 172.16.1.X
lsp1
HTTP POST
Update LSP
<input>
<node>pcc://172.16.1.1</node>
<name>lsp1</name>
<arguments>
<lsp xmlns:stateful="urn:opendaylight:params:xml:ns:yang:pcep:ietf:stateful07">
<delegate>true</delegate>
<administrative>true</administrative>
</lsp>
<ero>
<subobject>
<loose>false</loose>
<ip-prefix><ip-prefix>10.1.12.2/32</ip-prefix></ip-prefix>
</subobject>
<subobject>
<loose>false</loose>
<ip-prefix><ip-prefix>10.1.23.3/32</ip-prefix></ip-prefix>
</subobject>
<subobject>
<loose>false</loose>
<ip-prefix><ip-prefix>10.1.34.4/32</ip-prefix></ip-prefix>
</subobject>
</ero>
</arguments>
<network-topology-ref xmlns:topo="urn:TBD:params:xml:ns:yang:network-topology">/topo:network-topology/topo:topology[topo:topology-id="pcep-topology"]</network-topology-ref>
</input>
POST
URI
http://{ODL-IPADDR}:8181/restconf/operations/network-topology-pcep:update-lsp
参考:https://wiki.opendaylight.org/view/BGP_LS_PCEP:Restconf
PE1 確認コマンド
MPLS-TEトンネルの表示
RP/0/0/CPU0:PE1#show mpls traffic-eng tunnel
Tue Feb 17 07:29:35.548 UTC
Name: tunnel-te2 Destination: 4.4.4.4 Ifhandle:0x580 (auto-tunnel pcc)
Signalled-Name: lsp1
Status:
Admin: up Oper: up Path: valid Signalling: connected
path option 10, (verbatim) type explicit (autopcc_te2) (Basis for Setup, path weight 0)
G-PID: 0x0800 (derived from egress interface properties)
Bandwidth Requested: 0 kbps CT0
Creation Time: Tue Feb 17 07:26:13 2015 (00:03:22 ago)
Config Parameters:
Bandwidth: 0 kbps (CT0) Priority: 7 7 Affinity: 0x0/0xffff
Metric Type: TE (default)
Hop-limit: disabled
Cost-limit: disabled
AutoRoute: disabled LockDown: disabled Policy class: not set
Forward class: 0 (default)
Forwarding-Adjacency: disabled
Loadshare: 0 equal loadshares
Auto-bw: disabled
Fast Reroute: Disabled, Protection Desired: None
Path Protection: Not Enabled
BFD Fast Detection: Disabled
Reoptimization after affinity failure: Enabled
Soft Preemption: Disabled
PE1 確認コマンド
MPLS-TEトンネルの表示
Auto PCC:
Symbolic name: lsp1
PCEP ID: 3
Delegated to: 172.16.1.251
Created by: 172.16.1.251
History:
Tunnel has been up for: 00:03:21 (since Tue Feb 17 07:26:14 UTC 2015)
Current LSP:
Uptime: 00:00:21 (since Tue Feb 17 07:29:14 UTC 2015)
Prior LSP:
ID: 2 Path Option: 10
Removal Trigger: reoptimization completed
Path info (PCE controlled):
Hop0: 10.1.12.2
Hop1: 10.1.23.3
Hop2: 10.1.34.4
Displayed 1 (of 1) heads, 0 (of 0) midpoints, 0 (of 0) tails
Displayed 1 up, 0 down, 0 recovering, 0 recovered heads
NetworkTopology
Remove LSP
PE2
GE0/0/0/0 GE0/0/0/0
GE0/0/0/1 GE0/0/0/1
GE0/0/0/0
10.1.14.0/24
.1
OpenDaylight
Controller
BGP-LS PCEP 172.16.1.251
AS=100
IGP: OSPF
POSTMAN
(Google Chrome)
REST
HTTP POST
TED
LSP DB
PE3
PE1
GE0/0/0/1
GE0/0/0/1 GE0/0/0/0
.2 .3
10.1.23.0/24
10.1.13.0/24 10.0.34.0/24
.4
PE4
PCEP Connection
BGP-LS Connection
PE(X) IP Address
Loopback-IF: X.X.X.X
Southbound-IF: 172.16.1.X
HTTP POST
Remove LSP
<input>
<node>pcc://172.16.1.1</node>
<name>lsp1</name>
<network-topology-ref xmlns:topo="urn:TBD:params:xml:ns:yang:network-topology">/topo:network-topology/topo:topology[topo:topology-id="pcep-topology"]</network-topology-ref>
</input>
POST
URI
http://{ODL-IPADDR}:8181/restconf/operations/network-topology-pcep:remove-lsp
参考:https://wiki.opendaylight.org/view/BGP_LS_PCEP:Restconf
PE1 確認コマンド
MPLS-TEトンネルの表示
RP/0/0/CPU0:PE1#show mpls traffic-eng tunnel
Tue Feb 17 07:32:21.187 UTC
Traffic Steering
o デフォルトではTEトンネルはフォワーディングに使用されない (XR5.3.0)
o PCE(ODL)はPCC(Head-End)に対して、どのようにトラフィックを制御するべきか、
PC-InitiateまたはPC-Updateで決定する
o 以下のような手法が利用可能
? Forward-Class(FCID)
? Load-Share Factor
? Autoroute Announce
o Steeringを実行する場合、RESTのLSP Objectとvendor TLVが関連付けられる
Traffic Steering
AutorouteAnnounce
アジェンダ
? WAN SDNとBGP-LS/PCEP
? デモ
? ユースケース
? 所管
3階層モデル
インフラ
レイヤ
コントローラ
レイヤ (ODL)
アプリケーション
レイヤ (REST API)
ビジネス
アプリケーション
ネットワーク
サービス BGP-LS/PCEP
WAN SDNの場合、
パス制御を行うための
判断基準が必要である
アプリケーションは
別途用意する必要がある
Ciscoの一例:
WAE(WAN Automation Engine)にODLを組み込む
o WAE: Cisco MATEのシミュレーション機能とODLを組み合わせた製品
o WAE自身のAPIも公開することで、効果的なApp開発を可能とする
PCEP Connection
BGP-LS Connection
WAE Controller
REST
MATE AppClient App
ODL
BGP-LS PCEP
dCloudにて公開
http://dcloud.cisco.com/
WAE
Demo Application
WAE
Demo Application(例)
1. bosからsanに流れるトラフィックがwdc-kcy間で輻輳する
2. AppからWAEに対してREST APIで最適パスの計算をQuery
3. WAEのODLからPCEPでルータへトンネルを生成
ビデオあり
Juniperの一例:
NorthStar
引用:http://www.slideshare.net/JuniperJapan/20141016-sdn-japannorthstarv1-0
アジェンダ
? WAN SDNとBGP-LS/PCEP
? デモ
? ユースケース
? 所管
コントローラのdebug..
o BGP-LSまたはPCEPセッションが張れない場合、切り分けが難しい
o ルータ側のdebugには慣れているが、ODLのdebugが読めない??
ODLでのdebug有効化
opendaylight-user@root>log:set TRACE org.opendaylight.bgpcep
opendaylight-user@root>llog:set TRACE org.opendaylight.protocol
Logの確認
2015-02-11 23:40:01.061 EST [nettyThreadgroupModule$NioEventLoopGroupCloseable-4-2] DEBUG o.o.p.f.AbstractProtocolSession - Message was received: Keepalive
[_keepaliveMessage=KeepaliveMessage [augmentation=[]], augmentation=[]]
2015-02-11 23:40:02.048 EST [nettyThreadgroupModule$NioEventLoopGroupCloseable-4-1] TRACE o.o.p.p.i.PCEPByteToMessageDecoder - Received to decode:
20020004
2015-02-11 23:40:02.049 EST [nettyThreadgroupModule$NioEventLoopGroupCloseable-4-1] DEBUG o.o.p.f.AbstractProtocolSession - Message was received: Keepalive
[_keepaliveMessage=KeepaliveMessage [augmentation=[]], augmentation=[]]
2015-02-11 23:40:03.923 EST [nettyThreadgroupModule$NioEventLoopGroupCloseable-4-2] TRACE o.o.p.b.r.i.BGPByteToMessageDecoder - Received to decode:
ffffffffffffffffffffffffffffffff001304
2015-02-11 23:40:03.924 EST [nettyThreadgroupModule$NioEventLoopGroupCloseable-4-2] DEBUG o.o.p.f.AbstractProtocolSession - Message was received: Keepalive
[augmentation=[]]
2015-02-11 23:40:03.924 EST [nettyThreadgroupModule$NioEventLoopGroupCloseable-4-2] TRACE o.o.p.bgp.rib.impl.BGPSessionImpl - Received KeepAlive
messsage.
<SNIP>
今回ハマった問題
o AA(Autoroute Announce)がPCE-Createで有効化できない
-> コントローラのおけるadd-lspのRPCの問題であることが判明
-> 修正イメージbuild中
o また、半年前にHydrogen + XR5.1.2.10I(PCEPv02)で検証した頃はデフォル
トでAA有効化であったが、最新ではTLVで有効化する必要がある等の実
装面での変更点も確認された
仮想環境のススメ
o WAN SDNに関連する検証を行う場合、WAN環境を模擬するため多量の
ルータが必要
o 仮想ルータ、仮想測定器など用いて簡易に環境を構築可能
o パフォーマンス、スループットには限界があることに注意
? Cisco: CML, XRv, CSR1000v, IOSv, SunStone(将来)
? Juniper: vMX, firefly
? Alucatel: VSR
? IXIA: IxVM
HyperVisor
仮想ネットワーク
VM
測定器
VM
SDNコントローラ
vSwitch
Thank you

More Related Content

WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~

  • 2. はじめに o 本セッションはWAN SDNの概念を理解することを目的とします。 o 最も基本的な構成を用いてApplicationからLSPをコントロールする 一連の流れを確認します。 App ----------?SDN Controller---------?Router (REST) (PCEP) o 本資料に記載される動作内容は予告なしに変更される場合がある ため、予めご了承ください。
  • 3. アジェンダ ? WAN SDNとBGP-LS/PCEP ? デモ ? ユースケース ? 所管
  • 4. MPLS-TEパス計算モデル 分散型 Tail End Head End 参考:http://www.janog.gr.jp/meeting/janog33/doc/janog33-mpls-tsuchiya-1.pdf o リンクステートプロトコルにより、トポロジ情報 を分配 o ルータ自身が所持する帯域やトポロジ情報に基づ き、パスをセットアップする o ネットワーク全体のエンドツーエンドの情報を把 握することが出来ない場合がある TED TED TED
  • 5. MPLS-TEパス計算モデル 集中型 TED LSP DB PCEP Head End Tail End コントローラ o ネットワーク全体のトポロジ情報およびLSPステー ト情報をコントローラにて所持 o ネットワーク全体の帯域状況を把握した上で、パ ス計算を実行する o コントローラはNorthboundにREST APIを持つことに より、アプリケーションとの親和性あり WAN SDN
  • 6. WAN SDN要素技術 BGP-LS(BGP-LinkState) o MPLS-TEに必要なLSDB, TEDBをBGPを用いて配信 o BGPのポリシーコントロールの仕組みを利用可能 o 新たなアドレスファミリーを定義 ? AFI = 16388 ? SAFI = 71 o 利点 ? BGP機能を利用可能(Policy-base, Security, Transport) ? IGPマルチドメイン環境でも全体を把握可能 ? IGPを外部エンティティから分離 Domain 1 Domain 2 Domain 0 BGP-LS TED BGP-LS BGP-LS RR PCE
  • 7. WAN SDN要素技術 PCEP(Path Computation Element Protocol) o MPLSにおける集中型計算モデル ? 元々はInter-Area/AS TEのためのモデル o 用語 ? PCE (Path Computation Element) -> コントローラ ? PCC (Path Computation Client) -> ルータ上のエージェント ? PCEP (PCE Protocol) -> PCEとPCE間のプロトコル ? TED (Traffic Engineering Database) -> トポロジとリソース情報のDB(LSDB等) PCEP Stateful PCE TED LSP DB PCC PCE-initiated LSP
  • 8. WAN SDN要素技術 PCEP(Path Computation Element Protocol) o ステートレス ? 新規パス計算時、過去に生成したLSPが考慮されない o ステートフル (WAN SDNで使用) ? PCEとPCC間でトポロジ、リソース、LSPステートを同期する ? PCEはパス計算時に上記の情報を考慮する ? LSPのDelegation(Create)、Update、Deleteをサポート(後ほど動作確認)
  • 10. OpenDaylight Helium Rlease Contribution by companies(LOC) 引用:http://spectrometer.opendaylight.org/?metric=loc&release=helium o All Modules
  • 11. OpenDaylight Helium Rlease Contribution by companies & Engineer(LOC) o Module: bgpcep (BGP-LS/PCEP) 引用:http://spectrometer.opendaylight.org/?metric=loc&release=helium&module=bgpcep-group
  • 12. アジェンダ ? WAN SDNとBGP-LS/PCEP ? デモ ? ユースケース ? 所管
  • 13. 環境情報 o アプリケーション ? Google POSTMAN o コントローラ ? Cisco SDN Controller ? EFT(Early Field Trial)版 ? ODL Heliumとほぼ同じ o ネットワークインフラ ? XRv (Version 5.3.0)
  • 14. OpenDaylight と Cisco Open SDN Contorller Community Support Cisco Supported “HELIUM” Open SDN Controller Common Content Incremental Cisco Value Precluded OpenDaylight Content
  • 15. OpenDaylight &Virtual Infra Setup REST BGP-LS PCEP SDN Controller Application Network Infra OpenDaylight Controller POSTMAN (Google Chrome)
  • 16. NetworkTopology IGP & MPLS PE2 GE0/0/0/0 GE0/0/0/0 GE0/0/0/1 GE0/0/0/1 GE0/0/0/0 10.1.14.0/24 .1 OpenDaylight Controller BGP-LS PCEP PE(X) IP Address Loopback-IF: X.X.X.X Southbound-IF: 172.16.1.X 172.16.1.251 AS=100 IGP: OSPF POSTMAN (Google Chrome) REST PE3 PE1 GE0/0/0/1 GE0/0/0/1 GE0/0/0/0 .2 .3 10.1.23.0/24 10.1.13.0/24 10.0.34.0/24 .4 PE4
  • 17. PE1 設定 IGP & MPLS ipv4 unnumbered mpls traffic-eng Loopback0 ! interface Loopback0 description Loopback ipv4 address 1.1.1.1 255.255.255.255 ! interface MgmtEth0/0/CPU0/0 shutdown ! interface GigabitEthernet0/0/0/0 description to PE4 ipv4 address 10.1.14.1 255.255.255.0 ! interface GigabitEthernet0/0/0/1 description to PE2 ipv4 address 10.1.12.1 255.255.255.0 ! interface GigabitEthernet0/0/0/2 description to Multipoint_Connection-1 ipv4 address 172.16.1.1 255.255.255.0 ! interface GigabitEthernet0/0/0/3 description to CE1 ipv4 address 192.2.1.1 255.255.255.0 router ospf 1 distribute bgp-ls router-id 1.1.1.1 area 0 mpls traffic-eng interface Loopback0 passive enable ! interface GigabitEthernet0/0/0/0 network point-to-point ! interface GigabitEthernet0/0/0/1 network point-to-point ! ! mpls traffic-eng router-id Loopback0 !
  • 18. PE1 設定 IGP & MPLS rsvp interface GigabitEthernet0/0/0/0 bandwidth percentage 100 ! interface GigabitEthernet0/0/0/1 bandwidth percentage 100 ! ! mpls traffic-eng interface GigabitEthernet0/0/0/0 ! interface GigabitEthernet0/0/0/1 ! pce peer source ipv4 172.16.1.1 peer ipv4 172.16.1.251 ! stateful-client instantiation delegation ! ! auto-tunnel pcc tunnel-id min 1 max 1024
  • 19. PE1 確認コマンド IGP & MPLS RP/0/0/CPU0:PE1#show mpls traffic-eng topology ospf Tue Feb 17 05:24:55.987 UTC My_System_id: 1.1.1.1 (OSPF 1 area 0) My_BC_Model_Type: RDM Signalling error holddown: 10 sec Global Link Generation 140 IGP Id: 1.1.1.1, MPLS TE Id: 1.1.1.1 Router Node (OSPF 1 area 0) Link[0]:Point-to-Point, Nbr IGP Id:4.4.4.4, Nbr Node Id:4, gen:133 Frag Id:4, Intf Address:10.1.14.1, Intf Id:0 Nbr Intf Address:10.1.14.4, Nbr Intf Id:0 TE Metric:1, IGP Metric:1 Attribute Flags: 0x0 Ext Admin Group: Length: 256 bits Value : 0x:: Attribute Names: Switching Capability:None, Encoding:unassigned BC Model ID:RDM Physical BW:1000000 (kbps), Max Reservable BW Global:1000000 (kbps) Max Reservable BW Sub:0 (kbps) Global Pool Sub Pool Total Allocated Reservable Reservable BW (kbps) BW (kbps) BW (kbps) --------------- ----------- ---------- bw[0]: 0 1000000 0 bw[1]: 0 1000000 0 bw[2]: 0 1000000 0 <SNIP>
  • 20. NetworkTopology BGP-LS PE2 GE0/0/0/0 GE0/0/0/0 GE0/0/0/1 GE0/0/0/1 GE0/0/0/0 10.1.14.0/24 .1 OpenDaylight Controller BGP-LS PCEP 172.16.1.251 AS=100 IGP: OSPF POSTMAN (Google Chrome) REST TED PE3 PE1 GE0/0/0/1 GE0/0/0/1 GE0/0/0/0 .2 .3 10.1.23.0/24 10.1.13.0/24 10.0.34.0/24 .4 PE4 BGP-LS Connection PE(X) IP Address Loopback-IF: X.X.X.X Southbound-IF: 172.16.1.X
  • 21. PE1 設定 BGP-LS RP/0/0/CPU0:PE1#sh run router bgp Tue Feb 17 05:30:32.114 UTC router bgp 100 bgp router-id 1.1.1.1 address-family ipv4 unicast network 1.1.1.1/32 ! address-family link-state link-state ! neighbor 172.16.1.251 remote-as 100 address-family link-state link-state RP/0/0/CPU0:PE1# sh run router ospf Tue Feb 17 05:32:10.447 UTC router ospf 1 distribute bgp-ls router-id 1.1.1.1 area 0 mpls traffic-eng interface Loopback0 passive enable ! interface GigabitEthernet0/0/0/0 network point-to-point ! interface GigabitEthernet0/0/0/1 network point-to-point ! ! mpls traffic-eng router-id Loopback0
  • 22. ODL 設定 BGP Listener – RIB設定 <module xmlns="urn:opendaylight:params:xml:ns:yang:controller:config"> <type xmlns:x="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl">x:rib-impl</type> <name>example-bgp-rib</name> <bgp-rib-id xmlns="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl">172.16.1.251</bgp-rib-id> <local-as xmlns="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl">100</local-as> </module> POST URI http://{ODL-IPADDR}:8181/restconf/config/opendaylight-inventory:nodes/node/controller-config/yang-ext:mount/config:modules/ BGP-RIB-IDの指定 Local ASの指定 参考:https://wiki.opendaylight.org/view/BGP_LS_PCEP:User_Guide#Configuration_through_RESTCONF
  • 23. ODL 設定 BGP Listener – RIB設定 <module xmlns="urn:opendaylight:params:xml:ns:yang:controller:config"> <type xmlns:x="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl">x:bgp-peer</type> <name>example-bgp-peer</name> <host xmlns="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl">172.16.1.1</host> <holdtimer xmlns="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl">180</holdtimer> <rib xmlns="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl"> <type xmlns:x="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:cfg">x:rib</type> <name>example-bgp-rib</name> </rib> <peer-registry xmlns="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl"> <type xmlns:x="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl">x:bgp-peer-registry</type> <name>global-bgp-peer-registry</name> </peer-registry> <advertized-table xmlns="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl"> <type xmlns:x="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl">x:bgp-table-type</type> <name>ipv4-unicast</name> </advertized-table> <SNIP> POST URI http://{ODL-IPADDR}:8181/restconf/config/opendaylight-inventory:nodes/node/controller-config/yang-ext:mount/config:modules/ BGP-LS Peerの指定(PE1) 参考:https://wiki.opendaylight.org/view/BGP_LS_PCEP:User_Guide#Configuration_through_RESTCONF Hold Timerの設定
  • 24. PE1 確認コマンド BGP-LS – neighbor RP/0/0/CPU0:PE1#show bgp link-state link-state summary Tue Feb 17 05:57:13.074 UTC BGP router identifier 1.1.1.1, local AS number 100 BGP generic scan interval 60 secs Non-stop routing is enabled BGP table state: Active Table ID: 0x0 RD version: 52 BGP main routing table version 52 BGP NSR Initial initsync version 25 (Reached) BGP NSR/ISSU Sync-Group versions 0/0 BGP scan interval 60 secs BGP is operating in STANDALONE mode. Process RcvTblVer bRIB/RIB LabelVer ImportVer SendTblVer StandbyVer Speaker 52 52 52 52 52 0 Neighbor Spk AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down St/PfxRcd 172.16.1.251 0 100 46 80 52 0 0 00:44:33 0
  • 25. PE1 確認コマンド BGP-LS – table RP/0/0/CPU0:PE1#show bgp link-state link-state Tue Feb 17 05:58:25.069 UTC BGP router identifier 1.1.1.1, local AS number 100 BGP generic scan interval 60 secs Non-stop routing is enabled BGP table state: Active Table ID: 0x0 RD version: 52 BGP main routing table version 52 BGP NSR Initial initsync version 25 (Reached) BGP NSR/ISSU Sync-Group versions 0/0 BGP scan interval 60 secs Status codes: s suppressed, d damped, h history, * valid, > best i - internal, r RIB-failure, S stale, N Nexthop-discard Origin codes: i - IGP, e - EGP, ? - incomplete Prefix codes: E link, V node, T IP reacheable route, u/U unknown I Identifier, N local node, R remote node, L link, P prefix L1/L2 ISIS level-1/level-2, O OSPF, D direct, S static a area-ID, l link-ID, t topology-ID, s ISO-ID, c confed-ID/ASN, b bgp-identifier, r router-ID, i if-address, n nbr-address, o OSPF Route-type, p IP-prefix d designated router address Network Next Hop Metric LocPrf Weight Path *> [V][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r1.1.1.1]]/376 0.0.0.0 0 i *> [V][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r2.2.2.2]]/376 0.0.0.0 0 i *> [V][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r3.3.3.3]]/376 0.0.0.0 0 I <SNIP>
  • 26. PE1 確認コマンド BGP-LS – advertisement to ODL RP/0/0/CPU0:PE1#show bgp link-state link-state neighbors 172.16.1.251 advertise Tue Feb 17 06:01:29.007 UTC Network Next Hop From AS Path [V][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r1.1.1.1]]/376 172.16.1.1 Local i [V][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r2.2.2.2]]/376 172.16.1.1 Local i [V][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r3.3.3.3]]/376 172.16.1.1 Local i [V][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r4.4.4.4]]/376 172.16.1.1 Local i [E][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r1.1.1.1]][R[c100][b1.1.1.1][a0.0.0.0][r2.2.2.2]][L[i10.1.12.1][n10.1.12.2]]/792 172.16.1.1 Local i [E][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r1.1.1.1]][R[c100][b1.1.1.1][a0.0.0.0][r4.4.4.4]][L[i10.1.14.1][n10.1.14.4]]/792 172.16.1.1 Local i [E][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r2.2.2.2]][R[c100][b1.1.1.1][a0.0.0.0][r1.1.1.1]][L[i10.1.12.2][n10.1.12.1]]/792 172.16.1.1 Local i [E][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r2.2.2.2]][R[c100][b1.1.1.1][a0.0.0.0][r3.3.3.3]][L[i10.1.23.2][n10.1.23.3]]/792 172.16.1.1 Local i [E][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r3.3.3.3]][R[c100][b1.1.1.1][a0.0.0.0][r2.2.2.2]][L[i10.1.23.3][n10.1.23.2]]/792 172.16.1.1 Local i [E][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r3.3.3.3]][R[c100][b1.1.1.1][a0.0.0.0][r4.4.4.4]][L[i10.1.34.3][n10.1.34.4]]/792 172.16.1.1 Local i [E][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r4.4.4.4]][R[c100][b1.1.1.1][a0.0.0.0][r1.1.1.1]][L[i10.1.14.4][n10.1.14.1]]/792 172.16.1.1 Local i [E][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r4.4.4.4]][R[c100][b1.1.1.1][a0.0.0.0][r3.3.3.3]][L[i10.1.34.4][n10.1.34.3]]/792 172.16.1.1 Local i [T][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r1.1.1.1]][P[o0x01][p10.1.12.0/24]]/480 <SNIP>
  • 27. PE1 確認コマンド BGP-LS – NLRI詳細 RP/0/0/CPU0:PE1#show bgp link-state link-state [E][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r1.1.1.1]][R[c100][b1.1.1.1][a0.0.0.0][r2.2.2.2]][L[i10.1.12.1][n10.1.12.2]]/792 Tue Feb 17 06:03:21.359 UTC BGP routing table entry for [E][O][I0x0][N[c100][b1.1.1.1][a0.0.0.0][r1.1.1.1]][R[c100][b1.1.1.1][a0.0.0.0][r2.2.2.2]][L[i10.1.12.1][n10.1.12.2]]/792 Versions: Process bRIB/RIB SendTblVer Speaker 33 33 Last Modified: Feb 17 05:13:04.777 for 00:50:16 Paths: (1 available, best #1) Advertised to peers (in unique update groups): 172.16.1.251 Path #1: Received by speaker 0 Advertised to peers (in unique update groups): 172.16.1.251 Local 0.0.0.0 from 0.0.0.0 (1.1.1.1) Origin IGP, localpref 100, valid, redistributed, best, group-best Received Path ID 0, Local Path ID 1, version 33 Link-state: Local TE Router-ID: 1.1.1.1, Remote TE Router-ID: 2.2.2.2 admin-group: 0x00000000, max-link-bw (kbits/sec): 1000000 max-reserv-link-bw (kbits/sec): 1000000, max-unreserv-link-bw (kbits/sec): 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 TE-default-metric: 1, metric: 1
  • 28. NetworkTopology PCEP PE2 GE0/0/0/0 GE0/0/0/0 GE0/0/0/1 GE0/0/0/1 GE0/0/0/0 10.1.14.0/24 .1 OpenDaylight Controller BGP-LS PCEP 172.16.1.251 AS=100 IGP: OSPF POSTMAN (Google Chrome) REST TED LSP DB PE3 PE1 GE0/0/0/1 GE0/0/0/1 GE0/0/0/0 .2 .3 10.1.23.0/24 10.1.13.0/24 10.0.34.0/24 .4 PE4 PCEP Connection BGP-LS Connection PE(X) IP Address Loopback-IF: X.X.X.X Southbound-IF: 172.16.1.X
  • 29. PE1 設定 BGP-LS RP/0/0/CPU0:PE1#sh run mpls traffic-eng Tue Feb 17 06:06:59.224 UTC mpls traffic-eng interface GigabitEthernet0/0/0/0 ! interface GigabitEthernet0/0/0/1 ! pce peer source ipv4 172.16.1.1 peer ipv4 172.16.1.251 ! stateful-client instantiation delegation ! ! auto-tunnel pcc tunnel-id min 1 max 1024 PCEサーバ(ODL)の指定 Stateful PCEとしてのCapabilityを定義 PCEで使うTunnel-IDの範囲指定
  • 30. ODL 設定 PCEP 参考:https://wiki.opendaylight.org/view/BGP_LS_PCEP:User_Guide#Configure_draft_versions o デフォルトで以下のdraftに基づき動作する ? draft-ietf-pce-stateful-pce - version 07 ? draft-ietf-pce-pce-initiated-lsp – ietf-initiated-00 o 以下のdraftの動作にする場合はRESTConfによる設定変更が必要 ? draft-ietf-pce-stateful-pce - version 02 ? draft-ietf-pce-pce-initiated-lsp - crabbe-initiated-00
  • 31. PE1 確認コマンド PCEP Peer RP/0/0/CPU0:PE1#show mpls traffic-eng pce peer Tue Feb 17 07:09:59.679 UTC Address Precedence State Learned From --------------- ------------ ------------ -------------------- 172.16.1.251 255 Up Static config
  • 32. NetworkTopology REST PE2 GE0/0/0/0 GE0/0/0/0 GE0/0/0/1 GE0/0/0/1 GE0/0/0/0 10.1.14.0/24 .1 OpenDaylight Controller BGP-LS PCEP 172.16.1.251 AS=100 IGP: OSPF POSTMAN (Google Chrome) REST HTTP GET TED LSP DB PE3 PE1 GE0/0/0/1 GE0/0/0/1 GE0/0/0/0 .2 .3 10.1.23.0/24 10.1.13.0/24 10.0.34.0/24 .4 PE4 PCEP Connection BGP-LS Connection PE(X) IP Address Loopback-IF: X.X.X.X Southbound-IF: 172.16.1.X
  • 35. NetworkTopology Create LSP PE2 GE0/0/0/0 GE0/0/0/0 GE0/0/0/1 GE0/0/0/1 GE0/0/0/0 10.1.14.0/24 .1 OpenDaylight Controller BGP-LS PCEP 172.16.1.251 AS=100 IGP: OSPF POSTMAN (Google Chrome) REST HTTP POST TED LSP DB PE3 PE1 GE0/0/0/1 GE0/0/0/1 GE0/0/0/0 .2 .3 10.1.23.0/24 10.1.13.0/24 10.0.34.0/24 .4 PE4 PCEP Connection BGP-LS Connection PE(X) IP Address Loopback-IF: X.X.X.X Southbound-IF: 172.16.1.X lsp1
  • 36. HTTP POST Create LSP <input> <node>pcc://172.16.1.1</node> <name>lsp1</name> <arguments> <lsp xmlns:stateful="urn:opendaylight:params:xml:ns:yang:pcep:ietf:stateful07"> <delegate>true</delegate> <administrative>true</administrative> <endpoints-obj> <ipv4> <source-ipv4-address>1.1.1.1</source-ipv4-address> <destination-ipv4-address>4.4.4.4</destination-ipv4-address> </ipv4> </endpoints-obj> <ero> <subobject> <loose>false</loose> <ip-prefix><ip-prefix>10.1.14.4/32</ip-prefix></ip-prefix> </subobject> </ero> </arguments> <network-topology-ref xmlns:topo="urn:TBD:params:xml:ns:yang:network-topology">/topo:network-topology/topo:topology[topo:topology-id="pcep-topology"]</network-topology-ref> </input> POST URI http://{ODL-IPADDR}:8181/restconf/operations/network-topology-pcep:add-lsp 参考:https://wiki.opendaylight.org/view/BGP_LS_PCEP:Restconf
  • 37. PE1 確認コマンド MPLS-TEトンネルの表示 RP/0/0/CPU0:PE1#show mpls traffic-eng tunnel Tue Feb 17 07:26:18.951 UTC Name: tunnel-te2 Destination: 4.4.4.4 Ifhandle:0x580 (auto-tunnel pcc) Signalled-Name: lsp1 Status: Admin: up Oper: up Path: valid Signalling: connected path option 10, (verbatim) type explicit (autopcc_te2) (Basis for Setup, path weight 0) G-PID: 0x0800 (derived from egress interface properties) Bandwidth Requested: 0 kbps CT0 Creation Time: Tue Feb 17 07:26:13 2015 (00:00:06 ago) Config Parameters: Bandwidth: 0 kbps (CT0) Priority: 7 7 Affinity: 0x0/0xffff Metric Type: TE (default) Hop-limit: disabled Cost-limit: disabled AutoRoute: disabled LockDown: disabled Policy class: not set Forward class: 0 (default) Forwarding-Adjacency: disabled Loadshare: 0 equal loadshares Auto-bw: disabled Fast Reroute: Disabled, Protection Desired: None Path Protection: Not Enabled BFD Fast Detection: Disabled Reoptimization after affinity failure: Enabled Soft Preemption: Disabled Show runには表示されない
  • 38. PE1 確認コマンド MPLS-TEトンネルの表示 Auto PCC: Symbolic name: lsp1 PCEP ID: 3 Delegated to: 172.16.1.251 Created by: 172.16.1.251 History: Tunnel has been up for: 00:00:05 (since Tue Feb 17 07:26:14 UTC 2015) Current LSP: Uptime: 00:00:05 (since Tue Feb 17 07:26:14 UTC 2015) Path info (PCE controlled): Hop0: 10.1.14.4 Displayed 1 (of 1) heads, 0 (of 0) midpoints, 0 (of 0) tails Displayed 1 up, 0 down, 0 recovering, 0 recovered heads Show runには表示されない
  • 39. NetworkTopology Update LSP PE2 GE0/0/0/0 GE0/0/0/0 GE0/0/0/1 GE0/0/0/1 GE0/0/0/0 10.1.14.0/24 .1 OpenDaylight Controller BGP-LS PCEP 172.16.1.251 AS=100 IGP: OSPF POSTMAN (Google Chrome) REST HTTP POST TED LSP DB PE3 PE1 GE0/0/0/1 GE0/0/0/1 GE0/0/0/0 .2 .3 10.1.23.0/24 10.1.13.0/24 10.0.34.0/24 .4 PE4 PCEP Connection BGP-LS Connection PE(X) IP Address Loopback-IF: X.X.X.X Southbound-IF: 172.16.1.X lsp1
  • 40. HTTP POST Update LSP <input> <node>pcc://172.16.1.1</node> <name>lsp1</name> <arguments> <lsp xmlns:stateful="urn:opendaylight:params:xml:ns:yang:pcep:ietf:stateful07"> <delegate>true</delegate> <administrative>true</administrative> </lsp> <ero> <subobject> <loose>false</loose> <ip-prefix><ip-prefix>10.1.12.2/32</ip-prefix></ip-prefix> </subobject> <subobject> <loose>false</loose> <ip-prefix><ip-prefix>10.1.23.3/32</ip-prefix></ip-prefix> </subobject> <subobject> <loose>false</loose> <ip-prefix><ip-prefix>10.1.34.4/32</ip-prefix></ip-prefix> </subobject> </ero> </arguments> <network-topology-ref xmlns:topo="urn:TBD:params:xml:ns:yang:network-topology">/topo:network-topology/topo:topology[topo:topology-id="pcep-topology"]</network-topology-ref> </input> POST URI http://{ODL-IPADDR}:8181/restconf/operations/network-topology-pcep:update-lsp 参考:https://wiki.opendaylight.org/view/BGP_LS_PCEP:Restconf
  • 41. PE1 確認コマンド MPLS-TEトンネルの表示 RP/0/0/CPU0:PE1#show mpls traffic-eng tunnel Tue Feb 17 07:29:35.548 UTC Name: tunnel-te2 Destination: 4.4.4.4 Ifhandle:0x580 (auto-tunnel pcc) Signalled-Name: lsp1 Status: Admin: up Oper: up Path: valid Signalling: connected path option 10, (verbatim) type explicit (autopcc_te2) (Basis for Setup, path weight 0) G-PID: 0x0800 (derived from egress interface properties) Bandwidth Requested: 0 kbps CT0 Creation Time: Tue Feb 17 07:26:13 2015 (00:03:22 ago) Config Parameters: Bandwidth: 0 kbps (CT0) Priority: 7 7 Affinity: 0x0/0xffff Metric Type: TE (default) Hop-limit: disabled Cost-limit: disabled AutoRoute: disabled LockDown: disabled Policy class: not set Forward class: 0 (default) Forwarding-Adjacency: disabled Loadshare: 0 equal loadshares Auto-bw: disabled Fast Reroute: Disabled, Protection Desired: None Path Protection: Not Enabled BFD Fast Detection: Disabled Reoptimization after affinity failure: Enabled Soft Preemption: Disabled
  • 42. PE1 確認コマンド MPLS-TEトンネルの表示 Auto PCC: Symbolic name: lsp1 PCEP ID: 3 Delegated to: 172.16.1.251 Created by: 172.16.1.251 History: Tunnel has been up for: 00:03:21 (since Tue Feb 17 07:26:14 UTC 2015) Current LSP: Uptime: 00:00:21 (since Tue Feb 17 07:29:14 UTC 2015) Prior LSP: ID: 2 Path Option: 10 Removal Trigger: reoptimization completed Path info (PCE controlled): Hop0: 10.1.12.2 Hop1: 10.1.23.3 Hop2: 10.1.34.4 Displayed 1 (of 1) heads, 0 (of 0) midpoints, 0 (of 0) tails Displayed 1 up, 0 down, 0 recovering, 0 recovered heads
  • 43. NetworkTopology Remove LSP PE2 GE0/0/0/0 GE0/0/0/0 GE0/0/0/1 GE0/0/0/1 GE0/0/0/0 10.1.14.0/24 .1 OpenDaylight Controller BGP-LS PCEP 172.16.1.251 AS=100 IGP: OSPF POSTMAN (Google Chrome) REST HTTP POST TED LSP DB PE3 PE1 GE0/0/0/1 GE0/0/0/1 GE0/0/0/0 .2 .3 10.1.23.0/24 10.1.13.0/24 10.0.34.0/24 .4 PE4 PCEP Connection BGP-LS Connection PE(X) IP Address Loopback-IF: X.X.X.X Southbound-IF: 172.16.1.X
  • 44. HTTP POST Remove LSP <input> <node>pcc://172.16.1.1</node> <name>lsp1</name> <network-topology-ref xmlns:topo="urn:TBD:params:xml:ns:yang:network-topology">/topo:network-topology/topo:topology[topo:topology-id="pcep-topology"]</network-topology-ref> </input> POST URI http://{ODL-IPADDR}:8181/restconf/operations/network-topology-pcep:remove-lsp 参考:https://wiki.opendaylight.org/view/BGP_LS_PCEP:Restconf
  • 46. Traffic Steering o デフォルトではTEトンネルはフォワーディングに使用されない (XR5.3.0) o PCE(ODL)はPCC(Head-End)に対して、どのようにトラフィックを制御するべきか、 PC-InitiateまたはPC-Updateで決定する o 以下のような手法が利用可能 ? Forward-Class(FCID) ? Load-Share Factor ? Autoroute Announce o Steeringを実行する場合、RESTのLSP Objectとvendor TLVが関連付けられる
  • 48. アジェンダ ? WAN SDNとBGP-LS/PCEP ? デモ ? ユースケース ? 所管
  • 49. 3階層モデル インフラ レイヤ コントローラ レイヤ (ODL) アプリケーション レイヤ (REST API) ビジネス アプリケーション ネットワーク サービス BGP-LS/PCEP WAN SDNの場合、 パス制御を行うための 判断基準が必要である アプリケーションは 別途用意する必要がある
  • 50. Ciscoの一例: WAE(WAN Automation Engine)にODLを組み込む o WAE: Cisco MATEのシミュレーション機能とODLを組み合わせた製品 o WAE自身のAPIも公開することで、効果的なApp開発を可能とする
  • 51. PCEP Connection BGP-LS Connection WAE Controller REST MATE AppClient App ODL BGP-LS PCEP dCloudにて公開 http://dcloud.cisco.com/ WAE Demo Application
  • 52. WAE Demo Application(例) 1. bosからsanに流れるトラフィックがwdc-kcy間で輻輳する 2. AppからWAEに対してREST APIで最適パスの計算をQuery 3. WAEのODLからPCEPでルータへトンネルを生成 ビデオあり
  • 54. アジェンダ ? WAN SDNとBGP-LS/PCEP ? デモ ? ユースケース ? 所管
  • 55. コントローラのdebug.. o BGP-LSまたはPCEPセッションが張れない場合、切り分けが難しい o ルータ側のdebugには慣れているが、ODLのdebugが読めない?? ODLでのdebug有効化 opendaylight-user@root>log:set TRACE org.opendaylight.bgpcep opendaylight-user@root>llog:set TRACE org.opendaylight.protocol Logの確認 2015-02-11 23:40:01.061 EST [nettyThreadgroupModule$NioEventLoopGroupCloseable-4-2] DEBUG o.o.p.f.AbstractProtocolSession - Message was received: Keepalive [_keepaliveMessage=KeepaliveMessage [augmentation=[]], augmentation=[]] 2015-02-11 23:40:02.048 EST [nettyThreadgroupModule$NioEventLoopGroupCloseable-4-1] TRACE o.o.p.p.i.PCEPByteToMessageDecoder - Received to decode: 20020004 2015-02-11 23:40:02.049 EST [nettyThreadgroupModule$NioEventLoopGroupCloseable-4-1] DEBUG o.o.p.f.AbstractProtocolSession - Message was received: Keepalive [_keepaliveMessage=KeepaliveMessage [augmentation=[]], augmentation=[]] 2015-02-11 23:40:03.923 EST [nettyThreadgroupModule$NioEventLoopGroupCloseable-4-2] TRACE o.o.p.b.r.i.BGPByteToMessageDecoder - Received to decode: ffffffffffffffffffffffffffffffff001304 2015-02-11 23:40:03.924 EST [nettyThreadgroupModule$NioEventLoopGroupCloseable-4-2] DEBUG o.o.p.f.AbstractProtocolSession - Message was received: Keepalive [augmentation=[]] 2015-02-11 23:40:03.924 EST [nettyThreadgroupModule$NioEventLoopGroupCloseable-4-2] TRACE o.o.p.bgp.rib.impl.BGPSessionImpl - Received KeepAlive messsage. <SNIP>
  • 56. 今回ハマった問題 o AA(Autoroute Announce)がPCE-Createで有効化できない -> コントローラのおけるadd-lspのRPCの問題であることが判明 -> 修正イメージbuild中 o また、半年前にHydrogen + XR5.1.2.10I(PCEPv02)で検証した頃はデフォル トでAA有効化であったが、最新ではTLVで有効化する必要がある等の実 装面での変更点も確認された
  • 57. 仮想環境のススメ o WAN SDNに関連する検証を行う場合、WAN環境を模擬するため多量の ルータが必要 o 仮想ルータ、仮想測定器など用いて簡易に環境を構築可能 o パフォーマンス、スループットには限界があることに注意 ? Cisco: CML, XRv, CSR1000v, IOSv, SunStone(将来) ? Juniper: vMX, firefly ? Alucatel: VSR ? IXIA: IxVM HyperVisor 仮想ネットワーク VM 測定器 VM SDNコントローラ vSwitch

Editor's Notes

  • #15: Open platform for network programmability Enables SDN for networks at any size and scale ? New “Helium” release delivers new user interface and a much simpler and customizable installation process