高手教你如何在OVS上創(chuàng)建vlan
Neutron自身并不提供任何網(wǎng)絡(luò)功能,它只是一個(gè)架子。Neutron的網(wǎng)絡(luò)功能大部分是Plugin提供的,除了DHCP和L3-agent等的某些部分功能。
Neutron將網(wǎng)絡(luò)按照三層交換機(jī)的概念分為:
Network:相當(dāng)于交換機(jī)根據(jù)vlan創(chuàng)建的一個(gè)三層接口;
Subnet:相當(dāng)于交換機(jī)創(chuàng)建了一個(gè)三層接口地址;
Port:相當(dāng)于交換機(jī)的一個(gè)物理端口,但是這個(gè)端口有一個(gè)MAC地址;
Neutron 有什么?
L2
在 L2 層,由虛擬交換機(jī)來(lái)實(shí)現(xiàn)。虛擬交換機(jī)有下列這些種:
Linux 網(wǎng)橋,基于 Linux 內(nèi)核的網(wǎng)橋。需要說(shuō)明的是,網(wǎng)橋就是交換機(jī),是交換機(jī)的一種常用的書(shū)面叫法。
OpenvSwitch(OVS):OVS 有兩種模式,一種是當(dāng)普通的虛擬交換機(jī)來(lái)使用,另一個(gè)是和 OpenFlow 控制器協(xié)作當(dāng)作 OpenFlow 控制器來(lái)使用。
一些基于 Overlay 技術(shù)的 SDN 實(shí)現(xiàn),如 Dove 等。
一些非開(kāi)源的商業(yè)交換機(jī)。
目前,Neutron 已經(jīng)實(shí)現(xiàn)的 L2 層插件如下圖 6 所示,linuxbridge 實(shí)現(xiàn)了 Linux 網(wǎng)橋,openvswitch 插件實(shí)現(xiàn)了 openvswitch 網(wǎng)橋,bigswitch 插件實(shí)現(xiàn)了一種 SDN 控制器,ml2 是一種通用的插件(這些 L2 層的插件主要分寫(xiě)數(shù)據(jù)庫(kù)的 plugin 部分和運(yùn)行在計(jì)算節(jié)點(diǎn)的 agent 部分,plugin 寫(xiě)數(shù)據(jù)庫(kù)的字段有差異但不多,所以代碼重復(fù),ml2 可以理解為一個(gè)公共的 plugin)。且每種插件基本上實(shí)現(xiàn)了 FLAT, VLAN, VXLAN, GRE 等四種拓?fù)洹?/p>
Neutron 中 L2 層插件
Neutron 中 L2 層插件
L3
Neutron 的 L3 層由基于 namespace ipv4 forward + iptables 實(shí)現(xiàn)。
需要啟動(dòng) l3-agent 進(jìn)程,如果需要 DHCP 服務(wù)的話(huà)也需要啟動(dòng) dhcp-agent 進(jìn)程。
L4-L7
LBaaS 基于 Haproxy 實(shí)現(xiàn);FWaaS 基于 iptables 實(shí)現(xiàn);VPNaaS 有基于 IPSec 的 VPN 實(shí)現(xiàn),也有基于 MPLS 的 VPN 實(shí)現(xiàn),也有基于 SSL 的 VPN 實(shí)現(xiàn)。
截止到筆者寫(xiě)此文為止,目前只有 LBaaS 能用,其他的 FWaaS, VPNaaS 和 NATaaS 仍在開(kāi)發(fā)中。但對(duì)于 FWaaS 有 Security Group 功能可用,區(qū)別在于前者由于作為獨(dú)立服務(wù)也能部署在網(wǎng)絡(luò)節(jié)點(diǎn)上提供邊緣防火墻特性,后者依然能夠在計(jì)算節(jié)點(diǎn)上使用 iptables 規(guī)則控制從虛機(jī)出去的,進(jìn)來(lái)虛機(jī)的,虛機(jī)之間的流量。
這樣neutron的CLI或者h(yuǎn)orizon的頁(yè)面配置了網(wǎng)絡(luò)功能后,就會(huì)調(diào)用neutron的API,然后如果plugin是OVS的話(huà),就會(huì)生成對(duì)應(yīng)的比如OVS的命令下發(fā)到底層虛擬網(wǎng)絡(luò)設(shè)備,底層就提供了相應(yīng)的網(wǎng)絡(luò)功能(如果支持的話(huà),有的不支持也不會(huì)報(bào)錯(cuò),比如H版對(duì)IPV6轉(zhuǎn)發(fā)的支持)。這些網(wǎng)絡(luò)功能包括二層vlan或vxlan等租戶(hù)之間的隔離、floating IP之間的三層轉(zhuǎn)發(fā)和NAT轉(zhuǎn)換、防火墻、VPN和負(fù)載均衡等,看官網(wǎng)還提供有IDS和DC互聯(lián),但是還沒(méi)有驅(qū)動(dòng)力去調(diào)研。
如果你能配置出如下圖3中網(wǎng)絡(luò)且都能訪(fǎng)問(wèn)外網(wǎng)和相互隔離,說(shuō)明你已經(jīng)對(duì)底層有了一定了解:
neutron配置后的一種網(wǎng)絡(luò)拓?fù)鋵?shí)例
上面圖中,如果用OVS作為plugin的話(huà)需要注意,里面的一個(gè)虛擬路由器并不是直接對(duì)應(yīng)創(chuàng)建一個(gè)OVS,很有迷惑性,在底層其僅僅是在OVS上創(chuàng)建了一個(gè)vlan,配置了一個(gè)三層接口地址,并且添加了一個(gè)和這個(gè)網(wǎng)段相連的虛擬port。有興趣的可以配置成功后,到底層詳細(xì)dump下。