日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

网络NAT、桥接与主机模式

發(fā)布時間:2023/12/31 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网络NAT、桥接与主机模式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

筆者很早以前寫了本機windows連接虛擬機Ubuntu的時候使用的NAT模式連接:SecureCRT無法連接VMWare Ubuntu虛擬機問題解決辦法_fenglllle的博客-CSDN博客_securecrt連接不到vmware

然后在MySQL安裝時虛擬機使用的卻是橋接模式?:ubuntu MySQL安裝使用教程_fenglllle的博客-CSDN博客_ubuntu安裝mysql

那么這些網(wǎng)絡(luò)模式的區(qū)別是什么?,筆者一直沒有研究過,知道最近檢查家庭網(wǎng)絡(luò)時,折騰光貓橋接,路由器撥號才想起,這些的關(guān)聯(lián)關(guān)系與網(wǎng)絡(luò)協(xié)議的關(guān)系。實際上以前也看過關(guān)于這些的區(qū)別,但是沒有實際體驗過,也沒用折騰過,很快就忘記了,這次以筆者的實際折騰經(jīng)驗講講區(qū)別。而且這些網(wǎng)絡(luò)在交換機、虛擬機、docker、路由器方面廣泛的應(yīng)用。

1. 網(wǎng)絡(luò)模式?

網(wǎng)絡(luò)模式實際上主要有3種常見模式NAT、橋接、主機,最常用的是NAT、橋接。以筆者的路由器為例:

筆者配置的就是NAT模式,還有Singtel、橋接可選。其中Singtel就是主機單機模式 (HOST-ONLY)

1.1 NAT

NAT:Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換,將一個公網(wǎng)IP(Internet Protocol)地址與私網(wǎng)IP地址進行綁定通信,NAT屏蔽了內(nèi)部網(wǎng)絡(luò),此時外網(wǎng)是不能穿透內(nèi)網(wǎng)的,這就是為什么很多博客在講內(nèi)網(wǎng)穿透,這種技術(shù)解決了IPV4地址枯竭的問題,同時也延長了IPV6的普及。NAT類型:靜態(tài)NAT(Static NAT)動態(tài)地址NAT(Pooled NAT)網(wǎng)絡(luò)地址端口轉(zhuǎn)換NAPT(Port-Level NAT),常用的是NAPT,就是家用環(huán)境的網(wǎng)絡(luò),服務(wù)器對外用的都是公網(wǎng)ip,是可以直接訪問的。NAT這種模式也是路由的一種。

靜態(tài)NAT是一個外網(wǎng)固定IP,對應(yīng)綁定一個私網(wǎng)IP;

動態(tài)NAT是一個外網(wǎng)臨時IP對應(yīng)綁定一個私網(wǎng)IP;

NAPT是一個外網(wǎng)IP+一個端口綁定一個私網(wǎng)IP,外網(wǎng)IP可以是固定的,也可以是臨時分配的,大部分是臨時分配,固定公網(wǎng)IP需要向運營商申請。

NAPT示意圖:

?實際上服務(wù)器內(nèi)部也是使用NAT模式,因為服務(wù)器對外的IP是固定的,可以通過端口綁定的方式,實現(xiàn)對內(nèi)訪問,家庭內(nèi)網(wǎng)穿透也是同理。

1.1.1 路由模式

實際上NAT也是路由的一種,NAT是公網(wǎng)到私網(wǎng)的定義,實際上私網(wǎng)之間也是需要數(shù)據(jù)交換的,即路由。所以很多光貓或者路由器直接使用路由模式與橋接模式區(qū)分,從這個來區(qū)分,路由器也是一臺弱交換機。

根據(jù)TCP/IP協(xié)議,私網(wǎng)之間不是同一個網(wǎng)段是不能相互通信的,關(guān)鍵是子網(wǎng)掩碼,如果子網(wǎng)掩碼不一樣,網(wǎng)關(guān)就不一樣,是不能直接訪問的,這個時候就需要交換數(shù)據(jù)。一般就會接交換機路由器或者用臺電腦來交換數(shù)據(jù)(軟路由😅),就會出現(xiàn)多層NAT。

以太網(wǎng)交換機工作在第二層(數(shù)據(jù)鏈路層),用于在同一網(wǎng)絡(luò)內(nèi)部轉(zhuǎn)發(fā)以太網(wǎng)幀。如果源和目標IP地址位于不同網(wǎng)絡(luò)時,以太網(wǎng)幀必須發(fā)送給路由器,路由器負責在不同網(wǎng)絡(luò)間傳輸報文,通過路由表來決定最佳轉(zhuǎn)發(fā)路徑。

實際上這個是理論上的劃分,實際硬件的劃分比較模糊,通常一個硬件賦予了多種用途,比如光貓,可以賦予撥號,DHCP,WIFI等能力。

1.1.2 DHCP

DHCP(Dynamic Host Configuration Protocol),動態(tài)主機配置協(xié)議,局域網(wǎng)協(xié)議,由服務(wù)器控制一段IP地址范圍,客戶機登錄服務(wù)器時可以自動獲得服務(wù)器分配的IP地址和子網(wǎng)掩碼。

