1. 程式人生 > 其它 >交換基礎-第八章

交換基礎-第八章

目錄

交換基礎

第0層:基礎概念

知識點的梳理來自於《HCNP路由交換學習指南》第八章

  • 什麼是LAN?什麼是VLAN

local area network,局的意思就是區域性,區域性的的規模肯定不大,就是規模比較小的網路唄,像是家庭網、企業網、網咖。

  • 區域網和乙太網是什麼關係?

如上所說,區域網指的是規模不大的網路,而乙太網指是在局域網裡面比較出名的技術,出名到什麼程度呢?出名到很多人認為乙太網就是區域網。

  • 交換機與乙太網的關係

如果我們細心的話,在交換機的包裝箱上面會寫著“乙太網”交換機,當然,還有非乙太網的交換機,那交換機就是承載乙太網技術的裝置。

  • 乙太網體現在資料封裝的什麼地方

會體現在資料封裝的的鏈路層那個地方,在封裝二層幀頭的時候,封裝的是乙太網的幀頭,當然還有其它型別的幀頭。

  • OSI、TCP/IP對等體、TCP/IP標準體的關係

OSI七層

TCP/IP對等體是五層,只是把前三層合併成應用層了

TCP/IP標準體是四層、除了把前三層合併成應用層之外,還把後兩層合併成網路介面層了

  • MAC地址的的進位制組成、通過MAC地址判斷報文的型別是單、組、廣播。

MAC地址是由16進位制、48位組成、前24位是OUI(組織唯一識別符號),通過第八個位元可以區別出報文的型別,因為組播的前25已經固定了,01005e,它的第8位是1,組播的第8位是1,那單播的第8位是0,而全F或全1指的就是廣播。

  • 乙太網資料幀的兩種封裝

乙太網地封裝並不是就一個型別,而是有兩種型別,說白了,也就是說,乙太網有兩種格式的封裝報文:IEEE 802.3和Ethernet V2這兩種格式。

  • 談一ethernet資料幀的欄位

其實大概想一想就知道ethernetV2裡面都有哪些欄位,源目MAC、CRC差錯校驗、資料載荷、以及型別。

類似欄位用來標識上層的協議,這個IP層也有類似的欄位、包括差錯校驗、資料載荷、源目地址。0x0800表示上面是ipv4,0x86dd表示上層是ipv6.

  • 同vlan下兩臺主機的通訊流程(最好把IGMP SNOPING的場景也考慮上)
  • 分別說一說什麼情況下交換機會執行這三個動作:泛洪、轉發、丟棄

第1層:vlan和介面

  • 為什麼要有VLAN
  1. 縮小廣播範圍,提高網路的有效利用率。
  2. 一個交換機想隔離不同的部門
  • 劃分vlan的方式

最常見的就是根據介面來劃分vlan,除此之外還可以基於mac地址等;

  • 說一個為什麼需要有trunk介面?802.1q

在跨交換機的vlan通訊時,交換機需要區別發過來的資料幀屬於哪個vlan,但是乙太網資料幀欄位裡面並沒有vlanid欄位,這時候就需要在幀頭裡面新增一個欄位,通過這個欄位來區分資料幀到達屬於哪一個vlan,這個vlanid實際上屬於一個tag,也就說vlanid實際上是這個tag裡面的一個欄位,這個tag裡面最重要的欄位就是這個vlanid欄位。

  • 那什麼時候會新增上這一個tag呢?

有這個tag的幀稱之為一個有標記幀,那什麼時候是有標記的,什麼時候是無標記的呢?一般PC向外傳送和接收的資料幀都沒有tag,傳送的時候本身就沒有tag,而接收的時候一般tag都被交換機給拿掉了。但這也有例外,比如在虛擬化的環境當中,我們可以在伺服器的內部搞一個虛擬交換機,然後起一個trunk介面,交換機一側也用trunk進行對接,這時候伺服器向外傳送的資料幀就都有有tag的。

那資料幀在交換機內部的時候有沒有tag,其實也是有的,當無tag的資料幀進入交換機之後,立馬就會給資料幀打上tag,vlan1也不例外,也就是說交換機內部的資料幀全都是tag的。

  • 那什麼時候去掉這個tag呢?

當交換機的資料幀要發往一個access介面的時候會把這個tag給去掉,還有沒有別的情況?慢有的,當trunk介面傳送的資料幀裡面攜帶的vlanid是這個trunk介面的本幀vlan時,也會將tag移除。

  • 說一下access、trunk、hybrid的接收和傳送資料包時的處理機制

access:

收到無標記幀時,打tag,如果有標記幀時,檢查如果不是本幀vlan就丟棄,反之,接收。

傳送時移除所屬vlan的tag;

trunk(在前提下允許通過的場景下):

傳送時:

傳送的tag裡面的vlanid屬於本幀vlan,移除後傳送;

