APP下载

在仿真环境下虚拟局域网的划分与通信

2018-04-11王文龙

实验室研究与探索 2018年1期
关键词:拓扑图网段网关

王文龙

(喀什大学 计算机科学与技术学院,新疆 喀什 844008)

0 引 言

随着网络的不断延伸和扩展,根据用途、工作组、应用等来逻辑划分,与站点所在的物理位置无关,可以从逻辑上隔离或划分广播域的、具有很强的灵活性的虚拟局域网(virtual local area network,VLAN),在实际的网络工程中得到了非常广泛的应用。在很多的文献中对VLAN的作用、划分、通信、配置等已有较为详细的分析[1-16],然而对于VLAN与物理网段的关系、VLAN间的通信等问题的分析尚不够深入、全面。为更深入、全面的理解VLAN,掌握VLAN的配置和使用,本文在仿真环境下,进行网络拓扑设计和抓包分析,对VLAN与物理网段的关系、VLAN间通信进行深入、全面的分析研究,以期加深对VLAN技术的理解和掌握,并在网络工程实践中更好的配置使用VLAN。

1 VLAN与物理网段

在学习和使用VLAN时,常会混淆通过IP地址划分的物理网段和逻辑上划分的VLAN之间的关系,认为VLAN与物理网段没有什么关系,是另外一种划分网段的方法,甚至认为划分到同一个VLAN的站点就属于同一个网段,就可以直接通信,与站点是不是属于同一个物理网段无关,理由是逻辑上属于同一个网段,而同一个网段是可以通信的。

下面通过两个例子对物理网段和VLAN的关系进行详细分析,以便对VLAN的本质有更清晰的认识。

在Cisco Packet Tracer下,按图1进行配置,由于PC1和PC2在物理上属于同一个网段,则PC1可以ping通PC2。此时对S1的端口进行VLAN配置,f0/1配置为VLAN10,f0/2配置为VLAN20,以f0/1端口为例,配置如下:

S1(config)#vlan 10

S1(config)#vlan 20

S1(config)#interface f0/1

S1(config-if)#switchport mode access

S1(config-if)#switchport access vlan 10

图1 同一物理网段划分不同VLAN拓扑图

此时再由PC1 ping PC2已无法ping通,抓包发现PC1无法组装封装ICMP包的帧,而仅仅是发送了ARP广播帧到S1后就结束了。这是由于PC1和PC2在物理上属于同一个网段,则PC1可以向本网段发送ARP广播帧,询问PC2的MAC地址,该帧可以发送到S1的f0/1端口,但由于S1的f0/1和f0/2端口配置为不同的VLAN,则S1无法将该ARP广播帧通过f0/2端口转发到PC2,则PC1无法获得PC2的MAC地址,也就无法组装帧。此时通过划分VLAN达到了将同一物理网段从逻辑上隔离的目的,也即对物理网段从逻辑上进行了子网划分。

考虑图2的情况,由于PC1和PC2在物理上不属于同一个网段,则PC1无法ping通PC2。此时对S1的端口进行VLAN配置,为更好的进行分析,将f0/1和f0/2均配置为VLAN10。此时由PC1 ping PC2,尽管PC1和PC2属于同一个VLAN,仍然无法ping通。抓包发现PC1既无法生成封装ICMP包的帧,也未生成ARP广播帧。这是因为PC1和PC2在物理上不属于同一个网段,则PC1需要知道网关的IP地址和MAC地址,而本例中无三层设备,也即没有网关,则PC1无法获得网关的地址,则无法生成帧。

图2 不同物理网段划分同一VLAN拓扑图

通过上面的分析不难看出,对同一个物理网段进行VLAN的划分,其本质是将物理网段从逻辑上划分虚拟子网,通过虚拟子网达到逻辑上的子网隔离。而所谓的VLAN的隔离作用,必须是在同一个物理网段中划分不同VLAN才有的,而在不同物理网段中划分不同VLAN而达到的所谓隔离作用,其实是不同物理网段本身的隔离作用,与划不划分VLAN无关。而如图2,将不同物理网段中的站点划分到同一个VLAN,站点间是无法通信的,这种划分也没有任何意义,这说明,划分到同一个VLAN中的站点必须在物理上是属于同一个网段的。

