现在手里有一台 TP-Link 企业路由器 ER6220T 和一台三层网管交换机 SG5428,准备将原有路由器替换掉,并顺便重新梳理一下原有网络。这里记录一下这次从 IPv4 三层架构到 IPv6 双栈接入的完整配置过程,以及中间遇到的一些问题。
1. 现存网络
坐标武汉,上游为电信运营商。
1.1 现存网络结构
运营商光纤
↓
光猫(桥接)
↓
TP-Link ER3229G
PPPoE + DHCP + NAT
↓
普通 AP / 普通交换机 / 客户端IPv4 网络:
10.1.1.0/24
Gateway: 10.1.1.1原网络未部署 IPv6。
1.2 升级需求
- 将原有
ER3229G替换为ER6220T + SG5428 - 尽量不影响原有终端和服务
- 为后续 VLAN 隔离做准备
- 迁移现有静态 IP 分配、公网端口映射等配置
- 引入 IPv6
- 明确路由、交换、DHCP、防火墙等功能的职责划分
1.3 换新设备
TP-Link ER6220T 万兆企业 VPN 路由器
- 硬件版本:1.0
- 软件版本:1.2.3 Build 250318
- TL-ER6220T 万兆企业VPN路由器 - TP-LINK官方网站
TP-Link SG5428 全千兆三层网管交换机
- 硬件版本:3.0
- 软件版本:1.2.3 Build 20260603
- TL-SG5428 全千兆三层网管交换机 - TP-LINK官方网站

2. 新网络架构设计
整体拓扑结构见下图:

VLAN 暂时只规划一个 Legacy。因为下游仍有不少非网管交换机和普通 AP,不适合立即按设备类型拆分 VLAN,等后续逐步更换下游设备后,再继续规划 Office、Server、IoT、Guest 等 VLAN。
| 业务类型 | VLAN | 网段 |
|---|---|---|
| Legacy | 256 | 10.1.1.0/24 |
2.1 最终 IPv4 拓扑
Internet / 1 个动态公网 IPv4
↓
光猫(Bridge)
↓
ER6220T
PPPoE / NAT / Firewall / Port Forward
↓
192.168.100.1/30
│
│ Transit
│
192.168.100.2/30
↓
SG5428
三层交换 / DHCP / VLAN Gateway
↓
VLAN 256 Legacy
10.1.1.0/24
Gateway: 10.1.1.1
↓
Clients设计思路:
由 ER6220T 负责 PPPoE、NAT / NAPT、防火墙、端口转发等互联网出口工作,SG5428 负责 DHCP、VLAN、VLAN 三层网关以及后续的内网 ACL。两台设备之间通过一个独立的 Transit 网段进行三层互联。
其中,Transit 路由器端 IP 为 192.168.100.1,交换机端 IP 为 192.168.100.2,掩码为 255.255.255.252 (/30)。
这个 Transit 子网只是两台三层设备之间的路由互联网络,并不会额外产生一层 NAT。 SG5428 只负责路由转发,真正的 IPv4 NAT 仍然只发生在 ER6220T 上。
2.2 最终 IPv6 拓扑
Internet / 当前可实际用于 LAN 的动态 /64 前缀
↓
光猫(Bridge)
↓
ER6220T
PPPoE / PD / RA / DHCPv6 / Firewall
↓
SG5428
二层交换
↓
ClientsIPv6 采用了与 IPv4 不同的拓扑设计,主要是因为实际配置中遇到了以下几个限制:
- 从当前 ER6220T 的实际表现来看,可用于 LAN 的前缀表现为同一个动态
/64。虽然还没有通过抓取 DHCPv6-PD 的IA_PD报文确认运营商最终委派的原始 PD 长度,但本文按“当前可实际利用一个/64”来规划。普通终端 LAN / VLAN 通常应使用独立的/64,不适合继续拆成/68、/72、/80等子网给多个 VLAN 使用,否则会影响标准 SLAAC 的工作。 - 当前 ER6220T 路由器好像不支持将运营商下发的 PD 继续委派给下游设备。(不过也可能是我没找到位置)
- 当前 SG5428 固件中仅找到 IPv4 ACL 相关配置,因此 IPv6 的公网访问控制统一交给 ER6220T 处理更简单。
因此最终采用:IPv4 由 SG5428 做三层网关,IPv6 由 ER6220T 直接作为网关,SG5428 在 IPv6 侧只负责二层转发。
同一台客户端的 IPv4 和 IPv6 默认网关因此可以是不同设备:
IPv4 Gateway → SG5428(10.1.1.1)
IPv6 Gateway → ER6220T(通常表现为 fe80:: 开头的链路本地地址)2.3 物理连接
ER6220T 有 4 个可自定义的 GE RJ45 口,还有 2 个 10GE SFP+ 口。
SG5428 有 24 个 GE RJ45 口,还有 4 个 GE SFP 口。
3. IPv4 配置
首先配置 ER6220T 联网。本次配置中,上联设备为桥接模式光猫,以 PPPoE 拨号为例。
3.1 ER6220T 路由器配置
3.1.1 物理连接及配置 IP
路由器出厂状态下 GE4 为 MGMT 口,且未开启 DHCP。首先用网线连接电脑网口和路由器 GE4,然后在 Windows 11 的 设置 → 网络和 Internet → 以太网 → IP 分配 中,将本机配置为:
IP: 192.168.1.2
Mask: 255.255.255.0
Gateway: 192.168.1.1
DNS: 192.168.1.1
3.1.2 进入管理页面
随后使用浏览器访问 192.168.1.1,设置初始用户名和密码后即可进入管理页面:

