成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Neutron和SDN集成現(xiàn)狀分析

網(wǎng)絡(luò)
Neutron的發(fā)展自誕生到現(xiàn)在,可謂是一波三折,其命名先是由nova-network,改為quantum,因其與一家公司名沖突,隧又改為Neutron。表面上的命名變化,又何嘗不蘊(yùn)含著其深層次的發(fā)展和演進(jìn),以Plugin、高級(jí)網(wǎng)絡(luò)服務(wù)功能等突出應(yīng)用,充分顯示著它不斷的豐富,就像其命名“中子”一樣,彰顯著它在浩瀚宇宙中,熠熠生輝的光芒。

一.Neutron概要

總所周知,Neutron是OpenStack眾多項(xiàng)目中的核心項(xiàng)目之一,代表其網(wǎng)絡(luò)服務(wù)。

Neutron的發(fā)展自誕生到現(xiàn)在,可謂是一波三折,其命名先是由nova-network,改為quantum,因其與一家公司名沖突,隧又改為Neutron。表面上的命名變化,又何嘗不蘊(yùn)含著其深層次的發(fā)展和演進(jìn),以Plugin、高級(jí)網(wǎng)絡(luò)服務(wù)功能等突出應(yīng)用,充分顯示著它不斷的豐富,就像其命名“中子”一樣,彰顯著它在浩瀚宇宙中,熠熠生輝的光芒。

下面,借用“北京-小武”一文《Neutron的SDN化》中,Neutron是什么和Neutron的主要功能為線索,來添加自己的認(rèn)識(shí)。

1.Neutron是什么

Openstack核心項(xiàng)目中的網(wǎng)絡(luò)配置管理組件

Neutron的網(wǎng)絡(luò)服務(wù)功能包括L2-L7層

Neutron用于管理配置VM所用的網(wǎng)絡(luò)

Neutron有很多SDN控制器作為ML2 Plugin和ML3 Plugin(注:ONOS在計(jì)劃中)

2.Neutron的主要功能

1)ML2功能

ML2功能包括Port、Subnet、Network、Qos、安全組等,Linux 網(wǎng)橋是虛擬交換機(jī)的一種實(shí)現(xiàn),ML2 層使用 VLAN 和VXLAN(利用 L3 層擴(kuò)展ML2 層的遂道技術(shù))來實(shí)現(xiàn)物理隔離。

在ML2 層,由虛擬交換機(jī)來實(shí)現(xiàn)。虛擬交換機(jī)有下列這些:

l Linux 網(wǎng)橋,基于 Linux 內(nèi)核的網(wǎng)橋。網(wǎng)橋就是交換機(jī)的具體體現(xiàn),比如OpenStack中常見的br-int。

l OpenvSwitch(OVS):OVS 有兩種模式,一種是當(dāng)普通的虛擬交換機(jī)來使用,另一個(gè)是和 OpenFlow 控制器協(xié)作當(dāng)作SDN交換機(jī)來使用。

l 一些基于 Overlay 技術(shù)的 SDN 實(shí)現(xiàn),如VXLAN等。

l 一些非開源的商業(yè)交換機(jī)。

目前,Neutron 已經(jīng)實(shí)現(xiàn)的 ML2 層Drivers如下圖所示(Liberty版代碼)。

Neutron和SDN集成現(xiàn)狀分析

linuxbridge 實(shí)現(xiàn)了 Linux 的內(nèi)核網(wǎng)橋,openvswitch driver實(shí)現(xiàn)了 openvswitch 網(wǎng)橋,hyperv driver用于實(shí)現(xiàn)和微軟的Hyper-V虛擬化產(chǎn)品進(jìn)行交互,brocade的driver用于和博科的SDN產(chǎn)品進(jìn)行交互,其他類似。ml2 是一種通用、核心且基礎(chǔ)的插件,這些 L2 層的插件主要分寫數(shù)據(jù)庫的plugin 部分和運(yùn)行在計(jì)算節(jié)點(diǎn)的 agent 部分。在Neutron中,ML2是其Core Plugin。詳情,請(qǐng)參見Neutron代碼的入口配置文件neutron/setup.cfg,其代碼如下:

neutron.core_plugins =

bigswitch = neutron.plugins.bigswitch.plugin:NeutronRestProxyV2

brocade = neutron.plugins.brocade.NeutronPlugin:BrocadePluginV2

