VLAN间通信配置与管理
划分VLAN的目的是为了隔离同一网段中各主机间的直接二层通信,以缩小广播域。但在大多数情况下,不同VLAN中的主机又需要相互通信。为达到既二层隔离,又互相通信,华为交换机提供3种解决方案:配置三层VLANIF接口、三层以太网子接口、VLAN Switch三种实现VLAN间通信。
一、两种VLAN间通信方式
VLAN间的三层通信存在两种不同的情形:一是相互通信的不同VLAN同处于一个交换机上,二是相互通信的不同VLAN处于不同的交换机上。
1、同一台交换机上的VLAN间通信
如上图6-18,VLAN2~4在同一个三层交换机(也可以是路由器上)。此时要实现3个VLAN间的三层通信只需在该三层交换机为这3个VLAN各自配置VLANIF接口IP地址(要求在不同IP子网中)即可,因为在华为交换机中IP路由功能是一直启用的,加上这些VLAN是直接连接在同一台三层交换机上,相当于直连路由,所以无需其他额外配置就可以实现同一台交换机上不同VLAN间的三层互通。
2、不同交换机上的VLAN间通信
如图6-19,VLAN2~4不仅在同一台三层交换机(也可以是路由器)上有,而且在不同的三层交换机上也有,这就涉及跨三层设备的VLAN间通信问题。如果相互通信的不同VLAN位于不同的三层交换机上,不仅要为各VLAN配置VLANIF接口IP地址(不同交换机中的相同VLAN各自可以配置一个同网段的VLANIF接口IP地址),还要在三层设备上配置到达各个VLANIF接口所在网段的可达路由(可以是静态路由,也可以是各种动态路由)。
二、VLAN间通信方案及实现原理
1、三层VLANIF接口方案
这是一种通过计算机网络体系结构中第三层(网络层)来实现VLAN间通信的解决方案。每个VLAN都可配置一个三层VLANIF逻辑接口,而这些VLANIF接口作为对应VLAN内部主机的缺省网关,通过三层交换机内部的IP路由功能可以实现同一交换机上不同VLAN的三层互通,不同交换机上不同VLAN间的三层互通需要配置各VLANIF接口所在网段间的路由。
如上图,Device交换机上划分了两个VLAN:VLAN2和VLAN3,可通过如下配置实现VLAN间互通:
(1)在Device上创建两个VLANIF接口并配置VLANIF接口的IP地址,但这两个VLANIF接口对应的IP地址不能再同一网段。
(2)将各VLAN中的用户设备缺省网关设置为所属VLAN对应VLANIF接口的IP地址。
以位于VLAN2中的主机A向位于VLAN3中的主机C发起通信为例,通过VLANIF接口进行VLAN间三层互通的基本原理:
(1)在主机A向主机C发送的数据包到了网络层后,主机A先将包中的目的IP地址——主机C的IP地址和自己所在网段进行比较。
(2)发现主机C和自己不在同一个子网,于是主机A以广播方式在本子网内发送一个ARP请求帧,其目的是查寻自己的网关——VLANIF2接口的MAC地址。
(3)VLANIF2接口经过与ARP请求帧中的目的IP地址进行比较,发现自己的IP地址与其一致,接收该ARP请求帧,然后以单播方式向主机A返回一个ARP应答帧,帧中的源MAC地址即为VLANIF2的MAC地址。
(4)在主机A接收由VLANIF2接口返回的ARP应答帧后从中学习到了VLANIF2接口的MAC地址。
(5)主机A利用所获得的网关VLANIF2接口的MAC地址,重新进行数据帧封装,把帧中的目的MAC改为VLANIF2接口MAC地址,目的IP仍为主机C的IP地址,然后发送给网关——VLANIF2接口。
(6)Device交换机在收到该数据帧后进行三层转发,发现帧中的目的IP地址——主机C的IP地址为直连路由,数据帧直接通过该主机的网关——VLANIF3接口进行转发。
(7)VLANIF3接口作为VLAN3内主机的网关,在收到数据帧后如果已有主机C的IP地址与MAC地址映射表,则直接发送给主机C,否则VLANIF3接口先在VLAN3内以广播方式发送一个ARP请求帧,查寻主机C的MAC地址。
(8)主机C在收到ARP广播帧后向VLANIF3接口返回一个ARP应答帧。
(9)VLANIF3接口在收到主机C发来的ARP应答帧后再次进行数据帧封装,把帧中的目的MAC地址改为主机C的真实MAC地址(其他不变),然后把主机A发来的数据帧发送给主机C。这样主机A之后要发给C的数据帧都先发送给网关,由网关——VLANIF3接口做三层转发。
主机C与主机A之间的通信原理一样,最终实现VLAN间的三层互通。
2、三层以太网子接口方案
三层以太网子接口是一种同时具备三层以太网物理接口和二层以太网物理接口双重特性的逻辑接口。即它具有三层以太网物理接口的三层路由功能,同时又具有二层以太网物理接口封装VLAN标签的特性。通过三层以太网子接口就可以实现不同VLAN间的三层互通,也就是通常所说的“单臂路由”,在三层交换机和路由器中均可实现。
该方案仅5700HI和5710Ei子系列、S7700、S9300和S9700系列支持。
如上图,DeviceA为支持配置子接口的三层设备,DeviceB为二层交换设备。LAN通过DeviceB的二层以太网接口与DeviceA的三层以太网接口相连。连接在DeviceB上的用户主机被划分到两个VLAN:VLAN2和VLAN3.可通过如下配置实现VLAN间互通:
(1)在DeviceA与DeviceB相连的三层以太网接口上创建两个子接口Port1.1和Port1.2,并配置802.1Q封装与VLAN2和VLAN3分别对应。
(2)为以上这两个子接口配置与各自所属VLAN对应网段的IP地址。
(3)将DeviceB与DeviceA相连的二层以太网接口类型配置为Trunk或Hybrid类型,并同时允许VLAN2和VLAN3的通过。
(4)将VLAN2和VLAN3中的用户设备的缺省网关设置为所属VLAN对应三层以太网子接口的IP地址。
现在同样以主机A向主机C发起通信为例介绍三层以太网子接口的VLAN间通信方案的基本原理(其实基本过程与VLANIF接口VLAN间通信方案一样,只不过这里的网关是各VLAN所对应的子接口)。具体流程:
(1)在主机A向主机C发送的数据包到了网络层后,主机A先将包中的目的IP地址——主机C的IP地址和自己所在网段进行比较。
(2)发现主机C和自己不在同一个子网,于是主机A以广播方式在本子网内发送一个ARP请求帧,其目的是查寻自己的网关——VLAN2对应的Port1.1子接口的MAC地址。
(3)Port1.1子接口经过与ARP请求帧中的目的IP地址进行比较,发现自己的IP地址与其一致,接收该ARP请求帧,然后以单播方式向主机A返回一个ARP应答帧,帧中的源MAC地址即为Port1.1子接口的MAC地址。
(4)在主机A接收由Port1.1子接口返回的ARP应答帧后从中学习到了Port1.1子接口的MAC地址。
(5)主机A利用所获得的网关Port1.1子接口的MAC地址,重新进行数据帧封装,把帧中的目的MAC改为Port1.1子接口MAC地址,目的IP仍为主机C的IP地址,然后发送给网关——Port1.1子接口。
(6)DeviceA交换机在收到该数据帧后进行三层转发,发现帧中的目的IP地址——主机C的IP地址为直连路由,数据帧直接通过该主机的网关——VLAN3对应的Por1.2子接口进行转发。
(7)Port1.2子接口作为VLAN3内主机的网关,在收到数据帧后如果已有主机C的IP地址与MAC地址映射表,则直接发送给主机C,否则Port1.2子接口先在VLAN3内以广播方式发送一个ARP请求帧,查寻主机C的MAC地址。
(8)主机C在收到ARP广播帧后向Port1.2子接口返回一个ARP应答帧。
(9)Port1.2子接口在收到主机C发来的ARP应答帧后再次进行数据帧封装,把帧中的目的MAC地址改为主机C的真实MAC地址(其他不变),然后把主机A发来的数据帧发送给主机C。这样主机A之后要发给C的数据帧都先发送给网关,由网关——Port1.2子接口做三层转发。
3、VLAN Switch方案
通过VLAN Switch(VLAN交换)也可实现不同VLAN间的通信。VLAN交换是一种按照VLAN标签进行数据转发的技术,需要预先在网络中的各交换机上建立一条静态转发路径。当交换机接收到符合转发条件的VLAN数据后,根据VLAN交换表将报文直接转发到相应的出接口,无需查看MAC地址表,提高转发效率及安全性,有效避免MAC地址攻击及广播风暴。
仅S7700以上高端S系列交换机支持。
VLAN交换功能如下:
(1)添加外层VLAN标签功能,即VLANSwitch stack-vlan功能。
(2)在不同接口之间转换外层VLAN标签,即VLANSwitch Switch-vlan功能。
VLAN Switch stack-vlan功能与VLANStacking(VLAN堆叠)功能类似,也是一种针对用户不同VLAN封装外层VLAN标签的二层技术。
VLAN Switch switch-vlan功能与VLAN Mapping(VLAN映射)功能类似。
三、配置通过VLANIF接口实现VLAN间通信
VLANIF是逻辑三层口,配置IP地址后可实现网络层互通。通过VLANIF接口实现VLAN间通信需要为每个VLAN创建对应的逻辑接口VLANIF接口,并为每个VLANIF接口配置IP地址实现三层互通。为了成功实现VLAN间的三层互通,VLAN内用户主机的缺省网关必须对应VLANIF接口的IP地址。
示例:配置VLANIF2接口的主IP地址为10.1.1.2,从IP地址为11.1.1.3,子网掩码都为255.0.0.0。
<Huawei>system-view
[Huawei]interface vlanif 2
[Huawei-Vlanif2]ip address 10.1.1.2 8
[Huawei-Vlanif2]ip address 11.1.1.3 255.0.0.0sub
四、通过VLANIF接口实现VLAN间通信的配置示例
如上拓扑,现要实现不同VLAN中的用户相互通信。如User1和User2拥有相同的业务,但是属于不同的VLAN且位于不同的网段。
配置思路:
(1)创建VLAN,确定用户所属的VLAN。
(2)配置端口加入VLAN,允许用户所属的VLAN通过当前端口。
(3)创建VLANIF接口并配置IP地址,利用三层交换机的IP路由功能即可实现三层互通。
为了实现VLAN间互通,VLAN内主机的缺省网关必须配置为对应的VLANIF接口的IP地址。
具体步骤:
(1)批量创建VLAN10和VLAN20。
<Huawei>system-view
[Huawei]vlan batch 10 20
(2)把User1和User2所连接的交换机端口分别加入对应的VLAN中(端口类型均为Access类型)。
[Huawei]interface gigabitethernet 1/0/1
[Huawei-GigabitEthernet1/0/1]port link-typeaccess
[Huawei-GigabitEthernet1/0/1]port defaultvlan 10
[Huawei-GigabitEthernet1/0/1]quit
[Huawei]interface gigabitethernet 1/0/2
[Huawei-GigabitEthernet1/0/2]port link-typeaccess
[Huawei-GigabitEthernet1/0/2]port defaultvlan 20
[Huawei-GigabitEthernet1/0/2]quit
(3)为VLAN10和VLAN20分别配置VLANIF接口IP地址。
[Huawei]interface vlanif 10
[Huawei-Vlanif10]ip address 10.10.10.2 24
[Huawei-Vlanif10]quit
[Huawei]interface vlanif 20
[Huawei-Vlanif20]ip address 20.20.20.2 24
[Huawei-Vlanif20]quit
(4)在VLAN10中的User1主机上配置IP地址为10.10.10.3/24,缺省网关为VLANIF10接口的IP地址10.10.10.2/24;在VLAN20中的User2主机上配置IP地址为20.20.20.3/24,缺省网关为VLANIF20接口的IP地址20.20.20.2/24。
配置完成后,VLAN10内的User1与VLAN20内的User2能够互访。
模拟器实验1:
此时PC之间可以互相PING通。
模拟器实验2:
二层交换机连接三层交换机,相当于单臂路由。
五、通过VLANIF接口实现跨越三层网络通信的配置示例
如上图,互联的三层交换机SwitchA和SwitchB的下面都连接了一个VLAN10的二层网络,要求SwitchA和SwitchB之间通过OSPF路由协议实现两个VLAN10二层网络中的PC的三层互访。
1、配置思路
与上例唯一区别是要通过OSPF路由协议实现连接在不同网络中的不同VLAN间三层互通。目前在华为交换机中仍不能直接在物理接口上配置IP地址,只能通过把物理接口放进一个VLAN中,然后为VLAN配置VLANIF接口IP地址来实现物理接口的三层化。
注意,上图中虽然同为VLAN10,但因为不是一个网段中的VLAN,所以是不同的,可以为它们的VLANIF接口配置不同网段的IP地址。通过OSPF协议对10.10.10.0/24、20.20.20.0/24和30.30.30.0/24三个子网的通告,就相当于通过OSPF协议实现这三个子网间的路由通信。
2、配置步骤
SwitchA上的配置:
(1)创建VLAN10和VLAN30
<Huawei>system-view
[Huawei]sysname SwitchA
[SwitchA]vlan batch 10 30
(2)把GE1/0/1和GE1/0/2端口均配置为Trunk类型,分别加入VLAN10和VLAN30中。
[SwitchA]interface gigabitethernet 1/0/1
[SwitchA-GigabitEthernet1/0/1]portlink-type trunk
[SwitchA-GigabitEthernet1/0/1]port trunkallow-vlan valn 10
[SwitchA-GigabitEthernet1/0/1]quit
[SwitchA]interface gigabitethernet 1/0/2
[SwitchA-GigabitEthernet1/0/2]portlink-type trunk
[SwitchA-GigabitEthernet1/0/2]port trunkallow-vlan valn 30
[SwitchA-GigabitEthernet1/0/2]quit
一个会产生疑问的地方:为什么GE1/0/2端口上不需要同时允许VLAN10呢?最根本原因还是因为华为S系列交换机的物理端口不能直接配置IP地址,是二层接口,必须通过加入一个VLAN,然后通过对应的VLANIF接口来实现二层与三层之间的转换,配置IP地址,进行三层通信。这里的VLANIF接口其实就相当于路由器上的路由接口。至于接口类型,其实无所谓,因为在三层通信中,数据到达交换机后,三层模块会去掉数据链路层协议头,包括VLAN标签部分。另外,华为S系列交换机中各VLAN缺省都是三层互通的。
(3)配置VLANIF10和VLANIF30的IP地址分别为10.10.10.1/24和30.30.30.1/24。
[SwitchA]interface vlanif 10
[SwitchA-Vlanif10]ip address 10.10.10.1 24
[SwitchA-Vlanif10]quit
[SwitchA]interface vlanif 30
[SwitchA-Vlanif30]ip address 30.30.30.1 24
[SwitchA-Vlanif30]quit
(4)配置OSPF路由,宣告VLAN10和VLAN30所对应的网段。
[SwitchA]routerid 1.1.1.1
[SwitchA]ospf
[SwitchA-ospf-1]area 0
[SwitchA-ospf-1-area-0.0.0.0]network 10.10.10.00.0.0.255
[SwitchA-ospf-1-area-0.0.0.0]network 30.30.30.00.0.0.255
[SwitchA-ospf-1-area-0.0.0.0]quit
SwitchB上的配置:
(1)创建VLAN10和VLAN30
<Huawei>system-view
[Huawei]sysname SwitchB
[SwitchB]vlan batch 10 30
(2)把GE1/0/1和GE1/0/2端口均配置为Trunk类型,分别加入VLAN10和VLAN30中。
[SwitchB]interface gigabitethernet 1/0/1
[SwitchB-GigabitEthernet1/0/1]portlink-type trunk
[SwitchB-GigabitEthernet1/0/1]port trunkallow-vlan valn 10
[SwitchB-GigabitEthernet1/0/1]quit
[SwitchB]interface gigabitethernet 1/0/2
[SwitchB-GigabitEthernet1/0/2]portlink-type trunk
[SwitchB-GigabitEthernet1/0/2]port trunkallow-vlan valn 30
[SwitchB-GigabitEthernet1/0/2]quit
(3)配置VLANIF10和VLANIF30的IP地址分别为20.20.20.1/24和30.30.30.2/24。
[SwitchB]interface vlanif 10
[SwitchB-Vlanif10]ip address 20.20.20.1 24
[SwitchB-Vlanif10]quit
[SwitchB]interface vlanif 30
[SwitchB-Vlanif30]ip address 30.30.30.2 24
[SwitchB-Vlanif30]quit
(4)配置OSPF路由,宣告VLAN10和VLAN30所对应的网段。
[SwitchB]routerid 1.1.1.1
[SwitchB]ospf
[SwitchB-ospf-1]area 0
[SwitchB-ospf-1-area-0.0.0.0]network20.20.20.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0]network30.30.30.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0]quit
需要把SwitchA下挂的二层网络中PC上配置缺省网关为VLANIF10接口的IP地址10.10.10.1/24;把SwitchB下挂的二层网路中PC上配置缺省网关为VLANIF10接口的IP地址20.20.20.1/24。
模拟器实验1:
如上配置后,PC1无法PING通PC2,
查看IP路由信息,缺少到达对方网络地址的路由信息,使用ip route-static 10.10.10.0 24 vlanif 30命令给L3-1和L3-2都加上对方的路由信息,结果还是无法互通。现在PC1如果PING10.30.30.1是通的,PC2如果PING10.30.30.2是通的,也就是说L3-1交换机和L3-2交换机之间不通。
在L2-1与L3-1的线路上和L3-1与L3-2线路上抓包:
可以看到两个L3之间的连线上数据帧不带VLAN标签,L3与L2交换机线路上数据帧带有VLAN标签。而L3的两个连接口设置的是Trunk,允许VLAN30通过,则不带标签帧会被丢弃,所以OSPF相互学习不到,既然在两个L3交换机间交换的OSPF帧不带标签,那么设置两个Trunk端口的PVID为vlan30,则不带标签的帧就默认是VLAN30,这时就能接收到相关帧。
这时PC1和PC2能够互访了。
虽然通了,但是还是不明白,为什么同样的两个trunk线路,为什么一个是以太网帧,一个是802.1Q帧??????
六、配置通过子接口实现VLAN间通信
属于不同VLAN且位于不同网段的用户,可通过部署子接口、配置IP地址并与VLAN相关联,通过三层网络实现VLAN间通信。同样,VLAN内主机的缺省网关必须是对应子接口的IP地址。
七、通过子接口实现VLAN间通信的配置示例
如上拓扑,企业不同部门拥有相同的业务,如上网、VoIP等,且各个部门中的用户位于不同的网段。现需要实现相同业务的不同VLAN中的用户相互通信,如部门1(Department1)和部门2(Department2)中拥有相同的上网业务,但是属于不同的VLAN且位于不同的网段。需实现部门1和部门2的用户互通。
1、配置思路
子接口必须在Switch上配置,因为只有它同时连接了VLAN10和VLAN20。SwitchA和SwitchB配置Trunk接口
2、配置步骤
(1)在Switch的GE1/0/1端口上创建用于连接SwitchA下面的VLAN10用户的三层以太网子接口GE1/0/1.1,并封装VLAN10,配置与VLAN10所在网段相同的IP地址。
<Huawei>system-view
[Huawei]interface gigabitethernet1/0/1.1
[Huawei-GigabitEthernet1/0/1.1]dot1qtermination vid 10
[Huawei-GigabitEthernet1/0/1.1]ip address10.10.10.1 24
[Huawei-GigabitEthernet1/0/1.1]arpbroadcast enable
[Huawei-GigabitEthernet1/0/1.1]quit
(2)在Switch的GE1/0/2端口上创建用于连接SwitchB下面VLAN20用户的撒层以太网子接口GE1/0/2.1,并封装VLAN20,配置与VLAN20所在网段相同的IP地址
[Huawei]interface gigabitethernet1/0/2.1
[Huawei-GigabitEthernet1/0/2.1]dot1qtermination vid 20
[Huawei-GigabitEthernet1/0/2.1]ip address20.20.20.1 24
[Huawei-GigabitEthernet1/0/2.1]arpbroadcast enable
[Huawei-GigabitEthernet1/0/2.1]quit
另外,需要在VLAN10中的PC1上配置缺省网关为GE1/0/1.1接口的IP地址10.10.10.124;在VLAN20中的PC2上配置缺省网关为GE1/0/2.1接口的IP地址20.20.20.1/24。
八、配置通过VLAN Switch实现VLAN间通信
VLAN Switch仅在S7700及以上交换机中支持。通过以下两种方式实现VLAN间通信:
(1)替换外层VLAN标签,即VLANSwitchswitch-vlan功能,与VLAN Mapping(VLAN映射)类似。
(2)添加外层VLAN标签功能,即VLANSwitch stack-vlan功能,与VLAN Stacking类似,是一种针对不同VLAN封装外层VLAN标签的二层技术。
通过VLANSwitchswitch-vlan实现VLAN间通信的配置,只需在系统视图下配置:vlan-switch vlan-switch-name interface interface-type1 interface-number1vlan vlan-id1 [inner-vlan vlan-id2 [to vlan-id3]] interface interface-type2 interface-number2 [switch-vlan vlan-id4],配置VLANSwitch switch-vlan功能,替换外层VLAN标签。
(1)vlan-switch-name:指定要配置的VLANSwitch的名称。
(2)interface-type1 interface-number1:指定要替换外层VLAN标签的交换机端口,即源端口。
(3)interface-type2 interface-number2:指定替换了外层VLAN标签后VLAN帧的发出端口,即目的端口。
(4)vlan-id1:指定替换前的外层VLANID。
(5)vlan-id2 to vlan-id3:可选参数,指定替换前的内层VLANID或一个VLAN ID范围。
(6)vlan-id4:可选参数,指定替换后的外层VLAN ID。
示例:配置VLAN Switch的转换外层VLAN标签功能,将GE1/0/1端口接收到的带有VLAN10标签的报文变换为带有VLAN20的标签的报文从GE1/0/2端口转发出去。
[Huawei]vlan-switch name1 interfacegigabitethernet 1/0/1 vlan 10 interface gigabitethernet 1/0/2 switch-vlan 20
九、通过VLAN Switch实现VLAN间通信的配置示例
如上拓扑,Switch的接口GE1/0/1、GE1/0/2分别与SwitchA、SwitchB上行接口相连,SwitchA、SwitchB的下行接口分别加入VLAN10、VLAN20。现要通过VLAN Switch功能实现VLAN10内的PC与VLAN20内的PC互访。
配置方法:
(1)配置SwitchA、SwitchB的相关接口加入VLAN。
(2)配置Switch的VLAN Switch功能。把GE1/0/1端口上接收道德VLAN10帧中的VLAN标签替换成VLAN20,然后从GE1/0/2端口发送出去。
[HUawei]vlan-switch name1 interfacegigabitethernet 1/0/1 vlan 10 interface gigabitethernet 1/0/2 switch-vlan 20
VLAN10、VLAN20不能是Switch已经创建的全局VLAN,且GE1/0/1端口不能加入VLAN10,GE1/0/2端口不能加入VLAN20,否则无法VLANSwitch。
十、VLAN间通信配置管理
(1)display vlan[vlan-id [verbose]]查看所有或指定VLAN的显示信息。
(2)displayinterface vlanif [vlan-id]查看所有或指定VLANIF接口的状态信息、配置信息和统计信息。
(3)displayvlan-switch [vlan-switch-name | interface interface-type interface-number]查看所有或指定的VLANSwitch的配置信息。
管理VLAN的配置与管理
华为S系列交换机,物理接口都是不能直接配置IP地址的,在进行交换机的远程管理中,都是利用VLANIF逻辑接口(或其他逻辑接口)上配置IP地址作为管理IP地址。而这个管理IP地址所对应的VLAN称为“管理VLAN”。
一般情况下,任意VLAN都可成为管理VLAN(指三层交换机上的VLAN),但为了避免一些非授权进行远程交换机管理的VLAN用户对交换机进行非法管理,提高安全性,在华为S系列交换机中一旦某个VLAN被配置为管理VLAN,则不允许Access类型和Dot1q-tunnel类型端口加入该VLAN。
管理VLAN功能部署成功后,用户可通过管理VLAN对应的VLANIF接口的IP地址Telent到管理交换机,从而实现远程管理。