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

首頁 > 網管 > 局域網 > 正文

橋接虛擬局域網和真實局域網到同一網段原理分析

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

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

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

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

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

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

如上所說,整個橋接客戶端的核心功能就已經實現。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中日无线码1区 | 色屁屁xxxxⅹ免费视频 | 亚洲91精品 | hd性videos意大利复古 | 天天透天天狠天天爱综合97 | 热99热| 国产三级在线观看a | 国产老师做www爽爽爽视频 | 久久一本日日摸夜夜添 | 国产精品成人免费一区久久羞羞 | 一级黄色电影网站 | 91成人在线网站 | 国产一级毛片高清视频 | 欧美一级视频免费看 | 亚洲一区二区三区视频 | 超级av在线| 自拍偷拍亚洲图片 | 真人一级毛片免费 | 亚洲第一色片 | 中文字幕www| 成人福利在线免费观看 | 欧日一级片 | 精品久久久久久久久久久aⅴ | 91亚洲精品一区二区福利 | 黄色毛片视频在线观看 | 国产午夜精品久久久久 | 中文字幕视频在线播放 | 青青草最新网址 | 国产欧美精品综合一区 | 在线a亚洲视频播放在线观看 | 欧美aⅴ视频 | 中文字幕国产欧美 | av电影在线观看免费 | 精品三级内地国产在线观看 | 精品国产一区二区三区久久久狼牙 | av最新在线 | 国产精品久久久免费观看 | 2018亚洲男人天堂 | jizzjizzjizz少妇 | 一区二区三区视频在线播放 | 一级在线免费观看视频 |