麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網(wǎng)管 > 局域網(wǎng) > 正文

橋接虛擬局域網(wǎng)和真實局域網(wǎng)到同一網(wǎng)段原理分析

2020-03-15 14:35:19
字體:
來源:轉載
供稿:網(wǎng)友
接上一篇文章《虛擬局域網(wǎng)》。
虛擬局域網(wǎng)底層”物理鏈路“,其實就是建立在真實網(wǎng)卡TCP/UDP協(xié)議上,
通過UDP來轉發(fā)虛擬網(wǎng)卡產生的以太網(wǎng)卡數(shù)據(jù)包,
而上層的應用程序看到的,就跟在一個真實的網(wǎng)絡里通訊一樣。
但是虛擬局域網(wǎng)也就只局限于在本網(wǎng)絡里通訊,等于是一個封閉的網(wǎng)絡一樣。
他們要跟真實局域網(wǎng)建立聯(lián)系,該怎么做呢,上篇文章說道可以借助NAT,
也可以借助路由讓不同網(wǎng)段的虛擬網(wǎng)絡和真實網(wǎng)絡建立聯(lián)系(至于這個功能暫時還沒折騰出來),
還有就是橋接,讓虛擬局域網(wǎng)和真實物理網(wǎng)絡處于同一個網(wǎng)段,
熟悉VMWARE虛擬機,就應該明白什么是橋接功能了。
vmware網(wǎng)絡設置里首先要綁定到一塊真實的網(wǎng)卡,接著才能使用橋接功能。
這種橋接,讓vmware虛擬機里的操作系統(tǒng)就跟局域網(wǎng)里的一臺真正的機器一樣,有獨立IP地址,能被其他機器訪問到。
看那起來是很神奇的功能,其實明白了原理,相信大部分熟悉程序開發(fā)的人都能自己實現(xiàn)
(即使不懂驅動,也能利用現(xiàn)成的抓包開發(fā)包比如WinPcap來實現(xiàn)),

這個原理簡單的說,就是把這個被綁定的網(wǎng)卡,看作是一個具有多個IP地址的網(wǎng)卡,
每個IP地址分配給不同的虛擬機器。
以vmware舉個容易明白的例子,
假設一臺電腦,處于網(wǎng)段192.168.100.XX的局域網(wǎng)中,其物理網(wǎng)卡PC-CARD, 它的IP地址是192.168.100.2,
這臺電腦上裝有vmware,vmware裝有另外一個操作系統(tǒng),設置vmware為橋接模式,并且綁定到物理網(wǎng)卡PC-CARD上,
vmware里裝的操作系統(tǒng)IP地址假設是 192.168.100.3,
局域網(wǎng)中的其他機器,比如192.168.100.4是如何訪問到192.168.100.3的呢?
局域網(wǎng)絕大部分都是以太網(wǎng)標準,依靠MAC地址來識別以太網(wǎng)數(shù)據(jù)包的地址, 其實所有數(shù)據(jù)包都被發(fā)送到PC-CARD網(wǎng)卡,
vmware在NDIS協(xié)議驅動層開發(fā)一個驅動程序,截獲他所感興趣的數(shù)據(jù)包,這里是ip地址192.168.100.3的數(shù)據(jù)包,
并發(fā)送到應用層,并且修改目標MAC地址為虛擬機里操作系統(tǒng)的網(wǎng)卡地址,發(fā)送到vmware里,
虛擬機里的操作系統(tǒng)發(fā)送回應包給用戶程序,修改源MAC地址為PC-CARD的地址,
vmware的協(xié)議驅動再發(fā)送給網(wǎng)卡,這樣,192.168.100.4的機器就能接收到虛擬機里操作系統(tǒng)的數(shù)據(jù)包。
而192.168.100.4的機器一直以為是在跟PC-CARD的另一個IP地址192.168.100.3通訊。

現(xiàn)在要說的是,在vmware功能基礎上,
擴展成來自不同地方的虛擬局域網(wǎng)和物理局域網(wǎng)合并成一個網(wǎng)段,互相無障礙的通訊。
主要的通訊結構還是《虛擬局域網(wǎng)》里所描述的:
一個公網(wǎng)服務器負責轉發(fā)以太網(wǎng)數(shù)據(jù)包,其他的虛擬局域網(wǎng)客戶端連接到這個公網(wǎng)服務器,
某個想把自己所在的物理局域網(wǎng)的機器都給共享出來,他的橋接驅動客戶端也同樣連接到這個公網(wǎng)服務器。
同時需要把所有虛擬網(wǎng)卡的網(wǎng)段設置成這個物理局域網(wǎng)的網(wǎng)段,這樣才能正常通訊。

