虛擬局域網(wǎng) VLAN(Virtual Local Area Network)

VLAN(Virtual Local Area Network)的中文名為"虛擬局域網(wǎng)"。
虛擬局域網(wǎng)(VLAN)是一組邏輯上的設(shè)備和用戶,這些設(shè)備和用戶并不受物理位置的限制,可以根據(jù)功能、部門及應(yīng)用等因素將它們組織起來,相互之間的通信就好像它們?cè)谕粋€(gè)網(wǎng)段中一樣,由此得名虛擬局域網(wǎng)。VLAN是一種比較新的技術(shù),工作在OSI參考模型的第2層和第3層,一個(gè)VLAN就是一個(gè)廣播域,VLAN之間的通信是通過第3層的路由器來完成的。與傳統(tǒng)的局域網(wǎng)技術(shù)相比較,VLAN技術(shù)更加靈活,它具有以下優(yōu)點(diǎn): 網(wǎng)絡(luò)設(shè)備的移動(dòng)、添加和修改的管理開銷減少;可以控制廣播活動(dòng);可提高網(wǎng)絡(luò)的安全性。
在計(jì)算機(jī)網(wǎng)絡(luò)中,一個(gè)二層網(wǎng)絡(luò)可以被劃分為多個(gè)不同的廣播域,一個(gè)廣播域?qū)?yīng)了一個(gè)特定的用戶組,默認(rèn)情況下這些不同的廣播域是相互隔離的。不同的廣播域之間想要通信,需要通過一個(gè)或多個(gè)路由器。這樣的一個(gè)廣播域就稱為VLAN。
這個(gè)問題其實(shí)已經(jīng)困擾很多年了。
剛畢業(yè)那會(huì),都去網(wǎng)吧上網(wǎng),不會(huì)考慮那么多。
幾年之后,申請(qǐng)了ADSL寬帶,上網(wǎng)變得十分容易,同時(shí)自己電腦還具備了公網(wǎng)IP地址(當(dāng)然是動(dòng)態(tài)IP),
再下載一個(gè)花生殼客戶端,于是有了一個(gè)固定域名,有了這個(gè)固定域名,做什么都方便了,
可以隨意的在公司里遠(yuǎn)程自己家的電腦, 做任何需要做的事情。
有了這些還不滿足,很想在家里遠(yuǎn)程公司的電腦,當(dāng)時(shí)以為很簡(jiǎn)單,可仔細(xì)考慮之后,一點(diǎn)也不簡(jiǎn)單。
首先公司網(wǎng)管肯定不愿意員工在外面隨意操控公司電腦,于是肯定是不愿意從網(wǎng)關(guān)上做端口映射。
中國(guó)的網(wǎng)絡(luò),很大一部分電腦都是做NAT轉(zhuǎn)發(fā)的,尤其是公司電腦,他們不具備外網(wǎng)地址,不能從internet網(wǎng)直接訪問。
有些網(wǎng)絡(luò)更離譜,是通過多層NAT轉(zhuǎn)發(fā)。
一直都想著解決這個(gè)問題,想著如何在家里控制公司的電腦,早期,從應(yīng)用層軟件解決,
做個(gè)服務(wù)程序,一個(gè)運(yùn)行在家里的電腦,一個(gè)運(yùn)行在公司電腦上,公司電腦通過TCP持續(xù)連接到家里電腦,
家里電腦通過這個(gè)TCP連接發(fā)送命令給公司電腦,從而達(dá)到控制公司電腦的目的,
但是這種辦法是有限的,并不具備完全控制的目的。
當(dāng)時(shí)多想有種辦法,能讓公司電腦和家里電腦互相訪問,就像在一個(gè)網(wǎng)絡(luò)里一樣,
(這種辦法其實(shí)早就有產(chǎn)品,類似VPN一樣的東西,但是我只是個(gè)人需求,況且我真的是想自己解決這個(gè)問題)
當(dāng)時(shí)局限于自己的知識(shí)水平,無法從驅(qū)動(dòng)層面解決這個(gè)問題,只好擱置。
直到再幾年后的現(xiàn)在,接觸了windows驅(qū)動(dòng),尤其是NDIS驅(qū)動(dòng),知道該怎么解決這么一個(gè)問題,
并真正的建立起了屬于自己的虛擬局域網(wǎng)絡(luò)。
說到原理,其實(shí)并不是像想象的那么復(fù)雜。
要組建這么一個(gè)虛擬局域網(wǎng),需要一下兩個(gè)條件:
一,一個(gè)具有公網(wǎng)IP的機(jī)器和運(yùn)行在此機(jī)器上的一個(gè)服務(wù)程序,這個(gè)程序類似HUB(集線器)一樣,轉(zhuǎn)發(fā)虛擬以太網(wǎng)數(shù)據(jù)包。
二,需要組建虛擬局域網(wǎng)的每臺(tái)機(jī)器都需要安裝一個(gè)虛擬網(wǎng)卡驅(qū)動(dòng)程序和一個(gè)客戶端程序。
NDIS驅(qū)動(dòng)分為三層,
一是NIC驅(qū)動(dòng),又叫微端口驅(qū)動(dòng),直接跟物理網(wǎng)卡打交道,
二是協(xié)議驅(qū)動(dòng),用來處理類似TCP/IP等協(xié)議包,
三是中間層驅(qū)動(dòng),介于協(xié)議驅(qū)動(dòng)和微端口驅(qū)動(dòng)之間。大家熟悉的防火墻就屬于中間驅(qū)動(dòng),它可以任意串改阻止數(shù)據(jù)包。
而這個(gè)用于組建虛擬局域網(wǎng)的網(wǎng)卡驅(qū)動(dòng),是屬于底層的微端口驅(qū)動(dòng),本來物理網(wǎng)卡的微端口驅(qū)動(dòng)是在
鏈路層上得到上層驅(qū)動(dòng)的原始以太網(wǎng)數(shù)據(jù)包,并傳輸?shù)轿锢砭W(wǎng)卡上去;從物理網(wǎng)卡上得到原始以太網(wǎng)數(shù)據(jù)包,并傳遞給上層驅(qū)動(dòng)。
而虛擬網(wǎng)卡驅(qū)動(dòng)注冊(cè)一個(gè)功能設(shè)備,應(yīng)用層程序用CreateFile打開這個(gè)設(shè)備,
調(diào)用Win32函數(shù)ReadFile/WriteFile,從驅(qū)動(dòng)里讀出以太網(wǎng)數(shù)據(jù)包和寫入以太網(wǎng)數(shù)據(jù)包,
也就是本來把傳輸?shù)轿锢砭W(wǎng)卡的工作,交給了這個(gè)注冊(cè)的功能設(shè)備。
客戶端應(yīng)用程序打開虛擬網(wǎng)卡驅(qū)動(dòng)注冊(cè)的功能設(shè)備,從里邊讀取傳輸?shù)竭@塊虛擬網(wǎng)卡的原始以太網(wǎng)數(shù)據(jù)包,
通過真實(shí)的TCP/UDP套接字傳輸?shù)焦W(wǎng)機(jī)器上的一個(gè)服務(wù)程序上, 服務(wù)程序分析這個(gè)數(shù)據(jù)包,
并向正確的也在這個(gè)虛擬局域網(wǎng)的機(jī)器的客戶端程序轉(zhuǎn)發(fā)這個(gè)數(shù)據(jù)包,
客戶端程序接收到屬于發(fā)往自己的別的機(jī)器的原始以太網(wǎng)數(shù)據(jù)包,通過WriteFile寫入到虛擬網(wǎng)卡驅(qū)動(dòng)中,
從而完成數(shù)據(jù)交互。
為了減少服務(wù)器端壓力,可以利用P2P等技術(shù)讓兩個(gè)需要通訊的機(jī)器直接通訊,但我這屬于小網(wǎng)絡(luò),沒必要搞那么復(fù)雜。
這樣一個(gè)虛擬的局域網(wǎng)就這么組建起來了。
簡(jiǎn)單的說就是把屬于真實(shí)的物理網(wǎng)絡(luò)剝離出來,建立在internet公網(wǎng)的邏輯鏈路上。
這里的技術(shù)難點(diǎn)要屬這個(gè)虛擬網(wǎng)卡驅(qū)動(dòng)的開發(fā),不過熟悉了之后,其實(shí)也不太難。
順便一提的是,在多年前,搞得很火的浩方平臺(tái),能讓大家在不同的網(wǎng)絡(luò)里玩CS等局域網(wǎng)游戲,
記得上大學(xué)的時(shí)候,有很多人在玩,當(dāng)時(shí)覺得很神奇,現(xiàn)在想想其實(shí)也不算什么,實(shí)現(xiàn)的原理都差不多的。
現(xiàn)在虛擬局域網(wǎng)是建立起來了,但是要怎么跟別的真實(shí)網(wǎng)絡(luò)通訊呢,舉個(gè)例子:
公司里有多臺(tái)電腦,都是其他同事的,當(dāng)然其中一臺(tái)電腦肯定是自己的。
這些電腦都在同一個(gè)真實(shí)的局域網(wǎng)里,假設(shè)我家的電腦是A,公司里我的電腦是B,
并且都安裝上了虛擬網(wǎng)卡,已經(jīng)是組建好了的一個(gè)虛擬局域網(wǎng),這個(gè)虛擬網(wǎng)只有A,B兩臺(tái)機(jī)器,
假設(shè)家里的A機(jī)器要訪問其他同事的機(jī)器怎么辦呢? 一個(gè)辦法是讓其他同事也裝虛擬網(wǎng)卡,加入到這個(gè)虛擬網(wǎng)里。
但是多種原因,人家不一定愿意安裝或者怕自己家的電腦成了公用機(jī)器給人隨意訪問。
其實(shí)一個(gè)辦法是把公司的B機(jī)器作為NAT網(wǎng)關(guān),這個(gè)虛擬網(wǎng)就在這個(gè)NAT之后,NAT軟件網(wǎng)上可下載的很多,
也可以用windows自帶的“Internet共享”功能,其實(shí)就是一個(gè)簡(jiǎn)單的NAT。
直到寫這篇文章,我才調(diào)通了這個(gè)NAT功能,
方法如下:
首先在公司機(jī)器B上,設(shè)置好“Internet共享”,物理網(wǎng)卡右擊屬性-》高級(jí)-》Internet共享,
在這里的”家庭網(wǎng)絡(luò)連接“,選擇自己開發(fā)的虛擬網(wǎng)卡 ,
這樣NAT算是設(shè)置好了,
接著要在家里的電腦A上加一條路由,這點(diǎn)很重要,否則無法訪問。
比如公司真實(shí)局域網(wǎng)是 192.168.100.X, 虛擬局域網(wǎng)是 192.168.0.X, B機(jī)器的虛擬IP地址是192.168.0.1
在A機(jī)器上加:
router -p add 192.168.100.0 mask 255.255.255.0 192.168.0.1
意思是發(fā)往192.168.100.X網(wǎng)段的數(shù)據(jù)包,都朝網(wǎng)關(guān) 192.168.0.1(也就是公司的B機(jī)器)發(fā)送,
這樣家里的機(jī)器就能正確的路由到公司的網(wǎng)絡(luò)上。
如果萬一要想家里的電腦和公司的所有同事的電腦都在一個(gè)網(wǎng)段怎么辦呢?用橋接方式,
熟練Vmware的人一定很熟悉它的網(wǎng)絡(luò)連接中的橋接方式,這里用到的技術(shù)跟Vmware的橋接技術(shù)差不多。
原理如下
需要開發(fā)一個(gè)NDIS協(xié)議驅(qū)動(dòng),在協(xié)議驅(qū)動(dòng)里分析每個(gè)數(shù)據(jù)包,把發(fā)往虛擬局域網(wǎng)的數(shù)據(jù)包提取出來(這個(gè)通過IP地址來區(qū)分),
通過一個(gè)功能設(shè)備讀取這些數(shù)據(jù),發(fā)往客戶端應(yīng)用程序,應(yīng)用程序發(fā)給公網(wǎng)的服務(wù)器程序,
客戶端應(yīng)用程序從公網(wǎng)機(jī)器獲得數(shù)據(jù)包,寫給協(xié)議驅(qū)動(dòng),協(xié)議驅(qū)動(dòng)改寫源MAC地址為真實(shí)的物理網(wǎng)卡地址,并發(fā)送出去。
這種叫MAC地址欺騙,真實(shí)局域網(wǎng)的其他機(jī)器一直以為都在同一臺(tái)真實(shí)機(jī)器通訊,實(shí)際是和很多虛擬的機(jī)器通訊,
vmware即采用這種類似的技術(shù)實(shí)現(xiàn)橋接功能,讓虛擬機(jī)IP地址跟真實(shí)網(wǎng)絡(luò)融合在一起。
相關(guān)文章
手把手教你實(shí)現(xiàn)全屋WiFi! 路由器有線、無線Mesh組網(wǎng)簡(jiǎn)易教程
mesh的優(yōu)勢(shì),不多說了,簡(jiǎn)單的幾個(gè)特點(diǎn):操作簡(jiǎn)單,無縫漫游好,下面我們就來看看路由器有線、無線Mesh組網(wǎng)簡(jiǎn)易教程2024-07-10網(wǎng)線水晶頭怎么接 網(wǎng)線水晶頭的接線方法
現(xiàn)在家庭中使用的一般都是雙絞線,雙絞線分為T568A和T568B兩種線序,有工具的情況下還是很好制作的,下面我們就來看看詳細(xì)的圖文操作過程2024-02-06什么是城域網(wǎng)?城域網(wǎng)的布署組成與特點(diǎn)分析
是指在一個(gè)城市或者相鄰的幾個(gè)城市之間形成的高速數(shù)據(jù)通信網(wǎng)絡(luò)系統(tǒng),城域網(wǎng)的成立是由于當(dāng)前城市的計(jì)算機(jī)網(wǎng)絡(luò)正在快速發(fā)展2024-01-03全屋WiFi7組網(wǎng)方案實(shí)操與數(shù)據(jù)實(shí)測(cè) 新手必讀干貨教程分享
趁著雙11活動(dòng)我已經(jīng)搭建好了一套WiFi7環(huán)境,整體預(yù)算說實(shí)話還是挺高的,下聯(lián)升級(jí)倒是不貴,詳細(xì)請(qǐng)看下文介紹2023-12-08大戶型網(wǎng)絡(luò)必備 2023年ac+ap組網(wǎng)方案及產(chǎn)品推薦
很多家庭在新裝修的時(shí)候,準(zhǔn)備使用AC+AP的方式組網(wǎng),在使用AC+AP組網(wǎng)的時(shí)候,該怎么選擇適合自己的產(chǎn)品呢?詳細(xì)請(qǐng)看下文介紹2023-12-01ACAP組網(wǎng)和mesh組網(wǎng)有什么區(qū)別? 大面積房子組網(wǎng)的方式推薦
AC+AP vs Mesh,大面積房子用哪種組網(wǎng)的方式好?目前家庭組網(wǎng)的方式主要以AC+AP和Mesh兩種方式為主,下面我們就來看看詳細(xì)介紹2023-05-19不用AC怎么組網(wǎng)? 多個(gè)AP組網(wǎng)圖文教程
不用AC怎么組網(wǎng)?一般我們會(huì)使用ac+ap組網(wǎng),如果不用ac怎么組網(wǎng)?下面我們就來看看多個(gè)AP組網(wǎng)圖文教程,詳細(xì)請(qǐng)看下文介紹2022-11-28Soul Api網(wǎng)關(guān)功能需求技術(shù)選型分析
這篇文章主要介紹了Soul Api網(wǎng)關(guān)功能需求技術(shù)選型分析,最近公司中臺(tái)api有用到網(wǎng)關(guān)的需求,特整理了下網(wǎng)關(guān)的基本功能以及Soul網(wǎng)關(guān)系統(tǒng)的功能架構(gòu)設(shè)計(jì),記錄于此,有需要的2022-02-25VLAN劃分與子網(wǎng)劃分的有哪些聯(lián)系與區(qū)別?
VLAN劃分與子網(wǎng)劃分的有哪些聯(lián)系與區(qū)別?很多朋友對(duì)VLAN劃分與子網(wǎng)劃分理解的不是透徹,今天我們就來詳細(xì)介紹一下為什么要子網(wǎng)劃分,以及VLAN劃分與子網(wǎng)劃分的區(qū)別,需要的2021-05-12全網(wǎng)最全的VLAN基礎(chǔ)知識(shí)入門
本文全面的介紹了VLAN基礎(chǔ)知識(shí),詳細(xì)介紹了vlan的概念,條理清晰,適合新手理順?biāo)悸?,需要的朋友可以參考?/div> 2021-05-11最新評(píng)論