Sub VLAN主机的三层通信原理-阿里云开发者社区

开发者社区> 科技探索者> 正文

Sub VLAN主机的三层通信原理

简介:
+关注继续查看

以下内容摘自今年元月全新上市《Cisco/H3C交换机配置与管理完全手册》(第2版),其姊妹篇——Cisco/H3C交换机高级配置与管理技术手册》也正在全国热销中。

    在此篇文章( http://winda.blog.51cto.com/55153/729941 )中,笔者介绍了H3C交换机Spuer VLAN的聚合原理,本节接着要介绍Super VLAN中的Sub VLAN(从VLAN)间主机的三层通信原理。

20.3.2 Sub VLAN主机的三层通信原理

我们在前面已说到,Super VLAN(也就是VLAN聚合)方案中,在实现不同Sub VLAN间共用同一子网网段地址的同时也带来了Sub VLAN间的三层转发问题。因为在普通VLAN中,VLAN间的主机可以通过各自不同的网关(也就是它们自己的VLAN接口IP地址)进行三层转发来达到互通的目的。但是在Super VLAN方案中下,各Sub VLAN是不允许配置VLAN接口IP地址的,同一个Super VLAN内的所有主机使用的是同一个网段的地址和共用同一个网关地址,即使是属于不同的Sub VLAN的主机。由于它们同属一个子网,彼此通信时只会做二层转发,而不会通过网关进行三层转发。而实际上不同的Sub VLAN的主机在二层又是相互隔离的(这是继承普通VLAN的属性),这就造成了Sub VLAN间无法通信(包括二层通信和三层通信)的问题。

解决这一问题的方法就是使用ARP代理。下面具体进行介绍。

1.    不同Sub VLAN间的三层互通

例如,如图20-7所示的网络中,Super VLANVLAN 10)包含Sub VLANVLAN 2VLAN 3)。VLANIF10:1.1.1.1/24表示Super VLAN 10VLAN接口IP地址为1.1.1.1/24

VLAN 2内的主机AVLAN 3内的主机B的通信过程如下:(假设主机AARP表中没有主机B的对应ARP表项,并且在担当网关的交换机上启用了Sub VLAN间的ARP代理功能)。

20-7 通过ARP代理实现不同Sub VLAN间三层互通的示例

1)主机A将主机BIP地址(1.1.1.3)和自己所在网段1.1.1.0/24进行比较,发现主机B和自己在同一个子网,但是主机AARP表中没有主机B的对应表项,于是主机A发送ARP广播,请求主机BMAC地址。

2)由于主机B并不在VLAN 2的广播域内,无法接收到主机A的这个ARP请求。但由于在网关上启用了Sub VLAN间的ARP代理功能,而且网关是在Sub VLAN中,是允许接收其下面各Sub VLAN报文的,所以当网关收到主机AARP请求后,开始在路由表中查找,发现ARP请求中的主机BIP地址(1.1.1.3)为直连接口路由,则网关向所有其他Sub VLAN接口发送一个ARP广播,请求主机BMAC地址。

3)当主机B收到网关发送的ARP广播后,对此请求进行ARP应答。

4)在网关收到主机B的应答后,就把自己的MAC地当作BMAC地址回应给主机A

5)主机A收到网关发来的响应后就认为主机BMAC地址就是网关的MAC地址,于时主机A之后要发给B的报文都先发送给网关,由网关做三层转发。

主机B发送报文给主机A的过程和上述的AB的报文流程类似,不再赘述。

2.    Sub VLAN与外部网络的二层通信

在基于端口的VLAN二层通信中,无论是数据帧进入接口,还是从接口发出都不会有针对Super VLAN的报文,也不会把报文的VLAN ID改为Super VLAN对应的VLAN ID,而是保持报文中原来的VLAN ID不变,因为在Super VLAN中根本没有端口(这是关键)。现以如图20-8所示的例子进行说明。

Host AGE0/0/1进入设备Switch1的帧会被打上VLAN2的标记,在设备Switch1中这个标记不会因为VLAN 2VLAN 10Sub VLAN而变为VLAN 10的标记。这样,该数据帧从Trunk类型的接口GE0/0/3出去时,依然是携带VLAN2的标记。也就是说,Switch1本身不会发出VLAN 10的报文,就算其他设备有VLAN 10的报文发送到该设备上,这些报文也会因为Switch1上没有VLAN 10对应物理端口而被丢弃。

【经验之谈】由于Super VLAN中是不允许有物理端口的,所以在配置过程中需要注意Super VLANTrunk链路的配置次序问题。如果先配置了Super VLAN,再配置Trunk接口时,TrunkVLAN许可表项里也会自动滤除了Super VLAN。如在如图20-8中,虽然Switch1GE0/0/3允许所有的VLAN通过,但是也不会有作为Super VLANVLAN 10的报文从该接口进出。但是,如果先配好了Trunk端口,并允许所有VLAN通过,则在此设备上将无法配置Super VLAN。本质原因是有物理端口的VLAN都不能被配置为Super VLAN。而允许所有VLAN通过的Trunk端口是所有VLAN的端口,这样一来,任何VLAN都不能被配置为Super VLAN。这一点一定要谨记。在本示例中,对于Switch1而言,有效的VLAN只有VLAN2VLAN3,所有的数据帧都在这两个VLAN中转发的。

20-8  通过ARP代理实现Sub VLAN与外部网络的二层通信的示例

3.    Sub VLAN与外部网络的三层通信

下面以图20-9所示的例子介绍通过ARP代理实现Sub VLAN与外部网络的三层通信原理。在示例中,Switch1上配置了Super VLAN 10Sub VLAN 2Sub VLAN 3,并配置一个普通的VLAN 30Switch2上配置两个普通的VLAN 30VLAN 20。假设Super VLAN 10中的Sub VLAN 2下的主机A想访问与Switch2相连的主机C,则会经过以下下流程如下:(假设Swith1上已配置了去往1.1.3.0/24网段的路由,Swith2上已配置了去往1.1.1.0/24网段的路由):

20-9  通过ARP代理实现Sub VLAN与外部网络的三层通信的示例

1)首先主机A将主机CIP地址(1.1.3.2)和自己所在网段1.1.1.0/24进行比较,发现主机C和自己不在同一个子网。于是,主机A向自己的网关(Super VLAN 10接口)发送一个ARP请求(其实它不仅是给网关发送了这个请求,而是向整个VLAN 2中节点发送了这个请求),请求网关的MAC地址。

2Switch1在收到该主机A发送的ARP请求后,查找Sub VLANSuper VLAN的对应关系,以源MAC地址为Super VLAN 10 对应的VLANIF10MAC地址作为目的主机C的目的MAC地址从Sub VLAN 2发送ARP应答给主机A

3)这样主机A就以网关MAC地址作为主机CMAC地址记录在MAC表项。然后主机A向网关发送以Super VLAN 10对应的VLANIF10MAC地址作为目的MAC地址,主机CIP地址1.1.3.2作为目的IP地址的报文。

4Switch1在收到主机A发送的报文后,根据所设置的路由进行三层转发,下一跳地址为1.1.2.2,出接口为Switch2中的VLANIF30接口,把报文发送给Switch2

5Switch2在收到该报文后通过直连出接口VLANIF20(注意,在同一台交换机上直接的多个网段之间是不存在跳数的,可直接进行三层转发),把报文发送给主机C

6)主机C在收到主机A发送的报文后,发送响应报文,经过Switch2上的VLANIF30接口进行三层转发到达Switch1VLANIF30接口。

7Switch1在收到该报文后再通过Super VLAN 10这个网关接口,把报文发送给主机A

这样就完成了Sub VLAN与外部网络的整个三层通信。

本文转自王达博客51CTO博客,原文链接http://blog.51cto.com/winda/942413如需转载请自行联系原作者


茶乡浪子

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10057 0
vSphere ESXi主机配置iSCSI存储
vSphere ESXi主机配置iSCSI存储 vSphere ESXi主机一般连接的存储类型有光纤存储、iSCSI存储两类。本次案例为iSCSI存储连接ESXi主机的配置。
1625 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13871 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
11887 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
7359 0
5489
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载