網絡知識梳理--OSI七層網絡與TCP/IP五層網絡架構及二層/三層網絡


 

作為一個合格的運維人員,一定要熟悉掌握OSI七層網絡和TCP/IP五層網絡結構知識。

廢話不多說!下面就逐一展開對這兩個網絡架構知識的說明:
一、OSI七層網絡協議
OSIOpen System Interconnect的縮寫,意為開放式系統互聯

OSI參考模型各個層次的划分遵循下列原則:
1)根據不同層次的抽象分層
2)每層應當有一個定義明確的功能
3)每層功能的選擇應該有助於制定網絡協議的國際標准。
4)各層邊界的選擇應盡量節省跨過接口的通信量。
5)層數應足夠多,以避免不同的功能混雜在同一層中,但也不能太多,否則體系結構會過於龐大
6)同一層中的各網絡節點都有相同的層次結構,具有同樣的功能。
7)同一節點內相鄰層之間通過接口(可以是邏輯接口)進行通信。
8)七層結構中的每一層使用下一層提供的服務,並且向其上層提供服務。
9)不同節點的同等層按照協議實現對等層之間的通信。

根據以上標准,OSI參考模型分為(從上到下):
物理層->數據鏈路層->網絡層->傳輸層->會話層->表示層->應用層

1)物理層涉及在信道上傳輸的原始比特流。
2)數據鏈路層的主要任務是加強物理層傳輸原始比特流的功能,使之對應的網絡層顯現為一條無錯線路。發送包把輸入數據封裝在數據幀,按順序傳送出去並處理接收方回送的確認幀。
3)網絡層關系到子網的運行控制,其中一個關鍵問題是確認從源端到目的端如何選擇路由。
4)傳輸層的基本功能是從會話層接收數據而且把其分成較小的單元傳遞給網絡層。
5)會話層允許不同機器上的用戶建立會話關系。
6)表示層用來完成某些特定的功能。
7)應用層包含着大量人們普遍需要的協議。

各層功能見下表:

七層模型的每一層都具有清晰的特征。基本來說:
1)第七至第四層(應用層->表示層->會話層->傳輸層)處理數據源和數據目的地之間的端到端通信,
2)第三至第一層(網絡層->數據鏈路層->物理層)處理網絡設備間的通信。

另外:
OSI模型的七層也可以划分為兩組:
1)上層(層7、層6和層5,即應用層->表示層->會話層)。上層處理應用程序問題,並且通常只應用在軟件上。最高層,即應用層是與終端用戶最接近的。
2)下層(層4、層3、層2和層1,即傳輸層->網絡層->數據鏈路層->物理層)。下層是處理數據傳輸的。物理層和數據鏈路層應用在硬件和軟件上。最底層,即物理層是與物理網絡媒介(比如說,電線)最接近的,並且負責在媒介上發送

第7層-應用層
定義了用於在網絡中進行通信和數據傳輸的接口 - 用戶程式;
提供標准服務,比如虛擬終端、文件以及任務的傳輸和處 理;
應用層為操作系統或網絡應用程序提供訪問網絡服務的接口。應用層協議的代表包括:Telnet、FTP、HTTP、SNMP等。

第6層-表示層
掩蓋不同系統間的數據格式的不同性;
指定獨立結構的數據傳輸格式;
數據的編碼和解碼;加密和解密; 壓縮和解壓縮
這一層主要解決擁護信息的語法表示問題。它將欲交換的數據從適合於某一用戶的抽象語法,轉換為適合於OSI系統內部使用的傳送語法。即提供格式化的表示和轉換數據服務。數據的壓縮和解壓縮, 加密和解密等工作都由表示層負責。

第5層-會話層
管理用戶會話和對話;
控制用戶間邏輯連接的建立和掛斷;
報告上一層發生的錯誤
這一層也可以稱為會晤層或對話層,在會話層及以上的高層次中,數據傳送的單位不再另外命名,而是統稱為報文。會話層不參與具體的傳輸,它提供包括訪問驗證和會話管理在內的建立和維護應用之間通信的機制。如服務器驗證用戶登錄便是由會話層完成的。

第4層-處理信息的傳輸層
管理網絡中端到端的信息傳送;
通過錯誤糾正和流控制機制提供可靠且有序的數據包傳送;
提供面向無連 接的數據包的傳送;
第4層的數據單元也稱作數據包(packets)。但是,當你談論TCP等具體的協議時又有特殊的叫法,TCP的數據單元稱為段 (segments)而UDP協議的數據單元稱為“數據報(datagrams)”。這個層負責獲取全部信息,因此,它必須跟蹤數據單元碎片、亂序到達的 數據包和其它在傳輸過程中可能發生的危險。第4層為上層提供端到端(最終用戶到最終用戶)的透明的、可靠的數據傳輸服務。所為透明的傳輸是指在通信過程中 傳輸層對上層屏蔽了通信傳輸系統的具體細節。傳輸層協議的代表包括:TCP、UDP、SPX等。

