1.Trunk扩展及排错
1.1 Trunk扩展
VLAN中的常见故障是设备不能跨越Trunk链路而建立连接,为了能够排除Trunk端口的故障,需要验证下列配置是否正确。
虽然交换机的接口可以配置为五种DTP模式,但链路两端的接口经过协商最终只能形成下列链路中的一种。
Access链路,链路对应的接口必须加入某一VAN,对交换机而言,该接口只能允许一个VLAN流量通行,且不打标识,用于连接PC服务器,路由器(非单臂)等设备。
Trunk链路,链路两端的接口配置为Trunk或协商(DTP)成功的一种链路,该链路默认情况下允许所有VLAN通行,而且对每个VLAN通过打不同的标识(NativeVLAN除外)加以区
分,主要用于连接交换机设备。
交换机在转发数据时,除了基于MAC地址表决定转发的接口外,还要判断待转发的接口的VLAN信息,如果待转发的接口VLAN信息不匹配,则交换机拒绝转发该数据。交换机允许同一VLAN间转发数据,拒绝不同VLAN间的数据转发。在引入Trunk链路后,因为Trunk链路默认允许所有VLAN 通过,所以交换机允许将任何VLAN的流量通过Trunk链路转发。
因为Access链路传输的是原始数据帧,所以Access链路允许两端的接口属干不同的VLAN,如图所示。
如图所示,所有的交换机接口均为Access接口,VLAN1的客户端发送的数据是原始数据帧,到达SW1的F0/0接口(属于VLAN1)之后,SW1认为这是VLAN1的流量,经过MAC地址查找之后,从VLAN1的F0/1接口转发,因为F0/1是Access接口,所以发送原始数据帧。当数据帧继续到达SW2的FO/0接口(属于VLAN2)后,SW2认为这是VLAN2的流量,经过MAC地址查找之后,从VLAN2的F0/1接口转发,因为F0/1是Access接口,所以发送原始数据帧。当数据帧继续到达SW3的FO/0接口(属于VLAN3)后,SW3认为这是VLAN3的流量,经过MAC地址查找之后,从VLAN3的F0/1接口转发,因为F0/1是Access接口,所以发送原始数据帧。最终数据帧达到VLAN 3。数据帧返回的流程同上。
Access类型的接口主要用于交换机的本地转发,它不关心对端交换机如何转发,且在本交换机内部只做同一VLAN 间的转发,不同VLAN之间禁止通信。在数据发送时,发送的是原始数据帧。而Trunk链路在发送数据时,需要对数据打标识,其目的是让对端交换机识别该数据所属的VLAN。换个角度讲,Access接口识别流量属于哪个VLAN是通过接收数据的接口所配置VLANID,而工作在Trunk模式的接口则是通过接收数据所携带的VLAN标识来识别VLAN
1.2 Trunk排错
形成Trunk链路必须具备以下条件:
封装,链路两端接口的Trunk封装必须一致。
模式,链路两端接口的Trunk模式必须匹配。
NativeVLAN链路两端接口的NativeVLAN配置(8021q封装)相同。
封装一致表示链路两端接口的封装配置相同,如都是8021q或都是ISL封装。大部分Cisco交
换机的默认封装是802.1g,少数老设备默认封装为ISL,一定要保证封装一致才可以成功建立Trunk
链路。
模式匹配是指链路两端接口的接口模式可以配置不一样,但至少存在一个主动端,Cisco中的
Trunk链路可以通过配置实现,也可以通过协商实现,Cisco的协商机制简化了Trunk的配置复杂性,如新购置的两台交换机之间物理上连接网线默认就形成Trunk,之所以如此是因为Cisco默认的接口模式可以通过协商形成Trunk所谓的协商,是指通过相互发送报文最终确定链路工作在Access模式还是Trunk模式,而用干协商的协议就是DTP协议,通过DTP可以成功协商为Trunk链路,就认为双方的模式匹配。
表是交换机端口协商对应表,假如SW1和SW2通过网线直连,表中前两列表示两端接口的配置模式,后两列表示每个接口最终协商后的状态,只有状态都为Trunk,最终链路才是Trunk模式.
DTP协商过程通过主动发送请求消息和被动发送响应消息实现。各模式的DTP消息发送机制如下所示。
Access,不发送任何DTP消息。
Trunk,强制本端为Trunk模式,同时主动发送和被动响应DTP消息。
dynamic desirable,只能通过协商形成Trunk,主动发送和被动响应DTP消息。
dynamic auto,只能通过协商形成Trunk,只是被动响应DTP消息。
nonegotiate,不发送任何DTP消息,通常配合Trunk模式,用来和不支持DTP协议的第三方
厂商设备建立Trunk链路。如Trunk+nonegotiate表示不发送任何DTP消息,强制本端接口 为Trunk模式。
综上所述,在所有的接口模式中,只有 Trunk 和dynamic desirable会主动发送DTP消息,除了Access和nonegotiate外,都可以被动响应DTP消息,若要通过DTP协商成功,要求链路的一端接口是Trunk 和dynamic desirable中的一种,而链路的另外一端接口是Trunk,dynamic desirable和dynamicauto中的一种。即一端接口可以主动发送DTP消息,另外一端接口可以被动响应DTP消息。
实际环境中经常用到的模式是Trunk和dynamic desirable
NativeVLAN配置一致也是形成Trunk链路的条件之一,这只在802.1q封装中生效,ISL不支持
Native VLAN默认情况下,Cisco默认的NativeVLAN是VLAN1如果用户修改了一端接口的Native
VLAN,那么另外一端接口也要改为一致。
常见的Trunk排查方法如下。
1.接口模式
要确保至少一侧链路的Trunk模式应当是trunk或desirable。通过使用命令show interface
interface-id trunk或show interfacetrunk可以验证接口的Trunk配置。其中前者用来查询指定接口的
Trunk配置,后者用来查询该交换机所有的Trunk接口配置。
2.封装类型
确保链路两端的Trunk封装类型一致,可以通过show interfaceinterface-idswitchport命令查询
当前接口的封装模式。
上述输出结果中,Administrative关键字表示当前的配置状态,Operational关键字表示最终协商后的状态。
3.Native Vlan
如果使用IEEE802.1g封装,就要确保Trunk链路两端的NativeVLAN配置相同。
如图所示,网络规划如下。
PC1和PC3属干VLAN2其IP地址分别为1921680.2/24192.168.0.3/24
PC2和PC4属于VLAN3其IP地址分别为1921681.2/24192168.1.3/24
网络管理员配置设备后发现属于相同VLAN的主机无法通信,应如何解决?
SW1的配置信息如下。
SW2的配置信息如下。
首先,需要确定交换机之间的连通性;然后,查看交换机的配置和端口的协商,经检查,交换
机的物理链路正常,然后使用show interface fastenternet 0/24 switchport命令查看接口模式
发现SW1SW2的F0/24的接口工作模式为Access模式,导致网络不通。分别更改SW1和SW2交换机F0/24的接口模式,使其成为Trunk模式,配置如下。
更改完成后,经测试,PC1和PC3、PC2和PC4 能够正常通信。
当两台CiscoCatalyst交换机连接时,连接的端口会进行协商,由于端口配置不同,会有不同的协商结果,如表所示。
2.单臂路由
单臂路由可以实现网络中相互隔离的不同VLAN间通信
2.1 单臂路由概述
网络中通过VLAN技术来实现隔离广播,方便管理及提高安全性等功能,一旦划分VLAN后,同-VLAN之间可以相互通信,不同 VLAN 间禁止相互通信。但是在企业真实环境中,部门之间及部门和服务器分别属于不同的VLAN,如果不同VLAN之间不能相互通信,那么客户端也无法访问其他部门及服务器所提供的服务,这就好比为了提高公司的网络安全性,直接将公司网络和互联网络之间的链路断开。安全性固然提高,但是直接影响了员工对互联网资源的使用。这种做法显然是不可行的。
那么在实际生产环境中,如何保证员工所在部门的VLAN可以和服务器所在的VLAN之间进行通信呢?
企业划分VLAN的主要作用是隔离广播,而只要解决了不同VLAN间的通信问题就可以在保证
在隔离广播的前提下,实现正常通信,即VLAN间的通信技术,实现VLAN间通信的技术很多,比较典型的是通过三层交换机和单譬路由实现,但无论哪种方法,都要借助干三层设备实现,因为如果通过二层设备解决了VLAN间的通信问题,那么广播也可以跨VLAN传播。本章只介绍单臂路由的方式实现VLAN间通信,关于三层交换机的知识将在后续课程学习。
2.2单臂路由的原理
如图所示,假设主机A属于VLAN10,而主机B属于VLAN20,且两台主机分别连接到SW1的F0/1和F0/2接口上。
通过上一章所学的知识我们可以知道,两台主机被中间的交换机逻辑隔开,不可能直接通信。而且根据经验,不同VLAN的主机一般被分配的IP地址也是属于不同网段的,所以不同网段间的主机通信就必须借助网关。上述分析说明,要想实现VLAN间通信,就必须借助其他设备,如路由器等。下面通过分析几个问题来详细了解VLAN间路由的概念。
1.链路类型
首先需要知道图134中的链路类型。连接两台主机的链路毋庸置疑是Access链路,关键问题
是路由器和交换机之间的链路属于什么链路?主机A和主机B分别属于不同的VLAN,且两台主
机发送的流量都可能通过该链路,因此,这条链路应该是Trunk链路。
2.子接口
主机A与主机B通信,由于双方属于不同的网段,因此主机A首先是要与网关通信,主机A的
网关应该是R1,但问题是主机B的网关也应该是R1一个路由器接口如何可以成为多个网段的网关
呢?这就需要大家了解子接口的概念。
路由器的物理接口可以被划分成多个逻辑接口,这些被划分后的逻辑接口被形象地称为子接口。例如,F0/1接口可以被划分成F0/11F0/12F0/13等多个子接口,值得注意的是这些逻辑子接口并不能被单独开启或关闭,也就是说,当物理接口被开启或关闭时,所有该接口的子接口也随之被开启或关闭。
3.VLAN间的路由
有了路由器的加入,不同VLAN之间可以通过路电器转发路电器本身是隔离广播的所以在
解决VLAN间通信的前提下还能隔离广播。通过前面的学习可知,三层设备如果要在不同网段之间
转发数据,需要路由信息,那需要配詈路由信息吗?答案是路由要有,但不需要配置,当我们在路由器配置了子接口并给子接口配置P地址后,直连路由就已经存在了,而通过该直连路由就可以实
现VLAN间的数据转发。
为了方便理解,可以将图13.4中的拓扑信息,隐藏掉VLAN间的二层细节信息,只显示三层信
息,就好比在一张详细的全国地图中,隐藏掉各个省内部的道路信息,只显示省与省之间的主要道
路信息,可以让地图在全局看上去比较清晰。如图所示。
4.VLAN标识的转换
R1在转发数据的过程中,除了要重新封装数据的MAC地址之外,还需转换VLAN的标识。当主
机A发送数据帧给网关路由器时,数据帧中的标识属于VLAN10,当该数据从路由器中转发出来时,
VLAN的标识就被转换为VLAN 20,如图所示。
由上述三个问题的说明,我们对于VLAN间路由应该有简单的了解。下面就主机A与主机B通信的例子展示这一过程。
(1)如表所示,主机A发送的数据目标IP地址为主机B的IP地址,而目标MAC地址为网关的MAC地址,即R1的F0/01接口的MAC地址(这里省略了ARP的过程),因为数据帧为主机所发出,所以没有任何标识。
(2)交换机属于二层设备,因此并不会重新封装二层的帧结构,但由于转发的目的方向为Trunk
链路,因此交换机要给该数据帧封装VLAN标识,于是从交换机转发出来的数据的唯一变化就是VLAN标识。
(3)路由器将会重新封装二层数据帧,因此目标和源MAC地址都发生改变,除此之外,路由器
转发出来的数据将属于新的广播域-VLAN20所以路由器还需更换数据帧中的VLAN标识。
(4)交换机将再次转发数据帧,与步骤(2)不同的是它将数据帧中的标识拆掉,