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如需转载请自行联系原作者


茶乡浪子

相关文章
|
2月前
|
安全 数据库 网络虚拟化
计算机网络:思科实验【4-生成树协议STP及虚拟局域网VLAN】
计算机网络:思科实验【4-生成树协议STP及虚拟局域网VLAN】
|
5月前
|
数据处理 网络虚拟化 网络架构
|
7月前
|
网络协议 网络虚拟化
数据通信网络之IPv6以太网单臂路由
数据通信网络之IPv6以太网单臂路由
59 1
|
8月前
|
网络虚拟化 网络架构
VLAN的划分与VLAN间的三层通信,你都懂了吗?
VLAN的划分与VLAN间的三层通信,你都懂了吗?
234 0
|
10月前
|
网络协议 网络虚拟化 网络架构
交换机的工作原理以及搭建局域网划分VLAN
上篇文章了解了OSI以及TCP/IP结构,这篇文章将分享网络中的交换机的工作原理以及怎么搭建一个局域网,划分虚拟局域网实现主机之间的访问隔离,因为在工作中我们不可能买多个交换机来实现主机之间的访问隔离,所以需要划分VLAN虚拟局域网来实现。
176 0
|
11月前
|
监控 网络虚拟化
三层交换机实现VLAN间路由通信
三层交换机实现VLAN间路由通信
107 2
|
11月前
|
网络协议 网络虚拟化 网络架构
单臂路由实现VLAN间相互通信
单臂路由实现VLAN间相互通信
131 0
|
网络协议 安全 网络虚拟化
[ 网络协议篇 ] vlan 详解之 单臂路由 详解
[ 网络协议篇 ] vlan 详解之 单臂路由 详解
658 0
[ 网络协议篇 ] vlan 详解之 单臂路由 详解