前言
我们在实际项目中,经常是vlan号和子网号相同,就比如说,我们划分了vlan10,那么这个vlan下的设备就都在 192.168.10.0
网段。可我们也会遇到多个vlan使用同一网段的特殊情况。今天我们介绍一种不常见的却很有用的工具------聚合VLAN。顺便给大家介绍一下ARP代理是如何工作的。
文章目录
- 前言
- [1. 网络拓扑图](#1. 网络拓扑图)
- [2. 配置vlan](#2. 配置vlan)
-
- [2.1. 配置 LSW2](#2.1. 配置 LSW2)
- [2.2. 配置 LSW1](#2.2. 配置 LSW1)
- [3. 配置IP](#3. 配置IP)
- [4. 配置聚合VLAN](#4. 配置聚合VLAN)
- [5. 配置ARP代理](#5. 配置ARP代理)
- 后记
- 修改记录
1. 网络拓扑图
现有网络拓扑图如下,我们需要聚合vlan2、3、4三个vlan 为 super vlan,还要实现子vlan间能正常通讯:

我们首先配置vlan、然后配置IP、最后配置聚合VLAN以及ARP代理。
2. 配置vlan
2.1. 配置 LSW2
在子Vlan2所在的交换机上,我们首先配置vlan,然后给交换机到PC的接口设置access和默认vlan(打上标签)。交换机与交换机之间,则要配置trunk,然后至少允许vlan2的二层流量的转发。
shell
<Huawei>system-view
[Huawei]sysname SW2
[SW2]vlan 2
[SW2-vlan2]q
[SW2]undo info-center enable
Info: Information center is disabled.
[SW2]interface GigabitEthernet 0/0/2
[SW2-GigabitEthernet0/0/2]port link-type access
[SW2-GigabitEthernet0/0/2]port default vlan 2
[SW2-GigabitEthernet0/0/2]q
[SW2]interface GigabitEthernet 0/0/1
[SW2-GigabitEthernet0/0/1]port link-type trunk
[SW2-GigabitEthernet0/0/1]port trunk allow-pass vlan 2
由于 vlan3、vlan4,情况与vlan2类似,这里不再赘述。
2.2. 配置 LSW1
对于vlan10,它是最核心的交换机,它需要声明所有vlan,在转发的时候也需要允许大家的vlan通过:
shell
<Huawei>system-view
[Huawei]sysname SW1
[SW1]vlan batch 2 3 4 10
[SW1]undo info-center enable
[SW1]interface GigabitEthernet 0/0/1
[SW1-GigabitEthernet0/0/1]port link-type trunk
[SW1-GigabitEthernet0/0/1]port trunk allow-pass vlan 2 3 4
[SW1-GigabitEthernet0/0/1]q
[SW1]interface GigabitEthernet 0/0/2
[SW1-GigabitEthernet0/0/2]port link-type trunk
[SW1-GigabitEthernet0/0/2]port trunk allow-pass vlan 2 to 4
[SW1-GigabitEthernet0/0/2]q
[SW1]interface GigabitEthernet 0/0/3
[SW1-GigabitEthernet0/0/3]port link-type trunk
[SW1-GigabitEthernet0/0/3]port trunk allow-pass vlan 2 to 4
3. 配置IP
接下来我们配置ip,我们在PC和SW1(网关)上配置好IP地址:
shell
[SW1]interface Vlanif 10
[SW1-Vlanif10]ip address 10.1.1.1 24
4. 配置聚合VLAN
现在,我们将三个子vlan聚合成vlan10,于是我们在LSW1上敲击:
shell
[SW1]vlan 10
[SW1-vlan10]aggregate-vlan
[SW1-vlan10]access-vlan 2 to 4
[SW1-vlan10]display vlan
The total number of vlans is : 5
--------------------------------------------------------------------------------
U: Up; D: Down; TG: Tagged; UT: Untagged;
MP: Vlan-mapping; ST: Vlan-stacking;
#: ProtocolTransparent-vlan; *: Management-vlan;
--------------------------------------------------------------------------------
VID Type Ports
--------------------------------------------------------------------------------
1 common UT:GE0/0/1(U) GE0/0/2(U) GE0/0/3(U) GE0/0/4(D)
GE0/0/5(D) GE0/0/6(D) GE0/0/7(D) GE0/0/8(D)
GE0/0/9(D) GE0/0/10(D) GE0/0/11(D) GE0/0/12(D)
GE0/0/13(D) GE0/0/14(D) GE0/0/15(D) GE0/0/16(D)
GE0/0/17(D) GE0/0/18(D) GE0/0/19(D) GE0/0/20(D)
GE0/0/21(D) GE0/0/22(D) GE0/0/23(D) GE0/0/24(D)
2 sub TG:GE0/0/1(U) GE0/0/2(U) GE0/0/3(U)
3 sub TG:GE0/0/1(U) GE0/0/2(U) GE0/0/3(U)
4 sub TG:GE0/0/1(U) GE0/0/2(U) GE0/0/3(U)
10 super
VID Status Property MAC-LRN Statistics Description
--------------------------------------------------------------------------------
1 enable default enable disable VLAN 0001
2 enable default enable disable VLAN 0002
3 enable default enable disable VLAN 0003
4 enable default enable disable VLAN 0004
10 enable default enable disable VLAN 0010
至此,我们的聚合VLAN配置完毕了,我们尝试让PC1来ping网关:
cmd
PC>ping 10.1.1.1
Ping 10.1.1.1: 32 data bytes, Press Ctrl_C to break
From 10.1.1.1: bytes=32 seq=1 ttl=255 time=47 ms
From 10.1.1.1: bytes=32 seq=2 ttl=255 time=47 ms
From 10.1.1.1: bytes=32 seq=3 ttl=255 time=47 ms
From 10.1.1.1: bytes=32 seq=4 ttl=255 time=62 ms
From 10.1.1.1: bytes=32 seq=5 ttl=255 time=78 ms
--- 10.1.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 47/56/78 ms
发现是通的,那么我们让PC1去 ping PC2:
cmd
PC>ping 10.1.1.12
Ping 10.1.1.12: 32 data bytes, Press Ctrl_C to break
From 10.1.1.2: Destination host unreachable
From 10.1.1.2: Destination host unreachable
From 10.1.1.2: Destination host unreachable
From 10.1.1.2: Destination host unreachable
From 10.1.1.2: Destination host unreachable
--- 10.1.1.12 ping statistics ---
5 packet(s) transmitted
0 packet(s) received
100.00% packet loss
发现根本不通,为什么呢?因为同网段执行ping命令,首先会去使用ARP报文寻找目的主机的MAC地址。ARP报文在SW3处就无法继续往前走了:
5. 配置ARP代理
基于以上的现实问题,我们不得不配置ARP代理,所谓代理就是代替你去处理:
shell
[SW1]interface Vlanif 10
[SW1-Vlanif10]arp-proxy inter-sub-vlan-proxy enable
当我们配置好ARP代理后,我们再去让 PC1 ping PC2,通过抓包发现:

LSW1在接收到LSW2发来的ARP广播包后,主动封装了vlan id为3和4的arp广播包代为寻找10.1.1.12
到底再哪里。当10.1.1.12
返回自己的Mac地址后,它也是发给了LSW1:

后续LSW1会直接发给PC1所需要的PC2的MAC地址,如此一来,跨VLAN便可以三层通讯了!
后记
其实本文更多还是想和大家分享ARP工作的过程,以及ARP代理究竟是怎么一回事。相信大家经过本实验,更能理解ARP在沟通IP与MAC中的工作原理了。
文中有任何错误、遗漏,烦请各位老铁在评论区指出,共同学习进步。
修改记录
更新日期 | 修改内容 |
---|---|
2025年5月17日 | 完成初稿 |