第3層-網絡層
定義網絡設備間如何傳輸數據;
根據唯一的網絡設備地址路由數據包;
提供流和擁塞控制以防止網絡資源 的損耗
在 計算機網絡中進行通信的兩個計算機之間可能會經過很多個數據鏈路,也可能還要經過很多通信子網。網絡層的任務就是選擇合適的網間路由和交換結點, 確保數據及時傳送。網絡層將數據鏈路層提供的幀組成數據包,包中封裝有網絡層包頭,其中含有邏輯地址信息- -源站點和目的站點地址的網絡地址。如 果你在談論一個IP地址,那么你是在處理第3層的問題,這是“數據包”問題,而不是第2層的“幀”。IP是第3層問題的一部分,此外還有一些路由協議和地 址解析協議(ARP)。有關路由的一切事情都在這第3層處理。地址解析和路由是3層的重要目的。網絡層還可以實現擁塞控制、網際互連等功能。在這一層,數據的單位稱為數據包(packet)。網絡層協議的代表包括:IP、IPX、RIP、OSPF等。

第2層-數據鏈路層(DataLinkLayer):
定義操作通信連接的程序;
封裝數據包為數據幀;
監測和糾正數據包傳輸錯誤
在物理層提供比特流服務的基礎上,建立相鄰結點之間的數據鏈路,通過差錯控制提供數據幀(Frame)在信道上無差錯的傳輸,並進行各電路上的動作系列。數據鏈路層在不可靠的物理介質上提供可靠的傳輸。該層的作用包括:物理地址尋址、數據的成幀、流量控制、數據的檢錯、重發等。在這一層,數據的單位稱為幀(frame)。數據鏈路層協議的代表包括:SDLC、HDLC、PPP、STP、幀中繼等。

第1層-物理層(PhysicalLayer)
定義通過網絡設備發送數據的物理方式;
作為網絡媒介和設備間的接口;
定義光學、電氣以及機械特性。
規定通信設備的機械的、電氣的、功能的和過程的特性,用以建立、維護和拆除物理鏈路連接。具體地講,機械 特性規定了網絡連接時所需接插件的規格尺寸、引腳數量和排列情況等;電氣特性規定了在物理連接上傳輸bit流時線路上信號電平的大小、阻抗匹配、傳輸速率 距離限制等;功能特性是指對各個信號先分配確切的信號含義,即定義了DTE和DCE之間各個線路的功能;規程特性定義了利用信號線進行bit流傳輸的一組 操作規程,是指在物理連接的建立、維護、交換信息是,DTE和DCE雙放在各電路上的動作系列。在這一層,數據的單位稱為比特(bit)。屬於物理層定義的典型規范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等。

二、TCP/IP

TCP/IP(傳輸控制協議/網間網協議)是目前世界上應用最為廣泛的協議,它的流行與Internet的迅猛發展密切相關。
TCP/IP最初是為互聯網的原型ARPANET所設計的,目的是提供一整套方便實用、能應用於多種網絡上的協議,事實證明TCP/IP做到了這一點,它使網絡互聯變得容易起來,並且使越來越多的網絡加入其中,成為Internet的事實標准。

TCP/IP協議族包含了很多功能各異的子協議。為此我們也利用上文所述的分層的方式來剖析它的結構。

TCP/IP層次模型共分為四層:應用層->傳輸層->網絡層->數據鏈路層

各層功能見下表 

TCP(Transmission Control Protocol:傳輸控制協議)和UDP(User Datagram Protocol:用戶數據報協議)協議屬於傳輸層協議。其中:
1)TCP提供IP環境下的數據可靠傳輸,它提供的服務包括數據流傳送、可靠性、有效流控、全雙工操作和多路復用。通過面向連接、端到端和可靠的數據包發送。通俗說,它是事先為所發送的數據開辟出連接好的通道,然后再進行數據發送;
2)UDP則不為IP提供可靠性、流控或差錯恢復功能。一般來說,TCP對應的是可靠性要求高的應用,而UDP對應的則是可靠性要求低、傳輸經濟的應用。