首先開發(fā)NDIS協(xié)議驅動程序,抓取網(wǎng)卡發(fā)送和接收的數(shù)據(jù)包,
如果不懂驅動,完全可以利用現(xiàn)成的WinPcap來截獲數(shù)據(jù)包。
在協(xié)議驅動中設置包過濾原則為所有本地包,這樣從本網(wǎng)卡發(fā)送出去的和接收到的包括廣播組播包就會截獲到,
再通過一個功能設備,發(fā)送給應用程序。協(xié)議驅動還應該具備從應用層發(fā)送以太網(wǎng)數(shù)據(jù)包到網(wǎng)卡的接口。
驅動部分基本上就做這么多事情,驅動的功能完全可以利用WinPcap替代,因為WinPcap的底層就是個NDIS協(xié)議驅動。

主要的工作在應用層部分,
程序首先綁定到某塊網(wǎng)卡,同時獲得這塊網(wǎng)卡的MAC地址和它的所有IP地址。
在應用層接收到驅動發(fā)來的數(shù)據(jù)包,需要進一步過濾。過濾原則如下:
1),如果是廣播包或者組播包,接收,同時不需要修改數(shù)據(jù)包的目標MAC地址。
2),如果數(shù)據(jù)包的目標MAC地址不是本網(wǎng)卡的MAC地址,丟棄。
3),如果數(shù)據(jù)包目標MAC地址等于本網(wǎng)卡的MAC地址,分析數(shù)據(jù)包類型,保留ARP,RARP和IP類型的數(shù)據(jù)包,
其他類型的數(shù)據(jù)包丟棄,
4),在3)的基礎上,進一步分析數(shù)據(jù)包,取出發(fā)送的目標IP地址,如果是發(fā)給本網(wǎng)卡的,丟棄,否則接收。
5),在4)的基礎上,修改數(shù)據(jù)包的目標MAC地址為真正發(fā)送目的地MAC地址
(至于如何修改,可先事先商量好目標IP地址和目標MAC地址的對應關系。
我是采用動態(tài)辦法:從公網(wǎng)服務器接收的以太網(wǎng)數(shù)據(jù)包,緩存它的源MAC地址和IP地址對應關系。)
過濾成功的數(shù)據(jù)包,發(fā)送到公網(wǎng)服務器上去轉發(fā)。

從公網(wǎng)服務器接收數(shù)據(jù)包,接收到的數(shù)據(jù)包首先緩存他的源MAC地址和IP地址的對應關系,作為上邊第5點的過濾條件。
接著修改數(shù)據(jù)包的源MAC地址為本網(wǎng)卡的MAC地址,為何要如此做,是因為在這個物理局域網(wǎng)網(wǎng)絡中,是靠MAC地址
尋址的,如果不修改,物理局域網(wǎng)的其他機器就不知道該發(fā)給誰。

如上所說,整個橋接客戶端的核心功能就已經(jīng)實現(xiàn)。
注:相關教程知識閱讀請移步到網(wǎng)絡基礎知識頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 免费一级毛片网站 | 欧美视频一区二区三区 | 亚洲视频在线一区二区 | 青青草最新网址 | 黄色电影免费提供 | 国内精品久久久久久久影视红豆 | 久久99国产伦子精品免费 | 久久久久久久久浪潮精品 | 久久国产精品区 | 欧美中文字幕一区二区三区亚洲 | 久久免费视频1 | 欧美日本在线视频 | 欧美亚洲国产成人 | 精品一区二区在线观看 | 在线成人免费视频 | 亚洲成人精品一区二区 | 欧美一级免费高清 | 欧美三级欧美成人高清www | 国产亚洲欧美一区久久久在 | 毛片一区二区三区四区 | 激情九九 | 亚洲日本韩国精品 | 一级大黄毛片免费观看 | 综合激情网 | 毛片视频网址 | 日本羞羞的午夜电视剧 | 毛片在线看免费 | 亚洲视屏 | 2019中文字幕在线播放 | 国产1区2区3区在线观看 | 国产三级国产精品国产普男人 | 久久综合九色综合久久久精品综合 | 天天夜碰日日摸日日澡性色av | 国产毛片视频 | 日韩av片网站 | 国产美女视频免费 | 中文字幕22页 | 九一国产精品 | 国产一区二区高清在线 | 久久久久久久久淑女av国产精品 | 黑人一级片 |