為什么說這個,因為家庭網(wǎng)絡(luò)基本上使用的DHCP,遙想筆者上大學(2009年)的時候,還是在學校申請IP才能上網(wǎng),后來就改為自動獲取了。這中間有什么區(qū)別呢?

我們知道根據(jù)TCP/IP協(xié)議,沒有IP地址是無法通信的,因為IP是唯一標識,無論廣域網(wǎng)還是局域網(wǎng)都是一樣。DHCP就是局域網(wǎng)來自動分配IP地址用的

IPV4地址專門保留了三個區(qū)間作為私有地址:

10.0.0.0/810.0.0.0~10.255.255.255
172.16.0.0/12172.16.0.0~172.31.255.255
192.168.0.0/16192.168.0.0~192.168.255.255

10.0.0.0/8的8表示8個1,表示地址范圍是A類

IPV6以fd00::/8的為保留地址

如果沒有DHCP,那么IP地址就只能手動分配,即上網(wǎng)需要配置IP地址,這個多不方便啊,DHCP也是可以固定IP分配的,實際上一般是交換機通過網(wǎng)口與mac地址綁定的,所以無論怎么重啟,只要mac地址不變,ip就不會改變,只需要告訴DHCP服務(wù)器,我需要xxx的IP地址,只要DHCP服務(wù)器沒有分配給別人就可以分配,根據(jù)DHCP策略,也可以把分配給別人的IP收回來給這臺機器使用,但是IP不能重復(fù),否則DHCP服務(wù)器就會無法處理。

1.1.3 PPPoE

?撥號上網(wǎng),一般常見于家庭網(wǎng)絡(luò),專線不知道是否需要,沒接觸過。撥號的本質(zhì)就是去運營商申請公網(wǎng)IP,一般由光貓或者路由器完成,只要路由器硬件不是太差,優(yōu)先推薦路由器。

1.1.3 NAT優(yōu)缺點

NAT的本質(zhì)就是隔離內(nèi)外網(wǎng),建立可以跟外網(wǎng)通信的局域網(wǎng),節(jié)約了IP地址,缺點也是很明顯,是獨立的局域網(wǎng),外網(wǎng)訪問需要固定公網(wǎng)IP,需要綁定端口通信。這里同時講了DHCP和PPPoE,實際上NAT不需要DHCP和PPPoE,比如我手動設(shè)置IP上網(wǎng),也沒問題,至于PPPoE則是運營商的鍋,根據(jù)筆者理解,完全可以綁定設(shè)備(比如光貓mac)的方式規(guī)劃寬帶大小和自動申請公網(wǎng)IP段,不知道為啥需要撥號。可能筆者理解有限。

1.2 橋接

橋接bridge,實際上名字就是其本義,就是搭橋,使網(wǎng)絡(luò)延伸更廣的地方。實際上就是用于,比如交換機網(wǎng)口不夠了,需要WiFi等場景,延伸網(wǎng)絡(luò)的傳遞。

那個從字面意思,橋接使用上一級路由的DHCP或者手動IP方式通信,相當于上一級NAT的橋接延伸,也可以通過WiFi延伸,連接的設(shè)備就是上一級路由的IP網(wǎng)絡(luò),可以相互通信。

1.3 HOST-NOLY

host-only就是單獨主機,本身并不能與外界通信,只能主機之間通信,純粹局域網(wǎng)。筆者的路由器支持這種模式,但是用處很有限,僅在特殊需要隔絕外網(wǎng)的情況有用,可能部分安全行業(yè)需要吧。

2. 虛擬機的應(yīng)用

以VM和PD虛擬機為例,實際上標準是一樣的,其他虛擬機大同小異。實際上虛擬機使用的也是NAT 橋接 主機模式

VM虛擬機默認NAT。NAT模式可以通過端口轉(zhuǎn)發(fā)的方式訪問內(nèi)部的服務(wù)

其中VM建了2張?zhí)摂M網(wǎng)卡,VMnet8就是NAT使用的,VMnet1是主機模式用的,橋接使用的上一級路由來獲取IP,相當于獨立的掛在NAT上的機器設(shè)備,不會創(chuàng)建虛擬網(wǎng)卡。

?PD虛擬機默認共享網(wǎng)絡(luò),也是NAT,筆者這里改為橋接了。

實際上也創(chuàng)建了2張?zhí)摂M網(wǎng)卡來處理NAT與host-only

3. docker的應(yīng)用

docker是一個特殊的NAT設(shè)計,因為docker本身是進程態(tài),而不是虛擬機,也可以認為是進程虛擬模式

?docker網(wǎng)絡(luò)有:bridge(默認)、 none 、host

bridge為每一個容器分配、設(shè)置IP等,并將容器連接到一個docker0虛擬網(wǎng)橋,通過docker0網(wǎng)橋以及Iptables nat表配置與宿主機通信。因為經(jīng)過了NAT,所以必須端口轉(zhuǎn)發(fā)才能在宿主機訪問。并不是純粹意義的橋接
host使用宿主機的IP和端口
none關(guān)閉了容器的網(wǎng)絡(luò)