2 VLAN间通信

在实际使用VLAN的隔离作用时,也常需要VLAN间能够互相通信,而通过上面对VLAN本质的分析可以知道,有意义的VLAN划分有两种情况,一种是在同一物理网段上划分不同VLAN;一种是在不同物理网段上划分不同VLAN。

为更好的理解VLAN间的通信,需了解交换机在配置VLAN时的端口工作模式。端口的模式有3种:access(不打VLAN标签),trunk(必须打VLAN标签),dynamic(可以在access和trunk模式间选择)。有关端口工作模式和VLAN标签的详细内容请参考相关文献。

下面通过设计网络拓扑,对如何完成不同VLAN间的通信进行详细分析。

2.1 同一物理网段下不同VLAN间的通信

要完成在同一物理网段划分的VLAN间的通信,可以考虑使用二层交换机或者三层设备(三层交换机和路由器)。

若考虑使用三层设备,存在两个问题,一是三层设备需要配置VLAN的IP地址,也即网关,由于VLAN是在同一物理网段上划分的,则在同一物理网段下划分的不同VLAN的网关是相同的,无法把同一个IP地址分配给不同的VLAN作为网关;二是路由器通常要求不同端口或子端口连接的是不同的物理网段,而同一个物理网段是无法连接到路由器不同端口或子端口的。这两个问题是使用三层交换机和路由器无法解决的,因此要完成在同一物理网段划分的VLAN间的通信,则必须使用二层交换机。

在Cisco Packet Tracer下,按图3进行配置,PC1和PC2在物理上属于同一个网段,S1的f0/1配置为VLAN10,f0/2配置为VLAN10,S2的f0/1配置为VLAN20,f0/2配置为VLAN20,端口工作模式均配置为access。以S1为例,配置如下:

S1(config)#vlan 10

S1(config)#interface f0/1

S1(config-if)#switchport mode access

S1(config-if)#switchport access vlan 10

S1(config)#interface f0/2

S1(config-if)#switchport mode access

S1(config-if)#switchport access vlan 10

此时由PC1 ping PC2,可以ping通,从而实现了VLAN10与VLAN20间的通信。抓包发现PC1、S1、 S2、PC2在组装封装ICMP包的帧时,均未在帧中打

图3 同一物理网段不同VLAN间通信拓扑图

VLAN标签。这是因为access模式的端口无需打VLAN标签,但从另一方面看,所有的帧均不打VLAN标签,就好像没有划分VLAN,而PC1和PC2在物理上是属于同一个网段,因此PC1是可以ping通PC2的。

若将S1的f0/2端口和S2的f0/2端口均配置为dynamic模式,以S1为例,配置如下:

S1(config)#interface f0/2

S1(config-if)#switchport mode dynamic auto

此时由PC1 ping PC2,可以ping通,也实现了VLAN10与VLAN20间的通信。查看S1的f0/2端口和S2的f0/2端口的工作模式,发现均为access,也即两个端口在配置为dynamic模式时,实际上都选择了access模式。

若将S1的f0/2端口和S2的f0/2端口均配置为trunk模式,以S1为例,配置如下:

S1(config)#interface f0/2

S1(config-if)#switchport mode trunk

此时由PC1 ping PC2,无法ping通,VLAN10与VLAN20间无法进行通信。抓包发现PC1封装ICMP包的帧发送到S1,由于S1的f0/1端口工作模式为access,故该帧未打VLAN10的标签(见图4)。随后S1将帧发送到S2,由于S1的f0/2端口工作模式为trunk,故该帧打上了VLAN10的标签(见图5,VLAN标签:TPID:0X810,表示使用IEEE802.1Q协议;TCI:0Xa,表示VLAN号10)。而S2接收到帧后停止了发送,这是因为S1发来的帧打上了VLAN10的标签,而S2的f0/1端口已配置为VLAN20,S2不能把VLAN10的帧发送到VLAN20的端口f0/1。

