Upload
npsg
View
2.038
Download
7
Embed Size (px)
Citation preview
WAN SDN実践入門!OpenDayLightのPCEP/BGPに触れてみる
Masahiko SuzukiCisco 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 RleaseContribution by companies(LOC)
引用:http://spectrometer.opendaylight.org/?metric=loc&release=helium
o All Modules
OpenDaylight Helium RleaseContribution 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
CiscoValue
PrecludedOpenDaylight
Content
OpenDaylight & Virtual Infra Setup
REST
BGP-LSPCEP
SDN Controller
Application
Network Infra
OpenDaylightController
POSTMAN(Google Chrome)
Network TopologyIGP & 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
OpenDaylightController
BGP-LS PCEP
PE(X) IP AddressLoopback-IF: X.X.X.XSouthbound-IF: 172.16.1.X
172.16.1.251
AS=100IGP: 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
.4PE4
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>
Network TopologyBGP-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
OpenDaylightController
BGP-LS PCEP 172.16.1.251
AS=100IGP: 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
.4PE4
BGP-LS Connection
PE(X) IP AddressLoopback-IF: X.X.X.XSouthbound-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
URIhttp://{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
URIhttp://{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
Network TopologyPCEP
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
OpenDaylightController
BGP-LS PCEP 172.16.1.251
AS=100IGP: 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
.4PE4
PCEP ConnectionBGP-LS Connection
PE(X) IP AddressLoopback-IF: X.X.X.XSouthbound-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
Network TopologyREST
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
OpenDaylightController
BGP-LS PCEP 172.16.1.251
AS=100IGP: 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
.4PE4
PCEP ConnectionBGP-LS Connection
PE(X) IP AddressLoopback-IF: X.X.X.XSouthbound-IF: 172.16.1.X
HTTP GETLink-State
URIhttp://{ODL-IPADDR}:8181/restconf/operational/network-topology:network-topology/topology/example-linkstate-topology
参考:https://wiki.opendaylight.org/view/BGP_LS_PCEP:Restconf
出力例
HTTP GETPCE
URIhttp://{ODL-IPADDR}:8181/restconf/operational/network-topology:network-topology/topology/pcep-topology
参考:https://wiki.opendaylight.org/view/BGP_LS_PCEP:Restconf
出力例
Network TopologyCreate 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
OpenDaylightController
BGP-LS PCEP 172.16.1.251
AS=100IGP: 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
.4PE4
PCEP ConnectionBGP-LS Connection
PE(X) IP AddressLoopback-IF: X.X.X.XSouthbound-IF: 172.16.1.X
lsp1
HTTP POSTCreate 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
URIhttp://{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には表示されない
Network TopologyUpdate 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
OpenDaylightController
BGP-LS PCEP 172.16.1.251
AS=100IGP: 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
.4PE4
PCEP ConnectionBGP-LS Connection
PE(X) IP AddressLoopback-IF: X.X.X.XSouthbound-IF: 172.16.1.X
lsp1
HTTP POSTUpdate 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
URIhttp://{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
Network TopologyRemove 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
OpenDaylightController
BGP-LS PCEP 172.16.1.251
AS=100IGP: 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
.4PE4
PCEP ConnectionBGP-LS Connection
PE(X) IP AddressLoopback-IF: X.X.X.XSouthbound-IF: 172.16.1.X
HTTP POSTRemove 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
URIhttp://{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 SteeringAutoroute Announce
アジェンダ
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 ConnectionBGP-LS Connection
WAE ControllerREST
MATE AppClient App
ODLBGP-LS PCEP
dCloudにて公開http://dcloud.cisco.com/
WAEDemo Application
WAEDemo Application(例)
1. bosからsanに流れるトラフィックがwdc-kcy間で輻輳する2. AppからWAEに対してREST APIで最適パスの計算をQuery3. 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