©APRESIA Systems all right reserved.
次世代技術本部 桑田斉
進化するデータプレンプログラマビリティ対応ハードウェアと
実現されるユースケース
日本P4ユーザ会2019
2019.10.11
2日本P4ユーザ会2019
◆Barefootデータプレーンプログラマビリティ技術◊Tofino/Tofino2 チップ
◊SDE (P4のソフトウェア開発環境)
◊サポート可能なNOS
◊ユースケース詳細−INT (Inband Network Telemetry)
−Noviflowアプライアンスソリューション
−SONiC + SRv6サービスチェイニング
本日のアジェンダ
3日本P4ユーザ会2019
◆自社ブランドAPRESIAスイッチ事業を軸に2016年に日立グループから独立
◆2018年春からEdgecore Networks社のPremium Distributer
APRESIA Systems株式会社
エンタープライズ・データセンタAPRESIA
LightAPRESIA switch
L2/PoEインジェクタスモールオフィス
L3スイッチネットワーク認証
通信事業者
ホワイトボックスEdgecore
伝送装置XGMC/GMC
Infinera
キャリアAPRESIA
光伝送装置(10G・40G・100G)Beyond 100G
7100 NanoGroove
キャリアバックボーンモバイルバックホール
OCP準拠スイッチNOS提供
4日本P4ユーザ会2019
◆Barefoot P4プログラマブルチップ Tofino搭載
◆OCP Partner Design
◆Barefootより無償SDE (P4ソフトウェア開発環境)を提供
Wedge100BFスイッチ
QSFP28 32 Port QSFP28 65 Port
Wedge100BF-32X Wedge100BF-65X
スイッチング容量 3.2Tbps スイッチング容量 6.5 Tbps
5日本P4ユーザ会2019
Wedgeご購入後のBarefootからのサポート
比較
Barefoot社提供のサポートプログラム(2種類)
SLACA(新設)
NDA/SELA(既存)
ユーザタイプ アカデミック関係向けベンダー向け&
アカデミック関係向け
BF社エンジニア直接サポート
無しコミュニティを通して
有り
サポート提供方法コミュニティ専用ポータルサイト
BFサポートポータルサイト
BF社技術ユーザ間の情報共有
コミュニティ間の情報共有可 3 Way (BF含む) NDA別途必要
ダウンロード(SDE)権限 研究責任者のみ アカウント保持者
締結内容簡易
(記述&チェック式)複雑
(英文契約書/時間を要す)費用 無償 無償
その他BF Academy ディスカウント
BEACON Video視聴可能NDA/SELAの締結も契約可能
SLACAの締結も可能
6日本P4ユーザ会2019
◆Barefootと技術的な協力関係を構築
◆P4をベースとしたアプリケーション・ソリューションの構築をサポート
Barefoot Technology Integrators
https://www.barefootnetworks.com/partners/
Barefootより認定
7日本P4ユーザ会2019
P4関連セミナー紹介
アンテナ□P4 初級者向けハンズオンセミナー(予定)
※開催日時、費用、コース詳細は、弊社営業に問い合わせください。
◼P4 初級者向けハンズオンセミナー開催のご案内(予定)
◼1回目 日程:10月末 (2日間、+1日予備日)
◼2回目 日程調整中 (ご希望ありましたらご相談ください)
◼場所:本社(東京、新富町オフィス)
◼人数:20名(定員)
◼講師:APRESIAより
◼コース概要(日本語)(予定)
◼P4言語及びデータプレーンプログラマビリティに関する理解
◼P4コード作成及びデバイス環境構築の理解
◼その他
P4_16対応初級編
日本語にてセミナー実施予定!!
◼Barefoot Academy 開催のご案内(予定)
◼日程:来春 (3日間+1日予備日)
◼場所:未定
◼人数:未定
◼講師: Barefoot Networks社より
◼コース概要(英語)
◼他者作成コードを理解できるレベルのP4言語の習熟。
◼基本的なデータプレーンの開発設計する能力の理解
◼Tofino™アーキテクチャとその主要リソース、関連APIの理解
◼その他、実践的なスキルの習得
□ オフィシャルトレーニング(予定)
P4_16対応中級・上級編
8日本P4ユーザ会2019
◆P4によるデータプレーンプログラマビリティをハードウェアチップにて実現◊ P4_14, P4_16のどちらもサポート
Barefoot Tofinoチップ
https://www.barefootnetworks.com/products/brief-tofino/
Parser DeparserMatch & Action table
受信したフレームのフォーマットやフィールド(IPアドレスなどのデータ)を抽出
Parserにて抽出したデータの値をマッチングし、その結果からアクションを実行(宛先決定、フィールド書き換え、フレーム変換)
アクションの結果から、最終的な等フレーム(ヘッダ付け替え)を
生成し創出
P4で記載する処理
Tofino
9日本P4ユーザ会2019
◆Tofinoの後継
◆サンプル出荷済
◆2つの方向性◊高スループット・低遅延
◊大容量プログラマブルリソース
◆PPX (機能拡張)◊ハードウェアベース学習
Barefoot Tofino2
https://barefootnetworks.com/products/brief-tofino-2/
高スループット・低遅延少プログラマブルリソース
高機能リソース大容量
10日本P4ユーザ会2019
◆P4のexampleコード
◆switch.p4◊基本的なL2/L3機能(SONiC対応)
◊Inband Network Telemetry等の機能
◊ユーザによる機能追加も可能
◆Barefoot用 P4コンパイラ
◆Tofinoを制御するツール、ドライバ群◊SONiC, Stratum(後述)に対応するためのソフトウェア
◆Tofinoのソフトウェアエミュレータ◊仮想マシンにてTofinoの試験が可能
Barefootの無償SDEに含まれるもの
独自作成のP4コード
P4のExample
switch.p4
BarefootP4コンパイラ Tofinoチップ or
エミュレータ
Barefoot ドライバ、ツール
ONL SONiC Stratum
ビルド
ビルドしたデータをロード
制御
指示
NOS
指示指示
Wedge100BF or 仮想マシン
ピンク部分
11日本P4ユーザ会2019
◆使用環境◊VirtualBox上の仮想マシン
◊Barefoot SDE 8.4
−P4コンパイラ
−Tofinoシミュレータ
−PTF (Packet Test Framework) 環境
◆テスト対象◊GTP/SRv6変換
デモ: P4コードのコンパイルと試験方法
12日本P4ユーザ会2019
デモ:T.M.Tmap (GTP -> SRv6変換)
0 1 2 3 4 5 6 7
Dst MAC address Src
MAC address EtherType Ver/Len Diff Serv
Length Identification Flags TTL Prot
Checksum Src IP address Dst IP
address Src L4 port Dst L4 port Length
Checksum Flags Type Length TEID
Ver/Len Diff Serv Length Identification
Flags TTL Protocol Checksum Src IP
address Dst IP address
GTP 0 1 2 3 4 5 6 7
Dst MAC address Src
MAC address EtherType V DSCP
Flow label Length NH Hop Limit Src
IPv6 address
Dst
IPv6 address
Ver/Len Diff Serv
Length Identification Flags TTL Protocol
Checksum Src IP address Dst IP
address
SRv6
action t_m_tmap(bit<32> upper_sid, bit<8> dst_intf, bit<8> src_intf) {hdr.ethernet.etype = ETYPE_IPv6;hdr.ipv6.version = 4w6;hdr.ipv6.payload_len = hdr.inner_ipv4.total_len;hdr.ipv6.next_hdr = 8w4;hdr.ipv6.hop_limit = 8w64;
hdr.ipv6.dst[127:96] = upper_sid;hdr.ipv6.dst[95:64] = hdr.ipv4.dst;hdr.ipv6.dst[63:32] = hdr.ipv4.src;hdr.ipv6.dst[31:0] = hdr.gtpu.teid;
}
※T.M.Tmapは、最新IETF
ドラフトではT.M.GTP4.Dと名称変更
サンプルP4コード
13日本P4ユーザ会2019
NOS ONL Stratum SONiC NoviWare
形態 OSShttps://opennetlinux.org/
OSShttps://github.com/stratum/stratum
OSShttps://github.com/azure/sonic/wiki
商用https://noviflow.com/noviware/
開発母体 OCP ONF Microsoft中心のコミュニティ
Noviflow
特徴 Whiteboxスイッチ用に改造されたLinux。コントロールプレーンは追加が必要。Stratum, SONiCの母体。
P4Runtime(P4をリモートから制御するインタフェース)、gNMI、gNOIを使い、SDNコントローラにて制御。
BGP (FRRouting)を組込み、IP CLOSファブリックを構築可能。INTと併用可能。
SDNコントローラによる中央集権型の制御で、スケールアウト型のネットワークアプライアンスをP4にて実現。
Wedge100BFにて使用可能なNOS
※ONL: Open Network Linux, OCP: Open Compute Project, ONF: Open Networking Foundation
14日本P4ユーザ会2019
◆ONFにて開発されているWhiteboxスイッチ用のNOS (Agent)
◆2019年9月にソースコードが公開◊https://github.com/stratum/stratum
◆弊社テクニカルブログにてStratumを使った実験を公開中◊https://www.apresiatac.jp/blog/201910071861/
Stratum
15日本P4ユーザ会2019
◆ホワイトボックススイッチ用のOSSのNOS
◊厳密にはONL上で動作するソフトウェア群
◊Microsoftが公開したソースコードが母体
−https://github.com/azure/sonic/wiki
◆SAI (Switch Abstraction Interface)を定義することでマルチベンダ対応◊ Barefootだけでなく、BroadcomやMellanoxなどのチップにも対応
◆BGPやLLDP、データベースなどのアプリケーションはコンテナ化
◊L3スタックとしてFRRoutingを採用
◆BGPを使ってIP CLOSファブリックを構築可能
SONiC(Software for Open Networking in the Cloud)
ホワイトボックススイッチ(OCP準拠)
Open Network Linux
syncd
ベンダ SDK
DB (Redis)
BGPFRR/Quagga
LLDP SNMP
swss
ユーザランド
SAI
SONiC
16日本P4ユーザ会2019
◆SONiC IP CLOS ファブリック
◊海外で適用事例あり
◊各装置にてBGPが動作
◆ONOS Trellis + Stratum
◊ONFが主導中
◊コントローラ制御−P4Runtime使用
INT + データセンタ・ファブリック
WedgeBF
Leaf
Spine
Stratum Stratum Stratum
StratumStratum
ONOS Trellis
P4Runtime
SONiC BGP
SONiC BGP SONiC BGP
SONiC BGP SONiC BGPLeaf
Spine
Deep Insight
Deep Insight
BGP message
WedgeBF
遅延測定輻輳検知遅延測定輻輳検知
17日本P4ユーザ会2019
◆DDoS緩和、FirewallなどのアプライアンスをP4スイッチとサーバ群に置き換え
◆アプライアンスをサーバ化することで、スケールアップ型の増強が可能
Noviflowのアプライアンスソリューション
テクニカルパートナー- Fortinet- Palo Alto
Networks- Radware
18日本P4ユーザ会2019
NoviWare/CyberMapper/Security Load Balancer
GOTO ロードバランサ
フィルタルール
Security Cluster
Trusted Traffic
ロードバランサ
ブラックリスト
CyberMapper
Mitigationルールフロールール
(P4 Runtime対応予定)
NoviWare (Network OS)
ホワイトリスト
⚫ API連携(※1)⚫リスト自動生成
⚫コントローラー経由で事前ルール設定⚫直接プログラム投入も可能
LB
Untrusted Traffic
フォワーディング
ユーザ
クラスターへ送付するトラフィック量を削減
19日本P4ユーザ会2019
◆実現するネットワーク◊BGPベースによるIP CLOSファブリック
◊SRv6によるサービスチェイニング
◆デモ環境◊GNS3ネットワークシミュレータ
◊FRR (KVMベースの仮想マシン)
◊SONiC + Tofino仮想マシン
− P4にて試作を実施
デモ② データセンタ内SRv6サービスチェイニング
SRv6ノード
サーバ
ホスト
SRv6サービスチェイニングについては以下をご参照https://www.janog.gr.jp/meeting/janog43/program/sc
https://www.apresiatac.jp/blog/20190227796/
https://www.apresiatac.jp/blog/20190311947/
20日本P4ユーザ会2019
SRv6によるサービスチェイニング
ホスト① ホスト② ホスト③
全てのホストは一つのサーバにアクセス
SRv6によって各ホストの通信を別々のサーバに分散
21日本P4ユーザ会2019
◆SRv6は大きくTransit, End, End.xxxの3つのファンクションを持つ
◆以下の黄色部分をSONiCに組み込む形で、P4にて試作を実施
SRv6データプレーンの動き
Eth header IPv6 header payload
Eth header IPv6 header payloadIPv6 header SRv6 header
Transit (ex. T.Encaps)
End
Eth header IPv6 header payloadIPv6 header SRv6 header
Eth header IPv6 header payload
End.XXX (ex. End.DX6)
SRv6ヘッダに従いDst IPv6アドレスを書き換え
SRv6化
SRv6からオリジナルフレームへ逆変換
SRv6ファンクション
22日本P4ユーザ会2019
SONiCへのSRv6の組込み方
IPv6フレーム
SRv6 P4コード
BGP on SONiC
IPv6フレーム
IPv6フレームSRHIPv6ヘッダIPv6フレーム
Routing Table (FIB) P4コード
追加したパス
Barefoot提供部分
ルーティング情報をプッシュ
IPv6フレームSRHIPv6ヘッダ
追加したIPv6ヘッダをベースにルーティング
既存パス
追加したP4コード
23日本P4ユーザ会2019
SRv6のサンプルキャプチャ
付与されたSRH
24日本P4ユーザ会2019
Thank You!