傳送的tag裡面的vlanid不屬於本幀vlan,直接傳送

接收者:

無tag的,打上本幀vlanid的tag;

有tag的,正常接收;

  • 為什麼hybrid叫混合介面?混合的是什麼?

hybrid,混合型別的介面,所謂的混合是指它即可以做類似access介面接入pc、又可以做trunk介面,將access介面和trunk介面混合在一起了。

  • hybrid介面與trunk的區別?

trunk在傳送資料時,如果發現tag裡面的vlanid與自己的PVID是一樣的,會拆掉,也就是說只會拆掉vlanid與自己的PVID一樣的,而hybrid也做trunk介面的時候,就比較靈活了,我們規定想拆哪個就拆哪個。

  • 應當從什麼樣的角度去理解hybrid。

在網上看了一些文章都有講到hybrid的,都只講些理論然後搭配實驗,但我認為這些半不是最重要的,重要的是是否能從一個更高的角度看待hybrid的,就比如當我們學了MPLS的時候,發現MPLS的標籤與二層的tag有點類似。

為什麼會有hybrid介面?只有trunk和access難道不夠用呢?我看了一些書籍裡面很少有對這兩個問題的描述,hybrid地實際的工作當中也是可有可無的,並不是非常用的配置,而trunk和access一般都是必備配置。就僅僅是說hybrid處理資料幀更加的靈活,靈活在什麼地方呢?靈活在可以隨意規定對資料幀是否要加tag,而access和trunk就沒有那麼靈活,拆tag都有嚴格的限制,嗯,但這不應該成為最終的理解,最終的理解肯定是hybrid就是為了某一種應用場景而產生的,在某個場景下,必須或最好使用hybrid的,檢視其中之一個必要的理由就是想部署基於ip的vlan就必須使用hybrid介面,但僅這一個並不能讓我滿意。

好,可以就從tag這個角度來切入,切入之後的方向呢?既然hybrid是混合,那咱們就通過tag的角度先看下hybrid如何代替或優化access介面,然後再看hybrid如何替代或優化trunk介面。假設一個三層交換機,1介面接入PCA,2介面接入PCB,1介面通過access配置,2介面通過hybrid介面配置,都接入vlan10,最簡單的辦法讓其能通訊。

int g0/0/1
	port link-ty access
	port default vlan 10

儘管上面的配置很簡單,但是含義還是不少的,access意味著這個介面下面接入很可能一個普通的終端,而劃入到vlan10的含義就沒有這麼簡單了,劃入到vlan10可以從三個方面理解:v收、發、是否允許通過。

port default vlan10 在收的時候的意味著什麼?

  • 如果幀裡面沒有tag,就加上vlanid屬於10的tag。
  • 如果幀裡面有tag
    • vlanid是vlan10,通過
    • vlanid不是vlan10,丟棄

port default vlan10 在發的時候的意味著什麼?

  • 傳送的時候移除vlanid為10的tag;

port default vlan10 在是否允許通過意味著什麼?

意味當上兩層檢查完成之後,是否允許通過,這一點與trunk的permit vlan有點類似,只不過這些的比較死板,只允許本幀vlan通過;

OK,那分析完成了,那我們來看hybrid應該如何配置?hyborid並不能將介面接入到某個vlan之下,那也就沒有這三層含義,其實hybrid只不過把這三層含義,分開配置了。

port link-ty hybrid
# 先看收的
port hybrid pvid vlan 10

# 再看發的
port hybrid untag vlan 10   # 通過之意

如果僅敲untag會有什麼現象?

如果在2號介面上僅敲untag 10,pc2可以收到pc1的請求包,pc2的回覆資料一旦到達2介面,就會被拒絕,因為我們沒敲pvid vlan 10,沒有pvid 等於10的話,資料包是無法被識別的,回覆的資料包都無法到過通過2號介面進入到交換機。

如果在2號介面僅敲pvid vlan10會有什麼現象發現 ?

pc 1到 pc2的請求根本到不了pc2,因為PC1到PC2的資料包到了2號介面要移除tag,而因為沒有untag 10 所以pc1給pc2的資料包因為無法移除tag,所以無法從2號介面傳送出去。

總結:untag在傳送資料包時用來移除tag的,同時也擁有著permit vlan的含義。而pvid 10的含義就僅僅如同access介面一樣單純。

第2層:隱藏

  • 談一談access的配置隱藏了什麼
int g1/0/0
	port link-type access

等同於
int g1/0/0
	port link-ty access
	port defautl vlan 1    #這一條是預設的,dis this的時候不會顯示出來
  • 談一談trunk的介面配置隱藏了什麼

    trunk預設的PVID是1,也允許了vlan1的通過;

int g1/0/48
	port link-ty trunk

等同於