3.1.3 接口设置
点击左侧导航栏 基本设置 → 接口设置 进入接口设置界面。

3.1.3.1 网桥设置(可选)
如果希望将若干个 GE 口加入同一个 LAN 网桥,需要在这个阶段切换到横向标签页中的 网桥设置:

需要注意,这里的网桥设置只有在设备处于较初始的配置状态时才方便调整;如果已经修改了较多接口配置,后续再改网桥会比较麻烦。因为本次架构不需要将多个 LAN 口桥接,所以这里没有配置。
3.1.3.2 GE1 接口设置
这里将 GE1 作为上联光猫的拨号接口。选择物理接口 GE1,点击 新增。
接口类型 选择 PPPoE;接口名称 自定义(后期不方便修改);IP协议类型 先选择 IPv4(IPv6 后面再配置);用户名 和 密码 填写运营商提供的 PPPoE 账号密码。MTU 建议按运营商实际要求配置,PPPoE 常见值为 1492,部分环境也可能使用其他值。

添加完成后点击拨号按钮开始连接。成功后会显示已连接状态以及获取到的 IPv4 信息:

3.1.3.3 GE4 接口设置
这里将 GE4 作为下联 SG5428 的 IPv4 Transit 接口。选择物理接口 GE4,编辑已有接口:

配置如下:
连接方式:静态 IP
协议类型:IPv4
IP 地址:192.168.100.1
子网掩码:255.255.255.252 (/30)
MTU:默认因为 GE4 同时也是默认 MGMT 接口,所以 管理接口开启 保持默认勾选即可。

这里仅建立 ER6220T 与 SG5428 之间的三层 Transit 链路。SG5428 不做 NAT,因此不会新增一层 NAT。
3.1.4 NAT 设置
NAT 用于在 IPv4 网络中进行地址转换。常见的 NAPT(也称 PAT)除了转换 IP 地址外,还会结合端口号维护会话,因此可以让多台内网设备共享同一个公网 IPv4 地址访问互联网。
点击 传输控制 → NAT设置 → NAPT,本次配置添加如下 3 条 NAPT 规则:

