wan sdn 実践入門! ~ opendaylightのpcep/bgpに触れてみる ~

58
WAN SDN 実践入門! OpenDayLightPCEP/BGPに触れてみる Masahiko Suzuki Cisco Systems G.K.

Upload: npsg

Post on 18-Jul-2015

2.038 views

Category:

Technology


7 download

TRANSCRIPT

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

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

Masahiko SuzukiCisco Systems G.K.

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

はじめに

o 本セッションはWAN SDNの概念を理解することを目的とします。o 最も基本的な構成を用いてApplicationからLSPをコントロールする一連の流れを確認します。

App ----------SDN Controller---------Router(REST) (PCEP)

o 本資料に記載される動作内容は予告なしに変更される場合があるため、予めご了承ください。

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

アジェンダ

WAN SDNとBGP-LS/PCEP

デモ

ユースケース

所管

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

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

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

MPLS-TEパス計算モデル集中型

TED

LSP DB

PCEP

Head End Tail End

コントローラo ネットワーク全体のトポロジ情報およびLSPステート情報をコントローラにて所持

o ネットワーク全体の帯域状況を把握した上で、パス計算を実行する

o コントローラはNorthboundにREST APIを持つことにより、アプリケーションとの親和性あり

WAN SDN

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

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

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

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

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

WAN SDN要素技術PCEP(Path Computation Element Protocol)

o ステートレス• 新規パス計算時、過去に生成したLSPが考慮されない

o ステートフル (WAN SDNで使用)• PCEとPCC間でトポロジ、リソース、LSPステートを同期する• PCEはパス計算時に上記の情報を考慮する• LSPのDelegation(Create)、Update、Deleteをサポート(後ほど動作確認)

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

OpenDaylight Helium Rlease

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

OpenDaylight Helium RleaseContribution by companies(LOC)

引用:http://spectrometer.opendaylight.org/?metric=loc&release=helium

o All Modules

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

OpenDaylight Helium RleaseContribution by companies & Engineer(LOC)

o Module: bgpcep (BGP-LS/PCEP)

引用:http://spectrometer.opendaylight.org/?metric=loc&release=helium&module=bgpcep-group

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

アジェンダ

WAN SDNとBGP-LS/PCEP

デモ

ユースケース

所管

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

環境情報

o アプリケーション Google POSTMAN

o コントローラ Cisco SDN Controller

• EFT(Early Field Trial)版• ODL Heliumとほぼ同じ

o ネットワークインフラ XRv (Version 5.3.0)

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

OpenDaylightとCisco Open SDN Contorller

Community Support Cisco Supported

“HELIUM” Open SDN Controller

Common Content Incremental

CiscoValue

PrecludedOpenDaylight

Content

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

OpenDaylight & Virtual Infra Setup

REST

BGP-LSPCEP

SDN Controller

Application

Network Infra

OpenDaylightController

POSTMAN(Google Chrome)

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

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

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

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

!

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

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

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

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>

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

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

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

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

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

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

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

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の設定

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

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

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

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>

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

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>

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

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

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

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

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

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の範囲指定

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

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

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

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

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

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

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

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

出力例

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

HTTP GETPCE

URIhttp://{ODL-IPADDR}:8181/restconf/operational/network-topology:network-topology/topology/pcep-topology

参考:https://wiki.opendaylight.org/view/BGP_LS_PCEP:Restconf

出力例

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

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

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

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

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

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には表示されない

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

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には表示されない

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

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

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

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

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

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

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

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

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

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

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

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

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

PE1 確認コマンドMPLS-TEトンネルの表示

RP/0/0/CPU0:PE1#show mpls traffic-eng tunnel

Tue Feb 17 07:32:21.187 UTC

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

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が関連付けられる

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

Traffic SteeringAutoroute Announce

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

アジェンダ

WAN SDNとBGP-LS/PCEP

デモ

ユースケース

所管

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

3階層モデル

インフラレイヤ

コントローラレイヤ (ODL)

アプリケーションレイヤ (REST API)

ビジネスアプリケーション

ネットワークサービス

BGP-LS/PCEP

WAN SDNの場合、パス制御を行うための判断基準が必要である

アプリケーションは別途用意する必要がある

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

Ciscoの一例:WAE(WAN Automation Engine)にODLを組み込む

o WAE: Cisco MATEのシミュレーション機能とODLを組み合わせた製品o WAE自身のAPIも公開することで、効果的なApp開発を可能とする

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

PCEP ConnectionBGP-LS Connection

WAE ControllerREST

MATE AppClient App

ODLBGP-LS PCEP

dCloudにて公開http://dcloud.cisco.com/

WAEDemo Application

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

WAEDemo Application(例)

1. bosからsanに流れるトラフィックがwdc-kcy間で輻輳する2. AppからWAEに対してREST APIで最適パスの計算をQuery3. WAEのODLからPCEPでルータへトンネルを生成

ビデオあり

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

Juniperの一例:NorthStar

引用:http://www.slideshare.net/JuniperJapan/20141016-sdn-japannorthstarv1-0

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

アジェンダ

WAN SDNとBGP-LS/PCEP

デモ

ユースケース

所管

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

コントローラの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>

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

今回ハマった問題

o AA(Autoroute Announce)がPCE-Createで有効化できない-> コントローラのおけるadd-lspのRPCの問題であることが判明-> 修正イメージbuild中

o また、半年前にHydrogen + XR5.1.2.10I(PCEPv02)で検証した頃はデフォルトでAA有効化であったが、最新ではTLVで有効化する必要がある等の実装面での変更点も確認された

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

仮想環境のススメ

o WAN SDNに関連する検証を行う場合、WAN環境を模擬するため多量のルータが必要

o 仮想ルータ、仮想測定器など用いて簡易に環境を構築可能o パフォーマンス、スループットには限界があることに注意

• Cisco: CML, XRv, CSR1000v, IOSv, SunStone(将来)• Juniper: vMX, firefly• Alucatel: VSR• IXIA: IxVM

HyperVisor

仮想ネットワークVM

測定器VM

SDNコントローラ

vSwitch

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

Thank you