ml2 = neutron.plugins.ml2.plugin:Ml2Plugin

nuage = neutron.plugins.nuage.plugin:NuagePlugin

ML2 plugin的代碼因?yàn)橛泻芏嘞嗤闶褂昧藦?fù)用和模塊間的導(dǎo)入、裝飾器等語法,ml2 可以理解為一個(gè)公共的 plugin。且每種插件基本上實(shí)現(xiàn)了 FLAT、local 、VLAN、VXLAN、GRE 等幾種拓?fù)洹T斍椋?qǐng)參見Neutron代碼的入口配置文件neutron/setup.cfg(neutron.ml2.type_drivers部分),其代碼如下:

neutron.ml2.type_drivers =

flat = neutron.plugins.ml2.drivers.type_flat:FlatTypeDriver

local = neutron.plugins.ml2.drivers.type_local:LocalTypeDriver

vlan = neutron.plugins.ml2.drivers.type_vlan:VlanTypeDriver

geneve = neutron.plugins.ml2.drivers.type_geneve:GeneveTypeDriver

gre = neutron.plugins.ml2.drivers.type_gre:GreTypeDriver

vxlan = neutron.plugins.ml2.drivers.type_vxlan:VxlanTypeDriver

2)L3功能

L3功能,包括Router/DVR、DCHP等服務(wù),L3層通過 ipv4 forward 功能進(jìn)行靜態(tài)路由轉(zhuǎn)發(fā),使用iptables的SNAT和DNAT規(guī)則實(shí)現(xiàn)內(nèi)網(wǎng)中的虛機(jī)訪問外網(wǎng)和外網(wǎng)訪問內(nèi)網(wǎng)上的虛機(jī)(也就是所謂的Floating IP)。和利用 L2 層擴(kuò)展 L3 層的標(biāo)簽技術(shù)MPLS(一般用在WAN的路由器上)。

3)L4-L7功能

L4-L7功能,包括FWaas、LBaas、VPNaas、DNSaas-Designate等服務(wù)。

從網(wǎng)絡(luò)功能和對(duì)應(yīng)的底層網(wǎng)絡(luò)設(shè)備實(shí)現(xiàn)來看,Port對(duì)應(yīng)VM掛載的VNIC相應(yīng)TAP/TUN設(shè)備,Subnet只是一個(gè)IP地址 Pool的數(shù)據(jù)集合,Network則要對(duì)應(yīng)分配的網(wǎng)絡(luò)類型和相應(yīng)隔離域ID,Qos功能可以基于OVS來實(shí)現(xiàn),安全組則基于linux bridge上的iptables實(shí)現(xiàn)。

L3上Router通過linux的Namespace實(shí)現(xiàn),Dragonflow則是通過OpenvSwitch的流表實(shí)現(xiàn),DHCP和DNS服務(wù)通過Dnsmasq實(shí)現(xiàn);L4-L7的服務(wù)開源實(shí)現(xiàn)方案里,F(xiàn)Waas是通過Router里的Iptables,LBaas是通過Haproxy,VPNaas則是Openswan,當(dāng)然現(xiàn)在很多設(shè)備廠商比如Juniper、思科、華為、博科和F5等對(duì)L2-L7的服務(wù)實(shí)現(xiàn)都提供了自己的設(shè)備和driver。

Neutron的機(jī)制是通過plugin/driver/agent(server用于和其他組件服務(wù)的api進(jìn)行交互)等方式實(shí)現(xiàn)和不同網(wǎng)絡(luò)設(shè)備的集成,plugin里L(fēng)2-L3稱之為core plugin,L4-L7成為service plugin。

driver是plugin下具體集成不同插件的方式,而agent則是部署在另一側(cè)的相應(yīng)Driver代理,來管控計(jì)算節(jié)點(diǎn)上的虛擬機(jī)。

Neutron中的各種plugin紛繁復(fù)雜,諸如Dragonflow、OVN等此類不斷涌現(xiàn)。Neutron的未來是想將service plugin統(tǒng)一起來,只剩下Neutron的北向API及Neutron server。

二.Neutron和SDN Controller的集成

在整個(gè)SDN(這里僅指Controller)和OpenStack集成的大框架中,個(gè)人傾向于通過分層來理解。即Neutron和SDN Controller集成,理解為“應(yīng)用層(的北向)”;SDN Controller和軟硬件網(wǎng)絡(luò)設(shè)備集成,理解為“管理層(南向)”。這里,我們討論的是應(yīng)用層(北向)。