應用層
應用層是所有用戶所面向的應用程序的統稱。ICP/IP協議族在這一層面有着很多協議來支持不同的應用,許多大家所熟悉的基於Internet的應用的實現就離不開這些協議。如我們進行萬維網(WWW)訪問用到了HTTP協議、文件傳輸用FTP協議、電子郵件發送用SMTP、域名的解析用DNS協議、遠程登錄用Telnet協議等等,都是屬於TCP/IP應用層的;就用戶而言,看到的是由一個個軟件所構築的大多為圖形化的操作界面,而實際后台運行的便是上述協議。

傳輸層
這一層的的功能主要是提供應用程序間的通信,TCP/IP協議族
在這一層的協議有TCP和UDP。

網絡層
TCP/IP協議族中非常關鍵的一層,主要定義了IP地址格式,從而能夠使得不同應用類型的數據在Internet上通暢地傳輸,IP協議就是一個網絡層協議。

網絡接口層
這是TCP/IP軟件的最低層,負責接收IP數據包並通過網絡發送之,或者從網絡上接收物理幀,抽出IP數據報,交給IP層。

===============================================
TCP支持的應用協議主要有:Telnet、FTP、SMTP等;
UDP支持的應用層協議主要有:NFS(網絡文件系統)、SNMP(簡單網絡管理協議)、DNS(主域名稱系統)、TFTP(通用文件傳輸協議)等。

TCP/IP協議與低層的數據鏈路層物理層無關,這也是TCP/IP的重要特點。

===============================================================================
TCP連接建立-斷開的過程說明(可以參考:高效運維-三次握手和四次揮手

TCP連接的端點叫做套接字(socket)或插口,即(IP地址:端口號),每一條TCP連接唯一地被通信兩端的兩個端點(即兩個套接字)所確定。

TCP的運輸連接有三個階段,即連接建立、數據傳送、連接釋放。
TCP連接建立的過程要使每一方能夠確定對方的存在:主動發起連接建立的應用進行叫做客戶(client),被動等待連接建立的應用進程叫做服務器(server),連接建立的過程叫做三次握手。

假設A為客戶,B為服務器,A發送一個報文給B,B發回確認,然后A再加以確認,來回共三次,成為“三次握手”。三次握手建立連接~

所謂三次握手(Three-Way Handshake)即建立TCP連接,就是指建立一個TCP連接時,需要客戶端和服務端總共發送3個包以確認連接的建立。在socket編程中,這一過程由客戶端執行connect來觸發,整個流程如下圖所示:

1)第一次握手:Client將標志位SYN置為1,隨機產生一個值seq=J,並將該數據包發送給Server,Client進入SYN_SENT狀態,等待Server確認。
2)第二次握手:Server收到數據包后由標志位SYN=1知道Client請求建立連接,Server將標志位SYN和ACK都置為1,ack=J+1,隨機產生一個值seq=K,並將該數據包發送給Client以確認連接請求,Server進入SYN_RCVD狀態。
3)第三次握手:Client收到確認后,檢查ack是否為J+1,ACK是否為1,如果正確則將標志位ACK置為1,ack=K+1,並將該數據包發送給Server,Server檢查ack是否為K+1,ACK是否為1,如果正確則連接建立成功,Client和Server進入ESTABLISHED狀態,完成三次握手,隨后Client與Server之間可以開始傳輸數據了。

SYN攻擊解釋:
三次握手過程中,Server發送SYN-ACK之后,收到Client的ACK之前的TCP連接稱為半連接(half-open connect),此時Server處於SYN_RCVD狀態,當收到ACK后,Server轉入ESTABLISHED狀態。SYN攻擊就是Client在短時間內偽造大量不存在的IP地址,並向Server不斷地發送SYN包,Server回復確認包,並等待Client的確認,由於源地址是不存在的,因此,Server需要不斷重發直至超時,這些偽造的SYN包將產時間占用未連接隊列,導致正常的SYN請求因為隊列滿而被丟棄,從而引起網絡堵塞甚至系統癱瘓。SYN攻擊時一種典型的DDOS攻擊,檢測SYN攻擊的方式非常簡單,即當Server上有大量半連接狀態且源IP地址是隨機的,則可以斷定遭到SYN攻擊了,使用如下命令可以讓之現行:
#netstat -nap | grep SYN_RECV
---------------------------------------------------

連接的釋放需要發送四個包,因此成為“四次揮手”,四次揮手斷開連接。客戶端或服務器都可以主動發起揮手動作。

所謂四次揮手(Four-Way Wavehand)即終止TCP連接,就是指斷開一個TCP連接時,需要客戶端和服務端總共發送4個包以確認連接的斷開。在socket編程中,這一過程由客戶端或服務端任一方執行close來觸發,整個流程如下圖所示:

由於TCP連接時全雙工的,因此,每個方向都必須要單獨進行關閉,這一原則是當一方完成數據發送任務后,發送一個FIN來終止這一方向的連接,收到一個FIN只是意味着這一方向上沒有數據流動了,即不會再收到數據了,但是在這個TCP連接上仍然能夠發送數據,直到這一方向也發送了FIN。首先進行關閉的一方將執行主動關閉,而另一方則執行被動關閉,上圖描述的即是如此。
1)第一次揮手:Client發送一個FIN,用來關閉Client到Server的數據傳送,Client進入FIN_WAIT_1狀態。
2)第二次揮手:Server收到FIN后,發送一個ACK給Client,確認序號為收到序號+1(與SYN相同,一個FIN占用一個序號),Server進入CLOSE_WAIT狀態。
3)第三次揮手:Server發送一個FIN,用來關閉Server到Client的數據傳送,Server進入LAST_ACK狀態。
4)第四次揮手:Client收到FIN后,Client進入TIME_WAIT狀態,接着發送一個ACK給Server,確認序號為收到序號+1,Server進入CLOSED狀態,完成四次揮手。

上面是一方主動關閉,另一方被動關閉的情況(由一方發起揮手),實際中還會出現同時發起主動關閉的情況,具體流程如下圖(同時揮手):

為什么連接的時候是三次握手,關閉的時候卻是四次握手?
這是因為當Server端收到Client端的SYN連接請求報文后,可以直接發送SYN+ACK報文。其中ACK報文是用來應答的,SYN報文是用來同步的。
但是關閉連接時,當Client端發送FIN報文僅僅表示它不再發送數據了但是還能接收數據,Server端收到FIN報文時,很可能並不會立即關閉SOCKET,所以只能先回復一個ACK報文,告訴Client端,"你發的FIN報文我收到了"。只有等到我Server端所有的報文都發送完了,我才能發送FIN報文,因此不能一起發送。故需要四步握手。

----------------------------------------------------
三、OSI七層網絡與TCP/IP五層網絡的區別與聯系

除了層的數量之外,開放式系統互聯(OSI)模型與TCP/IP協議有什么區別?
開放式系統互聯模型是一個參考標准,解釋協議相互之間應該如何相互作用。TCP/IP協議是美國國防部發明的,是讓互聯網成為了目前這個樣子的標准之一。
開放式系統互聯模型中沒有清楚地描繪TCP/IP協議,但是在解釋TCP/IP協議時很容易想到開放式系統互聯模型。

兩者的主要區別如下:
1)TCP/IP協議中的應用層處理OSI模型中的第五層、第六層和第七層的功能。
2)TCP/IP協議中的傳輸層並不能總是保證在傳輸層可靠地傳輸數據包,而OSI模型可以做到。
3) TCP/IP協議還提供一項名為UDP(用戶數據報協議)的選擇。UDP不能保證可靠的數據包傳輸。

 

===============================================================================

先簡單對比下二層網絡和三層網絡的區別:
1)不同網段的ip通信,需要經過三層網絡。相同網段的ip通信,經過二層網絡;
2)二層網絡僅僅通過MAC尋址即可實現通訊,但僅僅是同一個沖突域內;三層網絡需要通過IP路由實現跨網段的通訊,可以跨多個沖突域;
3)二層網絡的組網能力非常有限,一般只是小局域網;三層網絡則可以組大型的網絡。
4)二層網絡基本上是一個安全域,也就是說在同一個二層網絡內,終端的安全性從網絡上講基本上是一樣的,除非有其它特殊的安全措施;
三層網絡則可以划分出相對獨立的多個安全域。
5)很多技術相對是在二層局域網中用得多,比如DHCP、Windows提供的共享連接等,如需在三層網絡上使用,則需要考慮其它設備的支持
(比如通過DHCP中繼代理等)或通過其它的方式來實現。

=============================二層網絡與三層網絡的詳細對比============================

網絡結構的變化過程:
a)按照物理拓撲結構分類,網絡結構經歷了總線型、環型、星型、樹型、混合型等結構。
b)按照邏輯拓撲結構分類,網絡結構經歷了二層網絡架構、三層網絡架構以及最近興起的大二層網絡架構。

傳統的數據交換都是在OSI 參考模型的數據鏈路層發生的,也就是按照MAC 地址進行尋址並進行數據轉發,並建立和維護一個MAC 地址表,
用來記錄接收到的數據包中的MAC 地址及其所對應的端口。此種類型的網絡均為小范圍的二層網絡。

