日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OpenStack Network --- introduction部分 阅读笔记

發(fā)布時間:2025/7/25 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenStack Network --- introduction部分 阅读笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Basic Networking

1、混雜模式(promiscuous mode):當(dāng)網(wǎng)卡被配置為混雜模式時,它們會將所有的frame傳遞給操作系統(tǒng),即使MAC地址不匹配。

2、交換機(switch)是一種擁有多個端口的網(wǎng)絡(luò)硬件,能將frame從連接的一個主機轉(zhuǎn)發(fā)到另一個主機。它會維護一張叫做forwarding table或者交forwarding information base(FIB)的表,用于記錄MAC地址和端口的關(guān)系,該表由交換機轉(zhuǎn)發(fā)frame的過程中學(xué)習(xí)獲得。交換機還可以級聯(lián)在一起,這些連接在一起的交換機和主機可以看成是單個網(wǎng)絡(luò)。

3、VLAN可以讓單個交換機看起來像多個獨立的交換機一樣,即連接在同一個交換機上的主機,如果它們不屬于同一個VLAN就看不見對方。每一個VLAN有一個編號從1到4095的ID。

當(dāng)多個交換機連接在一起時,連接的端口(即trunck port)必須能夠轉(zhuǎn)發(fā)來自任何VLAN的Ethernet frames,而且發(fā)送frame的交換機必須給frame加上VLAN ID,這樣接收的交換機才能保證合適的主機收到該frame。

4、如果兩個主機的IP地址的網(wǎng)絡(luò)號相同,那么它們屬于同一個subnet,而以太網(wǎng)中位于同一個local network的兩臺主機之間可以互相通信。ARP協(xié)議假設(shè),同一個subnet中的主機都位于同一個local network。

5、有兩種方式來表示一個子網(wǎng):

dotted quad: 255.255.255.0

classless inter-domain routing(CIDR): 192.168.1.5/24

6、DHCP(Dynamic Host Configuration Protocol)用于在主機啟動時自動為其分配IP。

