Project Calico Introduction
Jul 26, 2017
Yuji Azama
NEC Solution Innovators, ltd
Okinawa Open Laboratory
Okinawa Open Laboratory 2
本⽇お話したいこと
n Project Calico Introduction
n Project Calicoとは?
n Calicoの仕組み
n Calicoデータセンターファブリックをどう組むか
n Calicoコミュニティについて
Okinawa Open Laboratory 3
⾃⼰紹介
n 本名
n 安座間 勇⼆ (あざま ゆうじ)
n 出⾝地
n 沖縄県
n 所属
n 2014⼊社〜2017/03
n NECソリューションイノベータ 東京本社
n 2017/04〜現在
n 同社 沖縄⽀社
n これまでの沖縄ラボでの活動
n Service Chaining PJ メンバー (2014〜2015)
n ThinkIT「OpenDaylightを始めよう!」
Okinawa Open Laboratory 4
Project Calicoとは
Okinawa Open Laboratory 5
Calico Cat = 三⽑猫
Okinawa Open Laboratory 6
Project Calico
n どんなPJか?
n OpenStack VMやコンテナに対してL3ルーティングベースのネットワーキング機能を提
供するOSSプロジェクト
n Apache 2.0 license
n 最新バージョンはv2.3で、リリースは不定期
n 歴史
n 2014 MetaswitchがProject Calicoを発表
n 2016 MetaswitchとCoreOSがTigera社を設⽴
CalicoとFlannelを統合したCanalを公開
n 特徴
n ピュアなL3ルーティングベースの技術でVM/コンテナ/ベアメタル(および混在環境)に
対してネットワーキングを提供する
n 経路情報の伝播⼿段としてBGPを利⽤する
n LinuxのForwarding Information Base(FIB)でルーティングを提供する
n ネットワークポリシーを提供する
Okinawa Open Laboratory 7
他プロジェクトとの関係 (Integration)
n OpenStack
n Neutron ML2 PluginとしてCalicoを使⽤でき、OpenStackのネットワーキングとして動作
(networking-calico)
n Kubernetes
n KubernetesのAddonとしてFlannelがVxLANを使⽤するのに対して、CalicoはL3ルーティングネ
ットワークとネットワークポリシーを提供 (CNI Network plugin)
n Docker
n Docker network pluginとして動作し、ルーティングとネットワークポリシーを提供
(libnetwork plugin)
n Mesos
n CalicoがMesosに対してIPネットワーキングとセキュリティポリシーを提供
(CNI Network plugin)
n rkt
n Calicoがrktコンテナにネットワーキングとネットワークポリシーをサポート
(CNI Network plugin)
Okinawa Open Laboratory 8
Mirantis Cloud Platform
n Mirantis Cloud Platform 1.0では、KubernetesのSDNとしてCalico
を統合
参考: https://www.mirantis.com/blog/bring-in-the-new-infrastructure-stack/
Okinawa Open Laboratory 9
Calicoに期待されること
n High Performance
n オーバーレイのカプセル化が発⽣しないためパフォーマンスが優れている
n Simple
n OpenFlowやオーバーレイがないためtracerouteやpingが期待通りに動作する
n Scalable
n データセンターNWが、BGPを使⽤したインターネットと同じ原理で構築できるため
スケーラビリティに優れている
n L2通信で発⽣していたARPブロードキャストを抑制できる
n Secure
n VMやコンテナに対して、トラフィックの⽅向やIPアドレス、ポート番号などの
ネットワークポリシー制限が⾏える
Okinawa Open Laboratory 10
Calicoの仕組み
Okinawa Open Laboratory 11
Compute Host
Felix
BIRD
WorkloadWorkloadWorkload
FIB
Compute Host
Felix
BIRD
WorkloadWorkloadWorkload
FIB
Compute Server(calico node)
Felix
BIRD
WorkloadWorkloadWorkload
FIB
Calicoアーキテクチャ
n Felix (プロセス名: calico-felix)
n Workload(※)が動作する全ホストに常駐するエージェント
n etcdからWorkload情報を受取り経路情報とACLを設定する
n BIRD (プロセス名: bird, bird6)
n Calico Node間で経路情報を交換するルーティングデーモン
n FIBを監視しWorkloadの経路を検出/広告する
n Etcd またはEtcd Proxy(プロセス名: etcd)
n Calicoのデータストア
n OpenStack環境ではOpenStackデータベースのミラー
n Orchestrator Plugin
n OpenStackやKubernetesなどのプラグイン
n E.g. networking-calico, calico CNI Plugin
Etcd
Orchestrator Plugin
※ Calicoで⾔うWorkloadとはCalicoネットワークによって接続されるVMやコンテナなどのこと
BGP Peer
IPTables
IPTables
IPTables
Okinawa Open Laboratory 12
CalicoにおけるARP解決
n Proxy ARP
n Proxy ARPとは、他のデバイス宛のARP要求に対して、本来の問合せ先に代わ
ってARP応答する機能
n CalicoにおけるProxy ARPの動作
n Calicoにおいては、宛先IPのVMに代わってCalico NodeがARP代理応答を⾏う
n VM⾃⾝のtapのMACアドレスを学習する
Calico Node
VM
FIB
VM
eth0 eth0
tap tap
$ arp
? (192.0.2.1) at fe:16:3e:ec:bd:62 [ether] on eth0
? (192.0.2.5) at fe:16:3e:ec:bd:62 [ether] on eth0
? (192.0.2.10) at fe:16:3e:ec:bd:62 [ether] on eth0
VM内のARP Table
VMのtapのMACアドレス
ARP要求
ARP代理応答
Okinawa Open Laboratory 13
Calicoにおけるルーティング情報の伝達
n FelixがCalico Node内のVM/コンテナの経路情報をFIBに登録する
n BIRDがFIBを読込み、他Calico NodeとBGPで経路交換する
受け取った経路を⾃NodeのFIBに書込む
Calico Node
BIRD
VMbVMa
FIB
Felix
Calico Node
BIRD
VMdVMc
FIB
Felix
BGP Peer
VMc, VMdの経路広告VMa, VMbの経路広告
経路情報
読込み/書込み
経路情報
読込み/書込み
経路情報
書込み
経路情報
書込み
Okinawa Open Laboratory 14
n ルートリフレクターを使⽤することでiBGPピアのフルメッシュを回避で
きる
n ⼤規模なほどCalico Nodeのピアリング負荷が削減できるので効果的
ルートリフレクターを使った経路広告
ルートリフレクター
Calico Node
BIRD
Calico Node
BIRD
Calico Node
BIRD
Calico Node
BIRD
Calico Node
BIRD
Calico Node
BIRD
Calico Node
BIRD
Calico Node
BIRD
ルートリフレクターなし ルートリフレクターあり
Okinawa Open Laboratory 15
Calicoデータセンターファブリックをどう組むか
Okinawa Open Laboratory 16
Calicoデータセンターのデザインで考慮すること
n BGPのASデザイン
n BGPのPrivate AS番号には限りがある
n 2Byte Private AS → 64512〜65534の1,023個
n AS枯渇の懸念がある場合には4Byte ASを使うことも可能(RFC6793)
n 4Byte Private AS → 4200000000〜4294967294の94,967,295個
n BGPピア数
n BGPピア数が増えるとルーターの負荷が⾼くなるので⼤規模化が難しく
なってくる
n 各NW機器のルーティングテーブルサイズ
n スパインスイッチ/ToRスイッチのルーティングテーブルサイズの上限を
超えないようにする
Okinawa Open Laboratory 17
Calico L3 Fabricの例
n L3スパインスイッチ
n ToR間のフルメッシュピアを回避
しスケーラビリティを確保
n ラック単位のASデザイン
n ラック単位にASを構成すること
で、Calico Node単位にASを構成
するよりAS数を削減できる
ToR L3SW
Calico Node
Calico Node
Calico Node
Calico Node
Calico Node
Calico Node
ToR L3SW
Calico Node
Calico Node
Calico Node
Calico Node
Calico Node
Calico Node
ToR L3SW
Calico Node
Calico Node
Calico Node
Calico Node
Calico Node
Calico Node
ToR L3SW
Calico Node
Calico Node
Calico Node
Calico Node
Calico Node
Calico Node
ToR L3SW
Calico Node
Calico Node
Calico Node
Calico Node
Calico Node
Calico Node
…
AS X
Router
AS Y
Router
AS Z
Router
eBGP Peer
Spine
AS A AS B AS C AS D AS N
Okinawa Open Laboratory 18
Project Calico Community
Okinawa Open Laboratory 19
Project Calico Community
n Project Calico Documentation
n http://docs.projectcalico.org/
n Source Code
n Project Calico Organization @GitHub
n Project OwnerはMetaswitch
n https://github.com/projectcalico/
n Calico Users @Slack
n 参加⼈数: 約1,300⼈
n https://calicousers.slack.com/
Okinawa Open Laboratory 20
沖縄オープンラボラトリ 概要
n 名称
n 一般社団法人 沖縄オープンラボラトリ (略称:沖縄オープンラボ、OOL 等)
n 設立
n 2013年5月8日 NTTコミュニケーションズ、NEC 、イイガの3社にて設立
n 所在地
n 〒904-2241 沖縄県うるま市字兼箇段61番地1
沖縄情報通信センター ビジネス棟201号
n 電話:098-989-1940
n Web:http://www.okinawaopenlabs.org/
n Facebook:http://www.facebook.com/okinawaopenlabs/
n 代表
n 理事長 伊藤 幸夫
n 目的
n 情報通信における先進技術(次世代ICT基盤技術)の実用化、普及のための研究開発
活動 ⇒クラウドとSDNの検証活動を会員企業と実施
OOLおよびCalico検証PJ メンバー募集中!
Thank you!
OOLでCalico検証に参加されたい⽅、ご意⾒やご質問がある⽅は
ぜひお声かけください!
Okinawa Open Laboratory 22
(参考) Calicoで問題になりそうなこと
n BIRDルーティングテーブルの肥⼤化
n ワークロードのパフォーマンスに影響を与えないか
n BIRDのルーティングテーブル検索のパフォーマンスに影響が出ないか
n スケーラビリティ
n BGPだからスケーラブルと⾔ってもルーターのルート数に上限があるのではないか
n L2レスによる問題
n L2でDiscovery機能を使うアプリケーションが動かなくなるが回避策はあるか
n BUMトラフィックの扱いはどうなっているのか
n SNMPは動作するか
n FWやLBがある環境で動作するか
n セキュリティ
n テナント分離はできるか
n Calicoのネットワークポリシーだけでは不⼗分ではないか
Okinawa Open Laboratory 23
Hypervisor #2 (Compute2)Hypervisor #1 (Controller + Compute1)
VM2 (cirros) VM1 (cirros)
eth0eth0
$ arp
Address HWtype HWaddress Flags Mask Iface
192.0.2.10 ether fa:16:3e:03:a3:35 CM tap3be12409-03
Compute2(192.168.122.11) ether 52:54:00:61:49:20 C enp0s3
192.168.122.1 ether 52:54:00:28:dd:eb C enp0s3
$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.122.1 0.0.0.0 UG 0 0 0 enp0s3
192.0.2.4 compute2 255.255.255.255 UGH 0 0 0 enp0s3
192.0.2.10 * 255.255.255.255 UH 0 0 0 tap3be12409-03
192.168.122.0 * 255.255.255.0 U 0 0 0 enp0s3
tap3be12409-03 tapd9b9894d-8b
$ ip addr show tapd9b9894d-8b
22: tapd9b9894d-8b: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether fe:16:3e:ec:bd:62 brd ff:ff:ff:ff:ff:ff
inet6 fe80::261:feff:feed:cafe/64 scope link
valid_lft forever preferred_lft forever
$ ip addr show tap3be12409-03
23: tap3be12409-03: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether fe:16:3e:03:a3:35 brd ff:ff:ff:ff:ff:ff
inet6 fe80::261:feff:feed:cafe/64 scope link
valid_lft forever preferred_lft forever
$ ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether fa:16:3e:03:a3:35 brd ff:ff:ff:ff:ff:ff
inet 192.0.2.10/24 brd 192.0.2.255 scope global eth0
inet6 fe80::f816:3eff:fe03:a335/64 scope link
valid_lft forever preferred_lft forever
$ arp
? (192.0.2.4) at fe:16:3e:03:a3:35 [ether] on eth0
? (192.0.2.1) at fe:16:3e:03:a3:35 [ether] on eth0
$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.0.2.1 0.0.0.0 UG 0 0 0 eth0
192.0.2.0 * 255.255.255.0 U 0 0 0 eth0
$ ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether fa:16:3e:ec:bd:62 brd ff:ff:ff:ff:ff:ff
inet 192.0.2.4/24 brd 192.0.2.255 scope global eth0
inet6 fe80::f816:3eff:feec:bd62/64 scope link
valid_lft forever preferred_lft forever
$ arp
? (192.0.2.1) at fe:16:3e:ec:bd:62 [ether] on eth0
? (192.0.2.10) at fe:16:3e:ec:bd:62 [ether] on eth0
$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.0.2.1 0.0.0.0 UG 0 0 0 eth0
192.0.2.0 * 255.255.255.0 U 0 0 0 eth0
$ arp
Address HWtype HWaddress Flags Mask Iface
192.0.2.4 ether fa:16:3e:ec:bd:62 CM tapd9b9894d-8b
Compute1(192.168.122.10) ether 52:54:00:22:2f:5a C enp0s3
192.168.122.1 ether 52:54:00:28:dd:eb C enp0s3
$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.122.1 0.0.0.0 UG 0 0 0 enp0s3
192.0.2.4 * 255.255.255.255 UH 0 0 0 tapd9b9894d-8b
192.0.2.10 compute1 255.255.255.255 UH 0 0 0 enp0s3
192.168.122.0 * 255.255.255.0 U 0 0 0 enp0s3
enp0s3
192.168.122.0/24
enp0s3
(参考) Multi Node OpenStack with Calico
n Routing Table, ARP Table実例
Project calico introduction - OpenStack最新情報セミナー 2017年7月

Project calico introduction - OpenStack最新情報セミナー 2017年7月

  • 1.
    Project Calico Introduction Jul26, 2017 Yuji Azama NEC Solution Innovators, ltd Okinawa Open Laboratory
  • 2.
    Okinawa Open Laboratory2 本⽇お話したいこと n Project Calico Introduction n Project Calicoとは? n Calicoの仕組み n Calicoデータセンターファブリックをどう組むか n Calicoコミュニティについて
  • 3.
    Okinawa Open Laboratory3 ⾃⼰紹介 n 本名 n 安座間 勇⼆ (あざま ゆうじ) n 出⾝地 n 沖縄県 n 所属 n 2014⼊社〜2017/03 n NECソリューションイノベータ 東京本社 n 2017/04〜現在 n 同社 沖縄⽀社 n これまでの沖縄ラボでの活動 n Service Chaining PJ メンバー (2014〜2015) n ThinkIT「OpenDaylightを始めよう!」
  • 4.
    Okinawa Open Laboratory4 Project Calicoとは
  • 5.
    Okinawa Open Laboratory5 Calico Cat = 三⽑猫
  • 6.
    Okinawa Open Laboratory6 Project Calico n どんなPJか? n OpenStack VMやコンテナに対してL3ルーティングベースのネットワーキング機能を提 供するOSSプロジェクト n Apache 2.0 license n 最新バージョンはv2.3で、リリースは不定期 n 歴史 n 2014 MetaswitchがProject Calicoを発表 n 2016 MetaswitchとCoreOSがTigera社を設⽴ CalicoとFlannelを統合したCanalを公開 n 特徴 n ピュアなL3ルーティングベースの技術でVM/コンテナ/ベアメタル(および混在環境)に 対してネットワーキングを提供する n 経路情報の伝播⼿段としてBGPを利⽤する n LinuxのForwarding Information Base(FIB)でルーティングを提供する n ネットワークポリシーを提供する
  • 7.
    Okinawa Open Laboratory7 他プロジェクトとの関係 (Integration) n OpenStack n Neutron ML2 PluginとしてCalicoを使⽤でき、OpenStackのネットワーキングとして動作 (networking-calico) n Kubernetes n KubernetesのAddonとしてFlannelがVxLANを使⽤するのに対して、CalicoはL3ルーティングネ ットワークとネットワークポリシーを提供 (CNI Network plugin) n Docker n Docker network pluginとして動作し、ルーティングとネットワークポリシーを提供 (libnetwork plugin) n Mesos n CalicoがMesosに対してIPネットワーキングとセキュリティポリシーを提供 (CNI Network plugin) n rkt n Calicoがrktコンテナにネットワーキングとネットワークポリシーをサポート (CNI Network plugin)
  • 8.
    Okinawa Open Laboratory8 Mirantis Cloud Platform n Mirantis Cloud Platform 1.0では、KubernetesのSDNとしてCalico を統合 参考: https://www.mirantis.com/blog/bring-in-the-new-infrastructure-stack/
  • 9.
    Okinawa Open Laboratory9 Calicoに期待されること n High Performance n オーバーレイのカプセル化が発⽣しないためパフォーマンスが優れている n Simple n OpenFlowやオーバーレイがないためtracerouteやpingが期待通りに動作する n Scalable n データセンターNWが、BGPを使⽤したインターネットと同じ原理で構築できるため スケーラビリティに優れている n L2通信で発⽣していたARPブロードキャストを抑制できる n Secure n VMやコンテナに対して、トラフィックの⽅向やIPアドレス、ポート番号などの ネットワークポリシー制限が⾏える
  • 10.
    Okinawa Open Laboratory10 Calicoの仕組み
  • 11.
    Okinawa Open Laboratory11 Compute Host Felix BIRD WorkloadWorkloadWorkload FIB Compute Host Felix BIRD WorkloadWorkloadWorkload FIB Compute Server(calico node) Felix BIRD WorkloadWorkloadWorkload FIB Calicoアーキテクチャ n Felix (プロセス名: calico-felix) n Workload(※)が動作する全ホストに常駐するエージェント n etcdからWorkload情報を受取り経路情報とACLを設定する n BIRD (プロセス名: bird, bird6) n Calico Node間で経路情報を交換するルーティングデーモン n FIBを監視しWorkloadの経路を検出/広告する n Etcd またはEtcd Proxy(プロセス名: etcd) n Calicoのデータストア n OpenStack環境ではOpenStackデータベースのミラー n Orchestrator Plugin n OpenStackやKubernetesなどのプラグイン n E.g. networking-calico, calico CNI Plugin Etcd Orchestrator Plugin ※ Calicoで⾔うWorkloadとはCalicoネットワークによって接続されるVMやコンテナなどのこと BGP Peer IPTables IPTables IPTables
  • 12.
    Okinawa Open Laboratory12 CalicoにおけるARP解決 n Proxy ARP n Proxy ARPとは、他のデバイス宛のARP要求に対して、本来の問合せ先に代わ ってARP応答する機能 n CalicoにおけるProxy ARPの動作 n Calicoにおいては、宛先IPのVMに代わってCalico NodeがARP代理応答を⾏う n VM⾃⾝のtapのMACアドレスを学習する Calico Node VM FIB VM eth0 eth0 tap tap $ arp ? (192.0.2.1) at fe:16:3e:ec:bd:62 [ether] on eth0 ? (192.0.2.5) at fe:16:3e:ec:bd:62 [ether] on eth0 ? (192.0.2.10) at fe:16:3e:ec:bd:62 [ether] on eth0 VM内のARP Table VMのtapのMACアドレス ARP要求 ARP代理応答
  • 13.
    Okinawa Open Laboratory13 Calicoにおけるルーティング情報の伝達 n FelixがCalico Node内のVM/コンテナの経路情報をFIBに登録する n BIRDがFIBを読込み、他Calico NodeとBGPで経路交換する 受け取った経路を⾃NodeのFIBに書込む Calico Node BIRD VMbVMa FIB Felix Calico Node BIRD VMdVMc FIB Felix BGP Peer VMc, VMdの経路広告VMa, VMbの経路広告 経路情報 読込み/書込み 経路情報 読込み/書込み 経路情報 書込み 経路情報 書込み
  • 14.
    Okinawa Open Laboratory14 n ルートリフレクターを使⽤することでiBGPピアのフルメッシュを回避で きる n ⼤規模なほどCalico Nodeのピアリング負荷が削減できるので効果的 ルートリフレクターを使った経路広告 ルートリフレクター Calico Node BIRD Calico Node BIRD Calico Node BIRD Calico Node BIRD Calico Node BIRD Calico Node BIRD Calico Node BIRD Calico Node BIRD ルートリフレクターなし ルートリフレクターあり
  • 15.
    Okinawa Open Laboratory15 Calicoデータセンターファブリックをどう組むか
  • 16.
    Okinawa Open Laboratory16 Calicoデータセンターのデザインで考慮すること n BGPのASデザイン n BGPのPrivate AS番号には限りがある n 2Byte Private AS → 64512〜65534の1,023個 n AS枯渇の懸念がある場合には4Byte ASを使うことも可能(RFC6793) n 4Byte Private AS → 4200000000〜4294967294の94,967,295個 n BGPピア数 n BGPピア数が増えるとルーターの負荷が⾼くなるので⼤規模化が難しく なってくる n 各NW機器のルーティングテーブルサイズ n スパインスイッチ/ToRスイッチのルーティングテーブルサイズの上限を 超えないようにする
  • 17.
    Okinawa Open Laboratory17 Calico L3 Fabricの例 n L3スパインスイッチ n ToR間のフルメッシュピアを回避 しスケーラビリティを確保 n ラック単位のASデザイン n ラック単位にASを構成すること で、Calico Node単位にASを構成 するよりAS数を削減できる ToR L3SW Calico Node Calico Node Calico Node Calico Node Calico Node Calico Node ToR L3SW Calico Node Calico Node Calico Node Calico Node Calico Node Calico Node ToR L3SW Calico Node Calico Node Calico Node Calico Node Calico Node Calico Node ToR L3SW Calico Node Calico Node Calico Node Calico Node Calico Node Calico Node ToR L3SW Calico Node Calico Node Calico Node Calico Node Calico Node Calico Node … AS X Router AS Y Router AS Z Router eBGP Peer Spine AS A AS B AS C AS D AS N
  • 18.
    Okinawa Open Laboratory18 Project Calico Community
  • 19.
    Okinawa Open Laboratory19 Project Calico Community n Project Calico Documentation n http://docs.projectcalico.org/ n Source Code n Project Calico Organization @GitHub n Project OwnerはMetaswitch n https://github.com/projectcalico/ n Calico Users @Slack n 参加⼈数: 約1,300⼈ n https://calicousers.slack.com/
  • 20.
    Okinawa Open Laboratory20 沖縄オープンラボラトリ 概要 n 名称 n 一般社団法人 沖縄オープンラボラトリ (略称:沖縄オープンラボ、OOL 等) n 設立 n 2013年5月8日 NTTコミュニケーションズ、NEC 、イイガの3社にて設立 n 所在地 n 〒904-2241 沖縄県うるま市字兼箇段61番地1 沖縄情報通信センター ビジネス棟201号 n 電話:098-989-1940 n Web:http://www.okinawaopenlabs.org/ n Facebook:http://www.facebook.com/okinawaopenlabs/ n 代表 n 理事長 伊藤 幸夫 n 目的 n 情報通信における先進技術(次世代ICT基盤技術)の実用化、普及のための研究開発 活動 ⇒クラウドとSDNの検証活動を会員企業と実施 OOLおよびCalico検証PJ メンバー募集中!
  • 21.
  • 22.
    Okinawa Open Laboratory22 (参考) Calicoで問題になりそうなこと n BIRDルーティングテーブルの肥⼤化 n ワークロードのパフォーマンスに影響を与えないか n BIRDのルーティングテーブル検索のパフォーマンスに影響が出ないか n スケーラビリティ n BGPだからスケーラブルと⾔ってもルーターのルート数に上限があるのではないか n L2レスによる問題 n L2でDiscovery機能を使うアプリケーションが動かなくなるが回避策はあるか n BUMトラフィックの扱いはどうなっているのか n SNMPは動作するか n FWやLBがある環境で動作するか n セキュリティ n テナント分離はできるか n Calicoのネットワークポリシーだけでは不⼗分ではないか
  • 23.
    Okinawa Open Laboratory23 Hypervisor #2 (Compute2)Hypervisor #1 (Controller + Compute1) VM2 (cirros) VM1 (cirros) eth0eth0 $ arp Address HWtype HWaddress Flags Mask Iface 192.0.2.10 ether fa:16:3e:03:a3:35 CM tap3be12409-03 Compute2(192.168.122.11) ether 52:54:00:61:49:20 C enp0s3 192.168.122.1 ether 52:54:00:28:dd:eb C enp0s3 $ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 192.168.122.1 0.0.0.0 UG 0 0 0 enp0s3 192.0.2.4 compute2 255.255.255.255 UGH 0 0 0 enp0s3 192.0.2.10 * 255.255.255.255 UH 0 0 0 tap3be12409-03 192.168.122.0 * 255.255.255.0 U 0 0 0 enp0s3 tap3be12409-03 tapd9b9894d-8b $ ip addr show tapd9b9894d-8b 22: tapd9b9894d-8b: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether fe:16:3e:ec:bd:62 brd ff:ff:ff:ff:ff:ff inet6 fe80::261:feff:feed:cafe/64 scope link valid_lft forever preferred_lft forever $ ip addr show tap3be12409-03 23: tap3be12409-03: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether fe:16:3e:03:a3:35 brd ff:ff:ff:ff:ff:ff inet6 fe80::261:feff:feed:cafe/64 scope link valid_lft forever preferred_lft forever $ ip addr show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether fa:16:3e:03:a3:35 brd ff:ff:ff:ff:ff:ff inet 192.0.2.10/24 brd 192.0.2.255 scope global eth0 inet6 fe80::f816:3eff:fe03:a335/64 scope link valid_lft forever preferred_lft forever $ arp ? (192.0.2.4) at fe:16:3e:03:a3:35 [ether] on eth0 ? (192.0.2.1) at fe:16:3e:03:a3:35 [ether] on eth0 $ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 192.0.2.1 0.0.0.0 UG 0 0 0 eth0 192.0.2.0 * 255.255.255.0 U 0 0 0 eth0 $ ip addr show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether fa:16:3e:ec:bd:62 brd ff:ff:ff:ff:ff:ff inet 192.0.2.4/24 brd 192.0.2.255 scope global eth0 inet6 fe80::f816:3eff:feec:bd62/64 scope link valid_lft forever preferred_lft forever $ arp ? (192.0.2.1) at fe:16:3e:ec:bd:62 [ether] on eth0 ? (192.0.2.10) at fe:16:3e:ec:bd:62 [ether] on eth0 $ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 192.0.2.1 0.0.0.0 UG 0 0 0 eth0 192.0.2.0 * 255.255.255.0 U 0 0 0 eth0 $ arp Address HWtype HWaddress Flags Mask Iface 192.0.2.4 ether fa:16:3e:ec:bd:62 CM tapd9b9894d-8b Compute1(192.168.122.10) ether 52:54:00:22:2f:5a C enp0s3 192.168.122.1 ether 52:54:00:28:dd:eb C enp0s3 $ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 192.168.122.1 0.0.0.0 UG 0 0 0 enp0s3 192.0.2.4 * 255.255.255.255 UH 0 0 0 tapd9b9894d-8b 192.0.2.10 compute1 255.255.255.255 UH 0 0 0 enp0s3 192.168.122.0 * 255.255.255.0 U 0 0 0 enp0s3 enp0s3 192.168.122.0/24 enp0s3 (参考) Multi Node OpenStack with Calico n Routing Table, ARP Table実例

Editor's Notes

  • #10 見てお分かりになると思いますが、BGPとかLinuxのルーティングテーブルとかIptablesとかの枯れた技術を使っている
  • #21 ・オーバーレイがないことによる問題 ・スケーラビリティに関する問題 ・その他の個別に考えられる問題  いろいろ試してみると問題が出てくるんじゃないかなと言う風に思っている