一、二層網絡的工作流程:
1)數據包接收:首先交換機接收某端口中傳輸過來的數據包,並對該數據包的源文件進行解析,獲取其源MAC 地址,確定發放源數據包主機
2)傳輸數據包到目的MAC 地址:首先判斷目的MAC 地址是否存在,如果交換機所存儲的MAC 地址表中有此MAC 地址所對應的端口,那么直接將數據包發送給這個端口;如果在交換機存儲列表中找不到對應的目的MAC 地址,交換機則會對數據包進行全端口廣播,直至收到目的設備的回應,交換機通過此次廣播學習、記憶並建立目的MAC 地址和目的端口的對應關系,以備以后快速建立與該目的設備的聯系;
3)如果交換機所存儲的MAC 地址表中沒有此地址,就會將數據包廣播發送到所有端口上,當目的終端給出回應時,交換機又學習到了一個新的MAC 地址與端口的對應關系,並存儲在自身的MAC 地址表中。當下次發送數據的時候就可以直接發送到這個端口而非廣播發送了。

以上就是交換機將一個MAC 地址添加到列表的流程,該過程循環往復,交換機就能夠對整個網絡中存在的MAC 地址進行記憶並添加到地址列表,這就是二層(OSI 二層)交換機對MAC 地址進行建立、維護的全過程。

從上述過程不難看出,傳統的二層網絡結構模式雖然運行簡便但在很大程度上限制了網絡規模的擴大,由於傳統網絡結構中采用的是廣播的方式來實現數據的傳輸,極易形成廣播風暴,進而造成網絡的癱瘓。這就是各個計算機研究機構所面臨的“二層網絡存在的天然瓶頸”,由於該瓶頸的存在,使得大規模的數據傳輸和資源共享難以實現,基於傳統的二層網絡結構也很難實現局域網絡規模化。

為了適應大規模網絡的產生於發展,基於分層、簡化的思想,三層網絡模式被成功設計推出。三層網絡架構的基本思想就是將大規模、較復雜的
網絡進行分層次分模塊處理,為每個模塊指定對應的功能,各司其職,互不干擾,大大提高了數據傳輸的速率。

二、三層網絡結構的設計,顧名思義,具有三個層次:核心層、匯聚層、接入層。下面將對三個層次的作用分別進行說明。
1)核心層:在互聯網中承載着網絡服務器與各應用端口間的傳輸功能,是整個網絡的支撐脊梁和數據傳輸通道,重要性不言而喻。因此,網絡對於核心層要求極高,核心層必須具備數據存儲的高安全性,數據傳輸的高效性和可靠性,對數據錯誤的高容錯性,以及數據管理方面的便捷性和高適應性等性能。在核心層搭建中,設備的采購必須嚴格按需采購,滿足上述功能需求,這就對交換機的帶寬以及數據承載能力提出了更高的要求,因為核心層一旦堵塞將造成大面積網絡癱瘓,因此必須配備高性能的數據冗余轉接設備和防止負載過剩的均衡過剩負載的設備,以降低各核心層交換機所需承載的數據量,以保障網絡高速、安全的運轉。
2)匯聚層:連接網絡的核心層和各個接入的應用層,在兩層之間承擔“媒介傳輸”的作用。每個應用接入都經過匯聚層進行數據處理,再與核心層進行有效的連接,通過匯聚層的有效整合對核心層的荷載量進行降低。根據匯聚層的作用要求,匯聚層應該具備以下功能:實施安全功能、工作組整體接入功能、虛擬網絡過濾功能等。因此,匯聚層中設備的采購必須具備三層網絡的接入交換功能,同時支持虛擬網絡的創建功能,從而實現不同網絡間的數據隔離安全,能夠將大型網絡進行分段划分,化繁為簡。
3)接入層:接入層的面向對象主要是終端客戶,為終端客戶提供接入功能,區別於核心層和匯聚層提供各種策略的功能。接入層的主要功能是規划同一網段中的工作站個數,提高各接入終端的帶寬。在搭建網絡架構時,既要考慮網絡的綜合實用性,也要考慮經濟效益,因此在接入層設備采購時可以選擇數據鏈路層中較低端的交換機,而不是越高端越昂貴越好。

隨着近年來互聯網的應用規模急劇擴張,對數據傳輸的要求也越來越高,基於數據整合的雲計算技術逐漸受到人們的關注。計算機網絡作為當今社會各種信息的傳輸媒介,其組成架構也即將發生重大變革。鑒於傳統三層網絡VLan 隔離以及STP 收斂上的缺陷,傳統網絡結構急需打破。現有研究機構開始致力於新型高效網絡架構的研發與探索,結合早期的扁平化架構的原有二層網絡與現有三層網絡的優缺點提出了大二層網絡架構。

