天天看點

交換機Trunk詳解

文章目錄

      • 一、Trunk概述
      • 二、封裝協定
      • 三、ISL
      • 四、Dot1Q
      • 五、DTP
      • 六、Trunk配置
      • 七、MTU問題

一、Trunk概述

交換機Trunk詳解
  • 當一條鍊路,需要承載多VLAN資訊的時候,需要使用trunk來實作
  • Trunk兩端的交換機需要采用相同的幹道協定
  • 一般見于交換機之間或交換機與路由器、伺服器之間

二、封裝協定

ISL 801.1Q
Cisco私有 共有标準
采用封裝的方式 采用tag的方式
在原始幀的基礎上封裝上新幀頭及新的FCS 在原始的幀頭中插入tag字段,去掉原有FCS,重新計算FCS
  1. baby giant frame 大于标準的MTU1500位元組,但是小于2000位元組

    對于采用ISL封裝的,MTU=1548(下文有解釋)

    對于Dot1Q,MTU=1522

  2. Vlan範圍和映射

    ISL支援的vlan編号是1~1005(預設允許正常的)

    802.1q支援的vlan編号是1~4094(預設允許所有正常和擴充的)

    是以當穿過802.1q和ISL的幹道的時候就需要映射。

    (1)單台交換機上最多允許8個802.1q到ISL vlan的映射

    (2)隻能映射到Ethernet的vlan

    (3)該被映射的Ethernet vlan将被阻塞

    (4)映射僅在本地有效

  3. 鍊路聚集模式

    trunk 永久鍊路聚集模式,強制trunk,發送DTP幀

    Nonegotiate 永久鍊路聚集模式,必須手動将鄰居配為幹道口,不發送DTP幀。一般用于對端裝置不支援DTP的情況。

    Desirable主動嘗試将鍊路成為幹道(預設模式),發送DTP幀,如果鄰接接口為trunk、desirable、auto,那麼此接口成為trunk。

    Auto接口願意成為trunk,如果鄰接接口被設定為trunk或desirable,那麼接口就成為trunk

    Access永久的nontrunking模式,并且與對端接口協商,使其成為nontrunking鍊路

Dynamic Auto Dynamic Desirable Trunk Access
Dynamic Auto Access Trunk Trunk Access
Dynamic Desirable Trunk Trunk Trunk Access
Trunk Trunk Trunk Trunk 不建議
Access Access Access 不建議 Access

三、ISL

交換機Trunk詳解
  • Cisco私有協定
  • 支援PVST
  • 在原始的資料幀基礎上封裝上ISL頭及新的FCS
  • 沒有修改原始的資料幀,是以處理效率比802.1Q高
  • VLAN字段,15個比特目前用了10個,那麼最多支援210=1024個VLAN
  • “原始以太幀”最大是1518個位元組,1500的ip MTU,加上源目的MAC位址共12,類型字段2個,CRC4個,再加上3位元組的ISL封裝,就是1548位元組了
  • 上圖中幾個字段(ISL)的描述如下

    DA 40bit的多點傳播位址用于标示這個FRAME是ISL的

    TYPE 标示這個幀是什麼類型的,如以太、令牌環等

    SA 發送幀的原交換機MAC

    AAAA03 SNAP(固定值)

    VLAN 15個比特目前用了10個,那麼最多支援210=1024 VLAN

    INDEX 這個幀的對端交換機來源端口

是以ISL幀最大1548bytes(1518+26+4)

四、Dot1Q

  1. 幀格式
    交換機Trunk詳解
    802.1Q Tag包含4個字段,其含義如下:
  • Type長度為2位元組,表示幀類型。取值為0x8100時表示802.1Q Tag幀。如果不支援802.1Q的裝置收到這樣的幀,會将其丢棄。
  • PRI Priority,長度為3比特,表示幀的優先級,取值範圍為0~7,值越大優先級越高。用于當交換機阻塞時,優先發送優先級高的資料包。
  • CFI Canonical Format Indicator,長度為1比特,表示MAC位址是否是經典格式。CFI為0說明是經典格式,CFI為1表示為非經典格式。用于區分以太網幀、FDDI(Fiber Distributed Digital Interface)幀和令牌環網幀。在以太網中,CFI的值為0.
  • VID VLAN ID ,長度為12比特,表示該幀所屬的VLAN。在VRP中,可配置的VLAN ID取值範圍是1~4094。
  1. 優缺點
  • 缺點是破環了原始以太網幀以及重新計算FCS,ISL是直接封裝頭和尾。
  • Dot1Q公用,ISL私有
  • 802.1Q支援4096個VLAN 最大幀:1518+4=1522
  1. Native Vlan
  • 在802.1q的native vlan是不打标簽的,使用Dot1q的交換機把所有未标記的frame轉發到native vlan中,而ISL會對所有的資料幀,包括native vlan進行封裝,是以如果沒有封裝的資料幀它會丢棄(ISL沒有native vlan的概念)
  • Native vlan所屬的幀在經過trunk時不打标簽
  • Native vlan在Trunk兩端必須比對,否則會出現vlan流量互串
  • 預設的native vlan時vlan 1
  • 建議将一個生僻的vlan配置為native vlan