int g1/0/48
	port link-ty trunk
	port trunk allow vlan 1
	port PVID 1

  • 談一談hybrid的介面配置隱藏了什麼
int g1/0/1  有點類似於trunk
	port link-ty hybrid

等同於

int g1/0/1
	port link-ty hybrid
	port PVID 1    # 用於接收的時候打上pvid的tag
	port untagged vlan 1  # 用於傳送的時候移除tag並且還有允許通過的含義。

  • 只有哪一種模式下支援基於IP劃分vlan

    hybrid

    第3層:故障&vlan間

    一個網路工程師在面對故障的時要有清晰的故障定位思路,同時需要熟練的使用各種定位手段,例如各種display、show、tcpdump、探測、抓包等等。

    • 在vlan這一小節有一個常被忽略的故障?

    在跨交換機vlan的專案當中,經常會有這種因為沒有vlan而導致無法通訊。

    • 遇到這種故障,排查思路是什麼?

    看一下MAC地址表看有沒有收到源主機的MAC,如果沒有收到,就說明資料包被拒絕了,如果交換機內部沒有建立該vlan,那收到該vlan的資料就會採取拒絕的動作。

    • 想要實現vlan間通訊有哪兩種辦法?

    單臂路由和vlanif

    • 說一下單臂路由的通訊流程?(重要)

    當回頭來看單臂路由真的非常簡單,就是將路由器的三層介面劃成兩半,在邏輯上劃分成兩個三層介面,然後這兩個三層介面還要有歸屬的vlan,並各自配置一個ip地址。

    與單臂路由介面對接的交換機介面是使用什麼型別呢?當然是使用trunk型別最好,允許兩個vlan的流量通過。

    • 既然單臂路由存在單點故障,有沒有什麼其它好的解決辦法?

    做鏈路聚合,然後在鏈路聚合介面上做單臂路由。當然最好的解決辦法還是別用單臂路由的方法,而是用vlanif。

    • 說一下vlanif的通訊流程?(重要)

    這個vlanif通訊的流程的精髓是其實是各個模組之間的資料流轉,vlanIf就是將在原本只有交換模組的交換機內部增加了兩個模組,一個模組是arp模組、另一個模組是路由模組,只要把這三者之間的資料流通搞清楚了,那就簡單 了。

    當資料從access介面進入之後,打上tag之後,就會將資料幀交給arp模組進行拆封裝,如果目標mac是本機mac的話就將給上層的路由模組或稱之為IP模組,如果目標MAC不屬於本交換機,那就忽略。接著講,當arp模組發現目標MAC是本交換機的MAC之後,就會交由上層的路由模組進行三層的處理以解開目標IP地進行路由,假設的路由的下一跳是另一個vlan介面,那此資料幀交給另一個vlanif介面處理,這個時候交換機的內部的tag也發生了一次變化,在沒交給另一個vlanif介面之前和交給另一個vlanif之後是不同的tag,在另一個vlanif介面進行二層封裝時,源和MAC也會發生變化。

    第四層 中庸之道

    • 為什麼要有mux vlan?它有什麼應用場景? 說一說mux vlan的規則?

    MUX VLAN 專門用來解決二層的痛點,二層是可以實現隔離,一旦通過VLAN實現了隔離之後,不同的VLAN是隔離的,如果想實現vlan之間的互訪,這時候不得不借助三層裝置,這樣的話會增加經濟成本,無論是購買一臺三層交換層還是購買路由器。

    MUX vlan 是一類vlan的統稱,MUX vlan實際有兩個大類的vlan,這一點也很好理解,比如楊樹就不是一種樹,而是一類樹。

    MUX VLAN

    Principal vlan 主

    Subordnate vlan 從

    group vlan 互通型

    separate vlan 隔離型

    Principal vlan 也叫主vlan,加入這個vlan的主機許可權最大,跟MUX VLAN這一類裡面的所有VLAN都可以通通訊。

    互通型和隔離型這類從vlan不能單獨存在,必須要依附於一個主人,這與LINUX當中的庫檔案又有些類似,本身並不能單獨執行;

    隔離vlan只能跟主vlan通訊,同屬於隔離都不行,隔離就是隔離,如果能與同vlan下的其它介面通訊,就和vlan一樣了,沒啥意義。

    加入互通型的vlan之後可以和主van通訊,同一個vlan下能夠通訊,這又越級了vlan 一點,互通型也無法與隔離型vlan通訊。

    這個配置有點意思,先配置主,在主指定互通型的從和隔離型的從,其它的vlan就正常配置成access介面 並開啟mux即可。

    • 為什麼要用vlan聚合?vlan聚合是怎麼配置的(大體說一下就行)?

    不確定會導致浪費,確定害怕不夠,中庸辦法就是vlan聚合,多個子vlan用同一個網段,比較彈性,每個子vlan是一個廣播域,每個子vlan通過主vlan的vlanif介面通訊。