图4未打VLAN标签的Eehernet II帧

图5打VLAN标签的Ethernet 802.1q帧

从上看出,S1和S2连接的端口若配置为access或dynamic(选择access)工作模式,则由于在帧中不打VLAN标签,实际上就如同没有划分VLAN,只要PC1和PC2在同一个物理网段,就可以实现二者间的通信。若端口配置为trunk工作,则由于在帧中必须打VLAN标签,就算PC1和PC2在同一个物理网段,而由于属于不同的VLAN,则二者之间无法进行通信。

2.2 不同物理网段下不同VLAN间的通信

在不同的物理网段划分不同的VLAN,若要完成VLAN间的通信,必须使用三层设备才可以完成。根据使用三层设备的单个端口还是多个端口完成VLAN间的通信,可以分为两类,一类是单臂路由,另一类是多端口路由。

2.2.1单臂路由

使用开启路由功能的三层交换机和路由器的单端口均可以完成不同物理网段下不同VLAN间的通信。下面通过设计网络拓扑,对这两种情况完成VLAN间的通信进行详细分析。

(1) 使用三层交换机。在Cisco Packet Tracer下,按图6进行配置,S1的f0/1配置为VLAN10,f0/2配置为VLAN10,工作模式为access,f0/24工作模式为trunk,S2的f0/1工作模式为trunk,封装802.1q协议,并开启路由,VLAN10的IP为192.168.1.254,VLAN20的IP为192.168.2.254,PC1的网关为192.168.1.254,PC2的网关为192.168.2.254。

图6 三层交换机单臂路由拓扑图

具体配置如下:

S2(config)#vlan 10

S2(config)#vlan 20

S2(config)#interface vlan 10

S2(config-if)#ip address 192.168.1.254 255.255.255.0

S2(config)#interface vlan 20

S2(config-if)#ip address 192.168.2.254 255.255.255.0

S2(config)#interface f0/1

S2(config-if)#switchport mode trunk

S2(config-if)#switchport trunk encapsulation dot1q

S2(config)#ip routing

S1(config)#vlan 10

S1(config)#vlan 20

S1(config)#interface f0/1

S1(config-if)#switchport mode access

S1(config-if)#switchport access vlan 10

S1(config)#interface f0/2

S1(config-if)#switchport mode access

S1(config-if)#switchport access vlan 20

此时由PC1 ping PC2,可以ping通,从而完成了VLAN10和VLAN20间的通信。抓包发现PC1发出的ICMP包依次到达S1、S2、S1、PC2,其中PC1发到S1和S1发到PC2的帧未打VLAN标签,S1发到S2的帧打了VLAN10的标签,S2发到S1的帧打了VLAN20的标签;而PC2的响应ICMP包依次到达S1、S2、S1、PC1,其中PC2发到S1和S1发到PC1的帧未打VLAN标签,S1发到S2的帧打了VLAN20的标签,S2发到S1的帧打了VLAN10的标签。

(2) 使用路由器。在Cisco Packet Tracer下,按图7进行配置,S1的f0/1配置为VLAN10,f0/2配置为VLAN10,工作模式为access,f0/24工作模式为trunk,R1的f0/0端口划分f0/0.1和f0/0.2两个子端口,f0/0.1子端口封装802.1q协议,并允许VLAN10通过,f0/0.2子端口封装802.1q协议,并允许VLAN20通过,VLAN10的IP为192.168.1.254,VLAN20的IP为192.168.2.254,PC1的网关为192.168.1.254,PC2的网关为192.168.2.254。

图7 路由器单臂路由拓扑图

具体配置如下:

S1(config)#vlan 10

S1(config)#vlan 20

S1(config)#interface f0/1

S1(config-if)#switchport mode access

