![](/uploads/allimg/120803/1539364254-1.jpg)
图20-8 通过ARP代理实现Sub VLAN与外部网络的二层通信的示例
3. Sub VLAN与外部网络的三层通信
下面以图20-9所示的例子介绍通过ARP代理实现Sub VLAN与外部网络的三层通信原理。在示例中,Switch1上配置了Super VLAN 10,Sub VLAN 2和Sub VLAN 3,并配置一个普通的VLAN 30;Switch2上配置两个普通的VLAN 30和VLAN 20。假设Super VLAN 10中的Sub VLAN 2下的主机A想访问与Switch2相连的主机C,则会经过以下下流程如下:(假设Swith1上已配置了去往1.1.3.0/24网段的路由,Swith2上已配置了去往1.1.1.0/24网段的路由):
![](/uploads/allimg/120803/1539361C0-2.jpg)
图20-9 通过ARP代理实现Sub VLAN与外部网络的三层通信的示例
(1)首先主机A将主机C的IP地址(1.1.3.2)和自己所在网段1.1.1.0/24进行比较,发现主机C和自己不在同一个子网。于是,主机A向自己的网关(Super VLAN 10接口)发送一个ARP请求(其实它不仅是给网关发送了这个请求,而是向整个VLAN 2中节点发送了这个请求),请求网关的MAC地址。
(2)Switch1在收到该主机A发送的ARP请求后,查找Sub VLAN和Super VLAN的对应关系,以源MAC地址为Super VLAN 10 对应的VLANIF10的MAC地址作为目的主机C的目的MAC地址从Sub VLAN 2发送ARP应答给主机A。
(3)这样主机A就以网关MAC地址作为主机C的MAC地址记录在MAC表项。然后主机A向网关发送以Super VLAN 10对应的VLANIF10的MAC地址作为目的MAC地址,主机C的IP地址1.1.3.2作为目的IP地址的报文。
(4)Switch1在收到主机A发送的报文后,根据所设置的路由进行三层转发,下一跳地址为1.1.2.2,出接口为Switch2中的VLANIF30接口,把报文发送给Switch2。
(5)Switch2在收到该报文后通过直连出接口VLANIF20(注意,在同一台交换机上直接的多个网段之间是不存在跳数的,可直接进行三层转发),把报文发送给主机C。
(6)主机C在收到主机A发送的报文后,发送响应报文,经过Switch2上的VLANIF30接口进行三层转发到达Switch1的VLANIF30接口。
(7)Switch1在收到该报文后再通过Super VLAN 10这个网关接口,把报文发送给主机A。
这样就完成了Sub VLAN与外部网络的整个三层通信。
本文出自 “王达博客” 博客