Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,553 views

Published on

タイトル:Project calico introduction
講演者:安座間 勇二
アジェンダ:
- Project Calicoとは?
- Calicoの仕組み
- Calicoデータセンターファブリックをどう組むか
- Calicoコミュニティについて

Published in: Technology
  • Be the first to comment

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

  1. 1. Project Calico Introduction Jul 26, 2017 Yuji Azama NEC Solution Innovators, ltd Okinawa Open Laboratory
  2. 2. Okinawa Open Laboratory 2 沖縄オープンラボラトリ 概要  名称  一般社団法人 沖縄オープンラボラトリ (略称:沖縄オープンラボ、OOL 等)  目的  情報通信における先進技術(次世代ICT基盤技術)の実用化、普及のための研究開発活動 ⇒クラウドとSDNの検証活動を会員企業と実施  設立  2013年5月8日 NTTコミュニケーションズ、NEC 、イイガの3社にて設立  所在地  〒904-2241 沖縄県うるま市字兼箇段61番地1 沖縄情報通信センター ビジネス棟201号  電話:098-989-1940  Web:http://www.okinawaopenlabs.org/  Facebook:http://www.facebook.com/okinawaopenlabs/  代表  理事長 伊藤 幸夫
  3. 3. Okinawa Open Laboratory 3 自己紹介  本名  安座間 勇二 (あざま ゆうじ)  出身地  沖縄県  所属  2014入社~2017/03  NECソリューションイノベータ 東京本社  2017/04~現在  同社 沖縄支社  これまでの沖縄オープンラボでの活動  Service Chaining PJ メンバー (2014~2015)  ThinkIT「OpenDaylightを始めよう!」
  4. 4. Okinawa Open Laboratory 4 本日お話したいこと  Project Calico Introduction  Project Calicoとは?  Calicoの仕組み  Calicoデータセンターファブリックをどう組むか  Calicoコミュニティについて
  5. 5. Okinawa Open Laboratory 5 Project Calicoとは
  6. 6. Okinawa Open Laboratory 6 Calico Cat = 三毛猫
  7. 7. Okinawa Open Laboratory 7 Project Calico  どんなPJか?  OpenStack VMやコンテナに対してL3ルーティングベースのネットワーキング機能を提 供するOSSプロジェクト  Apache 2.0 license  最新バージョンはv2.3で、リリースは不定期  歴史  2014 MetaswitchがProject Calicoを発表  2016 MetaswitchとCoreOSがTigera社を設立 CalicoとFlannelを統合したCanalを公開
  8. 8. Okinawa Open Laboratory 8 Calicoが対応しているプロジェクト  OpenStack  Neutron ML2 PluginとしてCalicoを使用でき、OpenStackのネットワーキングとして動作 (networking-calico)  Kubernetes  KubernetesのAddonとしてFlannelがVxLANを使用するのに対して、CalicoはL3ルーティングネ ットワークとネットワークポリシーを提供 (CNI Network plugin)  Docker  Docker network pluginとして動作し、ルーティングとネットワークポリシーを提供 (libnetwork plugin)  Mesos  CalicoがMesosに対してIPネットワーキングとセキュリティポリシーを提供 (CNI Network plugin)  rkt  Calicoがrktコンテナにネットワーキングとネットワークポリシーをサポート (CNI Network plugin)
  9. 9. Okinawa Open Laboratory 9 Calicoのアプローチ  ピュアなL3ルーティングベースの技術でVM/コンテナ/ベアメタル (および混在環境)に対してネットワーキングを提供する  経路情報の伝播手段としてBGPを利用する  LinuxのForwarding Information Base(FIB)でルーティングを提供する  iptablesでネットワークポリシーを提供する
  10. 10. Okinawa Open Laboratory 10 Calicoにおけるルーティング情報の伝達  FelixがCalico Node内のVM/コンテナの経路情報をFIBに登録する  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の経路広告 経路情報 読込み/書込み 経路情報 読込み/書込み 経路情報 書込み 経路情報 書込み
  11. 11. Okinawa Open Laboratory 11 Calicoのメリット  Performance  オーバーレイのカプセル化が発生しないためパフォーマンスが優れている  Simple  使い慣れたtracerouteやpingでデバッグできる  Scalable  データセンターNWが、BGPを使用したインターネットと同じ原理で構築できるため スケーラビリティに優れている  L2通信で発生していたARPブロードキャストを抑制できる  DC間のネットワーク延伸が実現しやすい (L2延伸が不要)  Secure  VMやコンテナに対して、トラフィックの方向やIPアドレス、ポート番号などの ネットワークポリシー制限が行える
  12. 12. Okinawa Open Laboratory 12 Calicoの仕組み
  13. 13. Okinawa Open Laboratory 13 Compute Host Felix BIRD WorkloadWorkloadWorkload FIB Compute Host Felix BIRD WorkloadWorkloadWorkload FIB Compute Server(calico node) Felix BIRD WorkloadWorkloadWorkload FIB Calicoアーキテクチャ  Felix (プロセス名: calico-felix)  Workload(※)が動作する全ホストに常駐するエージェント  etcdからWorkload情報を受取り経路情報とACLを設定する  BIRD (プロセス名: bird, bird6)  Calico Node間で経路情報を交換するルーティングデーモン  FIBを監視しWorkloadの経路を検出/広告する  Etcd またはEtcd Proxy(プロセス名: etcd)  Calicoのデータストア  OpenStack環境ではOpenStackデータベースのミラー  Orchestrator Plugin  OpenStackやKubernetesなどのプラグイン  E.g. networking-calico, calico CNI Plugin Etcd Orchestrator Plugin ※ Calicoで言うWorkloadとはCalicoネットワークによって接続されるVMやコンテナなどのこと BGP Peer IPTables IPTables IPTables
  14. 14. Okinawa Open Laboratory 14 動作の流れ (OpenStackの場合) Compute Node etcd Felix (calico-agent) neutron-server (networking-calico) Forwarding Information Base (FIB) IPTables BIRDBIRD BIRD Route Reflector ① VM情報(Iface, MAC, IP, SG Rule)書込み ③ 経路情報書込み ①’ 経路情報読込み (2sec ポーリング) ② VM情報(Iface, MAC, IP, SG Rule)読込み (10sec ポーリング) ③ ACL設定書込み ④ ステータス読込み④ ステータス読込み ⑥ ステータス読込み ⑤ ステータス書込み ②’ 経路情報をRRへ広告③’ 経路情報広告
  15. 15. Okinawa Open Laboratory 15 CalicoにおけるARP解決  Proxy ARP  Proxy ARPとは、他のデバイス宛のARP要求に対して、本来の問合せ先に代わ ってARP応答する機能  CalicoにおけるProxy ARPの動作  Calicoにおいては、宛先IPのVMに代わってCalico NodeがARP代理応答を行う  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代理応答
  16. 16. Okinawa Open Laboratory 16  各ノードがルーターなのでフルメッシュでBGPピアが張られる  大規模化するとピアリングの負荷が高くなる (コネクション数、メッセージ数)  ルートリフレクターを利用した経路広告  iBGPピアのフルメッシュを回避できる BGPにおけるスケーラビリティ ルートリフレクター Calico Node BIRD Calico Node BIRD Calico Node BIRD Calico Node BIRD Calico Node BIRD Calico Node BIRD Calico Node BIRD Calico Node BIRD ルートリフレクターなし ルートリフレクターあり
  17. 17. Okinawa Open Laboratory 17 Calicoデータセンターファブリックをどう組むか
  18. 18. Okinawa Open Laboratory 18 Calico L3 Fabricの例  L3スパインスイッチ  ToR間のフルメッシュピアを回避 しスケーラビリティを確保  ラック単位のASデザイン  ラック単位に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
  19. 19. Okinawa Open Laboratory 19 Calicoデータセンターのデザインで考慮すること  BGPのASデザイン  BGPのPrivate AS番号には限りがある  2Byte Private AS → 64512~65534の1,023個  AS枯渇の懸念がある場合には4Byte ASを使うことも可能(RFC6793)  4Byte Private AS → 4200000000~4294967294の94,967,295個  BGPピア数  BGPピア数が増えるとルーターの負荷が高くなるので大規模化が難しくなってくる  ルートリフレクターの導入  各NW機器のルーティングテーブルサイズ  スパインスイッチ/ToRスイッチのルーティングテーブルサイズの上限を考慮する
  20. 20. Okinawa Open Laboratory 20 (参考) Calicoで気になること  L2レスによる問題  L2でDiscovery機能を使うアプリケーションが動かなくなるが回避策はあるか  BUMトラフィックの扱いはどうなっているのか  セキュリティ  テナント分離はできるか  Calicoのネットワークポリシーだけで十分か  BIRDルーティングテーブルの肥大化  ワークロードのパフォーマンスに影響を与えないか  BIRDのルーティングテーブル検索のパフォーマンスに影響が出ないか  スケーラビリティ  BGPだからスケーラブルと言ってもルーターのルート数に上限があるのではないか  SNMPは動作するか  FWやLBがある環境で動作するか
  21. 21. Okinawa Open Laboratory 21 Project Calico Community
  22. 22. Okinawa Open Laboratory 22 Project Calico Community  Project Calico Documentation  http://docs.projectcalico.org/  Source Code  Project Calico Organization @GitHub  Project OwnerはMetaswitch  https://github.com/projectcalico/  Calico Users @Slack  参加人数: 約1,300人  https://calicousers.slack.com/
  23. 23. Thank you! OOLでCalico検証の参加者絶賛募集中! ぜひお声かけください!
  24. 24. Okinawa Open Laboratory 24 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  Routing Table, ARP Table実例

×