在Neutron中,采用SDN 控制器(采用了OpenFlow協(xié)議),可以控制流量轉(zhuǎn)發(fā)以實(shí)現(xiàn)不同虛擬路由器(DVR)的流量負(fù)載,通過匹配流表項(xiàng)(Match Flow Table)的方式來實(shí)現(xiàn)數(shù)據(jù)包按照自定義的OpenFlow規(guī)則實(shí)現(xiàn)Qos功能,不同的應(yīng)用業(yè)務(wù),使用不同的流轉(zhuǎn)發(fā)方式,Normal或Flow。

目前,已知的Neutron和SDN控制器集成現(xiàn)狀(網(wǎng)絡(luò)虛擬化NFV方面不在此表),如下所示:

Neutron和SDN集成現(xiàn)狀分析

這里,我以Networking-ofagent(ryu)和neutron集成為例做講解,其他控制器與之類似。

首先,我們需要知道SDN controller是以mechanism_drivers的方式與Neutron ML2 Plugin做集成,這些代碼,均統(tǒng)一存放于neutron/plugins/ml2/drivers目錄下,其實(shí)現(xiàn)集成的核心是driver.py模塊。

參見Neutron代碼的入口配置文件neutron/setup.cfg(neutron.ml2.mechanism_drivers部分),格式為key=value,value為代碼目錄,其代碼如下:

neutron.ml2.mechanism_drivers =

logger = neutron.tests.unit.plugins.ml2.drivers.mechanism_logger:LoggerMechanismDriver

test = neutron.tests.unit.plugins.ml2.drivers.mechanism_test:TestMechanismDriver

linuxbridge = neutron.plugins.ml2.drivers.linuxbridge.mech_driver.mech_linuxbridge:LinuxbridgeMechanismDriver

openvswitch = neutron.plugins.ml2.drivers.openvswitch.mech_driver.mech_openvswitch:OpenvswitchMechanismDriver

hyperv = neutron.plugins.ml2.drivers.hyperv.mech_hyperv:HypervMechanismDriver

l2population = neutron.plugins.ml2.drivers.l2pop.mech_driver:L2populationMechanismDriver

ofagent = neutron.plugins.ml2.drivers.ofagent.driver:OfagentMechanismDriver

brocade = networking_brocade.vdx.ml2driver.mechanism_brocade:BrocadeMechanism

brocade_fi_ni = neutron.plugins.ml2.drivers.brocade.fi_ni.mechanism_brocade_fi_ni:BrocadeFiNiMechanism

fslSDN = neutron.plugins.ml2.drivers.freescale.mechanism_fslSDN:FslSDNMechanismDriver

sriovnicswitch = neutron.plugins.ml2.drivers.mech_sriov.mech_driver.mech_driver:SriovNicSwitchMechanismDriver

fake_agent = neutron.tests.unit.plugins.ml2.drivers.mech_fake_agent:FakeAgentMechanismDriver

ryu中的driver.py模塊代碼,代碼僅2行,如下所示

from networking_ofagent.plugins.ml2.drivers import mech_ofagent

OfagentMechanismDriver = mech_ofagent.OfagentMechanismDriver

代碼的含義是指,首先從networking_ofagent項(xiàng)目安裝包的源碼目錄中(若集成,需要自行安裝、配置),導(dǎo)入一個(gè)mech_ofagent的模塊,用于和Neutron集成,該模塊中,有一個(gè)OfagentMechanismDriver的基類,用于完成Neutron ML2中諸如port、subnet、network等資源的create、delete、add等操作,或者是使用ofagent L2代理連接到網(wǎng)絡(luò)。其代碼如下所示:

class OfagentMechanismDriver(mech_agent.SimpleAgentMechanismDriverBase):

"""Attach to networks using ofagent L2 agent.

The OfagentMechanismDriver integrates the ml2 plugin with the

ofagent L2 agent. Port binding with this driver requires the

ofagent agent to be running on the port's host, and that agent

to have connectivity to at least one segment of the port's

network.

"""

def __init__(self):

sg_enabled = securitygroups_rpc.is_firewall_enabled()

vif_details = {portbindings.CAP_PORT_FILTER: sg_enabled,

portbindings.OVS_HYBRID_PLUG: sg_enabled}