DHCP client由端口67向地址255.255.255.255的端口68發(fā)送一個UDP包,DHCP server會從端口68向client的端口67發(fā)送響應(yīng)。具體交互過程如下:

  • client發(fā)送一個discover(我是MAC地址為08:00:27:b9:88:74的client,需要一個IP地址)
  • server發(fā)送一個offer(好的,08:00:27:b9:88:74,我給你一個IP地址10.10.0.112)
  • client發(fā)送一個request(Server 10.10.0.113,我愿意接受IP?10.10.0.112)
  • server返回一個acknowledgement(好的,08:00:27:b9:88:74, IP?10.10.0.112是你的了)
  • DHCP server通常會在發(fā)送給DHCP client IP地址和子網(wǎng)掩碼的同時,還會發(fā)送default gateway的IP地址。OpenStack用dnsmasq來實現(xiàn)DHCP server。

    7、因為TCP能夠檢測(detect)和重傳(retransmit)丟失的包,因此它被稱為reliable protocol。

    8、應(yīng)用可以用多播(IP multicast)技術(shù)將UDP數(shù)據(jù)包發(fā)送到指定的主機集合。接收的應(yīng)用必須首先通過給UDP socket綁定一個合法的multicast group address來加入一個multicast group。接收主機和發(fā)送主機不需要在同一個local network,但是中間經(jīng)過的路由器必須被配置成支持IP多播的。VXLAN就是一種使用IP多播基于UDP的協(xié)議。

    ?

    Network Components

    1、防火墻(Firewalls) 用于對流量進行管理。防火墻可以是用來連接兩個網(wǎng)絡(luò)的定制的設(shè)備,也可以是在操作系統(tǒng)中基于軟件的過濾規(guī)則。它可以基于源IP地址,目標IP地址,端口號以及連接狀態(tài)等條件對包進行過濾。主要用來讓主機避免未經(jīng)授權(quán)的登陸以及惡意的攻擊。Linux系統(tǒng)一般使用iptables來實現(xiàn)防火墻。

    ?

    Overlay(tunnel)protocols

    使用隧道的原因是在不兼容的網(wǎng)絡(luò)上傳輸數(shù)據(jù),或者在不安全的網(wǎng)絡(luò)上提供一個安全的路徑。通常被傳輸?shù)臄?shù)據(jù)都會進行加密,從而讓那些私密的數(shù)據(jù)也能公開進行傳輸。

    1、GRE(Generic routing encapsulation)

    2、VXLAN(Virtual extensible local area network)是為了提供可擴展的網(wǎng)絡(luò)隔離。它運行在多個三層網(wǎng)絡(luò)之上構(gòu)建一個二層的overlay網(wǎng)絡(luò)。每個overlay都被稱為一個VXLAN segment。只有處于同一個VXLAN segment中的虛擬機才能互相通信。

    ?

    Network Namespace

    1、Linux啟動時存在一個default namespace,所有的網(wǎng)絡(luò)設(shè)備都存在其中。但是我們也可以新建network namespace,并且在其中創(chuàng)建新的設(shè)備,或者將已有的設(shè)備從一個namespace轉(zhuǎn)移到另一個namespace。

    2、每個network namespace都有它自己的路由表,這是network namespace存在的主要原因。路由表的關(guān)鍵是目標IP地址,而如果想要同樣的目標IP地址在不同的時候代表不同的含義,network namespace正是我們需要的。而這對OpenStack Networking對于不同的虛擬網(wǎng)絡(luò)提供有重復(fù)的IP地址的特性是非常重要的。

    3、VRF(Virtual routing and forwarding)是一種能夠讓多個路由表實例存在于同一個路由器的IP技術(shù)。

    ?

    Network Address Translation

    1、NAT可以在IP包傳輸?shù)倪^程中改變其頭部的源地址或目標地址。通常IP包的發(fā)送者和接收者通常都不會意識到包被修改過了。在OpenStack中,通常是Linux服務(wù)器用iptables軟件包來實現(xiàn)NAT的。

    2、RFC 1918保留了以下三個子網(wǎng)作為私有地址:

    • 10.0.0.0/8
    • 172.16.0.0/12
    • 192.168.0.0/16

    3、SNAT(Source Network Address Translation)在數(shù)據(jù)包進入公網(wǎng)之前,NAT路由器會將IP數(shù)據(jù)包頭部的源地址改成它自己的公網(wǎng)IP,并且修改源TCP或者UDP端口,同時路由器會維護一個表,用于記錄源IP地址以及端口到修改后的IP地址和端口的映射關(guān)系。這種既改變端口也改變IP地址的SNAT方式稱為PAT(Port Address Translation)或者NAT overload。

    4、DNAT(Destination Network Address Translation)顯然就是用于修改IP數(shù)據(jù)包頭部的目標IP地址。OpenStack使用DNAT將實例的數(shù)據(jù)包轉(zhuǎn)發(fā)到OpenStack metadata service。通常,OpenStack實例中的應(yīng)用都是通過發(fā)送一個HTTP GET請求給IP地址為169.254.169.254的web server來訪問OpenStack metadata service。不過事實上OpenStack中并沒有主機有這么一個地址。所以O(shè)penStack使用DNAT用于轉(zhuǎn)換這些包中的目標IP,從而讓它們能訪問metadata service的網(wǎng)絡(luò)接口。

    5、One-to-one NAT,在這種NAT路由器中維護了私有IP和公網(wǎng)IP之間的一對一映射關(guān)系。OpenStack通常使用one-to-one NAT來實現(xiàn)floating IP address。

    ?

    OpenStack Networking

    Networking service,又稱neutron,提供了能夠讓我們在云中定義網(wǎng)絡(luò)的連接性和尋址的API。同時,它也提供了能夠配置和管理各種網(wǎng)絡(luò)服務(wù),包括L3 forwarding, NAT到負載均衡,外圍防火墻和VPN等等。它主要包括了以下三個組件:

    • API server: OpenStack的Networking API支持二層網(wǎng)絡(luò),IPAM以及一個三層路由結(jié)構(gòu)的擴展,用于二層網(wǎng)絡(luò),網(wǎng)關(guān)到外部網(wǎng)絡(luò)的路由。
    • OpenStack Networking plug-in and agents:用于plug或者unplug端口,創(chuàng)建網(wǎng)絡(luò)或子網(wǎng),提供IP尋址。需要注意的是,一次只能使用一個plug-in
    • Message queue:用于在agents之間接收并且路由RPC請求。

    在OpenStack中有project network和provider network兩種類型的網(wǎng)絡(luò)。

    Provider networks

    Provider networks提供虛擬機實例之間的二層連通性,同時對于DHCP和metadata services提供可選的支持。這些網(wǎng)絡(luò)會連接或者映射到數(shù)據(jù)中心的二層網(wǎng)絡(luò)上,通常用VLAN tag來標識和劃分它們。Provider networks在犧牲靈活性的情況下,能夠提供簡單性,性能和可靠性。默認只有管理員能夠創(chuàng)建和更新provider network,因為它需要對基礎(chǔ)物理網(wǎng)絡(luò)的設(shè)置。

    Routed provider networks

    Routed provider networks提供了虛擬機實例之間的三層連通性。這些網(wǎng)絡(luò)通常映射到數(shù)據(jù)中心已有的三層網(wǎng)絡(luò)。事實上,它們會映射到多個layer-2 segments,每一個segment其實就是一個provider network。每一個網(wǎng)絡(luò)都有一個router gateway與它相連,用于在它們之間以及外部路由流量。Networking service是不提供路由的。

    ?Self-service networks

    Self-service network 是完全虛擬化的并且需要虛擬路由器來連接provider network和external network。通常它們還給虛擬機實例提供DHCP和metadata service。一般情況下,self-service network使用overlay network例如VXLAN和GRE,因為它們相比于使用VLAN tag的layer-2 segmentation可以支持更多的網(wǎng)絡(luò)。而且,VLAN一般需要對基礎(chǔ)物理網(wǎng)絡(luò)進行設(shè)置。

    IPv4 self-service network一般使用私有IP地址段并且通過虛擬交換機的SNAT和provider進行交互。而Floating IP能夠讓provider network通過虛擬路由器的DNAT訪問虛擬機實例。IPv6 self-network通常使用公網(wǎng)IP地址段并且通過虛擬路由器的靜態(tài)路由和provider network進行交互。

    Networking service使用在之上一個Network node中的layer-3 agent來實現(xiàn)router。與provider Network直接將實例連接到物理網(wǎng)絡(luò)中不同的是,self-service network必須經(jīng)過一個layer-3 agent。因此layer-3 agent或者network node的故障都會對self-service network和使用它們的實例產(chǎn)生巨大的影響。

    OpenStack主要支持Flat,VLAN,GRE和VXLAN這四種網(wǎng)絡(luò)拓撲結(jié)構(gòu)

    Subnets

    Subnets用于新的ports在一個network中創(chuàng)建時,為其分配IP地址。

    Subnet pools

    Subnet pools是一個預(yù)先定義的地址池,從而讓規(guī)定了可以使用的IP地址的范圍,讓所有子網(wǎng)都在給定的地址池內(nèi)。以此來避免同一個地址池內(nèi)地址的重用以及子網(wǎng)之間地址的重合。

    Ports

    port是設(shè)備和虛擬網(wǎng)絡(luò)的連接點,同時,port描述了相關(guān)的網(wǎng)絡(luò)配置,例如該port使用的MAC和IP地址

    Routers

    路由器用于在self-service和provider network之間,或者屬于同一個project的self-service network之間提供layer-3 services,例如路由和NAT。Networking service通常使用layer-3 agent,通過namespace,來管理路由。

    Security groups

    每個project都包含一個default security group,它允許所有的出口流量并且拒絕所有的入口流量。

    ?

    Service and component hierarchy

    • Server:提供API,管理數(shù)據(jù)庫等等
    • Plugin-ins:管理agents
    • Agents:提供實例間的二層或三層連接,處理物理和虛擬網(wǎng)絡(luò)之間的轉(zhuǎn)換,處理元數(shù)據(jù)

    轉(zhuǎn)載于:https://www.cnblogs.com/YaoDD/p/6397517.html

    總結(jié)

    以上是生活随笔為你收集整理的OpenStack Network --- introduction部分 阅读笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。