思科VLAN Trunk

VLAN Trunk  (虚拟局域网中继技术)
作用是让连接在不同交换机上的相同VLAN中的主机互通
 
一般来说,交换机的一个端口只能承载单个VLAN的流量,如果希望一个端口承载多个VLAN 的流量,管理员就需要在交换机上使用干道(Trunk)技术。
 
如果交换机 1 的VLAN1 中的机器要访问交换机 2 的VLAN1中的,我们可以把两台交换机的级联端口设置为Trunk端口,这样,当交换机把数据包从级联口发出去的时候,会在数据包中做一个标记(TAG),以使其它交换机识别该数据包属于哪一个VLAN,这样,其它交换机收到这样一个数据包后,只会将该数据包转发到标记中指定的VLAN,从而完成了跨越交换机的VLAN内部数据传输。
 
 
 
Trunk:在单条物理链路上承载多个VLAN的流量。一般用在交换机与交换机之间。
 
Trunk运用的2种协议:
 802.1Q:基本标准的IEEE协议,属业界标准。
 ISL(Inter-Switch Link 交换机间链路):Cisco专有的Trunk封装方式。
 
 
ISL是Cisco专有技术,802.1q则是IEEE的国际标准
 
VLAN的标识:在一条中继链路上发送帧时,就会在每个帧的帧头放置一个唯一标识VLAN的ID标识号,当这条通信路上的交换机收到这个帧时,交换机就检查这个帧的标识号,根据标识号来判断该帧属于哪个VLAN(带有VLAN标记的数据帧比正常的以太网帧大。
 
两种VLAN中继协议:ISL和802.1Q,它们的比较如下表:
 
 
 
802.1Q是在不破坏原数据帧的情况下在中间插入了区分Vlan的信息;
ISL相当于在外面再打了一层包.在原数据帧的头尾都加了东西。
 
因为封装的形式不同:
导致ISL与没有做ISL封装的普通数据帧无法识别,无法通信;
而802.1Q没有破坏原数据帧结构,所以802.1Q可以与没有做Trunk封装的标准数据帧兼容,正常通信。
 
结论:802.1Q比ISL好用。所以尽可能的使用802.1Q封装。而且ISL的私有性也决定了它使用的会比标准少。
 
====
802.1Q
 
采用"标记"方式,在原始数据帧的源MAC地址之后 插入4字节(32bit)的标记
 VLAN_ID: 12bit(0~4095)
注:在交换机内部进行数据帧处理时,所有vlan的数据均加tag
 
 
 
802.1Q:   VLAN Tag(4字节)
2字节:类型
3bit :优先级
1bit :CFI(令牌环网时为1)
12bit: VLAN_ID 
         (0~4095,0/4095为系统保留,1为缺省VLAN,用户 可配置VLAN为 2~4094 )
 
====
native VLAN(本征VLAN):
 
802.1q :无论是否标记,交换机把trunk端口所接收的第2层帧转发到预期VLAN中
ISL:         如果干道端口的接收帧没有被封装,丢弃
 
 
发送:在一个trunk端口,若需要发送某个VLAN的数据,通常都需要添加tag. 
           若该数据帧所属的vlan等于该trunk端口的native vlan,则不加tag直接发送
 
接收:在一个trunk端口上,若接收到一个数据帧带有tag,则按照该tag处理
      若该数据帧没有tag,则添加该trunk端口的native vlan作为tag.
 
802.1Q中继端口支持来自多个VLAN的流量(有标记流量),也支持来自VLAN以外的流量(无标记流量)。802.1Q中继端口会将无标记流量发送到本征VLAN。
 
默认的本征 VLAN 是 VLAN 1,可以来修改的
int f0/1
switchport trunk native vlan 3
 
 
====
ISL
 
采用"封装"方式,原始数据帧前加26字节 ,尾部加4字节新的FCS(CRC校验)
       VLAN_ID:15bit
若采用ISL封装,所有的VLAN数据经过trunk链路时,均需要进行ISL封装,不存在nativ VLAN概念
 
 
 
 
========
DTP(Dynamic Trunk Protocol,动态中继协议)
 
Cisco使用DTP(Dynamic Trunk Protocol,动态中继协议)来动态学习设备执行哪种类型的中继。Cisco交换机默认使用DTP的desirable模式,这意味着交换机开始发送DTP消息,希望对端回应其他DTP消息。如果回应收到,DTP便可以侦测是否两个交换机能够中继以及它们中继的协议类型。
 
 
 
Trunk:  封装:   802.1q   ISL
             模式:access , trunk , desirable , nonegotiate  , auto
 
 
 
DTP协商:
   a)auto方式:       被动响应DTP报文
   b)desirable方式:    主动发送DTP报文
 注1:cisco交换机的端口缺省开启DTP协商
 注2:交换机双方必须在同一个VTP域中,才能进行DTP协商,进入trunk状态
 
 示例1:
  交换机A的f0/1   <------> 交换机B的f0/1
        *1)交换机A的配置
         int f0/1
         switchport mode dynamic desirable(最终:trunk)
        交换机B的配置
          int f0/1
          switchport mode dynamic desirable(最终:trunk)
     --------------------------------------------------------
        *2)交换机A的配置
         int fa/1
         switchport mode dynamic auto       (最终:trunk)
        交换机B的配置
         int fa/1
         switchport mode dynamic desirable(最终:trunk)
     --------------------------------------------------------
        *3)交换机A的配置
         int fa/1
         switchport mode dynamic auto     (最终:access)
         交换机B的配置
          int fa/1
          switchport mode dynamic auto     (最终:access)
      --------------------------------------------------------
        *4)交换机A的配置
         int fa/1
         switchport mode dynamic auto(最终:trunk)
         交换机B的配置
         int fa/1
          switchport mode trunk              (最终:trunk)
         DTP 没关,和对方协商
     --------------------------------------------------------
         *5)交换机A的配置
          int fa/1
          switchport mode dynamic auto(最终:access)
         交换机B的配置
          int fa/1
          switchport mode trunk(最终:trunk)
          switchport nonegotiate           ------该端口不再发达DTP报文
              静态配置端口为trunk或access,   然后才能将DTP协议关闭,
 
  show dtp interface
