您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關如何用namspace隔離DHCP服務,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
Neutron 通過 dnsmasq 提供 DHCP 服務,而 dnsmasq 如何獨立的為每個 network 服務呢?
答案是通過 Linux Network Namespace 隔離,本節將詳細討論。
在二層網絡上,VLAN 可以將一個物理交換機分割成幾個獨立的虛擬交換機。 類似地,在三層網絡上,Linux network namespace 可以將一個物理三層網絡分割成幾個獨立的虛擬三層網絡。
每個 namespace 都有自己獨立的網絡棧,包括 route table,firewall rule,network interface device 等。
Neutron 通過 namespace 為每個 network 提供獨立的 DHCP 和路由服務,從而允許租戶創建重疊的網絡。
如果沒有 namespace,網絡就不能重疊,這樣就失去了很多靈活性。
每個 dnsmasq 進程都位于獨立的 namespace, 命名為 qdhcp-<network id>,例如 flat_net,我們有:
ip netns list 命令列出所有的 namespace。 qdhcp-f153b42f-c3a1-4b6c-8865-c09b5b2aa274 就是 flat_net 的 namespace。
其實,宿主機本身也有一個 namespace,叫 root namespace,擁有所有物理和虛擬 interface device。 物理 interface 只能位于 root namespace。
新創建的 namespace 默認只有一個 loopback device。 管理員可以將虛擬 interface,例如 bridge,tap 等設備添加到某個 namespace。
對于 flat_net 的 DHCP 設備 tap19a0ed3d-fe,需要將其放到 namespace qdhcp-f153b42f-c3a1-4b6c-8865-c09b5b2aa274 中,但這樣會帶來一個問題: tap19a0ed3d-fe 將無法直接與 root namespace 中的 bridge 設備 brqf153b42f-c3 連接。
Neutron 使用 veth pair 解決了這個問題。
veth pair 是一種成對出現的特殊網絡設備,它們象一根虛擬的網線,可用于連接兩個 namespace。向 veth pair 一端輸入數據,在另一端就能讀到此數據。
tap19a0ed3d-fe 與 ns-19a0ed3d-fe 就是一對 veth pair,它們將 qdhcp-f153b42f-c3a1-4b6c-8865-c09b5b2aa274 連接到 brqf153b42f-c3。
可以通過 ip netns exec <network namespace name> <command> 管理 namespace。
看完上述內容,你們對如何用namspace隔離DHCP服務有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。