hybrid接口深入理解
在各種教程當中,hybrid接口都是容易被忽略的接口類型,常常都是幾段話就帶過了,沒有好好的講過這種類型的接口,我對這種感覺很反感,什么感覺?就是模糊的感覺,似是而非的感覺,由於是像hybrid接口,它即可以做access接口使用,又可以做trunk接口,它到底是什么?用在什么地方?為什么要用這種類型的接口?
在網上也看到一些人總結的hybrid接口的博客,但是沒有讓我感覺滿意的,很少有人講自己的理解,從句子當中一看就是書本或PPT當中的原話,博客的作者本身能不能理解還是兩說,我認為這樣的博客真的沒啥意義。當然有些博客還是寫的挺用心的,前半部分是理論,后半部分是實驗記錄。我認為最好的學習方式就是形成自己的理解,想要形成自己的理解,下面這個對hybrid接口的理解,就是我通過一種最簡單辦法,就是不斷逼問自己的方式而形成的理解,這樣的方式的好處就是,當你不斷的逼問自己時,然后自己寫下自己的答案,想忘掉也很難了,另外還有一個無法拒絕的好處就是,你把一個模糊的事物搞清楚了,這種喜悅就是最好的獎賞了;壞處也很明顯,那就是比較消耗時間,我認為這種消耗是非常值得的。
當我們寫完自己的理解,會發現有一些大牛的理解境界比我們更高,寫的更漂亮,更詳細,但是那是人家大牛的的理解,不是我們自己的理解,我們很難在短時間就能通過看大牛的文章到達大牛的水平,這就仿佛對手比我們更強大,這時候狹路相逢,就算失敗也得亮劍!還有一種比喻,就是我們面臨着兩種武器,一把是我們已經使用的非常熟練的砍柴刀,新式老土,也不怎么鋒利;另一把是一個非常華麗,深沉厚重,威力非凡但難以掌控的屠龍刀,這時候就要上戰場了,如果讓我選擇的話,我更願意選擇那把砍柴刀。
hybrid接入終端
為什么要把hybrid的稱為混合類型的接口,這個混合指的什么跟什么混合?
hybrid,混合類型的接口,所謂的混合是指它即可以做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的作用就僅僅提到了hybrid處理數據幀更加的靈活,靈活在什么地方呢?靈活在可以隨意規定對數據幀是否要加tag,而access和trunk就沒有那么靈活,拆tag都有嚴格的限制,嗯,但這不應該成為最終的理解,最終的理解肯定是hybrid就是為了某一種應用場景而產生的,在某個場景下,必須或最好使用hybrid的;還查到一個必要的理由就是想部署基於ip的vlan就必須使用hybrid接口,但是以為這幾個理解並不能讓我滿意。
既然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可以從三個方面理解:收、發、是否允許通過。
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應該如何配置?hybrid並不能將接口接入到某個vlan之下,那也就沒有這三層含義,其實hybrid只不過把這三層含義分開配置了。
port link-ty hybrid
# 先看收的
port hybrid pvid vlan 10
# 再看發的
port hybrid untag vlan 10 # 這里的untag有兩層含義,一個發送的時候將vlan10的tag拆掉,另一個是允許vlan10的數據幀通過,下面我們會驗證一下;
如果僅敲untag會有什么現象?
如果在2號接口上僅敲untag 10,當pc1與pc2通信時,pc2可以收到pc1的請求包,pc2的回復數據一旦到達2接口,就會被拒絕,因為我們沒敲pvid vlan 10,沒有pvid 等於10的話,默認的pvid是1,會被打上vlanid為1的tag,但untag vlan 10只允許vlanid為10的幀通過,所以回復包在這里面會被拒絕,回復的數據包都無法到過通過2號接口進入到交換機。
如果在2號接口僅敲pvid vlan10會有什么現象發現 ?
pvid van 10的含義就僅僅是當hybrid接口收到無標識的數據幀時,打上vlaid為10的tag。
pc 1到 pc2的請求根本到不了pc2,因為PC1到PC2的數據包到了2號接口要移除tag,而因為沒有untag 10 所以pc1給pc2的數據包因為無法移除tag,所以無法從2號接口發送出去。
如果用pc2與pc1通信,請求包到達2號接口之后就被拒絕了,雖然有pvid,無tag幀會被打上vlan10的tag,但是因為沒有untag也不行,那這里關untag什么事呢?在《華為HNCP路由交換指南》393頁當中有過這樣的描述,就是untag 10有兩層含義,一層含義是向外發送的數據時候拆掉tag,另一個層含義是允許有該tag的幀通過,此處因為沒有untag,所以當pc2與pc1通信時,2號接口雖然為請求的數據幀打上了tag,但不允許vlan10的數據幀通過2號接口進入交換機。
hybrid做機連接口
讓hybrid接口做機連接口,是有點麻煩的, 有些難以理解的,我們還是用trunk來做對比。
假設trunk是這么配置的
interface g1/0/0
port link-type trunk
port trunk allow vlan 10 20 30
對與之相邊的對端應該如何配置?trunk接口在轉發vlan10、20、30的數據幀時,原封不動的放行,也就是說,做了標記幀的處理,那對端的hybrid也要做這樣的處理,什么處理?標記幀處理,在上面我們看了untag兩層含義,一個是拆tag,另一層是允許通過的含義,這里面的tag也類似。其實上面這個配置也有隱藏的配置,那就是pvid為1,下面這個配置也隱藏兩個配置,那就是pvid 1和untag 1,這一點會在下面再做介紹;
interface g1/0/0
port link-type hybrid
port hybrid taged vlan 10 20 30
再來一個例子,假如trunk接口是這么配置的:
int g1/0/0
port link-type trunk
port trunk allow vlan 10 20 1000
port trunk pvid vlan 1000
對端如果是hybrid接口,應該如何配置呢?通過上面的理論,對端對vlan 10 20都做了標記幀處理,那hybrid也要這么做,也就是要對vlan 10 20打tag;對端對vlan 1000做了無標記幀的處理,那hybrid這一端也要這么處理,只要也將pvid改為1000即可,將pvid改為1000就意味着當接口收到無標識幀的時候將打上vlan 1000的tag,那發的時候,也要告訴接口當發的時候針對vlan1000的數據幀要去掉tag,也就是還要有一條untag。
int g1/0/0
port link-ty hybrid
port hybrid pvid vlan 1000
potr hybrid untag vlan 1000
port hybrid taged vlan 10 20
其它
總結一下,如果連接是終端,重點關注untag和pvid,正在對應一發一收;如果對接的是trunk接口,重點關注對有標記幀和無標記幀的處理,對有標記幀采用tag的方式處理,同時暗含允許,對有無標記幀可以用pvid的方式對接,注意,不要忘記回包的時候;
有了自己的一些理解和思考之后,再來看一下肖哥單獨講的hybrid接口,才有深刻的理解https://edu.51cto.com/center/course/lesson/index?id=195368
看到這位老哥的總結的這個博客,比較認真,不錯,https://blog.csdn.net/weixin_47153988/article/details/106474693
這位寫的更好,https://blog.51cto.com/u_14157628/2443392
這兩位寫的與我自己的理解,是有互補的,當把這兩位寫的理解之后,再看一下《HICE路由交換學習指南》里面對hybrid的解釋,才發現比較好理解了,泰克出版的《HCIE路由交換學習指南》知識點有點死板,如果單純看這本書真的太無聊。
未完待續……