Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Copyright © Interop Tokyo 2017 ShowNet NOC Team
ShowNetでピアリングを⾃動化してみた
Interop Tokyo 2017 ShowNet NOC Team
川上 雄也
Copyright © Interop Tokyo 2017 ShowNet NOC Team
Interop Tokyo 2017
• 最先端ネットワーク技術&製品の展⽰会&講演会• 2017年6⽉7〜9⽇ 幕張メッセ
2
Copyright © Interop Tokyo 2017 ShowNet NOC Team
ShowNet
• 相互接続実証実験のためのネットワーク• 新技術&新製品の動体展⽰のためのネットワーク• 来場者&出展社のためのネットワーク
3
Copyright © Interop Tokyo 2017 ShowNet NOC Team
今年のShowNetのトポロジー
4
Copyright © Interop Tokyo 2017 ShowNet NOC Team
今年のShowNetのピアリング
5
3ルータ 10IXP 100ピア
Copyright © Interop Tokyo 2017 ShowNet NOC Team
対外接続スケジュール
• 2⽇+αで100ピア開通6
5/25 26 27
28 29 30 31 6/1 2 3
4 5 6 7 8 9IXピア開通
トランジット・IX開通
展⽰会
構築開始
Copyright © Interop Tokyo 2017 ShowNet NOC Team
これまでのピア開通• メールでピアを受け付け• メーラーのタグで進捗を管理• ACK済、設定済、ピアUp済、御礼済、SNS掲載済
• ⼿動でBGPピアを設定
ずっとピア上げ作業で他の作業ができない
7
Copyright © Interop Tokyo 2017 ShowNet NOC Team
ピアリングポータル
8
Copyright © Interop Tokyo 2017 ShowNet NOC Team
ピアリングポータルからの⾃動設定• ポータルでピア依頼を受け付ける
• ルータに⾃動で設定を投⼊する
• 完了したら通知メールを発出する
9
Peering Portal
ピア依頼
⾃動設定
AS運⽤者
⾃動受付の問題点1)正当な運⽤者からの依頼か?2)正当なIPアドレスでの依頼か?
Copyright © Interop Tokyo 2017 ShowNet NOC Team
PeeringDBの活⽤
10
※https://www.peeringdb.com/
ピア依頼者の認証
ピアのIPアドレスの認証
ASのコンタクト先にActivationメールを送れば、正当な運⽤者が認証できるレコードがなければNOCが⼿動で承認する
PeeringDBのレコードと合致すれば⾃動で承認・設定するレコードがなければ⼊⼒してもらい、NOCが⼿動で承認する
PeeringDBのASの情報はPeeringDB Adminに認証された運⽤者が管理しているオープンな情報のため虚偽情報は少ないと予測でき、データを信⽤できる。
Copyright © Interop Tokyo 2017 ShowNet NOC Team
BGPピアの⾃動設定
11
※mx10kは検証⽬的で設定を実施
ncs5k ne9k
mx10k ptx1k
ax8616r
Cisco NSO(Network Services Orchestrator)
Peering Portal
REST API
2016年
2017年
⾃家製スクリプトでtelnet
ネットワーク・オーケストレーション・ツール(Cisco NSO)を活⽤
• eBGPピア設定を「サービス」として抽象化• 機器実装に依存しないCLI/APIを提供• ルータ4実装について検証を実施• 162セッションを本番環境で設定(※v4,v6別)
Copyright © Interop Tokyo 2017 ShowNet NOC Team
これから…• ピア先もポータル&⾃動設定を提供していた場合• Auto-discovery, negotiation & configuration
• PeeringDBのアカウントを使えると嬉しい?• ポータルごとにアカウントを作るのは⾯倒?• PeeringDBにOAuth的なものを実装してもらう?
12
13 Copyright © Interop Tokyo 2017 ShowNet NOC Team
参考資料
Copyright © Interop Tokyo 2017 ShowNet NOC Team
ポータル画⾯イメージ
14
Copyright © Interop Tokyo 2017 ShowNet NOC Team
ポータル画⾯イメージ
Copyright © Interop Tokyo 2017 ShowNet NOC Team
ポータル画⾯イメージ
16
Copyright © Interop Tokyo 2017 ShowNet NOC Team
ポータル画⾯イメージ
17
Copyright © Interop Tokyo 2017 ShowNet NOC Team
ポータル画⾯イメージ
18
Copyright © Interop Tokyo 2017 ShowNet NOC Team
router:ax8616rix:hogeixasn:65500ipv4_address:192.168.0.10ipv6_address:(snip)password:PASSWORD
<shownetpeerxmlns="http://example.com/shownetpeer"><name>as65500_hogeix_1_v4</name><device>ax8616r</device><description>hogeix-fuganet-1</description><password>PASSWORD</password><my_as_number>290</my_as_number><remote_as_number>65500</remote_as_number><import_policy_name>import-from-hogeix-peer-v4</import_policy_name><export_policy_name>export-to-hogeix-peer-v4</export_policy_name><neighbor_address>192.168.0.10</neighbor_address><shutdown>true</shutdown></shownetpeer>
DB Record for Peers
Abstracted Service Model (XML format for REST API)PUSH to http://peering.mgmt.interop-tokyo.net:8080/api/running/services
Copyright © Interop Tokyo 2017 ShowNet NOC Team
<config-templatexmlns="http://tail-f.com/ns/config/1.0"><devicesxmlns="http://tail-f.com/ns/ncs"><device><name>{$DEV}</name><config><routerxmlns="http://tail-f.com/ned/alaxala"><bgp><as-no>{$MY-AS}</as-no><neighbor><id>{$NBR-ADDR}</id><shutdown/><remote-as>{$REMOTE-AS}</remote-as><password><text>{$PASSWD}</text></password><next-hop-self/><route-map><direction>in</direction><route-map-name>{$I-POLICY}</route-map-name></route-map><route-map><direction>out</direction><route-map-name>{$E-POLICY}</route-map-name></route-map><soft-reconfiguration>inbound</soft-reconfiguration><description>"{$DESC}"</description></neighbor></bgp></router></config></device></devices></config-template>
Device-specific Template (can be generated from device-native configuration)
Copyright © Interop Tokyo 2017 ShowNet NOC Team
devices{deviceax8616r{config{ax:router{bgp290{+neighbor192.168.0.10{+remote-as65500;+password{+textPASSWORD;+}+next-hop-self;+route-mapin{+route-map-nameimport-from-hogeix-peer-v4;+}+route-mapout{+route-map-nameexport-to-hogeix-peer-v4;+}+soft-reconfigurationinbound;+description"\"hogeix-fuganet-1\"";+shutdown;+}}}}}}
Device-specific Configuration (diff in NETCONF expression)
Copyright © Interop Tokyo 2017 ShowNet NOC Team
admin@ncs#configureterminaladmin@ncs(config)#servicesshownetpeeras65500_hogeix_1_v4deviceax8616rdescriptionhogeix-fuganet-1passwordPASSWORDmy_as_number290remote_as_number65500import-from-hogeix-peer-v4export_policy_nameexport-to-hogeix-peer-v4neighbor_address192.168.0.10shutdowntrueadmin@ncs(config)#commitdry-runoutformatnativenative{device{nameax8616rdatarouterbgp290neighbor192.168.0.10remote-as65500neighbor192.168.0.10shutdownneighbor192.168.0.10descriptionhogeix-fuganet-1neighbor192.168.0.10passwordPASSWORDneighbor192.168.0.10next-hop-selfneighbor192.168.0.10soft-reconfigurationinboundneighbor192.168.0.10route-mapimport-from-hogeix-peer-v4inneighbor192.168.0.10route-mapexport-to-hogeix-peer-v4outsave}}admin@ncs(config)#commitadmin@ncs#showrunning-configservicesshownetpeeras65500_hogeix_1_v4servicesshownetpeeras65500_hogeix_1_v4deviceax8616rdescriptionhogeix-fuganet-1passwordPASSWORDmy_as_number290remote_as_number65500import_policy_nameimport-from-hogeix-peer-v4export_policy_nameexport-to-hogeix-peer-v4neighbor_address192.168.0.10shutdowntrue!
CLI Operation in NSO (Adding an eBGP peer)