




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
Openstack云管理--Neutron課程目錄Openstack架構(gòu)KeystoneGlanceNovaCinderNeutronNeutron概述傳統(tǒng)的網(wǎng)絡管理方式很大程度上依賴于管理員手工配置和維護各種網(wǎng)絡硬件設備;而云環(huán)境下的網(wǎng)絡已經(jīng)變得非常復雜,特別是在多租戶場景里,用戶隨時都可能需要創(chuàng)建、修改和刪除網(wǎng)絡,網(wǎng)絡的連通性和隔離已經(jīng)不太可能通過手工配置來保證了。如何快速響應業(yè)務的需求對網(wǎng)絡管理提出了更高的要求,傳統(tǒng)的網(wǎng)絡管理方式已經(jīng)很難勝任這項工作,而“軟件定義網(wǎng)絡(software-definednetworking,SDN)”所具有的靈活性和自動化優(yōu)勢使其成為云時代網(wǎng)絡管理的主流。Neutron的設計目標是實現(xiàn)“網(wǎng)絡即服務(NetworkingasaService)”。為了達到這一目標,在設計上遵循了基于SDN實現(xiàn)網(wǎng)絡虛擬化的原則,在實現(xiàn)上充分利用了Linux系統(tǒng)上的各種網(wǎng)絡相關(guān)的技術(shù)。Neutron功能Neutron為整個OpenStack環(huán)境提供網(wǎng)絡支持,包括二層交換,三層路由,負載均衡,防火墻和VPN等。Neutron提供了一個靈活的框架,通過配置,無論是開源還是商業(yè)軟件都可以被用來實現(xiàn)這些功能。二層交換SwitchingNova的Instance是通過虛擬交換機連接到虛擬二層網(wǎng)絡的,Neutron支持多種虛擬交換機,包括Linux原生的LinuxBridge和OpenvSwitch。三層路由RoutingInstance可以配置不同網(wǎng)段的IP,Neutron的router(虛擬路由器)實現(xiàn)instance跨網(wǎng)段通信。負載均衡LoadBalancingNeutron提供了將負載分發(fā)到多個instance的能力防火墻FirewallingNeutron網(wǎng)絡概念network是一個隔離的二層廣播域。Neutron支持多種類型的network,包括local,flat,VLAN,VxLAN和GRE。local網(wǎng)絡與其他網(wǎng)絡和節(jié)點隔離。local網(wǎng)絡中的instance只能與位于同一節(jié)點上同一網(wǎng)絡的instance通信,local網(wǎng)絡主要用于單機測試。flat網(wǎng)絡是無vlantagging的網(wǎng)絡。flat網(wǎng)絡中的instance能與位于同一網(wǎng)絡的instance通信,并且可以跨多個節(jié)點。vlan網(wǎng)絡是具有802.1qtagging的網(wǎng)絡。vlan是一個二層的廣播域,同一vlan中的instance可以通信,不同vlan只能通過router通信。vlan網(wǎng)絡可以跨節(jié)點,是應用最廣泛的網(wǎng)絡類型。vxlan是基于隧道技術(shù)的overlay網(wǎng)絡。vxlan網(wǎng)絡通過唯一的segmentationID(也叫VNI)與其他
vxlan網(wǎng)絡區(qū)分。vxlan中數(shù)據(jù)包會通過
VNI(VXLANNetworkIdentifier)
封裝成UPD包進行傳輸。gre是與vxlan類似的一種overlay網(wǎng)絡。主要區(qū)別在于使用IP包。創(chuàng)建公共網(wǎng)絡Neutron網(wǎng)絡概念subnet是一個IPv4或者IPv6地址段。instance的IP從subnet中分配。每個subnet需要定義IP地址的范圍和掩碼。subnet與network是多對1關(guān)系。一個subnet只能屬于某個network;一個network可以有多個subnet,這些subnet可以是不同的IP段,但不能重疊。port可以看做虛擬交換機上的一個端口。port上定義了MAC地址和IP地址,當instance的虛擬網(wǎng)卡VIF(VirtualInterface)綁定到port時,port會將MAC和IP分配給VIF。port與subnet是多對1的關(guān)系。一個port必須屬于某個subnet;一個subnet可以有多個port。創(chuàng)建子網(wǎng)創(chuàng)建子網(wǎng)創(chuàng)建子網(wǎng)創(chuàng)建路由給路由添加接口Neutron架構(gòu)與OpenStack的其他服務的設計思路一樣,Neutron也是采用分布式架構(gòu),由多個組件(子服務)共同對外提供網(wǎng)絡服務。Neutron由如下組件構(gòu)成:NeutronServer:對外提供OpenStack網(wǎng)絡API,接收請求,
并調(diào)用
Plugin處理請求。Plugin:處理
NeutronServer發(fā)來的請求,維護
OpenStack
邏輯網(wǎng)絡的狀態(tài),并調(diào)用Agent處理請求。Agent:處理
Plugin的請求,負責在networkprovider上真正實現(xiàn)各種網(wǎng)絡功能networkprovider:提供網(wǎng)絡服務的虛擬或物理網(wǎng)絡設備,例如LinuxBridge,OpenvSwitch或者其他支持Neutron的物理交換機。Queue:NeutronServer、Plugin和Agent之間通過MessagingQueue通信和調(diào)用。Database:存放
OpenStack的網(wǎng)絡狀態(tài)信息,包括
Network,Subnet,Port,Router等Neutron架構(gòu)假設networkprovider是linuxbridge,創(chuàng)建一個
VLAN10的network,流程如下:Plugin將要創(chuàng)建的network的信息(例如名稱、
VLANID等)保存到數(shù)據(jù)庫中,并通過MessageQueue
通知運行在各節(jié)點上的Agent。Agent收到消息后會在節(jié)點上的物理網(wǎng)卡(比如
eth0)
上創(chuàng)建VLAN設備(比如
eth0.10),并創(chuàng)建
bridge,
橋接
VLAN設備。Neutron架構(gòu)plugin的一個主要的職責是在數(shù)據(jù)庫中維護Neutron網(wǎng)絡的狀態(tài)信息為了避免所有
networkprovider的plugin都要編寫一套非常類似的數(shù)據(jù)庫訪問代碼,Neutron在Havana版本實現(xiàn)了一個ML2(ModularLayer2)plugin,對plgin的功能進行抽象和封裝。有了ML2plugin,各種networkprovider無需開發(fā)自己的plugin,只需要針對ML2開發(fā)相應的driver就可以了,工作量和難度都大大減少。
plugin按照功能分為兩類:
coreplugin:維護
Neutron的netowrk,subnet和port相關(guān)資源的信息,與coreplugin對應的agent包括linuxbridge,OVS等;serviceplugin:提供
routing,firewall,loadbalance等服務,也有相應的agent。Neutron的物理部署方案--控制節(jié)點+計算節(jié)點控制節(jié)點:
部署的服務包括:neutron
server,coreplugin的
agent和serviceplugin
的
agent。計算節(jié)點:
部署coreplugin的agent,
負責提供二層網(wǎng)絡功能。Neutron的物理部署方案--控制+網(wǎng)絡+計算節(jié)點控制節(jié)點:
部署neutronserver服務網(wǎng)絡節(jié)點:
部署的服務包括:core
plugin的agent和
serviceplugin的
agent計算節(jié)點:
部署coreplugin的agent,
負責提供二層網(wǎng)絡功能。Neutron組件--NeutronServerCoreAPI:對外提供管理network,subnet和port的RESTfulAPIExtensionAPI:對外提供管理router,loadbalance,firewall等資源的
RESTfulAPI。CommnonService:認證和校驗API請求NeutronCore:Neutronserver的核心處理
程序,通過調(diào)用相應的Plugin處理請求CorePluginAPI:定義了CorePlgin的抽象
功能集合,NeutronCore通過該API調(diào)用相
應的CorePlgin。ExtensionPluginAPI:定義了Service
Plgin的抽象功能集合,NeutronCore通過該
API調(diào)用相應的ServicePlgin。Neutron組件--NeutronServerCorePlugin:實現(xiàn)了CorePluginAPI,在數(shù)據(jù)庫中維護network,subnet和port的狀態(tài),并負責調(diào)用相應的agent在networkprovider上執(zhí)行相關(guān)操作,比如創(chuàng)建network。ServicePlugin:實現(xiàn)了ExtensionPlugin
API,在數(shù)據(jù)庫中維護router,loadbalance,
securitygroup等資源的狀態(tài),并負責調(diào)用
相應的agent在networkprovider上執(zhí)行相
關(guān)操作,比如創(chuàng)建router。Neutron組件--networkproviderNeutron的架構(gòu)是非常開放的,可以支持多種network
provider,只要遵循一定的設計原則和規(guī)范。假設在
Neutorn中使用了
linuxbridge這種
networkProvider,我們需要實現(xiàn)linuxbridgeplugin和
linuxbridgeagent。如果要支持openvswitch,只需要實現(xiàn)open
vswitchplugin和openvswitchagent。Neutron可以通過開發(fā)不同的plugin和agent支持不同
的網(wǎng)絡技術(shù)。Neutron組件--ModulerLayer2(ML2)ModulerLayer2(ML2)是Neutron在Havana版本實現(xiàn)的一個新的coreplugin,用于替代原有的linuxbridgeplugin和openvswitchplugin。ML2作為新一代的coreplugin,提供了一個框架,允許在OpenStack網(wǎng)絡中同時使用多種Layer2網(wǎng)絡技術(shù),不同的節(jié)點可以使用不同的網(wǎng)絡實現(xiàn)機制。Neutron組件--ML2的架構(gòu)ML2對二層網(wǎng)絡進行抽象和建模,引入了typedriver和mechanismdriver。Neutron支持的每一種網(wǎng)絡類型都有一個對應的ML2
typedriver。typedriver負責維護網(wǎng)絡類型的狀態(tài),
執(zhí)行驗證,創(chuàng)建網(wǎng)絡等。Neutron支持的每一種網(wǎng)絡機制都有一個對應的ML2
mechansimdriver。mechanismdriver負責獲取由
typedriver維護的網(wǎng)絡狀態(tài),并確保在相應的網(wǎng)絡設備
(物理或虛擬)上正確實現(xiàn)這些狀態(tài)。Neutron組件--ServicePlugin/AgentServicePlugin及其Agent提供更豐富的擴展功能,包括路由,loadbalance,firewall等DHCP:dhcpagent通過dnsmasq為instance提供dhcp服務。Routing:l3agent可以為project(租戶)創(chuàng)建router,提供Neutronsubnet之間的路由服務。路由功能默認通過IPtables實現(xiàn)。Firewall:l3agent可以在router上配置防火墻策略,提供網(wǎng)絡安全防護。另一個與安全相關(guān)的功能是SecurityGroup,也是通過IPtables實現(xiàn)。LoadBalance:
Neutron默認通過HAProxy為project中
的多個instance提供loadbalance服務Neutron架構(gòu)總結(jié)Neutron通過plugin和agent提供網(wǎng)絡服務。plugin位于Neutronserver,包括coreplugin和serviceplugin。agent位于各個節(jié)點,負責實現(xiàn)網(wǎng)絡服務。coreplugin提供L2功能,
ML2是推薦的plugin。使用最廣泛的L2agent是
linuxbridage和openvswitch。serviceplugin和agent提供擴展
功能,包括dhcp,routing,load
balance,firewall,vpn等。配置多個網(wǎng)卡區(qū)分不同類型的網(wǎng)絡數(shù)據(jù)Management網(wǎng)絡:用于節(jié)點之間messagequeue內(nèi)部通信以及訪問database服務,所有的節(jié)點都需要連接到management網(wǎng)絡。API網(wǎng)絡:OpenStack各組件通過該網(wǎng)絡向用戶暴露API服務。Keystone,Nova,Neutron,Glance,Cinder,Horizon的endpoints均配置在API網(wǎng)絡上。VM網(wǎng)絡:用于
instance之間通信,VM網(wǎng)絡可以選擇的類型包括local,flat,vlan,vxlan和gre。External網(wǎng)絡:指的是VM網(wǎng)絡之外的網(wǎng)絡,該網(wǎng)絡
不由Neutron管理。Neutron可以將routerattach到
External網(wǎng)絡,為instance提供訪問外部網(wǎng)絡的能力。External網(wǎng)絡可能是企業(yè)的intranet,也可能是
internet。網(wǎng)絡拓撲配置linux-bridgemechanismdriver要在Neutron中使用linuxbridge,需要配置linux-bridgemechanismdriver。Neutron默認使用ML2作為coreplugin,需要修改配置文件neutron.conf,core_plugin=ml2需要讓ML2使用linux-bridgemechanismdriver,需要修改配置文件ml2_conf.ini,
mechanism_drivers=linuxbridge了解linuxbridge環(huán)境中的各種網(wǎng)絡設備在linuxbridge環(huán)境中,一個數(shù)據(jù)包從instance發(fā)送到物理網(wǎng)卡會經(jīng)過下面幾個類型的設備:tapinterface:命名為
tapXXXlinuxbridge:命名為
brqXXXXvlaninterface:命名為ethX.Y(X為interface的序號,Y為vlanid)vxlaninterface:命名為vxlan-Z(z是VNI)物理interface:命名為ethX(X為interface的序號)localnetworklocalnetwork的特點是不會與宿主機的任何物理網(wǎng)卡相連,也不關(guān)聯(lián)任何的VLANID。對于每個localnetwrok,ML2linux-bridge會創(chuàng)建一個bridge,instance的tap設備會連接
到bridge。位于同一個local
network的instance會連接
到相同的bridge,這樣
instance之間就可以通信了。localnetwork配置在ML2配置文件ml2_conf.ini中加載localtypedrivertype_drivers=local,flat,vlan,vxlan,gretenant_network_types=local創(chuàng)建第一個localnetwork確保各個節(jié)點上的neutornagent狀態(tài)正常。
GUI菜單為Admin->System->SystemInfomation->NeutronAgents創(chuàng)建第一個localnetworkGUI中有兩個地方可以創(chuàng)建network:Project->Network->Networks這是普通用戶在自己的tenant中創(chuàng)建network的地方Admin->Networks
這是admin創(chuàng)建network的地方創(chuàng)建localnetwork將instance連接到first_local_net創(chuàng)建2個VM,驗證兩個VM的連通性flatnetworkflatnetwork是不帶tag的網(wǎng)絡,要求宿主機的物理網(wǎng)卡直接與linuxbridge連接,這意味著每個flatnetwork都會獨占一個物理網(wǎng)卡。flatnetwork配置在ML2配置文件ml2_conf.ini中設置flatnetwork相關(guān)參數(shù)type_drivers=local,flat,vlan,vxlan,gretenant_network_types=flat指明flat網(wǎng)絡與物理網(wǎng)卡的對應關(guān)系[ml2_type_flat]flat_networks=default[linux_bridge]physical_interface_mappings=default:eth1創(chuàng)建flatnetwork在flatnetwork上創(chuàng)建VMDHCP服務Neutron提供DHCP服務的組件是DHCPagent,DHCPagent在網(wǎng)絡節(jié)點上運行,默認通過dnsmasq實現(xiàn)DHCP功能。配置DHCPagentDHCPagent的配置文件是dhcp_agent.ini[DEFAULT]interface_driver=erface.BridgeInterfaceDriverdhcp_driver=neutron.agent.linux.dhcp.DnsmasqLinuxNetworkNamespace在二層網(wǎng)絡上,VLAN可以將一個物理交換機分割成幾個獨立的虛擬交換機。類似地,在三層網(wǎng)絡上,Linuxnetworknamespace可以將一個物理三層網(wǎng)絡分割成幾個獨立的虛擬三層網(wǎng)絡。Neutron通過namespace為每個network提供獨立的DHCP和路由服務。每個dnsmasq進程都位于獨立的namespace,命名為qdhcp-<networkid>。列出所有的namespace:ipnetnslist可以通過ipnetnsexec<networknamespacename><command>管理namespace。LinuxNetworkNamespaceinstance從dnsmasq獲取IP的過程在創(chuàng)建instance時,Neutron會為其分配一個port,里面包含了MAC和IP地址信息,這些信息會同步更新到dnsmasq的host文件。同時nova-compute會在libvirt.xml中設置vmVIF的MAC地址。instance獲取IP的過程如下:vm開機啟動,發(fā)出DHCPDISCOVER廣播,該廣播消息在整個flat_net中都可以被收到。廣播到達vethtap19a0ed3d-fe,然后傳送給vethpair的另一端ns-19a0ed3d-fe。dnsmasq在它上面監(jiān)聽,dnsmasq檢查其host文件,發(fā)現(xiàn)有對應項,于是dnsmasq以
DHCPOFFER消息將IP(03)、子網(wǎng)掩碼()、地址租用期限等信息發(fā)送給vm。vm發(fā)送DHCPREQUEST消息確認接受此DHCPOFFER。dnsmasq發(fā)送確認消息DHCPACK,整個過程結(jié)束。vlannetworkvlannetwork是帶tag的網(wǎng)絡,是實際應用最廣泛的網(wǎng)絡類型vlannetworkvlannetwork配置在ml2_conf.ini中設置vlannetwork相關(guān)參數(shù)tenant_network_types=vlan[ml2_type_vlan]network_vlan_ranges=default:100:200[linux_bridge]physical_interface_mappings=default:eth1創(chuàng)建vlannetworkvlannetwork結(jié)構(gòu)創(chuàng)建第一個VM到vlan創(chuàng)建第二個VM到vlan創(chuàng)建第二個vlannetwork路由服務--Routing路由服務(Routing)提供跨subnet互聯(lián)互通功能,不同vlan中的兩個instance要相互通信必須借助router,可以是物理router或者虛擬router。使用物理router路由服務配置Neutron的路由服務是由l3agent提供的。除此之外,l3agent通過iptables提供firewall和floatingip服務。修改配置文件l3_agent.ini:interface_driver=erface.BridgeInterfaceDriver創(chuàng)建虛擬路由器網(wǎng)絡結(jié)構(gòu)網(wǎng)絡結(jié)構(gòu)內(nèi)部網(wǎng)絡與外部網(wǎng)絡通信外部網(wǎng)絡是指租戶網(wǎng)絡以外的網(wǎng)絡,外部網(wǎng)絡不由Neutron創(chuàng)建。
租戶網(wǎng)絡是由Neutron創(chuàng)建和維護的網(wǎng)絡。連接外部網(wǎng)絡的配置為了連接外部網(wǎng)絡,需要在配置文件中告訴Neutron外部網(wǎng)絡的類型以及對應的物理網(wǎng)卡。修改配置文件ml2_conf.ini:[ml2_type_flat]flat_networks=default,external[linux_bridge]physical_interface_mappings=default:eth1,external:eth2[ml2_type_vlan]network_vlan_ranges=default:3001:4000,external[linux_bridge]physical_interface_mappings=default:eth1,external:eth2創(chuàng)建外部網(wǎng)絡外部網(wǎng)絡是已經(jīng)存在的網(wǎng)絡,但我們還是需要在Neutron中定義外部網(wǎng)絡的對象,這樣router才知道如何將租戶網(wǎng)絡和外部網(wǎng)絡連接起來。創(chuàng)建subnet將外部網(wǎng)絡連接到router將外網(wǎng)連接到Neutron的虛擬路由器,這樣instance才能訪問外網(wǎng)。將外部網(wǎng)絡連接到router網(wǎng)絡結(jié)構(gòu)創(chuàng)建floatingIP如果需要從外網(wǎng)直接訪問instance,可以利用floatingIP。點擊Project->Compute->Access&Security菜單,打開FloatingIPs標簽頁vxlannetworkVXLAN全稱VirtualeXtensibleLocalAreaNetwork,VXLAN是一種在現(xiàn)有物理網(wǎng)絡設施中支持大規(guī)模多租戶網(wǎng)絡環(huán)境的解決方案,是overlaynetwork。overlaynetwork是指建立在其他網(wǎng)絡上的網(wǎng)絡,該網(wǎng)絡中的節(jié)點可以看作通過虛擬(或邏輯)鏈路連接起來的,overlaynetwork在底層可能由若干物理鏈路組成,但對于節(jié)點,不需要關(guān)心這些底層實現(xiàn)。OpenStack支持vxlan和gre兩種overlaynetwork。VXLAN、GRE都是基于隧道技術(shù)實現(xiàn)的,是基于MAC
in
IP/UDP的方式實現(xiàn)疊加網(wǎng)絡。通過用隧道封裝的方式,將源主機發(fā)出的原始二層報文封裝后在現(xiàn)有網(wǎng)絡中進行透明傳輸,到達目的地之后再解封裝得到原始報文,轉(zhuǎn)發(fā)給目標主機,從而實現(xiàn)主機之間的二層通信。通過封裝和解封裝,相當于一個大二層網(wǎng)絡(Overlay)疊加在現(xiàn)有的基礎網(wǎng)絡(Underlay)之上。vxlannetworkVXLAN提供與VLAN相同的以太網(wǎng)二層服務,但是擁有更強的擴展性和靈活性,與VLAN相比,VXLAN有下面幾個優(yōu)勢:支持更多的二層網(wǎng)段。VLAN使用12-bit標記VLANID,最多支持4094個VLAN,這對于大型云部署會成為瓶頸。VXLAN的ID(VNI或者VNID)則用24-bit標記,支持16777216個二層網(wǎng)段。能更好地利用已有的網(wǎng)絡路徑。VLAN使用STP避免環(huán)路,這會導致有一半的網(wǎng)絡路徑被block掉。VXLAN的數(shù)據(jù)包是封裝到UDP,通過三層傳輸和轉(zhuǎn)發(fā)的,可以使用所有的路徑。VXLAN封裝和包格式VXLAN是將二層建立在三層上的網(wǎng)絡,通過將二層數(shù)據(jù)封裝到UDP的方式來擴展數(shù)據(jù)中心的二層網(wǎng)段數(shù)量。在原始的Layer2網(wǎng)絡包前
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 急癥搶救操作流程
- 針對復習的CFA試題及答案傳授
- 2024年特許金融分析師考試必考試題及答案
- 《第十四章 整式的乘法與因式分解》專題復習與單元檢測試卷
- 追隨百歲老人探尋長壽秘訣
- 心肌梗死的主要護理診斷
- 2024年特許金融分析師考試考生心聲分享試題及答案
- 山東省郯城第一中學2024-2025學年高三下學期第二次模擬考試地理試題(原卷版)
- 湖北省襄陽市第四中學2024-2025學年高一下學期2月月考地理試題(原卷版)
- 教學課件說明范文
- 八年級上冊語文全品作業(yè)本電子版
- CATIA-零件實體設計模塊Part-Desi課件
- 中考地理易錯題
- 職稱專家推薦意見表
- 文學作品與名著勾連閱讀專題復習-中考語文二輪專題
- 認證咨詢機構(gòu)設立審批須知
- 部編版道德與法治六年級下冊第三單元《多樣文明 多彩生活》大單元作業(yè)設計
- 設備安裝施工方案與調(diào)試方案
- GB/T 34938-2017平面型電磁屏蔽材料通用技術(shù)要求
- GB/T 31989-2015高壓電力用戶用電安全
- GB/T 26049-2010銀包銅粉
評論
0/150
提交評論