您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關如何進行Neutron FWaaS的實踐,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
今天將通過實驗來學習 FWaaS。
在我們的實驗環境中,有兩個 instance: cirros-vm1(172.16.100.3) 和 cirros-vm2(172.16.101.3)。
cirros-vm1 和 cirros-vm2 分別位于網絡 vlan100 和 vlan101。 vlan100 和 vlan101 之間由虛擬路由器 test_router 連接。
在 test_router 沒有應用任何 FWaaS 的情況下,cirros-vm1 可以通過 ping 和 ssh 跨網絡訪問 cirros-vm2。
下面我們將進行如下實驗: 1. 創建一個不包含任何 rule 的 firewall “test_firewall” 并應用到 test_router。
此時 FWaaS 生效,默認情況下會阻止任何跨子網的流量。 2. 創建 rule 允許 ssh,并將其添加到 test_firewall。此時 cirros-vm1 應該能夠 ssh cirros-vm2。
應用無 rule 的 firewall
點擊菜單 Project -> Network -> Firewalls,打開 Firewall Policies 標簽頁面。 目前沒有定義任何 Policie。
點擊按鈕,顯示Policy 創建頁面。
將 Policy 命名為 “test_policy”,直接點擊 “Add” 按鈕。
這樣我們創建的 test_policy 不包含任何 Rule。
進入 “Firewalls” 標簽頁,點擊 “Create Firewall” 按鈕
將新的 Firewall 命名為 “test_firewall”,并關聯 “test_policy”。
在 “Routers” 標簽頁中選擇 “test_router”。 點擊 “Add” 創建 firewall。
等待 test_firewall 的 Status 變為 “Active”,此時 test_router 已經成功應用 test_policy。
可以通過 iptables-save 查看 router namespace 的 iptables 規則
為了讓大家了解底層到底發生了什么變化,下面用 vimdiff 顯示了應用 test_firewall 前后 iptables 規則的變化。
下面我們來分析一下這些規則。
route 在轉發數據包時會使用 chain:
-A FORWARD -j neutron-vpn-agen-FORWARD
neutron-vpn-agen-FORWARD 的規則如下:
-A neutron-vpn-agen-FORWARD -o qr-+ -j neutron-vpn-agen-iv4e85f4601
-A neutron-vpn-agen-FORWARD -i qr-+ -j neutron-vpn-agen-ov4e85f4601
-A neutron-vpn-agen-FORWARD -o qr-+ -j neutron-vpn-agen-fwaas-defau
-A neutron-vpn-agen-FORWARD -i qr-+ -j neutron-vpn-agen-fwaas-defau
我們以第一條為例,其含義是:從 router namespace 任何一個 qr-* interface 發出
的流量都會應用 chain neutron-vpn-agen-iv4e85f4601,該 chain 定義如下:
-A neutron-vpn-agen-iv4e85f4601 -m state --state INVALID -j DROP
-A neutron-vpn-agen-iv4e85f4601 -m state --state RELATED,ESTABLISHED -j ACCEPT
其規則為:
1. 如果數據包的狀態為 INVALID,則 DROP。
2. 如果數據包的狀態為 RELATED 或 ESTABLISHED,則 ACCEPT。
其他正常傳輸的數據怎么處理呢? 回到 neutron-vpn-agen-FORWARD chain 的下一條關于 router 外出數據的規則:
-A neutron-vpn-agen-FORWARD -o qr-+ -j neutron-vpn-agen-fwaas-defau
neutron-vpn-agen-fwaas-defau 內容為:
-A neutron-vpn-agen-fwaas-defau -j DROP
可見,數據會被丟棄。 同樣的道理,router 上所有進入 qr-* interface 的數據也會被丟棄。
其結論是:在沒有定義任何 firewall rule 的情況下,進出 router 的數據包都會被丟棄。
ping 和 ssh 測試表明目前 cirros-vm1 確實已經無法與 cirros-vm2 通信。
上述就是小編為大家分享的如何進行Neutron FWaaS的實踐了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。