vNF租戶隔離方案總結(jié)

導(dǎo)讀

  • 物理拓撲圖
  • 邏輯拓撲圖
  • 部署方案
  • OpenStack的約束

物理拓撲圖

  • 兩個計算節(jié)點,一個網(wǎng)絡(luò)節(jié)點的OpenStack集群
  • 物理交換機、IPS、防火墻、路由器等
物理拓撲圖

邏輯拓撲圖

  • 兩個租戶網(wǎng)絡(luò)的邏輯拓撲,通過vNF實現(xiàn)租戶隔離
邏輯拓撲圖

部署方案

  1. 準備OpenStack虛擬化版本的vNF鏡像
  2. 為每個租戶啟動一個vNF,并且為vNF綁定兩塊位于不同子網(wǎng)的網(wǎng)卡。其中,下行網(wǎng)卡與對應(yīng)租戶的VM處于一個子網(wǎng),上行網(wǎng)卡所處的子網(wǎng)用于與OpenStack vRouter傳輸數(shù)據(jù)

經(jīng)測試,在OpenStack GUI啟動VM時,不能指定網(wǎng)卡處于同一個租戶網(wǎng)絡(luò)內(nèi)哪個子網(wǎng)。這個功能可能需要在OpenStack后臺操作,命令如下:

# 創(chuàng)建一個租戶網(wǎng)絡(luò)net1中子網(wǎng)subnet1的port,且指定IP地址為172.16.0.1,port名字為port1
# 根據(jù)具體OpenStack網(wǎng)絡(luò)拓撲替換下面命令中的net1, subnet1, ip-address
openstack port create --network net1 --fixed-ip subnet=subnet1,ip-address=172.16.0.1 port1
  1. 配置租戶所有的VM的默認路由為vNF的下行網(wǎng)口的IP,配置vNF的默認路由為上行網(wǎng)口對應(yīng)的vRouter內(nèi)部的IP
  2. vRouter配置靜態(tài)路由或策略路由:
  • 東西向流量,策略路由,下一跳為另一個租戶vNF的上行網(wǎng)卡的IP
  • 南北向流量,默認路由

OpenStack的約束

  1. OpenStack Neutron的安全組默認會對每個網(wǎng)口開啟MAC/IP過濾功能(防arp欺騙),不是該網(wǎng)口的MAC/IP發(fā)出的包會被宿主機丟棄。這種限制會導(dǎo)致vNF的上行網(wǎng)口轉(zhuǎn)發(fā)的數(shù)據(jù)包被丟棄,無法到達vRouter。關(guān)閉安全組有兩種方法
  • 第一種是整體關(guān)閉
# /etc/neutron/plugins/ml2/openvswitch_agent.ini
firewall_driver=None

整體關(guān)閉的弊端是所有的端口不在受安全組保護,私有云尚且可以,公有云會帶來安全隱患

  • 局部關(guān)閉
    OpenStack Neutron的MAC/IP過濾是利用宿主機的iptables實現(xiàn)的,因此可以通過修改iptables配置來達到局部關(guān)閉的效果,具體步驟如下:
    • 為每個租戶創(chuàng)建完畢vNF后,從后臺進入宿主機,找到對應(yīng)網(wǎng)口的tap設(shè)備,記下tap后面的id,例如sc5695d00-9。
    • iptables --line-numbers -nvL | grep ${id}查看對應(yīng)的條目
    • 利用iptables -D ...刪除掉對應(yīng)條目

另一種比較優(yōu)雅的局部關(guān)閉方法是使用OpenStack Cli,可以關(guān)閉指定的port的安全組:
opnestack port set --no-security-group <port>
openstack port set --disable-port-security <port>
也可以為port添加允許通過的MAC/IP
openstack port set --allowed-address ip=address=<ip-address>, mac-address=<mac-address> <port>

  1. OpenStack vRouter是利用Linux內(nèi)核轉(zhuǎn)發(fā)和路由表實現(xiàn)的,因此受到Linux反向路由過濾的限制。所謂的反向路由過濾,就是指網(wǎng)卡處理數(shù)據(jù)包之前,Linux會檢驗反向數(shù)據(jù)包的下一跳是否是從該網(wǎng)卡發(fā)出。如果不是,則丟棄。
    回到邏輯拓撲圖可知,租戶網(wǎng)絡(luò)之間的東西向流量的反向路由方向并不是與vNF同網(wǎng)段的網(wǎng)口,因此在開啟反向路由過濾的情況下,數(shù)據(jù)包轉(zhuǎn)發(fā)會失敗。
    關(guān)閉方法:
# 在網(wǎng)絡(luò)節(jié)點,查看vRouter namespace的名稱
$ ip netns
qdhcp-*
...
qrouter-*
...
$ ip netns exec qrouter-* sysctl -w net.ipv4.conf.all.rp_filter=0
$ ip netns exec qrouter-* sysctl -w net.ipv4.conf.default.rp_filter=0
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 名詞延伸 通俗的說,域名就相當于一個家庭的門牌號碼,別人通過這個號碼可以很容易的找到你。如果把IP地址比作一間房子...
    楊大蝦閱讀 20,783評論 2 56
  • 第一章 網(wǎng)絡(luò)工程基礎(chǔ) 網(wǎng)絡(luò)工程的含義 計算機網(wǎng)絡(luò):是指將有獨立功能的多臺計算機,通過通信設(shè)備線路連接起來,在網(wǎng)絡(luò)軟...
    Azur_wxj閱讀 2,644評論 0 6
  • 1.這篇文章不是本人原創(chuàng)的,只是個人為了對這部分知識做一個整理和系統(tǒng)的輸出而編輯成的,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,340評論 6 174
  • 個人認為,Goodboy1881先生的TCP /IP 協(xié)議詳解學(xué)習(xí)博客系列博客是一部非常精彩的學(xué)習(xí)筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,180評論 0 8
  • 一步一步實現(xiàn)500px引導(dǎo)動畫 -- 酷酷噠 轉(zhuǎn)載請注明出處 : http://www.itdecent.cn/p...
    Hanks閱讀 2,391評論 8 21

友情鏈接更多精彩內(nèi)容