这三条规则的作用分别是:
- Transit:指定
192.168.100.0/30网段的流量从WAN1_PPPoE接口访问互联网。 - NAT_Loopback:用于处理 NAT 回环(NAT Loopback / Hairpin NAT)。这里让
10.1.1.0/24内部客户端访问路由器自身公网映射地址时,能够重新转回内部服务器,并保证 NAT 会话的回程路径正确。 - Legacy:指定 Legacy 网段
10.1.1.0/24的流量从WAN1_PPPoE接口访问互联网。如果后续增加更多由 SG5428 承担三层网关的 VLAN,则需要按实际网段补充相应规则。
NAT 回环(NAT Loopback / Hairpin NAT)问题备注
在迁移已有服务的端口映射规则后,我遇到了一个比较典型的问题,记录一下
内网服务器为:
10.1.1.22:7500ER6220T 将公网的
7500端口映射到该服务器。此时:外网设备 → 公网IP:7500 → 可以正常访问但同一内网中的电脑访问:
公网IP:7500却无法连接,而直接访问:
10.1.1.22:7500是正常的。
原因是内网客户端访问自己的公网 IP 时,请求先到达 ER6220T,路由器需要根据端口映射执行 DNAT,将目标地址转换回内部服务器;同时还必须保证服务器的响应流量重新经过 ER6220T,以便正确恢复 NAT 会话。如果缺少 NAT Loopback / Hairpin NAT 处理,可能出现回程绕过 NAT 设备或 NAT 状态无法正确匹配,从而导致连接失败。
正常逻辑可以理解为:
内部客户端 ↓ 公网IP:7500 ↓ ER6220T(Hairpin NAT) ↓ 10.1.1.22:7500如果设备支持直接开启 NAT Loopback,可以直接开启;如果没有单独开关,则需要像本次配置一样手动补充对应的 NAPT 规则。
3.1.5 静态路由
静态路由用于告诉路由器:某个目标网段应该交给哪个下一跳设备处理。
因为 10.1.1.0/24 位于 SG5428 后面,所以 ER6220T 必须存在一条返回路由,类似:
Destination: 10.1.1.0/24
Next Hop: 192.168.100.2点击 传输控制 → 路由设置 → 静态路由,添加相应规则。如果下游交换机以后增加多个 VLAN,则每个网段都需要有对应的返回路由。

3.1.6 DNS 代理
ER6220T 的 DNS 代理可以作为内网客户端的统一 DNS 入口,并将查询转发到上游 DNS;同时也可以用于配置内网静态域名映射等功能。
本次配置中,SG5428 的 DHCP 地址池会把 192.168.100.1 下发为 DNS Server,因此客户端 DNS 查询路径大致为:
Client
↓ DNS Query
ER6220T 192.168.100.1
↓
上游 DNS点击 系统服务 → DNS代理 创建规则。其中,服务接口选择 LAN 侧接口,出接口选择互联网侧接口。

3.2 SG5428 交换机配置
当前 VLAN 规划如下:
| 业务类型 | VLAN | 网段 |
|---|---|---|
| Legacy | 256 | 10.1.1.0/24 |
目前只规划了一个业务 VLAN。1-8 号口主要下联 AP 或交换机,当前统一归入 Legacy;24 号口用于 IPv4 Transit 上联 ER6220T;23 号口预留给后面的 IPv6 二层链路。
3.2.1 物理连接及配置 IP
用网线连接电脑网口和交换机上任意一个暂时不会修改 VLAN 的接口,本次使用 22 号口。
然后在 Windows 的 网络和 Internet → 以太网 → IP 分配 中配置:
IP: 10.18.18.250
Mask: 255.255.255.0
Gateway: 10.18.18.251
DNS: 10.18.18.251
随后用浏览器打开 10.18.18.251,设置初始用户名和密码即可进入管理页面。
3.2.2 802.1Q VLAN 配置
进入 网络管理 → VLAN → 802.1Q VLAN → 端口配置:

选中 1-8 号口,点击 批量编辑,类型 设置为 TRUNK,以便后续这些端口下联可管理 AP 或交换机时继续扩展多个 VLAN;当前 所属VLAN 和 PVID 都填写 Legacy VLAN ID 256。

这里有几个概念:
PVID:用于决定端口收到的无标签帧默认归入哪个 VLAN。UNTAG:该 VLAN 的帧从端口发出时去掉 802.1Q Tag,适合普通终端或不理解 VLAN Tag 的设备。TAG:帧从端口发出时保留 VLAN Tag,适合管理型交换机、企业 AP 等需要一条链路承载多个 VLAN 的设备。
因此,即使端口类型配置为 TRUNK,也不代表所有流量都必须带 Tag。当前 Legacy VLAN 仍可以作为这些端口的 PVID / Native VLAN 使用。
如果后续增加多个 VLAN,所属VLAN 中可以按照界面要求填写多个 VLAN ID。
接下来切换到第 3 页,找到 24 号端口。该端口用于 IPv4 Transit,保持默认 VLAN 1 即可。23 号口留给后面的 IPv6 配置。
上述配置完成后,再切换到 802.1Q VLAN 页面,此时 VLAN 划分大致如下:

3.2.3 接口配置
点击 网络管理 → 接口配置。本次直接使用 VLAN 1 作为上联 ER6220T 的 Transit VLAN,所以先编辑 VLAN 1:
IP 地址模式:静态 IP
IP 地址:192.168.100.2
子网掩码:30 (255.255.255.252)
三层转发功能:启用
配置完成后保存。
然后新增各业务网段的 VLAN Interface。目前只有 Legacy:
接口类型:VLAN 接口
接口 ID:256
IP 地址模式:静态 IP
IP 地址:10.1.1.1
子网掩码:24 (255.255.255.0)
三层转发功能:启用
这里的 10.1.1.1 就是 Legacy VLAN 的 IPv4 默认网关。如果以后增加其他网段,也需要为对应 VLAN 创建各自的三层接口。
配置完成后如下:

部分 VLAN 接口显示“未连接”通常是因为当前没有对应端口处于 Up 状态,接入设备后状态会变为“已连接”。
3.2.4 DHCP 服务器
点击 网络管理 → DHCP → DHCP服务器,DHCP Server 默认关闭,需要先启用。
然后配置全局 DHCP 配置,Option 138 填写路由器 IP 地址 192.168.100.1,点击保存。

然后切换到 地址池 页面,点击 新增,为每个网段创建一个地址池。其中 DNS服务器 填写路由器 IP 地址 192.168.100.1,因为 ER6220T 上已经配置 DNS 代理服务。

3.2.5 静态路由
点击 网络管理 → 路由配置 → 静态路由,新增默认路由,使 SG5428 不认识的目标网络全部交给 ER6220T:
Destination: 0.0.0.0/0
Next Hop: 192.168.100.1
3.2.6 验证
至此 IPv4 部分基本配置完成。可以逐项检查光猫、路由器、交换机、下联交换机、客户端和 AP 的物理连接。
Legacy 网段客户端应满足:
IPv4 地址:10.1.1.x/24
默认网关:10.1.1.1
DNS: 192.168.100.1随后测试:
1. 能正常获取 DHCP 地址
2. 能 Ping 通 10.1.1.1
3. 能 Ping 通 192.168.100.1
4. 能访问公网 IPv4
5. 已配置的端口映射能够从外部网络访问4. IPv6 配置
IPv6 采用与 IPv4 不同的网络结构:由 ER6220T 直接负责 IPv6 WAN、前缀授权、RA / DHCPv6、默认网关以及公网防火墙;SG5428 在 IPv6 侧只负责最基础的二层交换。
4.1 ER6220T 路由器配置
4.1.1 接口设置
首先让 ER6220T 从上游运营商获取 IPv6 配置。
4.1.1.1 GE1 接口设置
在 基本设置 → 接口设置 中选择物理接口 GE1,编辑之前创建的 WAN1_PPPoE:
IP 协议类型:IPv6
状态:启用
复用 IPv4 拨号链路:启用
IPv6 地址获取协议:自动
前缀授权:开启IPv6 前缀授权即 Prefix Delegation(PD / 前缀委派)。是否支持以及实际下发的前缀长度取决于运营商和接入方式。

4.1.1.2 GE3 接口设置
在 基本设置 → 接口设置 中选择物理接口 GE3,编辑已有物理接口:
连接方式:静态 IP
IP 协议类型:IPv6
状态:启用
地址配置方式:EUI-64
前缀授权接口:WAN1_PPPoE保存后,ER6220T 会从 WAN 获得的授权前缀中为 GE3 生成一个 IPv6 地址。

4.1.2 DHCPv6 / SLAAC 配置
在 基本设置 → DHCP服务 中可以看到 DHCPv6 和 SLAAC 相关配置。
DHCPv6 和 SLAAC 并不完全等同于 IPv4 的 DHCP
RA(Router Advertisement):由路由器向终端通告 IPv6 前缀、默认路由等信息,是 IPv6 LAN 中非常核心的机制。SLAAC:终端根据 RA 中的/64前缀自动生成自己的 IPv6 地址。DHCPv6:可以进一步向终端分配 IPv6 地址或其他参数,但默认路由通常仍然依赖 RA 获取。
这里我选择 DHCPv6 用来分配地址,但客户端仍然需要能够正常收到 ER6220T 在 GE3 上发送的 RA。
点击 新增,服务接口 选择物理连接到交换机的接口 GE3,开始地址和结束地址会根据前缀自动填充,按实际需求保存即可。

4.1.3 IPv6 防火墙与访问控制
IPv6 与 IPv4 最大的安全差异之一是:IPv6 通常不依赖 NAT 隐藏内网地址。 内网客户端获得的是公网 IPv6 地址,因此公网能否主动访问内网设备,主要取决于防火墙策略。
在 ER6220T 路由器中的 IPv6 防火墙就只有一个开关,位于 安全管理->IPv6防火墙 中,接口一般选择那个通过前缀授权获取地址的 LAN 口,以避免下接设备遭受来自互联网的恶意攻击,这里就是 GE3。

但我打开这个 IPv6防火墙 后,发现把 ICMPv6 流量也给拦住了,照理说在 安全管理->访问控制 中添加一条放行 ICMPv6 的规则就行:

但在实际测试中发现,可能 TP-LINK 的“IPv6 防火墙”和“访问控制”属于两套相互独立的过滤层?
例如,我已经在上面“访问控制”中添加了一条允许 ICMPv6 的规则,但当“IPv6 防火墙”处于启用状态时,公网依然无法 Ping 通 LAN 侧设备的 IPv6 地址。
关闭“IPv6 防火墙”后,公网立即可以正常 Ping 通内网设备,所以我猜测啊:
访问控制允许 ICMPv6
!=
IPv6 防火墙会自动放行 ICMPv6ER6220T 在当前固件中的 IPv6 防火墙配置比较简单,只能选择是否启用以及作用接口,没有提供按地址、协议或端口进行细粒度放行的功能。
因此,如果启用 IPv6 防火墙,它会对公网主动访问 LAN 侧 IPv6 设备进行额外拦截,即使“访问控制”中已经存在允许规则,也仍然可能无法访问。
如果业务上需要公网主动访问某些 IPv6 服务,则只能考虑关闭这一层 IPv6 防火墙,再通过“访问控制”自行配置 IPv6 ACL,例如:
默认拒绝 WAN → LAN
按需允许:
ICMPv6
指定 IPv6 地址
指定 TCP / UDP 端口4.2 SG5428 交换机配置
使用网线连接 ER6220T 的 GE3 和 SG5428 的 23 号口,随后进入交换机管理界面。
4.2.1 VLAN 端口配置
进入 网络管理 → VLAN → 802.1Q VLAN → 端口配置,切换到第 3 页,找到 23 号端口并编辑,将其归入 Legacy VLAN 256。
由于 ER6220T GE3 与 Legacy 网络之间这里只承载一个 VLAN,因此该链路按普通 UNTAG / Access 方式处理即可,不需要额外携带多个 802.1Q Tag。

