openstack-neutron基本的網絡類型以及分析

【概述】 html

Neutron是OpenStack中負責提供網絡服務的組件,基於軟件定義網絡的思想,實現了網絡虛擬化下的資源管理,即:網絡即服務數據庫

   

【功能】 安全

·二層交換 網絡

Neutron支持多種虛擬交換機,通常使用Linux Bridge和Open vSwitch建立傳統的VLAN網絡,以及基於隧道技術的Overlay網絡,如VxLAN和GRE(Linux Bridge只支持VxLAN)。 架構

   

·三層路由 負載均衡

Neutron從J版本開始,正式加入了DVR(Distributed Virtual Router)服務,將本來集中在網絡節點上的部分服務分散到了計算節點上。 ide

經過namespace中使用ip route或者iptables實現路由或者NAT,也能夠經過openflow給OVS下發流表來實現。 spa

   

·負載均衡 插件

關於LBaaS的相關內容,能夠參照:https://www.cnblogs.com/liuxia912/p/11209968.html code

   

·防火牆

Neutron有兩種方式來保證網絡的安全性,分別爲防火牆和安全組,均使用iptables實現,前者限制路由器的報文,後者限制進出虛機的報文。

   

【架構】

 

·neutron Server

守護進程和一些插件,能夠安裝在網絡節點,也能夠安裝在控制節點。

neutron-server提供API接口,並把API的調用請求傳給已經配置好的插件進行後續處理。

   

·neutron L2 agent

爲虛擬機提供2層交換服務,傳輸以MAC地址爲基礎。

   

·neutron L3 agent

爲虛擬機訪問外部網絡提供三層轉發服務,負責路由浮動IP分配地址轉換安全組管理

經過iptables實現安全組,路由和地址轉換。

每一個虛擬路由運行在一個network namespace中,每一個namespace由qroute -< router -< UUID命名。

   

·neutron-dhcp-agent

爲虛擬機提供DHCP服務。

   

【建立虛擬機的網絡過程】

 

 

1. nova-compute向Neutron Server發送一個請求虛擬機IP地址的請求

2. Neutron Server收到請求後爲虛擬機建立MAC和IP地址,並存儲到數據庫中

3. Neutron Server將信息發送給DHCP-agent

4. DHCP-agent收到信息後將對應信息發送給dnsmasq,dnsmasq將信息保存起來

5. nova建立虛機後會初始化MAC地址

6. 當虛機啓動的時候,默認的ip地址是0.0.0.0,會發送一個廣播,dnsmasq會監聽到虛擬機發送的報文,而後將對應MAC地址的IP地址返回給虛擬機,這樣虛擬機啓動完成後就會有IP地址了

   

【網絡虛擬化】

網絡(network)是一個隔離的二層網段,相似於物理網絡中的LAN(VLAN)。

具體一點,它是爲建立它的租戶保留的一個廣播域

端口和子網始終被分配給某個特定的網絡。

   

跨網絡的子網之間的流量必須走L3 Vritual Router

每一個網絡使用本身的DHCP Agent,每一個DHCP Agent在一個Network namespace內。

不一樣網絡內的IP能夠重複。

   

根據建立網絡的用戶,Neutron L2 network 能夠分爲:

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

Tenant network: 租戶(普通用戶)建立的網絡,物理網絡對建立者透明,配置由 Neutron 的配置決定。

   

Provider Network 是由 OpenStack 管理員建立的,直接對應於數據中心的已有物理網絡的一個網段。這種網絡有三個和物理網絡有關屬性:

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)

   

   

【虛擬網絡類型】

·Local

本地的Linux Bridge,除了虛擬機的網卡,不鏈接其餘的網絡設備,實際場景使用較少。

   

·Flat

不帶vlan tag的網絡,至關於local網絡的Linux Bridge鏈接到一個物理網卡,該網絡中的instance能夠於網絡中的instance通訊。

全部的租戶都在同一個網絡內,沒有進行網絡隔離容易產生廣播風暴

能夠跨節點,實際場景也較少。

neutron net-create NAME --provider:network_type flat \

        --provider:physical_network PHYS_NET_NAME

   

·VLAN

基於物理Vlan網絡實現,共享同一個物理網絡的多個Vlan網絡是相互隔離的,甚至可使用重疊的IP空間。

每一個支持VLAN network的物理網絡能夠被視爲一個分離的VLAN trunk,使用一組獨佔的vlan id。(有效段爲1~4096

私有云網絡應用較多。

neutron net-create NAME --provider:network_type vlan \

        --provider:physical_network PHYS_NET_NAME \

        --provider:segmentation_id VID

   

·VXLAN

基於隧道技術的 overlay 網絡,經過惟一的 VNI 區分於其餘的 vxlan 網絡,不和具體的物理網絡綁定

在 vxlan 中,數據包經過 VNI 封裝成UDP包進行傳輸,由於二層的包經過封裝在三層傳輸,可以克服vlan和物理網絡基礎設施的限制。

neutron net-create NAME --provider:network_type vxlan \

        --provider:segmentation_id TUNNEL_ID

   

·GRE

與vxlan相似的一種overlay網絡,使用IP包進行封裝。
GRE 封裝的數據包基於 IP 路由表來進行路由,所以 GRE network 不和具體的物理網絡綁定。(基於隧道)

neutron net-create NAME --provider:network_type gre \

        --provider:segmentation_id TUNNEL_ID

   

【虛擬網絡類型特色以及應用場景】

模式

原理

優勢

缺點

vlan

劃分vlan,使用vlan_id隔離廣播域

適合小規模網絡部署
大二層廣播通信方式
能夠不須要網絡節點

必須和物理交換機的vlan_id綁定,最多隻能有4096個
存在二層通信的廣播風暴問題
基於IP地址的子網劃分問題

GRE

和vlan模式不一樣的.是vlan id 會被轉換成gre id,外面在封IP.經過隧道轉發出去.

2層的包,經過IP來轉發.物理層的3層通訊,虛擬上的2層通訊.

gre id 能夠有1600W個
沒有廣播風暴

沒有mac地址表過大的問題,物理交換機,只須要記住一個eth0的mac地址

3層網絡的通訊

兩個階段須要建隧道,方案不成熟

VXLAN

相比較於gre,不使用隧道

本質: 2層的包+封裝vxlan id + 組播地址+ + udp報頭 + ip 報頭+數據包

不須要建隧道,使用udp

方便的安全策略

和gre id同樣,也有1600W可使用

  

   

   

【參考】

https://www.jianshu.com/p/de03140fc60e

https://www.ait24.com/1066.html

https://www.ait24.com/1139.html

http://www.mamicode.com/info-detail-1749637.html

原文出處:https://www.cnblogs.com/liuxia912/p/11218085.html

相關文章
相關標籤/搜索