深入理解OpenStack Neutron之---3 Neutron的資源模型---讀書筆記

目標:
掌握neutron資源模型以及主要表的表結構。

目錄:
1 Neutron資源的租戶隔離
2 Network


1 Neutron資源的租戶隔離
實現:通過字段tenant_id實現資源的租戶隔離
數據隔離:    不同租戶的網絡之間不能打通,
            br-int,br-ethx通過VLAN來隔離各個租戶網絡數據流量
            br-tun通過tunnel隔離租戶網絡流量
一個計算節點有:
一個br-int
一個br-ethx/br-tun
多個qbr(qbr綁定了安全組)
多個router/dvr(運行在namespace中)

2 Network
2.1 Network基礎
含義: 二層網絡的資源模型,支持的網絡有: Local, VLAN, Flat, VXLAN, GRE, Geneve等
種類:
Local: 主機內的網絡類型
VXLAN, GRE, Geneve: 隧道型網絡
Flat, VLAN: 非隧道型網絡

2.2 Network表結構
名稱                        類型        描述
admin_state_up                boolean        Network管理狀態,true: up
availability_zone_hints        array        指定該Network的DHCP服務可以部署的AZ列表
availability_zones            array        指明Network的DHCP實際部署在哪些AZ中
created_at                    string        網絡創建時間
id                            string        網絡的ID
mtu                            integer        最大傳輸單元,以字節爲單位
name                        string        網絡名稱
port_security_enabled        boolean        網絡的端口安全狀態,true: enabled。
project_id                    string        項目id
provider:network_type        string        物理網絡類型,比如: flat,vlan,gre。
provider:physical_network    string        物理網絡
provider:segmentation_id    integer        物理網絡進行分片後的分片id。含義取決於: provider:network_type
                                        若網絡類型是vlan,那麼該字段表示vlan id;如果是gre,表示gre key
qos_policy_id                string        Network關聯的qos policy id
router:external                boolean        表示這個網絡是否關聯到路由器上的外部網絡
segments                    array        一組運營商分片網絡
shared                        boolean        表示網絡是否可以被所有租戶共享,默認只有管理員纔可以修改這個值
status                        string        網絡的狀態: ACTIVE, DOWN, BUILD, ERROR
subnets                        array        網絡關聯的子網列表
tenant_id                    string        項目id
updated_at                    string        網絡修改的時間,UTC
vlan_transparent            boolean        標識網絡的VLAN透傳模式,true: VLAN透傳,false: 不透傳
description                    string        描述信息

分析:
Subnet和Port都隸屬於Network。
Subnet有一個字段network_id指向其所屬的Network
Port有一個字段network_id指向其所屬的Network

2.3 運營商網絡和租戶網絡
租戶網絡:    租戶創建的網絡,其信息配置在文件etc/neutron/plugins/ml2/ml2_conf.ini中,舉例如下:
            #[etc/neutron/plugins/ml2/m12_conf.ini]
            tenant network types=vxlan
            [ml2_type_vxlan]
            vni_ranges = 1:1000
            解釋:租戶網絡的網絡類型是VXLAN,而相應的VNI是由Neutron分配,不過VNI的取值要落在範圍1~1000

運營商網絡: 運營商管理員創建的網絡,創建網絡傳入參數:
            provider:network_type, provider:physical_network, provider:segmentation_id
            使用場景: 映射一個不在neutron管理範圍內的網絡
            
物理網絡:    provider:physical_network,即運營商網絡需要匹配的網絡。
            VLAN和Flat網絡需要改參數,VXLAN網絡不需要該參數。
            本質:    非隧道型網絡br-int連接的網橋爲br-ethx -->br-ethx與host的物理網口對接
                    br-ethx提前創建好,與物理網口對接也建立好。
            實現:    用戶創建網絡時,指定該字段(例如"市場部網絡"),neutron做正確轉發。
            對於隧道型網絡:    報文外面有隧道Header(包含隧道的源IP和目的IP),主機IP協議棧根據
                            目的IP找合適的網卡將報文發送出去。
                            創建非隧道型運營商網絡無需該字段。

Neutron選擇br-ethx方案:
            假設br-ethx 的實現方法是 OVS (Open vSwitch ),那麼這個配置文件就是 etc/neutron/plugins/m12/
            open vs witch_ agent.ini 其內容舉例如下:
            # [etc / neutron/ plugins/ml2 / openvswitch_agent.ini) 
            bridge_mappings = physnetl:br-ethxl, physnet 2 :br-ethx2 
            這個內容表明,要想連接 physnetl ,就得先連接 br-ethxl
            實現過程:     根據創建運營商網絡的provider:physical_network,找到對應配置文件,
                        就知道選擇哪個br-ethx

            創建租戶網絡:    配置文件etc/neutron/plugins/ml2/ml2_conf.ini 假設網絡類型是VLAN ,配置文件的內容例如:
                            [ml2_type_vlan) 
                            network_vlan_ranges = physnetl:l000:2999,physnet2:3000:4000 
                            該配置信息表明有兩個物理網絡,其中physnetl VLAN 範圍是1000到2999, physnet2 
                            VLAN 範圍是3000到4000。        
                        
2.4 Bridge的VLAN接口模式

參考:
深入理解OpenStack Neutron

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章