===============================大二層網絡============================== 

1)為什么需要大二層網絡

傳統的三層數據中心架構結構的設計是為了應付服務客戶端-服務器應用程序的縱貫式大流量,同時使網絡管理員能夠對流量流進行管理。工程師在這些架構中采用生成樹協議(STP)來優化客戶端到服務器的路徑和支持連接冗余,通常將二層網絡的范圍限制在網絡接入層以下,避免出現大范圍的二層廣播域; 

虛擬化從根本上改變了數據中心網絡架構的需求,既虛擬化引入了虛擬機動態遷移技術。從而要求網絡支持大范圍的二層域。從根本上改變了傳統三層網絡統治數據中心網絡的局面。具體的來說,虛擬化技術的一項伴生技術—虛擬機動態遷移(如VMware的VMotion)在數據中心得到了廣泛的應用,虛擬機遷移要求虛擬機遷移前后的IP和MAC地址不變,這就需要虛擬機遷移前后的網絡處於同一個二層域內部。由於客戶要求虛擬機遷移的范圍越來越大,甚至是跨越不同地域、不同機房之間的遷移,所以使得數據中心二層網絡的范圍越來越大,甚至出現了專業的大二層網絡這一新領域專題。 

思考兩個問題:
a)IP及MAC不變的理由?
對業務透明、業務不中斷
b)IP及MAC不變,那么為什么必須是二層域內?
IP不變,那么就不能夠實現基於IP的尋址(三層),那么只能實現基於MAC的尋址,既二層尋址,大二層,顧名思義,此是二層網絡,根據MAC地址進行尋址

2)傳統的二層網絡大不起來的原因

在數據中心網絡中,“區域”對應VLAN的划分。相同VLAN內的終端屬於同一廣播域,具有一致的VLAN-ID,二層連通;不同VLAN內的終端需要通過網關互相訪問,二層隔離,三層連通。傳統的數據中心設計,區域和VLAN的划分粒度是比較細的,這主要取決於“需求”和“網絡規模”。 

傳統的數據中心主要是依據功能進行區域划分,例如WEB、APP、DB,辦公區、業務區、內聯區、外聯區等等。不同區域之間通過網關和安全設備互訪,保證不同區域的可靠性、安全性。同時,不同區域由於具有不同的功能,因此需要相互訪問數據時,只要終端之間能夠通信即可,並不一定要求通信雙方處於同一VLAN或二層網絡。 

傳統的數據中心網絡技術, STP是二層網絡中非常重要的一種協議。用戶構建網絡時,為了保證可靠性,通常會采用冗余設備和冗余鏈路,這樣就不可避免的形成環路。而二層網絡處於同一個廣播域下,廣播報文在環路中會反復持續傳送,形成廣播風暴,瞬間即可導致端口阻塞和設備癱瘓。因此,為了防止廣播風暴,就必須防止形成環路。這樣,既要防止形成環路,又要保證可靠性,就只能將冗余設備和冗余鏈路變成備份設備和備份鏈路。即冗余的設備端口和鏈路在正常情況下被阻塞掉,不參與數據報文的轉發。只有當前轉發的設備、端口、鏈路出現故障,導致網絡不通的時候,冗余的設備端口和鏈路才會被打開,使得網絡能夠恢復正常。實現這些自動控制功能的就是STP(Spanning Tree Protocol,生成樹協議)。 由於STP的收斂性能等原因,一般情況下STP的網絡規模不會超過100台交換機。同時由於STP需要阻塞掉冗余設備和鏈路,也降低了網絡資源的帶寬利用率。因此在實際網絡規划時,從轉發性能、利用率、可靠性等方面考慮,會盡可能控制STP網絡范圍。 

隨着數據大集中的發展和虛擬化技術的應用,數據中心的規模與日俱增,不僅對二層網絡的區域范圍要求也越來越大,在需求和管理水平上也提出了新的挑戰。 

數據中心區域規模和業務處理需求的增加,對於集群處理的應用越來越多,集群內的服務器需要在一個二層VLAN下。同時,虛擬化技術的應用,在帶來業務部署的便利性和靈活性基礎上,虛擬機的遷移問題也成為必須要考慮的問題。為了保證虛擬機承載業務的連續性,虛擬機遷移前后的IP地址不變,因此虛擬機的遷移范圍需要在同一個二層VLAN下。反過來即,二層網絡規模有多大,虛擬機才能遷移有多遠。 

