比IP和路由更重要的是什么?當網(wǎng)絡2層出現(xiàn)故障的時候,鏈路層的知識顯得更重要。許多人都沒有掌握構建富有彈性的2層網(wǎng)絡必須具備的生成樹協(xié)議的知識。當一臺交換機出現(xiàn)問題時,除非主機直接連接到這臺交換機。否則不應該影響其它人的網(wǎng)絡連接。在我們深入介紹生成樹協(xié)議之前,你必須要理解2層內部的工作原理。
2層是數(shù)據(jù)鏈路層,是以太網(wǎng)所在的層。在這一層我們將討論網(wǎng)橋、交換和虛擬局域網(wǎng),要讓一個網(wǎng)絡運行起來,你實際上不需要學習以太網(wǎng)內部的工作原理,當然,如果你愿意學習的話,你可以利用其它的時間學習這方面的知識。
以太網(wǎng)交換機是一種“網(wǎng)橋”設備。傳統(tǒng)的網(wǎng)橋是這樣工作的,一開始它接收以太網(wǎng)幀,然后,把它們發(fā)送到除接收端口之外的全部其它端口。以太網(wǎng)交換機具允許允許雙絞線連接的能力。它漸學習哪一個端口連接了哪些MAC地址。這時候,網(wǎng)橋就變成了一臺學習設備,能夠存儲在一個端口上看到的全部的MAC地址表。當一個幀需要發(fā)出時,網(wǎng)橋將查看在網(wǎng)橋表中的目標MAC地址,并且知道應該在哪一個端口發(fā)送這個幀。這種僅向正確的主機發(fā)送數(shù)據(jù)的能力是交換技術中的一個巨大的進步,因為這可能顯著減少通信沖突。如果在網(wǎng)橋表中沒有目標MAC地址,交換機就簡單地把數(shù)據(jù)發(fā)送到全部端口。這是首次發(fā)現(xiàn)主機到底在什么地方的惟一方法,因此,正如你看到的那樣,把數(shù)據(jù)發(fā)送到全部端口是交換技術中的一個重要原則。這個原則在路由中也非常必要。
2層相關的重要詞匯包括:
單播分段(Unicast segmentation):網(wǎng)橋能夠限制哪些主機能夠收到單播幀(僅發(fā)送給一個MAC地址的幀)。集線器只是簡單地把一切數(shù)據(jù)發(fā)送給所有的端口,因此,單播分段本身可以節(jié)省大量的帶寬。
沖突域(Collision Domain):沖突域是能夠發(fā)生沖突的網(wǎng)段。由于交換機采用了直通發(fā)送技術以及網(wǎng)卡全部采用雙工技術,沖突已經不再發(fā)生了。如果你在一個端口看到沖突,這就意味著有人意外地使用半雙工的設備,或者是出現(xiàn)了其它的故障。
廣播域:發(fā)送和接收廣播幀的網(wǎng)段。
在交換機產品幾年后,網(wǎng)橋運行所采用的老式的存儲和發(fā)送方式改變了。新的交換機僅查看幀的目標MAC地址,然后立即把這個幀發(fā)送出去。這種技術稱作“直通發(fā)送”可以幀更快地直接通過交換機,因為這種方式對幀很少進行處理。這種方式也暗示了一件重要的事情:一臺交換機不再檢查CRC(循環(huán)冗余校驗)以便查看數(shù)據(jù)包是否損壞。這還暗示著不可能發(fā)生沖突。
另外,為了解決廣播網(wǎng)段的問題,我們引入了虛擬局域網(wǎng)技術。如果你不能向另一臺機器發(fā)送廣播幀,那些機器就不在你的本地網(wǎng)絡中,你要把全部數(shù)據(jù)包發(fā)送給一臺路由器,接著由路由器發(fā)送這些數(shù)據(jù)包。實際上,這就是虛擬局域網(wǎng)做的事情:虛擬局域網(wǎng)將網(wǎng)絡劃分為更多的子網(wǎng)。
你可以在一臺交換機上設置虛擬局域網(wǎng),然后向一個虛擬局域網(wǎng)分配端口。如果主機A是虛擬局域網(wǎng)1,這臺主機就不能與虛擬局域網(wǎng)2中的任何人通話,就像它們生活在完全沒有網(wǎng)絡連接的設備中一樣。不過需要注意,這畢竟只是虛擬的,如果交換機的MAC地址表空間已經被數(shù)據(jù)填滿從而無法繼續(xù)維護這個交換MAC地址表,為了繼續(xù)維持通訊交換機將會把收到的所有數(shù)據(jù)轉發(fā)到所有端口。很多人將VLAN視為一種很好的安全措施,實際上任何一個半吊子黑客使用合適的工具都可以很快的攻克交換機的VLAN限制,事實上,當交換機出現(xiàn)MAC地址表溢出的情況時,它會變成一臺單純的HUB。
正如我們已經知道的那樣,如果你無法使用ARP協(xié)議獲得目標的MAC地址,那你必須要使用一臺路由器。這是不是意味著你必須在每個VLAN之間物理的連入一臺路由器呢?不需要,因為我們現(xiàn)在擁有3層交換機!設想一個例子,如果你愿意,一臺交換機可以配置48個端口。這臺交換機有兩個虛擬局域網(wǎng),虛擬局域網(wǎng)1采用1至24端口,虛擬局域網(wǎng)2采用25至48端口。要把這兩個虛擬局域網(wǎng)連接起來,你基本上有三種選擇。第一,使用一臺路由器分別連接這兩個虛擬局域網(wǎng)中的一個端口,并且分為VLAN中的主機配置正確的默認路由。第二種方法是你還可以簡單地在每個虛擬局域網(wǎng)中各自建立一個虛擬路由器接口(virtual interfaces)。在思科的設備,這種虛擬路由器接口可能稱作“vlan1”和“vlan2”。它們擁有自己的IP地址,而VLAN中的主機使用這些虛擬路由器接口作為自己的路由器。
在第三種方法使我們回到了2層概述的最終話題。如果你擁有多臺需要包含同樣的虛擬局域網(wǎng)的交換機,你可以通過端口匯聚(trunk)的方式它們都連接起來。這樣,交換機A中的虛擬局域網(wǎng)1和交換機B中的虛擬局域網(wǎng)1就完全是一樣的了。這是采用802.1q標準完成的。802.1q標準為將離開第一臺交換機的數(shù)據(jù)包打上一個虛擬局域網(wǎng)的標識符。思科把這些交換機間的鏈路稱作“主干端口(trunk ports)”,你可以擁有交換機允許的最多數(shù)量的虛擬局域網(wǎng)(目前大多數(shù)硬件允許4096個虛擬局域網(wǎng))。因此,在虛擬局域網(wǎng)之間建立聯(lián)系的第三種方法(也是最后一種方法)是把以trunk方式連接一臺路由器,并且為每一個虛擬局域網(wǎng)建立一個虛擬路由器接口。虛擬局域網(wǎng)1上的主機(無論是在交換機A和交換機B上)都能夠訪問這個路由器接口(這個接口可以在另一臺設備上),因為他們全部都連接在了一起,并且共享一個廣播域。關于trunk與802.1q的更多信息請參見這篇文章。
在這里我們沒有采用“這是2層協(xié)議,記住以太網(wǎng)數(shù)據(jù)包頭”這種標準的教學模式。要成為一個真正的專家,你必須要知道這些知識。但是,要成為一個有用的操作人員,簡單地知道2層是如何工作的就可以了。下一講我們將介紹網(wǎng)絡領域最有趣的協(xié)議生成樹協(xié)議。
小結:
●網(wǎng)橋(又名交換機)存儲MAC地址表以實現(xiàn)單播網(wǎng)段功能。也就是說它們僅向需要這個數(shù)據(jù)的主機發(fā)送單播數(shù)據(jù)。
●虛擬局域網(wǎng)并不能提供可靠的安全。
●一臺3層交換機能夠通過trunk提供多個虛擬局域網(wǎng),并且為這些虛擬局域網(wǎng)提供路由。這可以完全在同一條線路上實現(xiàn)。