====
端口配置示例
      1)配置802.1Q封装的trunk端口 
      int fa0/1
       switchport
       switchport trunk encapsulation dot1q
       switchport mode trunk
       switchport trunk native vlan VLAN_ID
                                                                  -----封装802.1Q时允许存在native vlan
       switchport trunk allowed vlan ……
 
       2)配置ISL 封装的trunk端口
        int fa0/1
        switchport
        switchport trunk encapsulation isl
        switchport mode trunk
        switchport trunk allowed vlan ……
 
若接口配置为中继,那么中继类型(ISL还是802.1Q)
通过switchport trunk encapsulation命令来配置。
 
====
路由器配置中继
 
路由器上也可以配置VLAN中继,不过,路由器不支持DTP,所以必须手工配置,另外与路由器连接的交换机也需要手工配置中继。
路由器的中继配置一般使用子接口,每个子接口属于一个VLAN。
 
可以在路由器的子接口或物理接口上配置802.1Q原始VLAN。如果在子接口上配置,则使用encapsulation dot1q vlan-id native子命令。native关键字表示离开此接口的帧不打标记。如果要与IP网段联系,还应该配置相关的IP地址。如果在物理接口上配置,则不需使用encapsulation命令,而只要配置相关IP地址可。
 
单臂路由--路由器配置
int f0/0
no shutdown
int f0/0.4
encapsulation dot1q 4 
ip address 192.168.1.254 255.255.255.0
int f0/0.5
encapsulation dot1q 5
ip address 192.168.2.254 255.255.255.0
 
====
Trunk的相关命令:
 
1)switchport | no switchport:确定该接口是交换机接口还是路由器接口
2)switchport mode:设置DTP协商参数
3)switchport trunk:如果接口处于中继状态,设置中继参数
4)switchport access:如果接口处与非中继状态,设置非中继的参数
5)show interface trunk:与中继相关信息的汇总
6)show interface f1/0 trunk:对特定接口显示中继的详细信息
7)show interface f1/0 switchport:对特定接口显示非中继详细信息
 
====
Trunk 实验
当一个VLAN 跨过不同的交换机时,在同一VLAN 上但是却是在不同的交换机上的计算机进行通信时需要使用Trunk。Trunk 技术使得在一条物理线路上可以传送多个VLAN 的信息
 
 
SW1 SW2 创建相应vlan,并把接口划到vlan中
sw1:
vlan 2
vlan 3
int f0/1
switchport mode acc
switchport acc vlan 2
int f0/2
switchport mode access
switchport access vlan 3
 
====
配置trunk:
SW1
int f0/10
switchport trunk encanpsulation dot1q
    //以上是配置trunk 链路的封装类型,同一链路的两端封装要相同。有的交换机,例如2950只能封装dot1q,因此无需执行该命令。
 
switch mode trunk    //以上是把接口配置为trunk
                                 
查看
show interfaces trunk
测试R1 和R3、R2 和R4 之间的通信。由于R1 和R3 在同一VLAN,
所以R1 应该能ping 通R3
 
R1#ping 192.168.13.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.13.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 60/64/70 ms
 
====
配置Native VLAN:
 
SW1:
int f0/10
switchport trunk native vlan 2
    在Trunk 链路上配置Native VLAN,我们把它改为VLAN 2 了,默认是VLAN 1
 
SW2:
int f0/10
switchport trunk native vlan 2
 
在Trunk 链路上,数据帧会根据ISL 或者802.1Q 被重新封装,然而如果是Native VLAN 的数据,是不会被重新封装就在Trunk 链路上传输。很显然链路两端的Native VLAN 是要一样的。如果不一样,交换机会提示出错。
 
%CDP-4-NATIVE_VLAN_MISMATCH: Native VLAN mismatch discovered on FastEthernet0/10 (2), with SW2 FastEthernet0/10 (1).
 
====
VLAN 间路由
 
在交换机上划分VLAN 后,VLAN 间的计算机就无法通信了。VLAN 间的通信需要借助第三层设备,我们可以使用路由器来实现这个功能,如果使用路由器通常会采用单臂路由模式。
实际上,VLAN 间的路由大多是通过三层交换机实现的,三层交换机可以看成是路由器加交换机,然而因为采用了特殊的技术,其数据处理能力比路由器要大多。
 
单臂路由
处于不同VLAN 的计算机即使它们是在同一交换机上,它们之间的通信也必须使用路由器。可以在每个VLAN 上都有一个以太网口和路由器连接。采用这种方法,如果要实现N 个VLAN 间的通信,则路由器需要N 个以太网接口,同时也会占用了N 个交换上的以太网接口。
单臂路由提供另外一种解决方案。路由器只需要一个以太网接口和交换机连接,交换机的这个接口设置为Trunk 接口。在路由器上创建多个子接口和不同的VLAN 连接,子接口是路由器物理接口上的逻辑接口。
 
当交换机收到VLAN1 的计算机发送的数据帧后,从它的Trunk 接口发送数据给路由器,由于该链路是Trunk 链路,帧中带有VLAN1的标签,帧到了路由器后,如果数据要转发到VLAN2 上,路由器将把数据帧的VLAN1 标签去掉,重新用VLAN2 的标签进行封装,通过Trunk 链路发送到交换机上的Trunk 接口;交换机收到该帧,去掉VLAN2 标签,发送给VLAN2 上的计算机,从而实现了VLAN 间的通信。
 
 
三层交换机
单臂路由实现VLAN 间的路由时转发速率较慢,实际上在局域网内部多采用三层交换。三层交换机通常采用硬件来实现,其路由数据包的速率是普通路由器的几十倍。从使用者的角度可以把三层交换机看成是二层交换机和路由器的组合。
 
这个虚拟的路由器和每个VLAN 都有一个接口进行连接,不过这个接口是VLAN1 或VLAN2 接口。Cisco 早些年采用的基于NetFlow 的三层交换技术;现在Cisco 主要采用CEF 技术。CEF 技术中,交换机利用路由表形成转发信息库(FIB),FIB 和路由表是同步的,关键的是它的查询是硬件化,查询速度快得多。除了FIB,还有邻接表(Adjacency Table),该表和ARP 表有些类似,主要放置了第二层的封装信息。FIB 和邻接表都是在数据转发之前就已经建立准备好了,这样一有数据要转发,交换机就能直接利用它们进行数据转发和封装,不需要查询路由表和发送ARP 请求,所以VLAN 间的路由速率大大提高。
 
 
====
VLAN 间路由
 
用R1 来实现分别处于VLAN10 和VLAN20 的PC间的通信。
 
1.在SW1 SW3中划分VLAN,并将相应的接口划到相应的VLAN 中
SW1:
int f0/1
switchport mode access
switchport access vlan 10
int f0/2
switchport mode access
switchport access vlan 20
 
2.把交换机与交换机之间,与路由器之间上的接口配置成Trunk 接口
SW1:
int f0/10
switchport mode trunk
 
3.在路由器R1的物理以太网接口下创建子接口,并定义封装类型
R1:
int f0/0
no shutdown
int f0/0.1
encapsulation dot1q 10                    //定义该子接口承载哪个VLAN 流量
ip add 192.168.1.254 255.255.255.0  
                                     //在子接口上配置IP 地址,这个地址就是VLAN 10 的网关了
int f0/0.2 
encasulation dot1q 20
ip add 192.168.2.254 255.255.255.0
 
4.在PC上配置IP 地址和网关,测试PC间的通信
 
====
三层交换机实验
用SW4 来实现分别处于 VLAN 10 和 VLAN 20 的PC1 和PC2 间的通信。
 
1.配置三层交机
SW4:

ip routing

vlan 10 
vlan 20
int vlan 10
ip add 192.168.1.200 255.255.255.0
int vlan 20
ip add 192.168.2.200 255.255.255.0
 
在vlan 接口上配置IP 地址即可,VLAN 10 接口上的地址就是PC 0 ,PC 2 的网关了,VLAN 20 接口上的地址就是PC 1 ,PC 2  的网关了。
 
2.交换机之间设置为 Trunk
SW2
int f0/20
switchport mode trunk
 
3.把PC 的网关改为 192.168.1.200,192.168.2.200
 
tracert 192.168.2.1
ping 192.168.2.1
 
====
 
我们也可以把f0/5 和f0/6 接口作为路由接口使用,这时它们就和路由器的以太网接口一样了,可以在接口上配置IP 地址。如果S1 上的全部以太网都这样设置,S1 实际上成了具有24 个以太网接口路由器了,我们不建议这样做,这样太浪费接口
 
int f0/10
no switchport                 //该接口不再是交换接口了,成为了路由接口
ip address 192.168.1.1 255.255.255.0
 
 
 

你可能感兴趣的:(思科交换机)