實際上還有容器網(wǎng)絡(luò)Container:和一個指定的容器共享IP、端口范圍

筆者macOS并沒發(fā)現(xiàn)docker0的虛擬網(wǎng)卡,但是Ubuntu可以發(fā)現(xiàn)docker0虛擬網(wǎng)卡,查資料說,只有Linux是原生docker,mac win都是虛擬機上創(chuàng)建的。

在docker run時,用 --net 指定容器網(wǎng)絡(luò)模式:

host:? ? ? ? ?使用 --net=host

none:? ? ? ? 使用 --net=none

bridge:? ? ? 使用 --net=bridge,默認就是

container: 使用 --net=container:NAME_or_ID?

docker也可以自定義網(wǎng)卡實現(xiàn)真正意義的橋接,每個docker容器實現(xiàn)獨立的網(wǎng)絡(luò)IP,實際上就是我們自己創(chuàng)建虛擬網(wǎng)卡,橋接模式,讓docker使用我們自己創(chuàng)建的虛擬網(wǎng)卡通信,外網(wǎng)就能訪問,也能通過DHCP分配IP,或者固定IP。比如overlay網(wǎng)絡(luò)驅(qū)動、pipework、macvlan等,推薦macvlan:原理是在宿主機的物理網(wǎng)卡上虛擬出多個虛擬網(wǎng)卡,通過不同的MAC地址在數(shù)據(jù)鏈路層(Data Link Layer)進行網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)。

docker network create -d macvlan \ #使用macvlan方式--subnet=192.168.79.0/24 \ #子網(wǎng)掩碼,C類是24個1--gateway=192.168.79.1 \ #網(wǎng)關(guān),筆者的路由器是79.1-o parent=en1 macvlannet #物理機網(wǎng)卡名稱 網(wǎng)絡(luò)模式命令

筆者的路由器

docker run的時候可以加--net=macvlannet來橋接網(wǎng)絡(luò)了。😄?

4. 路由器與交換機

本質(zhì)上交換機,路由器都是小型服務(wù)器設(shè)備,只是功能用于處理網(wǎng)絡(luò)的NAT與橋接。

交換機實際上實現(xiàn)的是NAT或者橋接的網(wǎng)絡(luò)設(shè)備,實際上可能會有其他功能,類似路由器,路由器也是一臺小型交換機,只是硬件能力較差。

交換機可以綁定端口與mac地址,有很強的IP和mac,網(wǎng)口管理能力,實際上路由器的家長控制也是綁定mac地址,理論上只是硬件和固件的差別,如果給交換機DHCP,那么也可以自動分配IP,WAN與LAN的區(qū)別是軟體(即固件)決定的,所謂的固件實際上是一個操作硬件的驅(qū)動,同時對外提供操作訪問,也是一臺小型服務(wù)器,筆者沒有交換機,以路由器為例,筆者的路由器暴露的服務(wù)是192.168.79.1:80,80是可以默認省略的,這就是一些路由器支持docker的時候,可以用來搭建小型服務(wù)器的原因。

路由器實際上也是一個NAT或者橋接的設(shè)備,WiFi本質(zhì)就是無線橋接,路由器的AP模式,無線中繼,橋接,WiFi都是橋接模式,路由器支持NAT DHCP PPPoE等,可以支持端口轉(zhuǎn)發(fā),這實際上就是內(nèi)網(wǎng)穿透的原理,類似docker的bridge模式,通過端口映射轉(zhuǎn)發(fā)數(shù)據(jù)。以筆者路由器為例:

?很遺憾寬帶沒有IPV6,😅端口轉(zhuǎn)發(fā)

5. 網(wǎng)絡(luò)層TCP/IP協(xié)議

實際上,網(wǎng)絡(luò)協(xié)議是基于TCP/IP 4層協(xié)議,或者5層協(xié)議(5層就是把網(wǎng)絡(luò)接口層劃為2部分),理想模型是OSI 7層模型,但是實際上運用中合并了部分層級,日常接觸到的是應(yīng)用層協(xié)議,比如HTTP,偶爾會接觸到傳輸層協(xié)議TCP/UDP,根據(jù)現(xiàn)有的設(shè)計,HTTP3.0基于UDP協(xié)議傳輸,技術(shù)變化好快😄,一般而言,路由器是應(yīng)用層以下協(xié)議的實現(xiàn),NAT和橋接

總結(jié)

搞清楚了網(wǎng)絡(luò)的NAT,橋接模式,那么很多應(yīng)用場景就很清晰了,比如交換機、路由器、光貓等。而且在實際生產(chǎn)運用中,比如虛擬機,docker等,理解網(wǎng)絡(luò)模式就可以根據(jù)自己的需要定制網(wǎng)絡(luò),建立一個符合需求的龐大生產(chǎn)網(wǎng)絡(luò),而且家庭環(huán)境也可以定制化家庭網(wǎng)絡(luò)設(shè)計,NAS、軟路由等設(shè)備也可以自定義實現(xiàn)。

總結(jié)

以上是生活随笔為你收集整理的网络NAT、桥接与主机模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。