外網訪問原理分析

本節我們會將上節創建的 ext_net 連接到 router,并驗證內外網的連通性。

更重要的,我們會分析隱藏在表象之下的原理。

將外網連接到 Neutron 的虛擬路由器,這樣 instance 才能訪問外網。

點擊菜單 Project -> Network -> Routers 進入 router 列表。

點擊 router_100_101 的 “Set Gateway” 按鈕。

在 “External Network” 下拉列表中選擇 ext_net,點擊 “Set Gateway”。

外網設置成功。

我們需要看看 router 發生了什么變化。 點擊 “router_100_101” 鏈接,打開 “Interfaces” 標簽頁

router 多了一個新的 interface,IP 為 10.10.10.2。 該 interface 用于連接外網 ext_net。

查看控制節點的網絡結構,外網 bridge 上已經連接了 router 的 tap 設備 tapb8b32a88-03。

在 router 的 namespace 中查看 tapb8b32a88-03 的 veth pair 設備。

該 veth pair 命名為 qg-b8b32a88-03,上面配置了 IP 10.10.10.2。

router 的每個 interface 在 namespace 中都有對應的 veth。 如果 veth 用于連接租戶網絡,命名格式為 qr-xxx,比如 qr-d568ba1a-74 和 qr-e17162c5-00。 如果 veth 用于連接外部網絡,命名格式為 qg-xxx,比如 qg-b8b32a88-03。

查看 router 的路由表信息。

可以看到默認網關為 10.10.10.1。 意味著對于訪問 vlan100 和 vlan101 租戶網絡以外的所有流量,router_100_101 都將轉發給 ext_net 的網關 10.10.10.1。

現在 router_100_101 已經同時連接了 vlan100, vlan101 和 ext_net 三個網絡,如下圖所示:

下面我們在 cirros-vm3 上測試一下。

cirros-vm3 位于計算節點,現在已經可以 Ping 到 ext_net 網關 10.10.10.1 了。 通過 traceroute 查看一下 cirros-vm3 到 10.10.10.1 的路徑

數據包經過兩跳到達 10.10.10.1 網關。 1. 數據包首先發送到 router_100_101 連接 vlan101 的 interface(172.16.101.1)。 2. 然后通過連接 ext_net 的 interface(10.10.10.2) 轉發出去,最后到達 10.10.10.1。

當數據包從 router 連接外網的接口 qg-b8b32a88-03 發出的時候,會做一次 Source NAT,即將包的源地址修改為 router 的接口地址 10.10.10.2,這樣就能夠保證目的端能夠將應答的包發回給 router,然后再轉發回源端 instance。

可以通過 iptables 命令查看 SNAT 的規則。

當 cirros-vm3(172.16.101.3) Ping 10.10.10.1 時,可用通過 tcpdump 分別觀察 router 兩個 interface 的 icmp 數據包來驗證 SNAT 的行為。

vlan101 interface qr-e17162c5-00 的 tcpdump 輸出:

ext_net interface qg-b8b32a88-03 的 tcpdump 輸出:

SNAT 讓 instance 能夠直接訪問外網,但外網還不能直接訪問 instance。
因為 instance 沒有外網 IP。 這里 “直接訪問 instance” 是指通信連接由外網發起,例如從外網 SSH cirros-vm3。

這個問題可以通過 floating IP 解決,下一節我們將討論浮動 IP。

?

blob.png

轉載于:https://www.cnblogs.com/zhaohongtian/p/6811588.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252739.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252739.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252739.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

URAL1519 Formula 1 —— 插頭DP

題目鏈接:https://vjudge.net/problem/URAL-1519 1519. Formula 1 Time limit: 1.0 secondMemory limit: 64 MBBackground Regardless of the fact, that Vologda could not get rights to hold the Winter Olympic games of 20**, it is well-known, that the city…

電子透霧與光學透霧監控攝像機區別

當你在瘋狂購物時也目前已知的透霧算法大致可以分為兩大類:一種是非模型的圖像增強方法,通過增強圖像的對比度,滿足主觀視覺的要求來達到清晰化的目的;另一種是基于模型的圖像復原方法,它考查圖像退化的原因&#xff0…

sshfs的掛載與卸載

在CentOS中 sshfs的使用依賴EPEL(只安裝sshfs不會出錯,但是卻無法使用) 掛載 安裝EPEL rpm -i https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 如果這個鏈接失效,可訪問官網http://fedoraproject.org/wiki/EPEL 安裝sshfs…

2018年中國視頻監控行業發展空間巨大 AI技術賦能發展乃是未來必然趨勢

https://bg.qianzhan.com/report/detail/459/190131-c2610ca0.html2019-2024年中國視頻監控設備行業市場需求預測與投資戰略規劃分析報告2019-2024年中國安防行業市場前瞻與投資戰略規劃分析報告2019-2024年中國智能安防行業市場前瞻與投資戰略規劃分析報告2019-2024年中國智能…

FTP下載文件

