Neutron

Neutron 在物理網絡環境之上提供滿足多租戶要求的virtual and service , Neutron 提供的網絡虛擬化能力包括:

(1)L2 ~ L7 Virtualization:

  • L2(virtual switch)

  • L3(virtual Router 和 LB)

  • L4-7(virtual Firewall )

    (2)網絡連通性: L2 and L3

    (3)租戶隔離性

    (4)網絡安全性

    (4)網絡擴展性

    (5)REST API

    (6)Extension service: LBaaS,FWaaS,VPNaaS

Neutron Network 根據網路類型

  • VLAN network(虛擬局域網) :基於物理 VLAN 網絡實現的虛擬網絡。共享同一個物理網絡的多個 VLAN 網絡是相互隔離的,甚至可以使用重疊的 IP 地址空間。每個支持 VLAN network 的物理網絡可以被視為一個分離的 VLAN trunk,它使用一組獨佔的 VLAN ID。有效的 VLAN ID range 1~4096

  • Flat network:基於不使用 VLAN 的物理網絡實現的虛擬網絡。每個物理網絡最多只能實現一個虛擬網絡

  • Local network(本地網絡):一個只允許在本服務器內通信的虛擬網絡,不知道跨服務器的通信。主要用於單節點上測試

  • GRE network (通用路由封裝網絡):一個使用 GRE 封裝網絡包的虛擬網絡。GRE 封裝的數據包基於 IP 路由表來進行路由,因此 GRE network 不和具體的物理網絡綁定

  • VXLAN network(虛擬可擴展網絡):基於 VXLAN 實現的虛擬網絡。同 GRE network 一樣, VXLAN network 中 IP 包的路由也基於 IP 路由表,也不和具體的物理網絡綁定

根據權限可以分為

  • Provider network:管理員創建的和物理網絡有直接映射關係的虛擬網絡

Three attribute about physical network

  • provider:network_type (網絡類型,包括 vxlan, gre, vlan, flat, local)

  • provider:segmentation_id (網段 ID, 比如 VLAN 的 802.1q tag, GRE 網絡的 Tunnel ID, VXLAN 網絡的 VNI)

  • provider:physical_network (物理網絡的邏輯名稱,比如 physnet1, ph-eth1, etc)

Some Feature: Provide Networks are shared by tenants. 不需要接入 Neutron Virtual Router

  • Tenant network:租戶普通用戶創建的網絡,其配置由 Neutorn 根據admin在系統中的配置決定。

Tenant 和 Provider 分別又可以搭配不同的網路類型 主要的其中幾個區別

  • Provider network 是由 Admin 用戶創建的,而 Tenant network 是由 tenant 普通用戶創建的。

  • Provider network 和物理網絡的某段直接mapping,比如對應某個 VLAN,因此需要預先在物理網絡中做相應的配置。而 tenant network 是虛擬化的網絡,Neutron 需要負責其路由等三層功能。

  • 對 Flat 和 VLAN 類型的網絡來說,只有 Provider network 才有意義。即使是這種類型的 tenant network,其本質上也是對應於一個實際的物理段。

  • 對 GRE 和 VXLAN 類型的網絡來說,只有 tenant network 才有意義,因為它本身不依賴於具體的物理網絡,只是需要物理網絡提供 IP 和 Multicast即可。

  • Provider network 根據 admin 用戶輸入的物理網絡參數創建;而 tenant work 由 tenant 普通用戶創建,Neutron 根據其網絡配置來選擇具體的配置,包括網絡類型,物理網絡和 segmentation_id。

  • Create Provider network 時允許使用不在配置項範圍內的 segmentation_id。

L2

VLAN (Virtual LAN)

VLAN switch port:

  • Access port:這些端口被打上了 VLAN Tag。離開交換機的 Access port 進入計算機的ethernet frame中沒有 VLAN Tag,這意味著連接到 access ports 的機器不會覺察到 VLAN 的存在。離開計算機進入這些端口的frame被打上了 VLAN Tag

  • Trunk port: 有多個交換機時,組A中的部分機器連接到 switch 1,另一部分機器連接到 switch 2。要使得這些機器能夠相互訪問,你需要連接兩台switch。 要避免使用一根電纜連接每個 VLAN 的兩個端口,我們可以在每個switch上配置一個 VLAN trunk port。Trunk port 發出和收到的data都帶有 VLAN header,該 header 表明了該數據包屬於那個 VLAN。因此,只需要分別連接兩個交換機的一個 trunk port 就可以轉發所有的數據包了。通常來講,只使用 trunk port 連接兩個switch,而不是用來連接機器和switch,因為機器不想看到它們收到的數據包帶有 VLAN Header

VLAN type

L2 and L3 functions in Neutron

  • Router

  • Network

  • Subnet

    Each VM has its vNIC (Implement by TAP/TUN/VETH)

    TAP used in L2 TUN used in L3 (device: $(< /dev/tap$tap_num))

  • Virtual device

    VETH

  • Virtual link

Linux bridge (qbrxxx) -> OpenStack use linux bridge to security group

All vNIC connected to phycical NIC by OVS

Neutron RPC

  • Agent RPC (dhcp agent、 l3 agent、 firewall agent以及metering agent的main函数中都能找到类似的创建一个Agent rpc服务端的代码)

  • plugin RPC

  • neutron-server RPC

L2 concept in OpenStack are implemented by OVS and Linux bridge, and the following network concept that we can also reach by

  • Flat

  • VLAN

  • GRE/VXLAN (Overlay)

  • Others extension service

    • FWaaS (FireWall-as-a-Service)

    • LBaaS (Load-Balancing-as-a-Service)

    • VPNaaS (VPN-as-a-Service)

In L2 concept, devices is negotiate by L2, doesn't need to use L3

L2 network by VLAN

L2 network by GRE/VXLAN

L3 Network

VLAN

  • Split L2 network

Linux Network Namespace (netns)

  • Split L3 network

Neutron Plugin

  • Tenant (Consider as a project: a group of user)

Neutron Floating IP

  • ip netns exec $router_id iptables -t nat -S (Print all rule like iptables-save)

DHCP server

config /var/lib/neutron/dhcp/$dhcp_sever_id/xxxx

Check DHCP setver interface

  • ip netns exec qdhcp-d24963da-5221-481e-adf5-fe033d6e0b4e ip addr

19: tap15865c29-9b: mtu 1500 qdisc noqueue state UNKNOWN group default link/ether fa:16:3e:4d:6b:44 brd ff:ff:ff:ff:ff:ff inet 10.0.22.201/24 brd 10.0.22.255 scope global tap15865c29-9b valid_lft forever preferred_lft forever inet6 fe80::f816:3eff:fe4d:6b44/64 scope link valid_lft forever preferred_lft forever

DHCP使用fix ip range的第一個可用IP地址做為其IP地址(10.0.22.201)它的interface的MAC地址 fa:16:3e:4d:6b:44 會出現在br-tun的rules裡面

Last updated

Was this helpful?