傳統的基於STP備份設備和鏈路方案已經不能滿足數據中心規模、帶寬的需求,並且STP協議幾秒至幾分鍾的故障收斂時間,也不能滿足數據中心的可靠性要求。因此,需要能夠有新的技術,在滿足二層網絡規模的同時,也能夠充分利用冗余設備和鏈路,提升鏈路利用率,而且數據中心的故障收斂時間能夠降低到亞秒甚至毫秒級。 

3)實現大二層網絡的技術

大二層網絡是針對當前最火熱的虛擬化數據中心的虛擬機動態遷移這一特定需求而提出的概念,對於其他類型的網絡並無特殊的價值和意義。

在虛擬化數據中心里,一台物理服務器被虛擬化為多台邏輯服務器,被稱為虛擬機VM,每個VM都可以獨立運行,有自己的OSAPP,在網絡層面有自己獨立的MAC地址和IP地址。而VM動態遷移是指將VM從一個物理服務器遷移到另一個物理服務器,並且要保證在遷移過程中,VM的業務不能中斷。

為了實現VM動態遷移時,在網絡層面要求遷移時不僅VMIP地址不變、而且運行狀態也必須保持(例如TCP會話狀態),這就要求遷移的起始和目標位置必須在同一個二層網絡域之中。

所以,為了實現VM的大范圍甚至跨地域的動態遷移,就要求把VM遷移可能涉及的所有服務器都納入同一個二層網絡域,這樣才能實現VM的大范圍無障礙遷移。這就是大二層網絡的需求由來,一個真正意義的大二層網絡至少要能容納1萬以上的主機,才能稱之為大二層網絡。而傳統的基於VLAN+xSTP的二層網絡,由於環路和廣播風暴、以及xSTP協議的性能限制等原因,通常能容納的主機數量不會超過1K,無法實現大二層網絡。當前,實現大二層網絡的主要技術有以下幾種

a)網絡設備虛擬化技術

網絡設備虛擬化是將相互冗余的兩台或多台物理網絡設備組合在一起,虛擬化成一台邏輯網絡設備,在整個網絡中只呈現為一個節點。例如華為的CSS框式堆疊、iStack盒式堆疊、SVF框盒堆疊技術等。

網絡設備虛擬化再配合鏈路聚合技術,就可以把原來網絡的多節點、多鏈路的結構變成邏輯上單節點、單鏈路的結構,解決了二層網絡中的環路問題。沒有了環路問題,就不需要xSTP,二層網絡就可以范圍無限(只要虛擬網絡設備的接入能力允許),從而實現大二層網絡。

b)大二層轉發技術

大二層轉發技術是通過定義新的轉發協議,改變傳統二層網絡的轉發模式,將三層網絡的路由轉發模式引入到二層網絡中。例如TRILL、SPB等。

以TRILL為例,TRILL協議在原始以太幀外封裝一個TRILL幀頭,再封裝一個新的以太幀來實現對原始以太幀的透明傳輸,支持TRILL的交換機可通過TRILL幀頭里的Nickname標識來進行轉發,而Nickname就像路由一樣,可通過IS-IS路由協議進行收集、同步和更新。

c)Overlay技術

Overlay技術是通過用隧道封裝的方式,將源主機發出的原始二層報文封裝后在現有網絡中進行透明傳輸,從而實現主機之間的二層通信。通過封裝和解封裝,相當於一個大二層網絡疊加在現有的基礎網絡之上,所以稱為Overlay技術。

Overlay技術通過隧道封裝的方式,忽略承載網絡的結構和細節,可以把整個承載網絡當作一台“巨大無比的二層交換機”, 每一台主機都是直連在“交換機”的一個端口上。而承載網絡之內如何轉發都是 “交換機”內部的事情,主機完全不可見。Overlay技術主要有VXLAN、NVGRE、STT等。

4)大二層網絡需要有多大、及技術選型 

1. 數據中心內 
大二層首先需要解決的是數據中心內部的網絡擴展問題,通過大規模二層網絡和VLAN延伸,實現虛擬機在數據中心內部的大范圍遷移。由於數據中心內的大二層網絡都要覆蓋多個接入交換機和核心交換機,主要有以下兩類技術。