super(OfagentMechanismDriver, self).__init__(

constants.AGENT_TYPE_OFA,

portbindings.VIF_TYPE_OVS,

vif_details)

def get_allowed_network_types(self, agent):

return (agent['configurations'].get('tunnel_types', []) +

[p_constants.TYPE_LOCAL, p_constants.TYPE_FLAT,

p_constants.TYPE_VLAN])

def get_mappings(self, agent):

return dict(agent['configurations'].get('interface_mappings', {}))

最后。這里,奉上一份目前已知的Neutron項(xiàng)目中各種關(guān)于SDN和NFV的Plugin列表(數(shù)據(jù)來源于文件:neutron/doc/source/stadium/sub_projects.rst)

 

Neutron和SDN集成現(xiàn)狀分析

Neutron和SDN集成現(xiàn)狀分析

Neutron和SDN集成現(xiàn)狀分析

小結(jié)

從最新的Neutron代碼中,已經(jīng)發(fā)現(xiàn)了諸如原來的opendaylight和其他一些SDN Plugin,已經(jīng)開始從項(xiàng)目中移除,統(tǒng)一命名為諸如networking-xxxx之類的獨(dú)立項(xiàng)目。

Neutron和SDN Controller集成應(yīng)用的顯著意義和作用,個(gè)人仍不是太深刻體會(huì)。用Controller來控制虛擬機(jī)VM的流量和提供全局的網(wǎng)路視圖嗎——實(shí)現(xiàn)網(wǎng)絡(luò)智能化。截止目前,筆者尚未接觸過這方面的環(huán)境或看見相關(guān)資料,歡迎交流!

是的,Neutron更像是一種架構(gòu),需要眾多的開發(fā)者和用戶去參與其中,同時(shí),還需要注意去其糟粕,取其精華。

責(zé)任編輯:何妍
相關(guān)推薦

2015-09-17 11:32:56

NeutronSDN虛擬網(wǎng)絡(luò)

2015-11-12 14:54:53

NeutronSDN

2015-06-08 16:55:36

SDNOpenStackIaaS

2015-06-15 09:43:05

SDNOpenStack N

2015-05-04 09:47:12

Interop 201SDN

2017-04-17 15:00:42

SDNNFVCSP

2014-09-18 09:06:06

SDN

2015-06-09 09:51:20

SDNOpenStackNeutron

2014-12-08 11:01:09

openstack網(wǎng)絡(luò)network

2015-03-12 15:52:03

2014-12-03 09:41:13

SDNSDN安全SDN網(wǎng)絡(luò)

2014-08-29 15:16:41

SDN

2013-06-07 09:59:27

SDN虛擬化OpenDlow

2015-11-03 10:16:54

SDN控制平面東西向接口

2017-12-17 22:16:58

2009-04-14 08:46:35

2020-04-11 11:27:56

DevOpsNoOps運(yùn)維

2015-12-01 10:44:51

數(shù)據(jù)中心SDN

2021-08-17 15:20:18

人工智能AI

2020-07-08 07:36:40

物聯(lián)網(wǎng)數(shù)據(jù)技術(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲夜夜爽 | 久久久蜜桃一区二区人 | 日韩第一页 | 国产精品久久一区二区三区 | 精品综合 | 国产成人99久久亚洲综合精品 | 国产日韩欧美另类 | 一级黄片一级毛片 | 巨大黑人极品videos精品 | 网色| 色综合视频 | 国产精品伦一区二区三级视频 | 亚洲一区二区三区免费 | 国内毛片毛片毛片毛片 | 日本免费黄色 | 高清亚洲| 欧美二区三区 | 狠狠干影院 | 高清一区二区三区 | 在线a视频网站 | 欧美日韩高清在线一区 | 91久久国产综合久久 | 久久久视 | 一区二区三区四区在线 | 国产中文字幕在线 | 黄色免费在线观看 | 亚洲91视频 | 日本一区二区三区在线观看 | 情侣黄网站免费看 | 亚洲高清在线 | 孕妇一级毛片 | 黄片毛片在线观看 | 日韩精品久久久久 | 一区二区三区亚洲 | 国产精品久久久久久久久久久久久 | 91.色| 亚洲乱码国产乱码精品精98午夜 | 色吊丝2 | 99精品国产一区二区三区 | 水蜜桃久久夜色精品一区 | 国产精品久久久久久久久久 |