S1(config-if)#switchport access vlan 10

S1(config)#interface f0/2

S1(config-if)#switchport mode access

S1(config-if)#switchport access vlan 20

S1(config)#interface f0/24

S1(config-if)#switchport mode trunk

R1(config)#interface f0/0.1

R1(config-subif)#encapsulation dot1Q 10

R1(config-subif)#ip address 192.168.1.254 255.255.255.0

R1(config)#interface f0/0.2

R1(config-subif)#encapsulation dot1q 20

R1(config-subif)#ip address 192.168.2.254 255.255.255.0

查看R1的路由表:

R1#show ip route

C 192.168.1.0/24 is directly connected, FastEthernet0/0.1

C 192.168.2.0/24 is directly connected, FastEthernet0/0.2

此时R1的子端口直连路由已建立,再由PC1 ping PC2,可以ping通,从而完成了VLAN10和VLAN20间的通信。抓包情况与三层交换机单臂路由类似。

2.2.2多端口路由

使用开启路由功能的三层交换机和路由器的多端口亦可以完成不同物理网段下不同VLAN间的通信。下面通过设计网络拓扑,对这两种情况完成VLAN间的通信进行详细分析。

(1) 使用三层交换机。在Cisco Packet Tracer下,按图8进行配置,S1的f0/1配置为VLAN10,S2的f0/1配置为VLAN20,工作模式均为access,S1和S2的f0/24工作模式均为trunk,S3的f0/1、f0/2工作模式为trunk,封装802.1q协议,并开启路由,VLAN10的IP为192.168.1.254,VLAN20的IP为192.168.2.254,PC1的网关为192.168.1.254,PC2的网关为192.168.2.254。

图8 交换机多端口路由拓扑图

具体配置如下:

S1(config)#vlan 10

S1(config)#interface f0/1

S1(config-if)#switchport mode access

S1(config-if)#switchport access vlan 10

S1(config)#interface f0/24

S1(config-if)#switchport mode trunk

S2(config)#vlan 20

S2(config)#interface f0/1

S2(config-if)#switchport mode access

S2(config-if)#switchport access vlan 20

S2(config)#interface f0/24

S2(config-if)#switchport mode trunk

S3(config)#vlan 10

S3(config)#vlan 20

S3(config)#interface vlan 10

S3(config-if)#ip address 192.168.1.254 255.255.255.0

S3(config)#interface vlan 20

S3(config-if)#ip address 192.168.2.254 255.255.255.0

S3(config)#interface f0/1

S3(config-if)#switchport mode trunk

S3(config-if)#switchport trunk encapsulation dot1q

S3(config)#interface f0/2

S3(config-if)#switchport mode trunk

S3(config-if)#switchport trunk encapsulation dot1q

S3(config)#ip routing

此时由PC1 ping PC2,可以ping通,从而完成了VLAN10和VLAN20间的通信。抓包情况与单臂路由类似。

(2) 使用路由器。在Cisco Packet Tracer下,按图9进行配置,S1的f0/1配置为VLAN10,S2的f0/1配置为VLAN20,工作模式均为access,S1和S2的f0/24工作模式为trunk,R1的f0/0.1子端口封装802.1q协议,并允许VLAN10通过,R1的f0/1.1子端口封装802.1q协议,并允许VLAN20通过,VLAN10的IP为192.168.1.254,VLAN20的IP为192.168.2.254,PC1的网关为192.168.1.254,PC2的网关为192.168.2.254。

图9 路由器多端口路由拓扑图

具体配置如下:

S1(config)#vlan 10

S1(config)#interface f0/1

S1(config-if)#switchport mode access

S1(config-if)#switchport access vlan 10

S1(config)#interface f0/24

S1(config-if)#switchport mode trunk

S2(config)#vlan 20

S2(config)#interface f0/1

S2(config-if)#switchport mode access

S2(config-if)#switchport access vlan 20

S2(config)#interface f0/24

S2(config-if)#switchport mode trunk

R1(config)#interface f0/0.1