今天公司有需求,需要從遠程FTP服務器上下載文件到本地代碼。然后看了一下,順便做個記錄 什么是FTP呢? 詳細百度百科 FTP 是File Transfer Protocol(文件傳輸協議)的英文簡稱,而中文簡稱為“文傳協議”。用…

tomcat啟動報錯The JRE could not be found.Edit the server and change the JRE location

解決: 在Windows->Preferences->Server->Runtime Environments 選擇Tomcat->Edit,在jre中選擇相應的jdk版本,完事。轉載于:https://www.cnblogs.com/Alwaysbecoding/p/10172752.html

tortoisegit推送ssh-key需要輸入用戶信息

修改了測試代碼,卻在提交代碼時候又跳出來請輸入用戶名和密碼, 后來發現,github push有兩種方式,ssh方式和https方式。而https方式是不同的,具體來說,就是url信息的不同,實際的驗證機制也是不同的。當建立了…

2018年中國視頻監控行業現狀及行業發展趨勢分析預測【圖】

一、中國視頻監控行業現狀 中國 2013-2018 年模擬標清視頻監控攝像機和模擬高清視頻監控攝像機的復合增長率分別為-15.2%、 29.6%。 模擬標清視頻監控攝像機需求量不斷下降, 預計 2018 年同比下降 13%, 將下降到 0.38 億臺。 模擬高清視頻監控攝像機需求…

周總結02

周一周二周三周四周五周六 所花時間 {包括上課} 16:50- 17:50 8:00-9:50 15:00-16:00 15:00- 16:30 0 10:10- 12:00 8&#xff…

C#中控制線程池的執行順序

在使用線程池時,當用線程池執行多個任務時,由于執行的任務時間過長,會導制兩個任務互相執行,如果兩個任務具有一定的操作順序,可能會導制不同的操作結果,這時,就要將線程池按順序操作。下面先給…

MySQL觸發器 trigger學習

觸發器:一類特殊的事物。可監視某種數據操作,并觸發相關操作(insert/update/delete)。表中的某些數據改變,希望同一時候能夠引起其他相關數據改變的需求。 作用:變化自己主動完畢某些語句查詢,加…

如何分析企業未來發展趨勢——以海康威視為例

財務分析主要基于歷史數據,但投資還需要看到企業未來的發展。 在前一篇的財務分析的文章中已經提到過:財務分析只是手段,最終還是要從中發現企業的競爭優勢以及行業的發展趨勢,并以此為基礎,分析企業未來的競爭優勢及…

java與C++的區別

java與C的區別 來源 https://www.cnblogs.com/Allen-rg/p/6692043.html “作為一名C程序員,我們早已掌握了面向對象程序設計的基本概念,而且Java的語法無疑是非常熟悉的。事實上,Java本來就是從C衍生出來的。”  然而,C和Java之…

js調試筆記

js調試方法很多,今天總結一下最實用的的斷點方法: debugger斷點 這個很常見,但許多人不知道其實可以添加條件判斷 if(something){debugger;} source斷點 這個最為常見,不做過多解釋,具體說一下幾個重要圖標: 恢復腳本執行至下一個…

JAVA Spring 事物 ( 已轉賬為例 ) 基于 AOP 注解

<一> 配置為文件 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns:context"http://www.springf…

全球視頻監控設備市場規模分析

權威電子行業研究機構IHS Research發布《中國CCTV與視頻監控設備市場研究報告》顯示&#xff0c;2014年全球視頻監控設備市場143億美元&#xff0c;同比增長14.2%。歐洲、美洲、亞洲都增長低于預期;中國增長高于預期&#xff0c;市場總量達57.1億美元;美國市場雖然出貨量在增加…

vue 新窗口打開外鏈接

背景&#xff1a;vue-router 打開外鏈接 如果使用 a 標簽&#xff0c;會默認加上根路由&#xff0c;導致跳轉失效。那么如何讓 a 標簽點擊跳轉到新窗口&#xff1f;解決方法&#xff1a;html 代碼<a class"a-style" click"linkDownload(https://www.baidu.co…

EasyWeChat微信開放平臺第三方平臺接入

目錄實例化微信服務器推送事件預授權獲取預授權 Code獲取預授權 URLAPI 列表使用授權碼換取公眾號的接口調用憑據和授權信息獲取授權方的公眾號帳號基本信息獲取授權方的選項設置信息設置授權方的選項信息調用授權方 API實例化<?phpuse EasyWeChat\Foundation\Application;…

201521145048《Java程序設計》第11周學習總結

1. 本周學習總結 1.1 以你喜歡的方式&#xff08;思維導圖或其他&#xff09;歸納總結多線程相關內容。 2. 書面作業 本次PTA作業題集多線程 Q1.互斥訪問與同步訪問 完成題集4-4(互斥訪問)與4-5(同步訪問) 1.1 除了使用synchronized修飾方法實現互斥同步訪問&#xff0c;還有什…

修改chrome記住密碼后自動填充表單的背景

2019獨角獸企業重金招聘Python工程師標準>>> input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill {background-color: rgb(250, 255, 189); /* #FAFFBD; */background-image: none;color: rgb(0, 0, 0); } 轉載于:https://my.oschina.net…