随后可以临时进入 802.1Q VLAN 页面,选择 Legacy 后面的 VLAN接口,展开 IPv6基本配置:
IPv6 功能:启用
链路本地地址配置方式:自动
使用 RA 消息进行全球地址自动配置:启用
DHCPv6 获取全球地址:启用保存后重新进入,如果 系统当前 IPv6 全球地址列表 中能够看到来自 ER6220T 前缀的 IPv6 地址,就说明 ER6220T GE3 发出的 RA / DHCPv6 信息已经能够经过 VLAN256 正常到达 SG5428。

完成这个验证后,可以再次关闭 SG5428 VLAN256 接口自身的 IPv6 功能。
关闭这里的 IPv6 三层接口,并不会影响 SG5428 对 IPv6 数据帧的二层交换。 换句话说,SG5428 自己不再充当 IPv6 网关,但客户端与 ER6220T 之间的 IPv6 Ethernet Frame 仍然可以正常通过 VLAN256 转发。
4.2.2 验证
至此 IPv6 基本配置完成。Legacy 网络内的客户端应该能够自动获得全球 IPv6 地址。
Windows 可以使用:
ipconfigLinux 可以使用:
ip -6 addr
ip -6 route客户端应至少看到:
全球 IPv6 地址:240e:.../64
IPv6 默认网关:fe80::...其中默认网关显示为 fe80:: 开头的链路本地地址是正常现象,IPv6 默认路由通常就是通过 RA 指向路由器的 Link-Local 地址。
随后可以继续测试:
1. ping -6 一个公网 IPv6 地址
2. 使用浏览器访问支持 IPv6 的网站
3. 使用 curl -6 检查出口 IPv6
4. 从外部 IPv6 网络验证默认无法主动访问内网客户端
5. 如果单独放行了服务器端口,再验证该 IPv6 服务是否可以从公网访问5. 总结
这次改造我是根据现有设备、运营商前缀和下游网络现状分别选择了更容易维护的方式:
IPv4:ER6220T 出口 + SG5428 三层网关
IPv6:ER6220T 直接作为网关 + SG5428 二层转发所以也可能有更合适你的网络的配置方式,不一定非要按照我这种结构。
这次整个配置过程中,有以下几个我觉得可以记录的点:
- Transit 网段只是三层设备之间的互联网络,本身不等于新增一层 NAT。
- SG5428 可以承担 DHCP、VLAN Gateway 和内网三层转发,ER6220T 则专注于公网出口、NAT 和防火墙。
- 存量网络中如果存在大量非网管交换机和普通 AP,先保留 Legacy VLAN,再逐步迁移通常比一次性重构更稳妥。
- 802.1Q 中
TAG / UNTAG / PVID分别解决不同方向和不同设备的 VLAN 识别问题,不能只看端口类型名称判断。 - 公网端口映射正常,但内网访问自身公网 IP 失败时,需要重点检查 NAT Loopback / Hairpin NAT。
- IPv6 普通 LAN 通常应以
/64为基本子网单位,不能沿用 IPv4“继续往小了切”的地址规划思路。 - IPv4 与 IPv6 可以使用不同的默认网关,只要各自的路由路径是完整的。
- IPv6 没有依赖 NAT 提供入站隔离,公网访问控制必须认真配置防火墙。
目前只配置了一个 Legacy VLAN,后续等下游 AP 和交换机逐步升级后,再继续拆分 Office、Server、IoT、Guest、Management 等 VLAN,并进一步完善 ACL 和 IPv6 多网段规划。
参考文档:
ER7520G、ER8820T系列企业路由器基本设置指南 - TP-LINK商用网络