ソフトウェアパケット処理と ハードウェアパケット処理 ......2016/01/22 ·...
TRANSCRIPT
Copyright 2016 Yoshihiro Nakajima, Kentaro EbisawaLicensed under the Apache License, Version 2.0
ソフトウェアパケット処理とハードウェアパケット処理
~アーキテクチャ~JANOG 37@名古屋
海老澤健太郎
[email protected] | Twitter: @ebiken
Janog 37 ソフトウェア&ハードウェアパケット処理|Kentaro Ebisawa|2016/01/22 1
Copyright 2016 Yoshihiro Nakajima, Kentaro EbisawaLicensed under the Apache License, Version 2.0
ネットワーク系
海外NW製品の選定・導入支援IPsec, ADSL, L2TP, ATM, MPLS (Edge中心)
@Netmarks
サポセンエンジニア&マネージャーコンテンツ配信&ストレージ@NetApp
ネットワーク機器の設計/開発IPv6v4 Gateway (ASIC) @Sable Networks
OpenFlow switch (FPGA) @Riava NetworksNetwork OS @Ponto Networks
自己紹介 :海老澤健太郎 (Kentaro Ebisawa)
Janog 37 ソフトウェア&ハードウェアパケット処理|Kentaro Ebisawa|2016/01/22 2
その他
SaaSサービス開発@SGI / MEX
OSS/BSSの設計・構築支援Solution Architect @Parallelsアジア通信キャリアでのSaaS/IaaS立ち上げ支援
コミュニティ
Vyatta Users Group (元)Lagopus Users GroupOpenVZ (Virtuozzo)
Copyright 2016 Yoshihiro Nakajima, Kentaro EbisawaLicensed under the Apache License, Version 2.0
本日のお話
1.ルータ(L3スイッチ)アーキテクチャ概要
2.パケット処理について
3.ハードウェア(ASIC) と ソフトウエア(CPU)
の違い (アーキテクチャ中心に)
...中島さんによるハードとソフトの違い(詳細) ...
メリット・デメリット、ボトルネック比較
Janog 37 ソフトウェア&ハードウェアパケット処理|Kentaro Ebisawa|2016/01/22 3
Copyright 2016 Yoshihiro Nakajima, Kentaro EbisawaLicensed under the Apache License, Version 2.0
ルータ(Layer 3スイッチ)の機能ブロック
隣接ルータ ルータ (Layer 3スイッチ)
D-plane
C-plane
D-plane
C-plane
Management/policy-plane
Forwarding table (FIB)
Packet processing
BGPd
CLI / Configuration/ NETCONF
BGPd
Routing table (RIB)
OSPFd
Routing daemon
隣接ルータ
D-plane
C-plane
BGPd
Janog 37 ソフトウェア&ハードウェアパケット処理|Kentaro Ebisawa|2016/01/22 4
Copyright 2016 Yoshihiro Nakajima, Kentaro EbisawaLicensed under the Apache License, Version 2.0
ルータ(Layer 3スイッチ)の一般的なアーキテクチャ
• Management-plane (M-plane)• インターフェース,アドレス,ルーティングプロトコルを設定
• CLI, NETCONF, RESTCONF
•運用に必要なモニタリング機能の提供• SNMP, syslog
• Control-plane (C-plane)•隣接ノードやネットワークトポロジの探索
経路交換のためのルーティングプロトコルの処理• BGP, OSPF, ISIS
•経路交換情報をもとに Routing Information Base (RIB)
と Forwarding Information Base (FIB)の更新や管理
• Data-plane (D-plane)• FIBをもとにトランジットトラヒック(パケット)を転送・処理
Janog 37 ソフトウェア&ハードウェアパケット処理|Kentaro Ebisawa|2016/01/22 5
Copyright 2016 Yoshihiro Nakajima, Kentaro EbisawaLicensed under the Apache License, Version 2.0
処理するパケットの種類(1)|トランジットトラヒック(パケット)
隣接ルータ ルータ・Layer 3スイッチ
D-plane
C-plane
D-plane
C-plane
Management/policy-plane
Forwarding table (FIB)
Packet processing
BGPd
CLI / Configuration/ NETCONF
BGPd
Routing table (RIB)
OSPFd
Routing daemon
隣接ルータ
D-plane
C-plane
BGPd
トランジットトラヒック トランジットトラヒック
Janog 37 ソフトウェア&ハードウェアパケット処理|Kentaro Ebisawa|2016/01/22 6
Copyright 2016 Yoshihiro Nakajima, Kentaro EbisawaLicensed under the Apache License, Version 2.0
処理するパケットの種類(2)|隣接ノードとBGPによる経路交換
隣接ルータ ルータ・Layer 3スイッチ
D-plane
C-plane
D-plane
C-plane
Management/policy-plane
Forwarding table (FIB)
Packet processing
BGPd
CLI / Configuration/ NETCONF
BGPd
Routing table (RIB)
OSPFd
Routing daemon
隣接ルータ
D-plane
C-plane
BGPd論理的な接続 論理的な接続
Janog 37 ソフトウェア&ハードウェアパケット処理|Kentaro Ebisawa|2016/01/22 7
Copyright 2016 Yoshihiro Nakajima, Kentaro EbisawaLicensed under the Apache License, Version 2.0
HW実装とソフト実装は何が違うのか?
• D-planeの実装の違い以外はほぼ同じ構成
•高速パケット処理 (Fast Pass) を「専用HWやASICを使う」か、「すべてソフト実装」なのかの違い
ルータ・Layer 3 スイッチ
D-plane
C-plane
Management/policy-plane
Forwarding table (FIB)
Packet processing
CLI / Configuration/ NETCONF
BGPd
Routing table (RIB)
OSPFd
Routing daemon
種別 HW実装 ソフトウエア実装
M-plane実装: スイッチ制御CPU上のソフトウエアOS: Linux/BSD
実装: CPU上のソフトウエアOS: Linux/BSD
C-plane実装: スイッチ制御CPU上のソフトウエアOS: Linux/BSD
実装: CPU上のソフトウエアOS: Linux/BSD
D-plane(Fast pass)
実装:パケット処理を回路としてASICやFPGAで実装パケットI/O: 専用回路
実装: CPU上のソフトウエアパケットI/O: NIC経由(PCI-exp)OS: Linux/BSD
Janog 37 ソフトウェア&ハードウェアパケット処理|Kentaro Ebisawa|2016/01/22 8
Copyright 2016 Yoshihiro Nakajima, Kentaro EbisawaLicensed under the Apache License, Version 2.0
D-planeでの主な処理
Transit-trafficTransit-traffic Transit-traffic
HW実装のパケット処理モダンな
ソフト実装のパケット処理OSのNWスタックによるソフト実装のパケット処理
ソフト実装 HW実装
Janog 37 ソフトウェア&ハードウェアパケット処理|Kentaro Ebisawa|2016/01/22 9
Memory
NIC
PCI-Exp
Memory
Phy
Network stack
CPU
Sign
alin
g, C
-pla
ne
msg PCI-Exp
Memory
Phy
HW fast pass
Network stack
HW制御用CPU
Sign
alin
g, C
-pla
ne
msgMemory
NIC
PCI-Exp
Memory
Phy
Soft fast pass
Network stack
CPU
Sign
alin
g, C
-pla
ne
msg
Copyright 2016 Yoshihiro Nakajima, Kentaro EbisawaLicensed under the Apache License, Version 2.0
実機構成
ソフト実装の(汎用PCサーバ)
ハード実装の構成(商用スイッチシリコンスイッチ)
商用スイッチシリコン
CPU
PCIe
Phy PhyPhy
Reference: IntelReference: White Box L3 switch
スイッチ制御CPU
CPUCPU
メモリメモリ
Phy/NIC PCIe
メモリ
Transit-trafficSignaling, C-plane msg
Transit-traffic
Signaling, C-plane msg
Janog 37 ソフトウェア&ハードウェアパケット処理|Kentaro Ebisawa|2016/01/22 10
Copyright 2016 Yoshihiro Nakajima, Kentaro EbisawaLicensed under the Apache License, Version 2.0
1番の違い=(トランジット)パケット処理方法•ハードウェア:ASIC (専用HW)で実施
•ソフトウェア:CPUで実施
ホワイトボックススイッチも
パケット処理はハードウェア
(Linuxに見えるけど)
コントロールパケットはどちらもCPUで処理
Janog 37 ソフトウェア&ハードウェアパケット処理|Kentaro Ebisawa|2016/01/22 11
まとめ
Copyright 2016 Yoshihiro Nakajima, Kentaro EbisawaLicensed under the Apache License, Version 2.0
続く...ハードとソフトの違い(詳細)
メリット・デメリット、ボトルネック比較
Janog 37 ソフトウェア&ハードウェアパケット処理|Kentaro Ebisawa|2016/01/22 12