a) 虛擬交換機技術 
虛擬交換機技術的出發點很簡單,屬於工程派。既然二層網絡的核心是環路問題,而環路問題是隨着冗余設備和鏈路產生的,那么如果將相互冗余的兩台或多台設備、兩條或多條鏈路合並成一台設備和一條鏈路,就可以回到之前的單設備、單鏈路情況,環路自然也就不存在了。尤其是交換機技術的發展,虛擬交換機從低端盒式設備到高端框式設備都已經廣泛應用,具備了相當的成熟度和穩定度。因此,虛擬交換機技術成為目前應用最廣的大二層解決方案。 虛擬交換機技術的代表是H3C公司的IRF、Cisco公司的VSS,其特點是只需要交換機軟件升級即可支持,應用成本低,部署簡單。目前這些技術都是各廠商獨立實現和完成的,只能同一廠商的相同系列產品之間才能實施虛擬化。同時,由於高端框式交換機的性能、密度越來越高,對虛擬交換機的技術要求也越來越高,目前框式交換機的虛擬化密度最高為4:1。虛擬交換機的密度限制了二層網絡的規模大約在1萬~2萬台服務器左右。

b) 隧道技術 
隧道技術屬於技術派,出發點是借船出海。二層網絡不能有環路,冗余鏈路必須要阻塞掉,但三層網絡顯然不存在這個問題,而且還可以做ECMP(等價鏈路),能否借用過來呢?通過在二層報文前插入額外的幀頭,並且采用路由計算的方式控制整網數據的轉發,不僅可以在冗余鏈路下防止廣播風暴,而且可以做ECMP。這樣可以將二層網絡的規模擴展到整張網絡,而不會受核心交換機數量的限制。
隧道技術的代表是TRILL、SPB,都是通過借用IS-IS路由協議的計算和轉發模式,實現二層網絡的大規模擴展。這些技術的特點是可以構建比虛擬交換機技術更大的超大規模二層網絡(應用於大規模集群計算),但尚未完全成熟,目前正在標准化過程中。同時傳統交換機不僅需要軟件升級,還需要硬件支持。

 2. 跨數據中心 
隨着數據中心多中心的部署,虛擬機的跨數據中心遷移、災備,跨數據中心業務負載分擔等需求,使得二層網絡的擴展不僅是在數據中心的邊界為止,還需要考慮跨越數據中心機房的區域,延伸到同城備份中心、遠程災備中心。 
一般情況下,多數據中心之間的連接是通過路由連通的,天然是一個三層網絡。而要實現通過三層網絡連接的兩個二層網絡互通,就必須實現“L2 over L3”。 

L2oL3技術也有許多種,例如傳統的VPLS(MPLS L2VPN)技術,以及新興的Cisco OTV、H3C EVI技術,都是借助隧道的方式,將二層數據報文封裝在三層報文中,跨越中間的三層網絡,實現兩地二層數據的互通。這種隧道就像一個虛擬的橋,將多個數據中心的二層網絡貫穿在一起。 

也有部分虛擬化和軟件廠商提出了軟件的L2 over L3技術解決方案。例如VMware的VXLAN、微軟的NVGRE,在虛擬化層的vSwitch中將二層數據封裝在UDP、GRE報文中,在物理網絡拓撲上構建一層虛擬化網絡層,從而擺脫對網絡設備層的二層、三層限制。這些技術由於性能、擴展性等問題,也沒有得到廣泛的使用。

常見數據中心架構

full layer3網絡屬於傳統的數據中心網絡。服務器網關部署在接入交換機上,整網通過路由協議控制拓撲和轉發路徑。這樣的網絡架構的主要優勢在於技術成熟、有大量的運維經驗。網絡系統穩定且便於維護。但是Full layer3網絡的不足之處在於不能支持虛擬化數據中心虛擬機的自由遷移,所以在進入雲計算時代后,Full layer3網絡逐漸被淘汰。Full layer2網絡是下一代數據中心的網絡模型。服務器網關在核心層,整網通過TRILL或是SPB協議控制拓撲和轉發路徑。這樣的網絡架構主要優勢在於能夠支持大規模的二層網絡,能夠支持足夠規模的虛擬機資源池。但是,這個網絡模型的缺點也是非常明顯的。TRILL協議雖然已經標准化(SPB協議正在標准化),但是大規模的二層網絡缺乏運維經驗。沒有運維經驗,也就意味着運維成本的大幅度提升,同時也會給業務系統帶來巨大的風險。

在匯聚層上部署EVI特性,通過核心與匯聚之間的IP網絡建立Vlink實現二層互通。通過EVI特性將指定的多個二層域連接起來,形成一個完整的大規模二層網絡。這樣就可以實現虛擬機大規模池化功能。同時,可以避免使用TRILL或是SPB協議帶來的運維風險。

注意:常規IP包轉發過程中,源IP及目的IP保持不變,源MAC與目的MAC不斷發生變化,既源MAC是自己的mac,目的mac是下一跳(主機或者路由器)的mac;路由器將數據轉發出去的階段,需要知道下一跳的mac地址,通過arp協議獲取,並存儲在路由器的arp表內,供下次查詢使用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM