Upgrade to Pro — share decks privately, control downloads, hide ads and more …

できなかったことから振り返る、ShowNetバックボーンの変遷

ShowNet
February 22, 2023
910

 できなかったことから振り返る、ShowNetバックボーンの変遷

ShowNet.conf_ での講演資料

ShowNet

February 22, 2023
Tweet

More Decks by ShowNet

Transcript

  1. 2013年: SDNの実トラフィックへの適用 • ついに出展者収容にSDNを適用 • 仮想ルータで出展者セグメントを収容、ネットワークはOpenFlow • ネットワークをテンプレート化、固有の変数を埋め込み動的にデプロイ • 仮想ルータのデプロイとconfigロード、Flowのインストール

    • 今っぽく言うとInfrastructure as Code? • Webキャッシュ装置との連携 • http trafficのみOpenFlowで キャッシュへ誘導する ハードウェアネットワーク機器のOSが 仮想マシンとして動くようになった
  2. 2013年の反省: しんどかった... • 仮想ネットワークに関するノウハウやツールが足りず • 仮想ネットワークを構成するためのツールも全て自作 • 結果作った人以外誰も触れないブラックボックスと化す • 柔軟性に欠けていた

    • 一度デプロイしたら終わり • 動的にACLを変えるなど までは到達できず 2013年は徹夜の連続だった... 1ネットワークを1仮想ルータで収容、 一度デプロイしたら終わり しんどさをなんとかしたい。。 もっと動的にネットワークを制御したい
  3. 2014年: 複数仮想ルータのインテグレーション • 1出展者にNAT, FW, DPIの3つの仮想ルータをデプロイ • Web UIからルールを変更できるように •

    OpenFlowからVXLANベースにすることで、Linux内の操作で完結、 Ansibleで自動化が可能に NOC NFV : 仮想ネットワーク Hyper Visor 出展者ネットワーク NAT Firewall DPI NAT : Firefly Firewall : CSR1000V DPI : FortiGateVM HV2 DPI-HV1 HV1 veth veth S4810 DELL Firefly Juniper Networks CSR1000V Cisco Systems S4810-ON DELL DPIのON/OFF VXLAN + Bridge VXLAN + Bridge VXLAN + Bridge FortigateVM Fortinet
  4. • ソフトウェアパケット処理の高速化が課題に • 展示会が始まる前にテスターで性能を計測 • 実は xxx Mbps程度しかなでなかった(と記憶している) • ソフトウェアパケット処理勃興期

    • DPDKの最初のtag v.1.2.3r0が2012年9月 • 2014年はまだ製品としての仮想ルータに DPDKが入るほどではなかった • この年の設計がいけていなかったというのもある • VMをlinux bridge経由で同じサーバ上で 直列つなぎはそら性能でないわ HV Guest 2014年の反省: 性能がでない NIC Virtual NIC Software Switch Network Function CPU Memory
  5. 2015年: スループットの出るSDN/NFV • スケールアウトできる設計を考案 • ユーザ単位で仮想ルータをデプロイ するのをやめる • 複数の横並びした仮想ルータに トラフィックを分散する

    • その他にも色々なテクニックを併用 • SR-IOVや、DPDK搭載の仮想ルータ(!) • 詳細は論文に: Ryo Nakamura, Kazuya Okada, Shuichi Saito, Hiroyuki Tanahashi and Yuji Sekiya, "FlowFall: A Service Chaining Architecture with Commodity Technologies", 2nd IEEE International workshop on CoolSDN 2015, November 2015 Firewall トラフィック分析 DDoSミチゲータ OpenFlow Switch OpenFlow Switch vCPE IP Network OpenFlow Switch OpenFlow Switch IP Network to the Internet VM VM VM VM VM VM VM VM Bypass Link
  6. 2016年: OpenFlowとBGP Flowspecの適材適所 • Flowspecで乗り換え、OpenFlowでサービスチェイニング • VRFを使って仮想面として構築したNFVネットワークに、BGP Flowspecの VRF Redirectを使って、狙ったトラフィックだけを乗せ換える

    • BGP Flowspec自体は2015年のShowNetで相互接続検証を実施 • その先でOpenFlowによるサービスチェイン NFV Network Data Center (West) vMX(仮想RR) ASR9006 VRFによる 仮想スライス BGP Flowspec: 狙ったIPアドレスを マッチして仮想面へ 乗り換えるよう経路 広告 仮想面の VRF(290:510)へ 該当トラ フィックをリ ダイレクト
  7. 2017,18年: IP Routingによるサービスチェイニング • 誰でも簡単!IP経路制御でサービスチェイニング • VRFでサービスごとに独立したIPネットワークを構築 • BGP Flowspecでマッチしたトラフィックを

    次のサービスのネットワークへリダイレクト • show routeでdebugできる!人的SPoFがなくなる Layer-3 ルータ VRF VRF VRF VRF VRF VRF VRF VRF デフォルト・ルーティングテーブル Flowspec VRF Redirect NOCお手製 コントローラ Flowspec 経路を注入
  8. 2017,18年はわりと動いた • 枯れた技術(IPルーティング)はやはりよくできている • 2017年はユーザトラフィックをサービスチェインまで運ぶ ためにEVPN/VXLANを用いた結果、そこで大変苦労したが... • 2018年は、今までで一番楽だったのでは?と思えるくらい (だったと記憶している) •

    IPであるがゆえの課題も • サービスチェインまでトラフィックを運ぶ部分は色々制約が • BGP Flowspecも本来はこのためのものではないしなぁ 次は新しいテクノロジーにチャレンジしたいところ
  9. 2019年: SRv6によるサービスチェイニング • SR:久しぶりの新しい Packet Forwarding Paradigm • SRv6のユースケースである サービスチェイニングを

    実際に構築、運用 • 複数のIPv4チェインを 単一のSRv6 Proxyに多重化 する方法がなく、NOCで 考案し実装 SRv6ヘッダの付与 Proxyを通しつつ Functionを経由 元のIPパケットに 戻す
  10. 2019年: 標準化の進み具合と実装と • SRv6が標準化途中というもあり、かなり手強かった • SRv6 Proxyの様々な問題: 2本のinternet draftをNOCで執筆 •

    コントロールプレーンの実装がまだ無かった • 全て(e.g., SR-Policy)をstaticに設定 • 実際にstableなnetworkとして構築するのは厳しい... Segment Routingはいろいろできそうだし、 これからも実装がすすみそうなので、引き続き探究してみよう
  11. 2021年: Segment Routingによるバックボーン • 2019年にはなかったSRのコントロールプレーンが登場 • BGP-based SR-MPLS L3VPN •

    SR特有の機能はSR-MPLSで検証 • Flex-Algo • BGP Egress Peer Engineering • SRv6は相互接続検証 • draft-ietf-bess-srv6-services ne8000-m14 asr9904 fx201 fx201 mx10003 n936000cd-gx SRv6網 (サービス・DC) SR-MPLS網 (バックボーン) ne8000-f1a ncs55a1 ne8000-x4 asr9902 ptx1001-mr36
  12. 2021年の反省、またはできなかったこと • SRv6の相互接続はなかなか大変でした... • draft-ietf-bess-srv6-servicesの変更 • Next-hopがRFC5549からRFC8950に変更 • SRv6 SID

    Structure Sub-Sub-TLV問題(途中から登場、解釈に違いも) • 2021年4月、ぎりぎり動いたかな、というところでした • またこの年からサービスチェイニングをやめました • 2019年まで取り組みましたが、できることはわかったので • 他の部分(Segment Routing)に注力 来年はSRv6で色々な機能が動かせるといいな、、
  13. 2022年: SRv6 Single Stack Backbone • そしてついにShowNetバックボーンがフルSRv6化 • 詳細はL2/L3のセッションをご覧ください •

    ポイント • SRv6 L3VPNをサポートする機器の増加 • やっと相互接続しつつShowNet全体を カバーできる規模に • IPv6のみのバックボーン • Flex-Algoなども無事動作 • SRv6のv6透過性を活かした実験も
  14. 2022年: SRv6 Single Stack Backboneをやってみて • プログラマビリティは、そこにいますか? • RFC8986 SRv6

    Network Programming: The concept of "SRv6 Network Programming" refers to the capability of an application to encode any complex program as a set of individual functions distributed through the network. • 2022年にできたのはL3VPNだけ • SDNやNFVでできたほどのプログラマビリティ(または柔軟性)は、 まだ発揮できてはいない(と、個人的には思う) SRv6のプログラマビリティを活かすにはどうすればいいのだろう?