1 LAN 简介 LAN,Local Area Network,直译为本地区域网,可能是因为为了方便传播,大家基本上都叫它局域网,既然大家都这么叫,如果我们搞特例那就是不明智了。 局域网这个词的侧重其实是在局域这个词上,主要是想表达网络的覆盖范围,相对于WAN(Wild Area Network,广域网)而言更小,多数情况用来指代某个专用的园区网,比如同一个企业园区、同一个学校校园等。局域网的概念不仅仅是指地理范围,时常还包含同一个所有者、同一个广播域,或同一个网段的意思。从来没有人能够精准地定义,出现在不同的语境里所表达的意思也不一样,我也只是罗列出它可能的含意,具体的指代还要读者自己识别。 另外就是关于“同一个网络”这个术语,它在不同的教材或资料上的出现时,可能包含的意思也不一样,甚至在同一篇RFC文档的不同位置出现,也会有不同的含义。 1)有时把同一个VLAN或同一个广播域,叫做同一个网络; 2)有时也把同一个IP网段也叫做同一个网络; 3)物理上的同一个专用园区网(即本地网络),也会被叫做同一个网络。 如何分辨别人是在说哪一种呢?还是要根据上下文语境来判断。如果在生产中交流时提到“同一个网络”时,又缺少上下文环境,就需要跟对方确认一下是属于上面三种的哪一种。 2 VLAN 简介 VLAN,Virtual Local Area Network,虚拟局域网。在物理局域网的基础上通过软件的方式,将功能相似的网络设备或终端归并在一起,形成一个广播域,以达到增加安全性和提升网络性能等目的。这项技术在生产中应用非常广泛,不管网络系统的规模是大是小,都会有用到,因为就算是你没有配置VLAN,也会有一个VLAN存在,我们把它叫做缺省VLAN(Default VLAN)。 我们说网络通信是基于广播的,尤其是指网络层到数据链路层封装时用到的ARP和获取主机配置信息的DHCP。当同一个广播域中的主机数量过多时,会导致广播泛滥、通信开销增加、网络性能显著下降,直到网络不可用等。VLAN技术应运而生,它可以有效分隔广播域的大小,在较小规模的广播域里,域内广播包的占比和主机收到的广播包的数量都会明显减少。 3 VLAN 定义 VLAN 是将一个物理的LAN 在逻辑上划分成多个虚拟的LAN(Virtual VLAN),以达到分隔广域的通信技术。 4 VLAN 作用 1) 限制广播域大小; 2) 增强局域网的安全性; 3) 提高了网络的性能和健壮性; 4) 灵活构建虚拟工作组。 VLAN定义在数据链路层或网络接入层,用户一旦接入某个网络就意味着接入到了某个VLAN,它起到对数据隔离的作用,隔离的同时也导致VLAN间通信的限制。要想实现VLAN间通信,需要借助于上层设备或技术,具体的实现有多路由器端口、路由器子接口(单臂路由)、SVI(Switch Virtual Interface)、ARP Proxy等。 5 以太网帧格式 Ethernet Version II帧结构,如图11-01所示。  图11-01 以太网II帧格式 对各字段解释如下: Destination Address 目的地址。 Source Address 源地址。 Type/Length 类型长度,Type表示携带的上层协议,Length表示帧的长度,当普通的数据帧时,此字段表示Type,当封装Dot1Q数据帧时,此字段表示Length,Type由Dot1Q字段中的TPID表示。 Data 携带的数据内容。 FCS (Frame Check Sequence)帧校验序列。 6 VLAN ID 一个VLAN ID是由12个二进制位构成,可以表示0~4095数字范围,但并不是所有VLAN ID都可以在生产中使用。 表11-01 VLAN ID及用途
VLAN ID | 用途 | 0,4095 | 系统保留,生产中不能用。 | 1,1002~1005 | 缺省VLAN,自动被创建,用户不能配置。http://www.cisco.com/c/en/us/td/docs/ios/12_4t/12_4t15/ht_xvlan.html *在华为等国产设备上并没有这个限制,经验证也可以配置并提供以太网业务。 | 2~1001 | 基本VLAN,生产中可用的VLAN ID。 | 1006~4094 | 扩展VLAN,生产中可用的VLAN ID。 | | | |
7 中继链路上的帧 在中继链路上要承载多个VLAN,为区分不能的 VLAN数据,就需要为不同VLAN的数据帧添加一个标识,这个标识就是VLAN Tag。本地VLAN不需要添加VLAN标识(打Tag),只有中继链路上的帧才需要打Tag。 7.1 Dot1Q IEEE 802.1Q 是IEEE 标准,用于标记中继链路上的帧,最多支持 4094个VLAN。会对原始帧进行了修改,在源MAC 地址(Source Address)和长度类型(Length/Type)字段之间加入4 字节的802.1Q Tag,并重新计算帧校验序列(FCS)。 7.1.1 Dot1Q帧格式 图11-02 显示了802.1Q帧封装结构。  图11-02 802.1Q帧封装示意图 Dot1Q各字段标识说明如下: TPID,Tag Protocal Identifier,协议标识符,用来标识上层协议,与普通的以太网帧中的Type/Length字段意义一样,而此时的Type/Length字段表示Length。 PRI,Priority,802.1P优先级,因为只有三位,只能表示0~7,可用在QoS。 CFI,Canonical Format Indicator,权威格式标识,只有一位,用来兼容令牌环,0表示以太网,表示MAC地址是权威格式,1表示令牌环,表示MAC地址不是权威格式。 VID,VLAN ID,12位长度,可表示0~4095,即2^12,共4096个。 7.1.2 Dot1Q帧实例 Dot1Q帧封装在Wireshark协议分析工具上的显示,如图11-03所示。  图11-03 802.1Q帧封装实例,VLAN 10 从抓包实例中我们可以看出: 1)这是一个以太网II数据帧; 2)目的MAC地址是54:89:98:51:27:dd; 3)源MAC地址是54:89:98:f2:51:2a; 4)Type类型值是0x8100,是802.1Q帧; 802.1Q封装中各字段值内容是: 1)PRI优先级是缺省值0,尽力而为转发; 2)CFI值是0,是权威格式MAC地址; 3)VLAN ID是10; 4)Type类型是0x0800,上层协议是IPv4。 7.2 ISL ISL,Inter Switch Links,交换机间链路,是CISCO提出的一种干线帧封门装协议,是私有协议。与Dot1Q相比,它不改变原帧结构,会封装原来的帧,并添加一个新的报头和帧检验序列(FCS),最多支持1000 个VLAN。ISL封装也逐渐被CISCO抛弃,在CISCO的官方教材中也不推荐使用,而是推荐Dot1Q封装。 7.2.1 ISL帧格式 图11-04显示了802.1Q帧封装结构。它保持原以太帧不变,添加新的ISL头并计算新的FCS。
图11-04 ISL帧封装 8 VLAN划分依据 VLAN在生产中的应用可以看成是一个虚拟工作组,而依什么样的条件把设备归为一组呢?最常用方法的是基于设备所端接的端口划分VLAN,也是最简单最容易实现的方式。在基于端口的VLAN中,我们一般先创建VLAN,再把端口添加到VLAN中。有动态VLAN与静态VLAN之分,基于端口的VLAN,就是静态VLAN的一种。典型的动态VLAN有基于MAC地址的VLAN和基于IP子网的VLAN等。除了基于端口的VLAN划分,其它划分方法在绝大部分产品中不受支持,如果有其它划分方法的需求,在使用前先查一查产品文档,确定其是否支持我们想要的特性。 8.1 基于端口 指定某一个交换机端口是属于一个或多个VLAN 。在生产中应用得最为普遍,这种实现方式在生产中普遍应用的主要原因有: 1)比较简单,而且容易理解和实现,管理与维护也比较方便容易; 2)更重要的是满足了最普遍的业务需求,比如某台主机属于某个工作组,接入到交换机的某个端口,需要基于端口划分VLAN。 是交换机的一项基本能力,只要是可管理的交换机一般都会支持基于端口的VLAN划分,但是其它VLAN划分的方法就不一定了。 8.2 基于MAC地址 实现比较复杂,需要统计每一个终端的MAC地址,并且维护也比较麻烦,可能还需要一台专门的服务器。优点是可以根据MAC地址前24位来划分,这样可以对应到一批次设备或某厂家的设备。一般是通过专门的服务器来管理MAC与对应VLAN的关系,生产中应用不是太多。这一特性没有被广泛支持。 8.3 基于策略 更加复杂啦!策略定义本身就增加了复杂性,而且交换机在做策略匹配计算时会增加系统资源的消耗,降低转发效率,关键是很多交换机根本就不支持。 8.4 基于IP子网 需要感知三层的报文,并判断IP地址所属的子网,再做二层的封装,对系统资源的消耗增多,会降低转发性能,多数交换机都不支持。在生产中试图实现过一次,对交换机的转发性能下降非常明显,不得不放弃。 8.5 基于协议 是基于上层封闭的协议类型来划分VLAN,有时候也把基于IP网络和基于协议两种方式统称为基于网络层划分VLAN。可能基于的协议有ATM,IPv4,IPv6,IPX等等,普遍不受支持,使用前请查产品文档。 9 端口模式 在基于端口的VLAN中,端口模式是一个非常重要的概念,不同的端口模式对于VLAN Tag的处理不同,对应于不同的应用场景。 9.1 接入模式 关键字“access”。端口与VLAN一一 对应,在某一时间只能加入一个VLAN。大部分厂家提供的缺省模式就是这种模式,华为设备新出厂缺省模式是hybrid。 这种模式一般连接主机设备或终端设备,如服务器、桌面终端或专用终端等。 在华为设备将端口gig 0/0/0加入到VLAN 10,可以使用如下命令: <Huawei>system-view [Huawei]int gig 0/0/0 [Huawei-GigabitEthernet0/0/1]port link-type access [Huawei-GigabitEthernet0/0/1]port default vlan 10 在CISCO设备将端口gig 0/0/0加入到VLAN 10,可以使用如下命令: Switch>en Switch#config t Switch-config#int fa 0/1 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 10 9.2 中继模式或干线模式 关键字“trunk”。接口本身可以设置一个归属VLAN(PVID),同时还可以设置允许其它VLAN 通过。其它通过的VLAN 在这种接口模式下会打上VLAN 标记。 Trunk模式的接口一般不用在与终端相连,用在交换机与交换机或交换机与路由器相连,它会为每一个允许通过的其它VLAN 打上标签(tag)。 在华为设备将端口gig 0/0/0设置为中继模式,并允许VLAN 2到VLAN 9通过,可以使用如下命令: <Huawei>system-view [Huawei]int gig 0/0/1 [Huawei-GigabitEthernet0/0/1]port link-type trunk [Huawei-GigabitEthernet0/0/1]port trunk allow-pass vlan 2 to 9 在CISCO设备将端口gig 0/1设置为中继模式,并允许VLAN 2到VLAN 9通过,可以使用如下命令: Switch>en Switch#config t Switch-config#int gig 0/1 Switch(config-if)#switchport mode trunk Switch(config-if)# switchport trunk allowed vlan 2-9 9.3 混合模式 关键字“hybrid”。是华为系设备特性,CISCO没有。Hybrid模式灵活多变,可以单独或同时实现Access和Trunk的功能,在生产中普遍采用。可以通过配置PVID和Untagged的方式,对某个特定VLAN实现access的功能。Hybrid端口还可以同时配置一个VLAN以untagged或tagged方式通过,或者说可以让端口以untagged或tagged方式加入到某个VLAN。当前常见的华为交换机,端口默认都是属于Hybrid模式。 Hybrid接口用在什么场景? 1)在基于VLAN的QinQ封闭中,必须将端口配置成这种模式。 2)可以直接与终端相连,可以只属于 VLAN 1(缺省的),也可以加入到其它VLAN,它有一条隐含的命令: port hybrid vlan 1 这条命令的作用是把hybrid接口以untagged方式加入到 VLAN 1中。 Hybrid模式端口与终端相连时,可以实现Access模式相同的效果。比如:将Hybrid端口gig 0/0/0加入VLAN 10,可以使用如下命令: <Huawei>system-view [Huawei]int gig 0/0/1 [Huawei-GigabitEthernet0/0/1]port link-type hybrid [Huawei-GigabitEthernet0/0/1]port hybrid pvid vlan 10 [Huawei-GigabitEthernet0/0/1]port hybrid untagged vlan 10 3)与其它网络设备相连,可以实现trunk模式相同的效果,而且更加自由、灵活,还能够提供更多的功能。在QinQ场景中必须使用这种模式。 如:将Hybrid端口gig 0/0/0与另外一台交换机相连,需要对VLAN 2到VLAN 9打上802.1Q Tag,并允许通过,可以使用如下命令: <Huawei>system-view [Huawei]int gig 0/0/1 [Huawei-GigabitEthernet0/0/1]port link-type hybrid [Huawei-GigabitEthernet0/0/1]port hybrid tagged vlan 2 to 9 4)与其它网络设备相连,同时实现Access和Trunk的效果。交换机LSW1与另外一台交换机LSW2相连,需要互连的链路通过VLAN 2为LSW2提供接入服务,并转发交换机LSW2上的VLAN 10。可在LSW1上执行如下命令: <Huawei>system-view [Huawei]int gig 0/0/1 [Huawei-GigabitEthernet0/0/1]port link-type hybrid [Huawei-GigabitEthernet0/0/1]port hybrid pvid vlan 2 [Huawei-GigabitEthernet0/0/1]port hybrid untagged vlan 2 [Huawei-GigabitEthernet0/0/1]port hybrid tagged vlan 10 虽然Trunk模式也能实现如上需求,但是Hybrid模式实现更优,它不需要对VLAN 2的数据再封装和解封装Dot1Q标识。 10 VlAN Tag的处理 这是基于端口的VLAN 特有的特性。关于VLAN Tag的处理,经常让人颠三倒四。什么时候发送报文打Tag,什么时候发送报文不打Tag?什么时候接收带Tag帧,什么时候不接收带Tag帧? 下面的这张表一定能够解答你的疑问。如果还没有解决,请继续往下看,莫放弃,莫停留。 表11-02 华为系设备对于VLAN Tag的处理
接口类型 | 对接收不带 Tag 的报文处理 | 对接收带 Tag 的报文处理 | 对发送报文的处理 | Access接口 | 接收该报文,并打上缺 省 VLAN 的 Tag。 | l)当VLAN ID与缺省VLAN ID相同时,接收该报文。 2)当VLAN ID与缺省VLAN ID不同时,丢弃该报文。 | 去掉Tag,发送该报文。 | Trunk接口 | 1)打上缺省的VLAN ID,当缺省VLAN ID在允许通过的VLAN ID列表里时,接收该报文。 2)打上缺省的VLAN ID,当缺省VLAN ID不在允许通过的VLAN ID 列表里时,丢弃该报文。 | 1)当VLAN ID在接口允许通过的VLAN ID列表里时,接收该报文。 2)当VLAN ID不在接口允许通过的VLAN ID列表里时,丢弃该报文。 | 1)当VLAN ID与缺省VLAN ID相同时,且是该接口允许通过的VLAN ID时,去掉Tag,发送该报文。 2)当VLAN ID与缺省VLAN ID不同时,且是该接口允许通过的VLAN ID时,保持原有Tag,发送该报文。 | Hybrid接口 | 同上 | 同上 | 当VLAN ID是该接口允许通过的VLAN ID时,发送该报文。可以通过port hybrid untagged/tagged vlan设置发送时是否携带Tag。 | QinQ接口 | 当接收该报文,并打上缺省VLAN的Tag。 | 接收该报文,再打上一层缺省VLAN的Tag。 | 剥掉外层缺省VLAN的Tag,发送该报文。 |
11 不同接口模式对于VLAN Tag的处理流程 11.1 Access 接口收发数据帧流程 Access接收数据帧流程。如图11-05所示。  图11-05 Access接口接收数据帧流程图 Access发送数据帧流程。如图11-06所示。  图11-06 Access发送接收数据帧流程图 11.2 Trunk 接口 Trunk接收数据帧流程。如图11-07所示。  图11-07 Trunk接口接收数据帧流程图 Trunk发送数据帧流程。如图11-08所示。  图11-08 Trunk发送接收数据帧流程图 11.3 Hybrid 接口 Hybrid接收数据帧流程。如图11-09所示。  图11-09 Hybrid接口接收数据帧流程图 Hybrid发送数据帧流程。如图11-10所示。  图11-10 Hybrid发送接收数据帧流程图 Hybrid接口没有明确的允许通过列表,不管是Untagged和Tagged VLAN都是允许通过的VLAN,除此之外的都是不允许通过VLAN。 12 创建VLAN示例 鉴于基于端口的VLAN之多见,我们下面讨论一下两大门派的具体实现。 12.1 CISCO设备上创建VLAN CISCO创建VLAN 有两种模式,分别是VLAN数据库式和全局配置模式,两者最终效果都一样。 在CISCO交换机上,VLAN 1、1002~1005是自动创建的,分别用到不同协议应用于跑业务的VLAN 是1~1001,1,缺省VLAN,2~1001是手工创建用来跑以太网业务的VLAN。 列表如下: 表11-03 CISCO交换机上的VLAN
Vlan ID | 自动创建 | 用途 | 1 | 是 | 以太网业务 | 2~1001 | 否 | 以太网业务 | 1002~1005 | 是 | 分别用到fddi,token ring等业务 | 图11-11 CISCO交换机上的缺省vlan 12.1.1 VLAN 数据库模式 1)在全局配置模式下,输入 Switch>en Switch#vlan database % Warning: It is recommended to configure VLAN from config mode,as VLAN database mode is being deprecated. Please consult user documentation for configuring VTP/VLAN in config mode. 从返回的信息看, 这已经不再是推荐的配置方式。在这种模式下创建的VLAN时可以同时可对VLAN命名。 Switch(vlan)#vlan 2 name group2 VLAN 2 added: Name: group2 Switch(vlan)# 如果想要把接口添加到VLAN,只能在全局配置模式下添加。 VLAN name 相当于是注释或描述的作用,对业务没有实质的影响,主要是为了方便管理与维护。 12.1.2 全局配置模式 是厂家推荐的配置方式,功能更丰富,操作更灵活。操作如下: Switch#config t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#vlan 2 Switch(config-vlan)# Switch(config-vlan)#name ? WORD The ascii name for the VLAN Switch(config-vlan)#name group2 ? <cr> Switch(config-vlan)#name group2 在CISCO设备上,批量创建多个VLAN可以使用连字符“-”或逗号“,”,真实环境有待验证。 “-”用来创建连续的连续的号码的VLAN,“,”用来创建不连续号码的VLAN。示例如下: Switch#config t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#vlan 2-10,100,110 Switch(config)# 12.2 将端口加入到VLAN 把端口加入到VLAN,必须在接口模式下操作。可以在VLAN下添加端口,也可以在端口下加入到VLAN,我们通常使用第二种方式。 12.2.1 逐个加入 这种方法一次只添加一个端口到一个VLAN。如果要操作的端口数量不多时,可以考虑使用这种方式。 Switch#config t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#int fa 0/4 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 2 Switch(config-if)#exit 12.2.2 批量加入 这种方法用在有较多端口要添加到一个VLAN的场景。可以先一次性进入多个端口,同时操作这些端口的VLAN属性。进入多个端口的方法是使用连字符“-”和逗号“,”。连续的端口号用“-”连接,不连续的端口号用“,”连接。使用这种方法可以将多个端口同时添加到某个VLAN。如果要操作的端口数量比较多时,最好考虑使用这种方式。 Switch(config)#int range fa 0/1,fa0/4 - fa0/10 Switch(config-if-range)#switchport mode access Switch(config-if-range)#switchport access vlan 2 Switch(config-if-range)#end Switch# %SYS-5-CONFIG_I: Configured from console by console Switch#show vlan VLAN Name Status Ports ---- -------------------------------- --------- ------------------------------- 1 default active Fa0/2, Fa0/3, Fa0/11, Fa0/12 Fa0/13, Fa0/14, Fa0/15, Fa0/16 Fa0/17, Fa0/18, Fa0/19, Fa0/20 Fa0/21, Fa0/22, Fa0/23, Fa0/24 2 VLAN0002 active Fa0/1, Fa0/4, Fa0/5, Fa0/6 Fa0/7, Fa0/8, Fa0/9, Fa0/10 1002 fddi-default act/unsup 1003 token-ring-default act/unsup 1004 fddinet-default act/unsup 1005 trnet-default act/unsup VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2 ---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------ 1 enet 100001 1500 - - - - - 0 0 2 enet 100002 1500 - - - - - 0 0 1002 fddi 101002 1500 - - - - - 0 0 1003 tr 101003 1500 - - - - - 0 0 1004 fdnet 101004 1500 - - - ieee - 0 0 1005 trnet 101005 1500 - - - ibm - 0 0 Remote SPAN VLANs ------------------------------------------------------------------------------ Primary Secondary Type Ports ------- --------- ----------------- ------------------------------------------ Switch# 12.3 华为设备上创建VLAN 华为对于VLAN的理解与CISCO不同,ID号从1~4095都可以承转以太网业务,只有一个缺省VLAN,就是VLAN 1。 在华为设备上创建VLAN既可以逐个创建,也可以批量创建,如果需要创建的VLAN比较多,可以选择使用批量创建办法。 12.3.1 逐个创建 这种方法一次只创建一个VLAN,并进入VLAN配置视图。可以在VLAN配置视图下添加端口,但是一般不用,因为华为缺省的端口模式是hybrid,不能直接加入VLAN。 <Huawei>system-view Enter system view, return user view with Ctrl+Z. [Huawei]vlan 2 [Huawei-vlan2]port gig 0/0/4 to 0/0/7 0/0/9 Error: Trunk or Hybrid port(s) can not be added or deleted in this manner. 12.3.2 批量创建 一次创建多个VLAN。VLAN号可以是连续的,也可以是不连续的,连续的VLAN号用关键字“to”隔开,不连续的VLAN号用空格“空格”隔开。相对于逐个创建,批量创建的方式一次创建多个VLAN,但是不进入VLAN配置视图。我个人比较喜欢使用这种方法,就算是在创建单个VLAN时也不例外。 <Huawei>system-view Enter system view, return user view with Ctrl+Z. [Huawei]vlan [Huawei]vlan batch 3 to 9 11 Info: This operation may take a few seconds. Please wait for a moment...done. [Huawei]dis vlan The total number of vlans is : 10 -------------------------------------------------------------------------------- U: Up; D: Down; TG: Tagged; UT: Untagged; MP: Vlan-mapping; ST: Vlan-stacking; #: ProtocolTransparent-vlan; *: Management-vlan; -------------------------------------------------------------------------------- VID Type Ports -------------------------------------------------------------------------------- 1 common UT:GE0/0/1(D) GE0/0/3(D) GE0/0/4(D) GE0/0/5(D) GE0/0/6(D) GE0/0/7(D) GE0/0/8(D) GE0/0/9(D) GE0/0/10(D) GE0/0/11(D) GE0/0/12(D) GE0/0/13(D) GE0/0/14(D) GE0/0/15(D) GE0/0/16(D) GE0/0/17(D) GE0/0/18(D) GE0/0/19(D) GE0/0/20(D) GE0/0/21(D) GE0/0/22(D) GE0/0/23(D) GE0/0/24(D) 2 common UT:GE0/0/2(D) GE0/0/3(D) TG:GE0/0/1(D) 3 common 4 common 5 common 6 common 7 common 8 common 9 common 11 common VID Status Property MAC-LRN Statistics Description -------------------------------------------------------------------------------- 1 enable default enable disable VLAN 0001 2 enable default enable disable VLAN 0002 3 enable default enable disable VLAN 0003 4 enable default enable disable VLAN 0004 5 enable default enable disable VLAN 0005 6 enable default enable disable VLAN 0006 7 enable default enable disable VLAN 0007 8 enable default enable disable VLAN 0008 9 enable default enable disable VLAN 0009 11 enable default enable disable VLAN 0011 [Huawei] 12.4 将端口加及到VLAN 我们一般选择在端口下加入到VLAN,如果端口数量比较多时,可以同时进入多个端口进行处理。 12.4.1 逐个加入 创建VLAN 2,并将端口gig 0/0/1加入到其中。操作过程如下: <Huawei> <Huawei>sys Enter system view, return user view with Ctrl+Z. [Huawei]vlan batch 2 Info: This operation may take a few seconds. Please wait for a moment...done. [Huawei]int gig 0/0/1 [Huawei-GigabitEthernet0/0/1]port link-type access [Huawei-GigabitEthernet0/0/1]port default vlan 2 [Huawei-GigabitEthernet0/0/1] 还有一种批量操作单个端口加入到某个VLAN中的方式,这种配置方式在生产中非常有用,不仅仅用来配置VLAN,可以根据需要推广应用到其它场景。具体操作如下: 1)把当前配置打出来; 2)把相关(这个相关很有内涵)的文本复制到文本编辑器中; 3)修改这些端口下的配置内容; 4)粘贴到仿真终端命令和参数输入区。 system # interface GigabitEthernet0/0/1 port hybrid tagged vlan 2 # interface GigabitEthernet0/0/2 port hybrid pvid vlan port hybrid untagged vlan 2 # interface GigabitEthernet0/0/3 port link-type access port default vlan 2 # interface GigabitEthernet0/0/4 port link-type access port default vlan 2 # interface GigabitEthernet0/0/5 port link-type access port default vlan 3 # interface GigabitEthernet0/0/6 port link-type access port default vlan 3 # interface GigabitEthernet0/0/7 port link-type access port default vlan 4 # interface GigabitEthernet0/0/8 port link-type access port default vlan 4 # interface GigabitEthernet0/0/9 port link-type access port default vlan 10 # interface GigabitEthernet0/0/10 port link-type access port default vlan 10 # return save y 记得在最后加多两个换行符,能够在很大程度上规避错误。 “复制-修改-粘贴”,是一个神奇的配置实现方法,掌握了它可以大幅提升工作效率。 12.4.2 批量加入 一次进入多个端口,连续的端口号用“to”连接,不连续的端口号用“空格”隔开,但是要注意在端口号前面加上端口类型。具体实现如下: [Huawei]int range gig 1/0/38 to gig 1/0/44 gig 1/0/47 [Huawei-port-group]port link-type hybrid [Huawei-GigabitEthernet1/0/38]port link-type hybrid Info: This operation may take a few seconds. Please wait for a moment...done. [Huawei-GigabitEthernet1/0/39]port link-type hybrid Info: This operation may take a few seconds. Please wait for a moment...done. [Huawei-GigabitEthernet1/0/40]port link-type hybrid Info: This operation may take a few seconds. Please wait for a moment...done. [Huawei-GigabitEthernet1/0/41]port link-type hybrid Info: This operation may take a few seconds. Please wait for a moment...done. [Huawei-GigabitEthernet1/0/42]port link-type hybrid Info: This operation may take a few seconds. Please wait for a moment...done. [Huawei-GigabitEthernet1/0/43]port link-type hybrid Info: This operation may take a few seconds. Please wait for a moment...done. [Huawei-GigabitEthernet1/0/44]port link-type hybrid Info: This operation may take a few seconds. Please wait for a moment...done. [Huawei-GigabitEthernet1/0/47]port link-type hybrid Info: This operation may take a few seconds. Please wait for a moment...done. [Huawei-port-group]port hybrid untagged vlan 2 [Huawei-GigabitEthernet1/0/38]port hybrid untagged vlan 2 Info: This operation may take a few seconds. Please wait a moment...done. [Huawei-GigabitEthernet1/0/39]port hybrid untagged vlan 2 Info: This operation may take a few seconds. Please wait a moment...done. [Huawei-GigabitEthernet1/0/40]port hybrid untagged vlan 2 Info: This operation may take a few seconds. Please wait a moment...done. [Huawei-GigabitEthernet1/0/41]port hybrid untagged vlan 2 Info: This operation may take a few seconds. Please wait a moment...done. [Huawei-GigabitEthernet1/0/42]port hybrid untagged vlan 2 Info: This operation may take a few seconds. Please wait a moment...done. [Huawei-GigabitEthernet1/0/43]port hybrid untagged vlan 2 Info: This operation may take a few seconds. Please wait a moment...done. [Huawei-GigabitEthernet1/0/44]port hybrid untagged vlan 2 Info: This operation may take a few seconds. Please wait a moment...done. [Huawei-GigabitEthernet1/0/47]port hybrid untagged vlan 2 Info: This operation may take a few seconds. Please wait a moment...done. [Huawei-port-group] 13 VLAN应用 13.1 Hybird接口模式同时实现Access与Trunk的功能 需要两台三层交换机使用三层接口互联,互联VLAN 2互联,同时又需要VLAN 10 和VLAN 11放行通过,以便与上层三层接口通信。 图11-12 Hybrid端口可同时实现Access和Trunk两种功能 如上图11-12,LSW2是一台二层交换机,为用户接入网络服务,LSW1是具有三层功能的交换机,可以为终端用户提供网关服务。LSW2需要配置一个主机IP用来做管理用。这就要求两台交换机之间相连的链路既是干线链路,也是接入链路。两台交换机上业务需求相关的配置如下: LSW1业务相关配置如下: # sysname lsw1 # vlan batch 2 10 to 11 # # interface Vlanif2 ip address 10.0.1.1 255.255.255.252 # interface Vlanif10 ip address 10.0.10.1 255.255.255.0 # interface Vlanif11 ip address 10.0.11.1 255.255.255.0 # # interface GigabitEthernet0/0/1 port hybrid pvid vlan 2 port hybrid tagged vlan 10 to 11 port hybrid untagged vlan 2 # LSW2业务相关配置如下: # sysname lsw2 # vlan batch 2 10 to 11 # # interface Vlanif2 ip address 10.0.1.2 255.255.255.252 # # interface GigabitEthernet0/0/1 port hybrid pvid vlan 2 port hybrid tagged vlan 10 to 11 port hybrid untagged vlan 2 # interface GigabitEthernet0/0/2 port hybrid pvid vlan 10 port hybrid untagged vlan 10 # interface GigabitEthernet0/0/3 port hybrid pvid vlan 11 port hybrid untagged vlan 11 # # ip route-static 0.0.0.0 0.0.0.0 10.0.1.1 # 13.2 在不等价链路上提供等价负载均衡 OSPF只能在等价链路上提供负载均衡,对于不等价链路只能主备使用。有这样一个场景,LSW1和LSW2是相对高性能交换机,LSW3是相对低性能交换机,LSW1与LSW2,LSW2与LSW3之间的线路相对比较可靠,是专线,LSW1与LSW3是走运营商的PTN线路。三台交换机都是三层交换机,正常情况下我们会让每台交换机之间使用三层接口互联,但是在这个场景中就不能实现负载均衡了,因为经过的跳数都不一样,除非强制修改cost值,本篇不讨论,请查阅本书第22章《OSPF及其在生产中的应用》一章。 图11-13 在不等价链路上提供等价负载均衡实验拓扑 实现的办法有三个: 1)将各个设备相连的接口设置成Trunk接口,并允许相关VLAN通过,启用相关VLAN对应的SVI; 2)将各个设备相连的接口设置成Hybrid接口,并对接入和通过的VLAN设置为Tagged,启用相关VLAN对应的SVI; 3)设备两两相连的接口设置成Hybrid接口,接入VLAN不打Tag,需要转发的VLAN打Tag。 以上三种方法都能够实现不等价负载均衡的效果,但是实现原理不同。第一种和第二种实现原理一样,都是所有VLAN打上Tag进行标记。第三种方法只对需要转发的VLAN才条Tag,可以减少没有必要的封装和解封装VLAN Tag并且重新计算帧检验序列的操作,同时还减少了需要转发发的数据量,减轻了系统消耗和链路带宽占用。 我们的实现采用第三种方法。LSW1与LSW2之间,只有VLAN 4需要封装VLAN Tag,LSW2与LSW3之间不需要封装VLAN Tag。业务相关配置如下: LSW1业务相关配置: # sysname LSW1 # vlan batch 2 to 4 # # interface Vlanif2 ip address 10.0.1.1 255.255.255.252 # interface Vlanif3 ip address 10.0.1.5 255.255.255.252 # interface Vlanif4 ip address 10.0.1.9 255.255.255.252 # # interface GigabitEthernet0/0/1 port hybrid pvid vlan 2 port hybrid tagged vlan 4 port hybrid untagged vlan 2 # interface GigabitEthernet0/0/2 port hybrid pvid vlan 3 port hybrid untagged vlan 3 # # return LSW2业务相关配置: # sysname LSW2 # vlan batch 2 4 # # interface Vlanif2 ip address 10.0.1.2 255.255.255.252 # interface MEth0/0/1 # interface GigabitEthernet0/0/1 port hybrid pvid vlan 2 port hybrid tagged vlan 4 port hybrid untagged vlan 2 # interface GigabitEthernet0/0/2 port hybrid pvid vlan 4 port hybrid untagged vlan 4 # # return LSW3业务相关配置: # sysname LSW3 # vlan batch 3 to 4 # # interface Vlanif3 ip address 10.0.1.6 255.255.255.252 # interface Vlanif4 ip address 10.0.1.10 255.255.255.252 # # interface GigabitEthernet0/0/1 port hybrid pvid vlan 4 port hybrid untagged vlan 4 # interface GigabitEthernet0/0/2 port hybrid pvid vlan 3 port hybrid untagged vlan 3 # # return 14 Aggregation VLAN Aggregate VLAN翻译作聚合VLAN,是华为设备的特性。将VLAN定义为Supper VLAN和Sub VLAN,Sub VLAN归属于某个Supper VLAN,一个Supper VLAN可以有多个Sub VLAN,但是Supper VLAN不能有成员端口,成员端口只能属于Sub VLAN,不过Supper VLAN可以有SVI,但是Sub VLAN不能有。所有的Supper VLAN下的Sub VLAN共用同一个SVI、同一个子网段和网关,但是各个Sub VLAN分属不同的广播域,Sub VLAN之间的设备不能够直接相互通信。其目的是在分隔广播域和隔离广播的同时,减少因划分子网造成的IP地址损失。 14.1 Aggregate VLAN 应用实例 图11-14 在同一个子网内实现隔离 如图11-14 所示,某公司外联区的LSW1提供外部合作伙伴的接入服务。VLAN 10和VLAN 20分别代表两个事业部(群),PC1、PC2与PC3、PC4分别表示每个事业部的合作伙伴。同一个事业部的合作伙伴使用同一个子网和网关,但是每一个合作伙伴之间不可以直接通信。 根据需求,可以为每一个事业部划分一个子网网段,并启用Supper VLAN的SVI,为事业部的合件伙伴提供接入网关。每一个接入的合作伙伴分属一个Sub VLAN,同一个Supper VLAN下,Sub VLAN之间的用户不能够直接相互通信。 交换机LSW1上业务相关配置如下: # sysname LSW1 # vlan batch 2 to 5 10 20 # # vlan 10 aggregate-vlan access-vlan 2 to 3 vlan 20 aggregate-vlan access-vlan 4 to 5 # # interface Vlanif10 description GroupA ip address 10.0.1.1 255.255.255.0 # interface Vlanif20 description GroupB ip address 10.0.2.1 255.255.255.0 # # interface GigabitEthernet0/0/1 port hybrid pvid vlan 2 port hybrid untagged vlan 2 # interface GigabitEthernet0/0/2 port hybrid pvid vlan 3 port hybrid untagged vlan 3 # interface GigabitEthernet0/0/3 port hybrid pvid vlan 4 port hybrid untagged vlan 4 # interface GigabitEthernet0/0/4 port hybrid pvid vlan 5 port hybrid untagged vlan 5 # 在eNSP(版本号1.3.00.100,V100R003C00SPC100)模拟器上,上面的配置可能不能正常运行,但是上面的配置并不影响在实际的设备上运行。模拟器上的配置需要将Sub VLAN的接口端口模式设置成Access模式,Trunk模式,或Hybrid Tagged模式,Hybrid Untagged + PVID的模式不能正常工作。 15 MUX VLAN 即Multiplex VLAN,与Aggregate Vlan有诸多相似之处,甚至可以理解为是它的扩展。MUX VLAN提供一个Prinipcal VLAN(主VLAN)与Aggregate VLAN里的Supper VLAN功能基本一样,Subordinate VLAN(从VLAN)与Aggregate VLAN里的Sub VLAN功能基本相似,但是MUX VLAN的从VLAN又分为Group VLAN(互通型 VLAN)和Separate VLAN(隔离型 VLAN)。另外,MUX VLAN的上级VLAN不支持在本地创建网络层接口,如果只使用互通型从VLAN,不创建本地网络层接口,其作用与Aggregate VLAN基本一样,但是主VLAN不支持SVI。只有Access接口才支持MUX VLAN配置。 表11-04 Aggregate VLAN与MUX VLAN对比表
| Aggregate VLAN | MUX VLAN | 上级VLAN | Supper VLAN | Principal VLAN | 下级VLAN | Sub VLAN | Subordinate VLAN | 主VLAN支持成员接口 | 否 | 是 | 下级VLAN内设备隔离 | 是 | Separate VLAN隔离 Group VLAN互通 | 上级VLAN支持SVI | 是 | 否 | 接口模式 | Access,Trunk,Hybrid | Access | 15.1 MUX VLAN应用实例 图11-15 在同一个子网内的隔离与互通 如图11-15所示,某公司外联区的LSW1提供外部合作伙伴的接入服务。VLAN 10和VLAN 20分别代表企业内部用户和企业合作伙伴,PC1、PC2与PC3、PC4分别表示每一个组织的内部用户。要求所有用户可以使用同一个子网,但是企业内部用户可以互相通信并与企业资源服务器通信,企业外部用户不能够相互通信,但是可以获取企业服务器上的资源,企业内部用户与外部用户不能够相互通信。 根据需求,可以在接入交换机上创建MUX VLAN,主VLAN与上级设备互连,将企业内部用户分配在互通型从VLAN,将企业外部用户分配在隔离型从VLAN。为所有用户划分一个子网网段,并在上一级网络设备上启用MUX VLAN的网络层接口,为所有上网用户提供网关服务。 交换机LSW1上业务相关配置如下: # sysname LSW1 # vlan batch 10 20 # # interface Vlanif10 ip address 10.0.1.1 255.255.255.0 # interface Vlanif20 ip address 10.0.0.1 255.255.255.0 # # interface GigabitEthernet0/0/1 port hybrid pvid vlan 10 port hybrid untagged vlan 10 # interface GigabitEthernet0/0/2 port hybrid pvid vlan 20 port hybrid untagged vlan 20 # # 交换机LSW2上MUX相关配置如下: <lsw2>dis mux-vlan Principal Subordinate Type Interface ----------------------------------------------------------------------------- 10 - principal GigabitEthernet0/0/1 10 3 separate GigabitEthernet0/0/4 GigabitEthernet0/0/5 10 2 group GigabitEthernet0/0/2 GigabitEthernet0/0/3 ----------------------------------------------------------------------------- <lsw2> 交换机LSW2上业务相关配置如下: # sysname LSW2 # vlan batch 2 to 3 10 # # vlan 10 mux-vlan subordinate separate 3 subordinate group 2 # # interface GigabitEthernet0/0/1 port link-type access port default vlan 10 port mux-vlan enable # interface GigabitEthernet0/0/2 port link-type access port default vlan 2 port mux-vlan enable # interface GigabitEthernet0/0/3 port link-type access port default vlan 2 port mux-vlan enable # interface GigabitEthernet0/0/4 port link-type access port default vlan 3 port mux-vlan enable # interface GigabitEthernet0/0/5 port link-type access port default vlan 3 port mux-vlan enable # # 16 私有VLAN CISCO设备的特性,与华为的MUX VLAN的特性比较相似,但是理解起来更加困难。虽然是基于端口的VLAN,但是端口与VLAN并没有一一对应关系,一个VLAN可以有多个端口,一个端口也可以映射到多个VLAN。 私有VLAN中的端口类型有三种,分别是孤立端口,杂合端口和团体端口。 孤立端口,完全与私有VLAN中的其它端口隔离,仅能与杂合端口通信。 杂合端口,可以与所有类型的VLAN中的端口通信。杂合端口是主VLAN的一部分,每一个杂合端口都可以对应一个以上的辅助VLAN。 团体端口,端口之间可以相互通信,也可以和杂合端口通信,但是不能与孤立端口通信。 有两类私有VLAN,分别是主VLAN和辅助VLAN。主VLAN下可以有多个辅助VLAN,辅助VLAN必须与主VLAN绑定。同一主VLAN下的所有辅助VLAN都可以使用同一个子网。 有两类辅助VLAN,分别是团体VLAN和孤立VLAN。 团体VLAN内的端口可以相互通信,也可以与主VLAN内的杂合端口通信。 孤立VLAN内的端口不可以相互通信,只可以与杂合端口通信。 以上内容参考CCNP SWITCH 642-813 学习指南。 因为缺少实验环境,私有VLAN的实验暂缺。 17 VLAN间通信 VLAN的目的就是为了分隔广播域。但是不同的广播域之间还是有通信的需求的,而不同广播域之间的通信,需要借助网络层设备。不同子网,不同VLAN的设备之间通信,可以通过多路由器端口、单臂路由、三层交换机SVI的方式进行通信。在同一子网通过不同VLAN分隔广播域,就意味着隔离了VLAN间广播,这样一来就把同一网段内基于广播的通信(ARP Request和DHCP Discover)给隔离。如若实现同一子网 ,不同VLAN间的设备通信,可以借助ARP Proxy技术。接下来我们分别进行讨论。 17.1 多路由器端口 可能是同一台路由器,也可能是不同的路由器。如果是不同的路由器,须保证这些路由器之间互联互通,然后每一个路由器接口连接一个VLAN。 17.1.1 华为实现 如图11-16所示,路由器AR1的两个端口分别连接交换机LSW1的两个VLAN,并为两个VLAN内的设备提供网关服务。 图11-16 VLAN间通信之多路由器端口,华为实现 路由器AR1上业务相关配置如下: # sysname AR1 # # interface GigabitEthernet0/0/0 ip address 10.0.1.1 255.255.255.0 # interface GigabitEthernet0/0/1 ip address 10.0.2.1 255.255.255.0 # # 交换机LSW1上业务相关配置如下: # sysname LSW1 # vlan batch 2 to 3 # # interface GigabitEthernet0/0/1 port hybrid pvid vlan 2 port hybrid untagged vlan 2 # interface GigabitEthernet0/0/2 port hybrid pvid vlan 3 port hybrid untagged vlan 3 # interface GigabitEthernet0/0/3 port hybrid pvid vlan 2 port hybrid untagged vlan 2 # interface GigabitEthernet0/0/4 port hybrid pvid vlan 3 port hybrid untagged vlan 3 # # 17.1.2 CISCO实现 如图11-17所示,路由器Router0的两个端口分别连接交换机Switch0的两个VLAN,并为两个VLAN内的设备提供网关服务。 图11-17 VLAN间通信之多路由器端口,CISCO实现 路由器Router0上业务相关配置如下: ! ! hostname Router0 ! ! interface FastEthernet0/0 ip address 10.0.1.1 255.255.255.0 duplex auto speed auto ! interface FastEthernet0/1 ip address 10.0.2.1 255.255.255.0 duplex auto speed auto ! ! 交换机Switch0上业务相关配置如下: ! ! hostname Switch0 ! ! interface FastEthernet0/1 switchport access vlan 2 ! interface FastEthernet0/2 switchport access vlan 3 ! interface FastEthernet0/3 switchport access vlan 2 ! interface FastEthernet0/4 switchport access vlan 3 ! ! 17.2 单臂路由 通过启用路由器子接口和终结干线封装实现。 17.2.1 华为实现 如图11-18所示,交换机LSW1与路由器AR1相连的接口模式是Trunk模式或Hybrid Tagged,在路由器AR1上启用子接口并终结Dot1Q封装。 图11-18 VLAN间通信之单臂路由,华为实现 路由器AR1上业务相关配置如下: # sysname AR1 # # interface GigabitEthernet0/0/0 # interface GigabitEthernet0/0/0.1 dot1q termination vid 2 ip address 10.0.1.1 255.255.255.0 arp broadcast enable # interface GigabitEthernet0/0/0.2 dot1q termination vid 3 ip address 10.0.2.1 255.255.255.0 arp broadcast enable # # 交换机LSW1上业务相关配置如下: # sysname LSW1 # vlan batch 2 to 3 # # interface GigabitEthernet0/0/1 port hybrid tagged vlan 2 to 3 # interface GigabitEthernet0/0/2 port hybrid pvid vlan 2 port hybrid untagged vlan 2 # interface GigabitEthernet0/0/3 port hybrid pvid vlan 3 port hybrid untagged vlan 3 # # 17.2.2 CISCO实现 如图11-19所示,交换机Switch0与路由器Router0相连的接口模式是Trunk模式,在路由器Router0上启用子接口并配置封装类型为Dot1Q封装。 图11-19 VLAN间通信之多单臂路由,CISCO实现 路由器Router0上业务相关配置如下: ! ! hostname Router0 ! ! interface FastEthernet0/0 no ip address duplex auto speed auto ! interface FastEthernet0/0.1 encapsulation dot1Q 2 ip address 10.0.1.1 255.255.255.0 ! interface FastEthernet0/0.2 encapsulation dot1Q 3 ip address 10.0.2.1 255.255.255.0 ! ! 交换机Switch0上业务相关配置如下: ! ! hostname Switch0 ! ! interface FastEthernet0/1 switchport trunk allowed vlan 2-3 switchport mode trunk ! interface FastEthernet0/2 switchport access vlan 2 ! interface FastEthernet0/3 switchport access vlan 3 ! ! 17.3 三层交换机SVI 本质上与第一种场景一样,相当于是同一台路由器的不同接口连接了不同的VLAN。这一种方式在生产中比较常见。 17.3.1 华为实现 如图11-20所示,交换机LSW1连接两个VLAN,并在交换机上启用两个VLAN的SVI,实现两个VLAN的互通。 图11-20 VLAN间通信之三层交换机SVI,华为实现 交换机LSW1上业务相关配置如下: # sysname LSW1 # vlan batch 2 to 3 # # interface Vlanif2 ip address 10.0.1.1 255.255.255.0 # interface Vlanif3 ip address 10.0.2.1 255.255.255.0 # # interface GigabitEthernet0/0/1 port hybrid pvid vlan 2 port hybrid untagged vlan 2 # interface GigabitEthernet0/0/2 port hybrid pvid vlan 3 port hybrid untagged vlan 3 # 17.3.2 CISCO实现 如图11-21所示,交换机Switch0连接两个VLAN,并在交换机上启用两个VLAN的SVI,实现两个VLAN的互通。 图11-21 VLAN间通信之三层交换机SVI,CISCO实现 交换机Switch0上业务相关配置如下: ! ! hostname Switch0 ! ! ip routing ! ! interface FastEthernet0/1 switchport access vlan 2 ! interface FastEthernet0/2 switchport access vlan 3 ! ! interface Vlan2 ip address 10.0.1.1 255.255.255.0 ! interface Vlan3 ip address 10.0.2.1 255.255.255.0 ! ! 有这样一个问题在某问答网站被问到过:将三层交换机上的接口直接设置为网络层接口和使用SVI有什么区别? 首先说两者并没有本质区别。 直接三层接口,设备收到数据后,拆开二层封装的报头,根据数据类型和服务标识,送往三层处理。比如二层是以太,会根据以太报头中的Ethernet Type字段,送往上层去处理。0x0800送给IPv4,0x86dd送给IPv6,0x0806送给ARP,0x8100送给Dot1Q。 SVI接口,收到数据帧会检查目的MAC需要不需要自己处理,目的MAC是自己的和广播MAC地址都需要自己处理,自己处理的过程与直接三层口是一样的;如果都不是,说明是同广播域内的其它设备,进行二层转发。这与路由器或终端设备接在交换机上是一样的。 在一个物理接口,只归属一个VLAN,一个SVI,本质上与直接三层口并没有什么区别。 另外,CISCO的三层交换机因为对CEF特性的支持,与上面的过程稍有不同,还需要有Adjacency Tables的参与,而Adjacency Tables的构建需要借助于ARP。 17.4 ARP Proxy 通过启用VLAN间代理,实现ARP的代答操作。 |
|