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.

20161129 neutron recent topic

844 views

Published on

Nov 29, 2016 Japan OpenStack Users Group 31st meetup presentation.
This presentation covers newer concepts introduced into Neutron recently and their use cases, for example, subnet pool, address scope, VLAN aware VMs (trunk port), Get-Me-A-Network, RBAC.

Published in: Internet
  • Be the first to comment

20161129 neutron recent topic

  1. 1. OpenStack Neutron の 最近のトピック Akihiro Motoki Nov 29, 2016
  2. 2. 今日のアジェンダ  最近のトピックについて、適当に取り上げます。  Subnet Pool  Address Scope  Dynamic Routing  Get Me A Network  VLAN aware VM  RBAC  他に聞きたい内容があれば可能な範囲で対応します。
  3. 3. Neutron の Network Model  テナントは複数の Network を作成できる  Network には Subnet (CIDR, GW等) を関連付ける。  IPアドレスの払い出し (IPAM)、テナント間での IP アドレス重複にも対応  Networkに複数のPort を作成できる。(L2SWのポートのイメージ)  VM の仮想NICはやルータのINF は Port と関連付けられる。 TenantA-VM1 10.0.0.2 TenantA-VM3 9.0.0.2 TenantA-VM2 10.0.0.3 External Net 88.0.0.0/18 Tenant-A Net1 10.0.0.0/24 Tenant-A Net2 9.0.0.0/24 L2 virtual network virtual server virtual interface (VIF) virtual subnet SNAT for external traffic Floating IP Neutron
  4. 4. Subnet Pool  <要望>  サブネットを作るときに、どの CIDR を使っていないか考えて作る必要があった。 いちいち使っていない CIDR を考えるのは面倒。  IaaS 管理者側で、使って良いアドレス範囲を定義したい。  NAT を行わない場合、テナント間で重複しないアドレス範囲を払い出したい  IPv6 ネットワークでは Floating IP サポートなし  外部ネットワークからプロジェクトネットワークに NAT なしでルーティングする場合
  5. 5. Subnet Pool  IP Address の Prefix Pool を作成しておいて、そこからアドレスを払い出す。  neutron subnetpool-create --pool-prefix 203.0.113.0/24 --default-prefixlen 26 --shared --is-default demo-subnetpool  neutron subnet-create --subnetpool demo-subnetpool --ip-version 4 demo-net  neutron subnet-create --use-default-subnetpool --ip-version 4 demo-net  neutron subnetpool-update --pool-prefix 203.0.113.0/24 --pool-prefix 198.51.100.0/24 demo-subnetpool Subnet Pool Pool Prefixes 203.0.113.0/24 Prefix Length default: 26 Max: 25, Min: 28 Subnet 1 203.0.113.0/26 Subnet 2 203.0.113.128/25 Subnet 3 203.0.113.64/27
  6. 6. Address Scope  どのアドレスどうしが通信可能かを制御するもの  Address Scope は Subnet Pool に関連付ける  ルーターは、接続されたインターフェースの Network の Subnet CIDR が所属す る Address Scope を特定し、同じ Scope の場合のみ転送を行う Net1 R Net2 Net3 同じAddress Scope に属すネットワーク は通信可能 違う Address Scope に属すネットワーク 間は通信不可 Subnet pool Address Scope Subnet pool Address Scope (or CIDR直接指定) CIDR直接指定の場合は Implicit Address Scope として扱われる
  7. 7. Address Scope 管理者が許可されたアドレス範囲のみを外部と通信させる方法  外部と通信可能な shared の Subnet Pool を作成しておく  External Network の Subnet を Address Scope に関連付けておく  テナントユーザーは外部と通信したい場合は shared Subnet Pool からSubnetを作成  テナントユーザーが CIDR を直接指定したサブネットでは、 同じアドレス帯であっても外部と通信不可 Net1 R Net2 Net3違う Address Scope に属すネットワーク 間は通信不可 Subnet pool Address Scope Subnet pool Address Scope (or CIDR直接指定) CIDR直接指定の場合は Implicit Address Scope として扱われる External Net
  8. 8. BGP Dynamic Routing  BGP を使って、テナントNWのCIDR情報を Upstream Router に広告する  フラットなアドレスデザインを行っているケースで有効 Self Service Network 1 10.1.1.0/24 Self Service Network 2 10.2.2.0/24 Self Service Network 3 10.3.3.0/24 Router1 203.0.113.1 10.1.1.1 Router2 203.0.113.2 10.2.2.1 Router3 203.0.113.3 10.3.3.1 Address Scope Upstream Router Provider Network (router:e xternal) L3 agent BGP agent BGP peering Internet AS 4321 AS 1234
  9. 9. Get Me A Network  シンプルなクラウドユースケースにおいて、単に VM を作りたいだけなのに、 わざわざ、ネットワークを作って、ルーターを接続して、、、というのは面倒、 という声あり。  VM 起動時に、プロジェクトに Neutron ネットワークがなければ自動的に作成し、 VM をそのネットワークに接続できるようになった。  Newton で Nova 側の対応が完了。Neutron: auto-allocated-topology 従来 Get me a network # create network # create subnet # nova boot --nic net-id #nova boot --nic auto --nic noneを指定すると、ネットワークのな いVMを起動することも可能になった
  10. 10. VLAN aware VM (trunk port)  VLAN Tag は VM に入ってくる前に削除されていたため、VMではつなぐネット ワーク数の vNIC を作成する必要があり、スケーラビリティに課題。  ネットワークを動的に増やす際には vNIC を増やす hotplug 対応が必要だった。  VLAN aware VM 機能により、VLAN タグで識別できるようになり、VM に接続 する vNIC を削減し、ネットワークの動的な拡張も容易になった。 VM vNIC1 vNIC2 vNIC3 vNIC4 Network1 Network2 Network3 Network4 VM Network1 Network2 Network3 Network4 Trunk VLAN1 VLAN2 VLAN3 VLAN4 従来 VLAN aware VM
  11. 11. VLAN aware VM  Check “trunk” and “trunk-details” extensions are enabled.  openstack extension list –network | grep trunk  Trunk の作成  openstack port create --network trunk-net trunk-port  openstack network trunk create --parent-port <port ID> trunk  サブポートの Trunk への追加  openstack port create --network trunked-net trunked-port  openstack network trunk set --subport ¥ port=<trunked-port ID>,segmentation-type=vlan,segmentation-id=100 ¥ trunk  インスタンスの起動  openstack server create --nic port-id=<parent-port ID>
  12. 12. RBAC  RBAC = Role Based Access Control  従来の Neutron では、リソースは Private か Shared のみ  RBAC 機能を使うと、指定したプロジェクトとだけリソースを共有できる  あるプロジェクトとだけネットワークを共有する、など  現在サポートされているのは “Network” と “QoS policy” のみ
  13. 13. RBAC  Network でサポートされている共有モード  ネットワークへのポート作成を許可 (Shared Flag 相当)  Router Gateway ポートの作成 (External Network 相当)  用途:特定のユーザー専用の External Network を作成する  neutron rbac-create --target-tenant <project ID> --type network --action access_as_shared <object ID>  neutron rbac-create --target-tenant <project ID> --type network --action access_as_external <object ID>  neutron rbac-list
  14. 14. まとめ  最近の Neutron に導入されたコンセプトについて紹介しました。  最近はドキュメントに力をいれており、今日お話した内容の多くは OpenStack Networking Guide にも書かれています。  http://docs.openstack.org/newton/networking-guide/
  15. 15. おまけ
  16. 16. OpenStack Logo が変わりました https://www.openstack.org/brand/openstack-logo/

×