交換機Trunk詳解

我們看上面這個圖,兩台交換機trunk兩端native vlan不一樣,會有什麼問題?首先兩端的vlan2通信肯定是沒有問題的,但是vlan3和vlan4通信就有問題了,左邊vlan3的使用者發出來的資料幀從左交換機出去上trunk,是不打标簽的,但是這些資料幀到了右交換機,它會認為這些資料幀是屬于vlan4的,這就出現了問題。

  • 相關配置:

    Switch(config-if)# switchport trunk native vlan ?

    在trunk上設定native vlan

    Switch(config)# vlan dot1q tag native

    上述指令将對native vlan也打标簽

  1. Vlan範圍
VLAN的範圍 作用
0,4095 保留,系統使用
1 Cisco預設vlan
2~1001 For Ethernet VLANS
1002~1005 Cisco預設為FDDI及TokenRIng定義
1006~4094 隻能為Ethernet使用,在一些特殊平台被保留使用

五、DTP

  • Trunk可以手工靜态配置或者通過DTP進行協商
  • DTP使得交換機之間能夠進行Trunk協商
Trunk 永久鍊路聚集模式,強制trunk,發送DTP幀
Nonegotiate 不發送DTP幀。一般用于對端裝置不支援DTP的情況;需要搭配手工指定的trunk或access 模式指令
Desirable 主動嘗試将鍊路成為幹道(預設模式)。發送DTP幀,如果鄰接接口為trunk、desirable、Auto,那麼此接口成為Trunk
Auto 接口有意願成為trunk,但是不會主動發送DTP/如果鄰接接口被設定為trunk或desirable,那麼接口就成為trunk,會被動響應DTP協商資料幀
Access 永久的nontrunking模式,并且與對端接口協商,使其成為nontrunking鍊路
Dynamic Auto Dynamic Desirable Trunk Access
Dynamic Auto Access Trunk Trunk Access
Dynamic Desirable Trunk Trunk Trunk Access
Trunk Trunk Trunk Trunk 不建議
Access Access Access 不建議 Access

六、Trunk配置

Switch(config-if)# switchport mode access

将接口設定為access模式

Switch(config-if)# switchport mode encapsulation {dot1q | ISL}

如果接口為trunk,設定幹道協定類型

Switch(config-if)# switchport mode dynamic {auto | desirable}

将接口設定為DTP動态協商,可選auto或desirable

Switch(config-if)# switchport nonegotiate

将接口設定為nonegotiate,不發送DTP幀,如果配置為非協商,那麼就必須手工

配置接口模式,為access或trunk

交換機Trunk詳解
SW1(config)# interface fast0/23
SW1(config-if)# switchport trunk encapsulation dot1q
SW1(config-if)# switchport mode trunk
SW1(config-if)# switchport native vlan 1
SW1(config-if)# switchport nonegotiate
SW1(config-if)# switchport trunk allowed vlan ?
  WORD   VLAN IDs of the allowed VLANs when this port is in trunking mode
  add     add VLANs to the current list
  all     all VLANs
  except   all VLANs except the following
  none     no VLANs
  remove   remove VLANs from the current list
           

上圖中,兩端PC都屬于vlan10的話,如果SW1的Fa0/23口将vlan10 remove掉,那麼PC肯定就無法通信了。

七、MTU問題

MTU就是最大傳輸單元,不同的系統對于MTU的設定和了解使不同的。Cisoc IOS善,interface x接口模式下:

  • MTU指的使二層的MTU,這是接口MTU,值得是不包含二層幀頭的、payload的MTU,這個MTU值一般是不能手工修改的,預設是1500位元組。如此一來Cisco路由器支援的二層資料幀最大值就是1500的payload加上二層幀頭及二層FCS:目的MAC 6位元組+源MAC 6位元組+類型字段2位元組+FCS 4位元組,是以總的就是1518位元組。
  • IP MTU值得是三層的MTU,這個值可以手工修改,但是最大值必須小于接口的二層MTU值也就是1500.這個MTU指的是三層IP包的總大小,如果接口發出的包大于這個接口的IP MTU,那麼這個ip包将被分片
    交換機Trunk詳解

    做個測試:上圖中,R1的fa0/0口 ip mtu為1500,

    我們去ping 1.1.1.2 repeat 1 size 1500,我們會發現R1直接将一個ICMP包發出去了,沒有分片。

    從封包中我們可以得出,這個IP包的大小為1500位元組。

    其中ip報頭20位元組,ICMP報頭8位元組,ICMP data荷載1472位元組,剛好1500位元組。

    是以在CISCO IOS裝置上,ping後面跟着的size指的就是發出去的IP包整個的大小。而在windows PC 的cmd下,ping後跟的包大小就是ICMP data大小,ping –l 1472,産生的包就是1500位元組

    還是上面的例子,如果我們在R1上,ping 1.1.1.2 repeat 1 size 1501,這個時候,R1由于産生的這個IP包大于mtu 1500,是以會被分片,然後在R2上,這兩個分片被重組。

轉載:鴻鹄論壇

繼續閱讀