R1(config-subif)#encapsulation dot1q 10

R1(config-subif)#ip address 192.168.1.254 255.255.255.0

R1(config)#interface f0/1.1

R1(config-subif)#encapsulation dot1q 20

R1(config-subif)#ip address 192.168.2.254 255.255.255.0

查看R1的路由表:

R1#show ip route

C 192.168.1.0/24 is directly connected, FastEthernet0/0.1

C 192.168.2.0/24 is directly connected, FastEthernet0/1.1

此时R1的子端口直连路由已建立,再由PC1 ping PC2,可以ping通,从而完成了VLAN10和VLAN20间的通信。抓包情况与单臂路由类似。

3 结 语

本文在Cisco Packet Tracer仿真环境下,通过设计简单的网络拓扑,并进行抓包分析,对VLAN与物理网段的关系、VLAN间通信进行深入、全面的分析研究,形成了明确的分析结论。这些分析结论既可以作为学习VLAN的参考,加深对VLAN技术的理解和掌握,也可以运用到网络工程实践中去,更好地配置和使用VLAN。

参考文献(References):

[1]李丙春,王文龙,刘静,等.路由与交换技术[M].北京:电子工业出版社,2016.

[2]陈潮,靳慧云,黄安安. VLAN间路由实验在仿真器中的设计与实现[J]. 实验技术与管理,2016(8):129-132.

[3]刘群,李坚. 组建局域网综合实验的设计[J]. 实验室研究与探索,2016(7):96-101.

[4]廉佐政,王海珍. 大型局域网中VLAN间可靠通信实验设计与实现[J]. 实验室研究与探索,2015(12):119-124,147.

[5]廉佐政,王海珍. 大型局域网中VLAN间可靠通信的仿真设计[J]. 计算机仿真,2015(7):296-302.

[6]曹腾飞,孟永伟,黄建强,等. 西部高校计算机网络实验[J]. 实验室研究与探索,2015(4):129-131,140.

[7]尹忆民,郝宇红,孙浩志,等. 建设扁平化新型校园网络[J]. 华东师范大学学报(自然科学版),2015(S1):146-151.

[8]林初建,张四海,王海英,等. 基于非对称VLAN的端口隔离技术研究与应用[J]. 华东师范大学学报(自然科学版),2015(S1):232-239.

[9]李永,甘新玲,王海燕. 不同VLAN之间通信实验设计与实现[J]. 实验技术与管理,2014(4):106-108,130.

[10]杨姝. VLAN技术实验的设计与仿真实现研究[J]. 实验技术与管理,2014(3):114-117.

[11]张梁斌,高昆,梁世斌. 基于Packet Tracer的小型企业网络应用架构的仿真实验[J]. 实验室研究与探索,2012(10):372-376.

[12]张力,程友清,殷磊. 一种改进的VLAN动态学习方案研究与实现[J]. 光通信研究,2012(1):29-31,45.

[13]马素刚. VLAN技术的研究与仿真[J]. 制造业自动化,2011(22):78-80,99.

[14]陈建锐. 软件仿真下的VLAN配置实验探讨[J]. 实验室研究与探索,2011(2):78-81.

[15]唐灯平. 利用Packet Tracer模拟组建大型单核心网络的研究[J]. 实验室研究与探索,2011(1):186-189,198.

[16]薛琴. 基于Packet Tracer的计算机网络仿真实验教学[J]. 实验室研究与探索,2010(2):57-59.

猜你喜欢

拓扑图网段网关
低压配网拓扑图自动成图关键技术的研究与设计
简单拓扑图及几乎交错链环补中的闭曲面
基于含圈非连通图优美性的拓扑图密码
单位遭遇蠕虫类病毒攻击
信号系统网关设备的优化
网上邻居跨网段访问故障
LTE Small Cell网关及虚拟网关技术研究
Onvif双网段开发在视频监控系统中的应用
应对气候变化需要打通“网关”
一种实时高效的伺服控制网关设计