搭建OpenStack平臺或者維護OpenStack平臺會用到一些交叉性的網絡知識,一部分和Linux操作系統的配置有關、一部分和交換機、路由器、網橋等網絡設備有關。當然,和網絡有關的部分并不會涉及的特別深入,仍以基本操作為主,畢竟OpenStack平臺本質上仍舊是一個以軟件為中心的OS級底層平臺。
在使用OpenStack平臺時,我們會在日常維護過程中頻繁使用到這幾個概念:網卡接口、網橋、VLAN、VXLAN、命名空間與名字空間、GRE。
網卡,指的是Linux系統中的 Ethnet,是一個物理接口,也可以通過虛擬軟件模擬生成。
網卡管理工具 ethtool
安裝:
Ubuntu:apt-get install -y ethtool
CentOS:yum install -y ethtool
操作:
ethtool -s DEVICENAME autoneg off speed NUMBER duplex full /設置網卡以某個速度開啟全雙工/
Ubuntu:網卡配置文件是 /etc/network/interfaces
ethtool eth0 /查看網考eth0的信息/
/etc/init.d/networking restart /重啟網絡服務/
配置網卡eth3 的子接口 eth3:0 ,編輯eth3的配置文件如下{
auto eth3
iface eth3 inet static
address 12.7.2.2
netmask 255.0.0.0
auto eth3:0
iface eth3:0 inet static
address 12.7.2.21
netmask 255.0.0.0
}
ifconfig /查看本機網卡信息/
CentOS:網卡配置文件是 /etc/sysconfig/network-scripts/ifcfg-網卡名稱
ethtool em1 /查看網卡em1的信息/
service network restart /重啟網絡服務/
配置網卡 em2 的子接口 em2:0 ,編輯配置文件 /etc/sysconfig/network-scripts/ifcfg-em2:2 如下{
DEVICE=em2:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATWAY=192.168.1.1
ONPARENT=yes
}
網橋是什么?網橋作為一個物理設備出現時,是指一種只有輸入和輸出連個端口的、工作在數據鏈路層對幀進行轉發的硬件產品,他用于鏈接兩個同質網絡,即采用同一網絡協議的LAN,并依賴緩存的MAC地址根據設定條件轉發或丟棄數據。在OpenStack環境中,網橋指的是Linux內核模塊虛擬的以太網接口橋接技術,同時具備了交換機的功能,可以有多個端口,所有加入到網橋的網卡共享網橋的IP,效果相當于在物理交換機的端口上接了一根網線,用于解決虛擬機網卡連接問題。橋接,就是把一臺機器上的多個端口連接起來,其中一個端口收到的報文會被賦值給其他端口。
在OpenStack虛擬環境下,Linux宿主系統中的虛擬網橋會與宿主機的物理網卡連接,寄宿系統中的網卡則加入到虛擬網橋上。
網橋是出現在宿主系統中的,我們選擇CentOS作為宿主系統:
1 安裝網橋的管理工具 bridge-utils
Yum install -y brodge-utils
2 創建網橋 br1 并將物理網卡 em1 加入 br1,并配置 br1 的 IP 為 172.21.1.3
brctl addbr br1
brctl addif em1
ifconfig em1 0.0.0.0
ifconfig br1 172.21.1.3 netmask 255.255.0.0
3 查看網橋信息
brctl show br1
4 物理網卡em1的配置文件 ifcf-em1:
DEVICE=”em1”
HWADDR=”d4:ae:52:64:04:06”
#NM_CONTROLLED=”yes”
ONBOOT=”yes”
BRIDG=”br1”
5 虛擬網橋br1的配置文件 ifcfg-br1:
DEVICE=”br1”
TYPE=Bridge
BOOTPROTO=static
IPADDR=172.21.1.3
NETMASK=255.255.0.0
NETWORK=172.21.0.0
GATEWAY=172.21.1.1
DNS1=61.139.2.69
ONBOOT=”yes”
配置了網橋的IP后,即可使用此IP遠程訪問宿主系統。
與網橋相連接的寄宿系統IP,可以與本網橋IP處于同一網段,也可以處于不同網段。
在實驗環境中我們統一配置寄宿系統的IP段為 192.168.1.0/24,外部交換機設網關地址 192.168.1.1 ,宿主系統中網橋br1的IP為 172.21.1.3 。
我們的寄宿系統是Ubuntu,Ubuntu的網卡eth0需要加入到宿主系統的網卡br0上。Ubuntu的網卡、網橋等配置都在文件 /etc/network/interfaces 中完成:
auto eth0 iface
eth0 inet manual
auto br0
iface br0 inet static
address 192.068.1.3
netmask 255.255.255.0
gateway 192.168.1.1
bridge_ports eth0
關于寄宿系統的網卡與宿主系統的網橋鏈接:
創建寄宿系統時,在宿主系統CentOS 中可以通過GUI工具 virt-manager將寄宿系統的網卡掛載到指定網橋上。
VLAN即 802.1Q 協議,用于限制因廣播風暴引起的網橋通信能力下降,可以隔離不同的網絡。習慣上,我們將虛擬網橋與VLAN對應起來。一個局域網中可以有4096個VLAN 。
VLAN的工作機制是給每個寄宿機發出包都加上一個tag,每個寄宿機只能接收同一VLAN tag的包。
給包標記tag的端口叫做接入端口,只轉發數據包的端口叫中繼端口。各寄宿機在虛擬網橋上的接口就是接入端口,宿主機上的物理網卡接口及交換機上的端口則是中繼端口。
Linux下VLAN的管理工具是 vconfig。
在寄宿系統Ubuntu下,安裝vconfig并載入8021q模塊:
apt-get install vlan
modprobe 8021q 【將該模塊加入到配置文件 /etc/modules 中】
多個VLAN的數據可以通過一個物理網卡對外轉發,每個VLAN以獨立的接口出現??梢詾槊總€VALN接口分配不同的IP,讓這個IP成為某個VALN對外訪問的網關。
在寄宿系統Ubuntu的eth3上創建VALN 2、3、4并賦予各VALN IP,而后將之添加到寄宿系統路由表中:
vconfig add eth3 2
vconfig add eth3 3
vconfig add eth3 4
ifconfig eth3.2 192.168.2.1 netmask 255.255.255.0 up
ifconfig eth3.3 192.168.3.1 netmask 255.255.255.0 up
ifconfig eth3.4 192.168.4.1 netmask 255.255.255.0 up
ip route add 192.168.1.0/24 dev eth3.2
ip route add 192.168.2.0/24 dev eth3.3
ip route add 192.168.3.0/24 dev eth3.4
【vconfig rem VALN接口 表示刪除某個VLAN接口】
在宿主機CentOS 中,我們只創建虛擬網橋和VLAN,VALN的網關設置在交換機中,不同VLAN間的互訪通過交換機中的路由表完成。若要限制不同VALN間的互訪,則應在交換機中配置訪問控制列表。
用多塊網卡連接不同網段,需要用路由表來處理網絡路徑。
Open vSwitch 是創建在宿主系統CentOS中的虛擬交換機。
虛擬交換機的使用:
ovs-vsctl add-br br0 /添加虛擬網橋br0/
ovs-vsctl add-port br0 eth0 /將網卡eth0加入到虛擬網橋br0/
ovs-vsctl add-port br0 vlan1 tag=1 /**在虛擬網橋br0上創建屬于VLAN1的端口vlan1/
ovs-vsctl add-port br0 vlan2 tag=2 /**在虛擬網橋br0上創建屬于VLAN2的端口vlan2/
ovs-vsctl set Interface vlan1 type=internal /設置端口vlan1/
ifconfig vlan1 192.168.1.1 netmask 255.255.255.0 /設置vlan1端口的IP為192.168.1.1/
ovs-vsctl set Interface vlan2 type=internal /設置端口vlan2/
ifconfig vlan2 192.168.2.1 netmask 255.255.255.0 /設置vlan2 端口的IP為192.168.2.1/
【我們將eth0的IP配置為0,則應給其所屬虛擬網橋br0配置IP及網關,通過虛擬網橋的IP訪問服務器】
關于保存OVS的配置:一是將配置指令寫入 /etc/rc.local ;二是將配置寫入網絡配置文件。
一個VXLAN管理域可有1600萬個VIN,每個VIN可以有4096個VLAN。運行在同一個VIN上的寄宿機間可以通信。
可以在宿主系統CentOS上創建一個VXLAN接口,將之加入虛擬交換機的一個橋中,這樣OVS便具備了組播功能。
在Linux中 命名空間 提供了一種資源虛擬隔離機制,從而實現多個進程間的互不干擾。在OpenStack華景中,我們更關注網絡命名空間,相同命名空間內的網絡設備可以互訪、不同命名空間內的網絡設備不可互訪。命名空間和系統的通信是通過VETH實現的,命名空間內的veth-in接口的數據會被轉發到系統空間的veth-out端口,veth-out和宿主機的網卡eth0加入到同一個虛擬網橋后,veth-in接口的數據就可以通過宿主機的網卡eth0與外部通信了。
GRE,全稱為Generic Routing Encapsulation,通用路由封裝,針對某些網絡協議的報文進行封裝、并使封裝后的報文能在另一網絡協議中傳輸。GRE本質上是一種支持點對點連接的tunnel技術,在OpenStack中由OVS進行封包和解包,這是現今主要使用的 Overlay 網絡技術之一,由Cisco 等公司提出。
VXLAN,是一種新的網域管理設計理念,是一種交換機上的功能,每個管理域可容納1600個VIN、每個VIN又可容納4096VLAN,使得整個OpenStack的租戶容量大大得到擴展,同事也使得一個租戶的VM實例可以跨數據中心部署。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。