Oamc

路由器做出口网关配置:NAT、DHCP 与回程路由 · 修改记录

这是 network/路由器做出口网关配置.md 的改动记录。后台每次保存都会留一份快照, 这里显示的是快照之间的差异,不会混入其他文章的改动。

还没有后台修改记录。

Git 提交记录

下面是 Git 里的提交,可能包含其他文章的改动(因为一次提交会带上工作区所有变化)。

#1 2026-11-08 +150 −0 docs: 新增 6 篇配置案例(交换机/路由器/防火墙) 3f7e8b6
 @@ -0,0 +1,150 @@
+---
+tags: [路由器, NAT, DHCP, 出口, 静态路由]
+order: 160
+---
+
+# 路由器做出口网关配置:NAT、DHCP 与回程路由
+
+## 场景
+
+一条宽带进办公室,路由器要一口气把出口的活全干了:拨号/静态地址、给内网发地址、让内网上网(NAT)、再把内网多网段的路由理顺。这篇是完整的一套,缺一样就有一半机器上不了网。
+
+## 前置条件
+
+- 运营商给的接入方式:PPPoE 账号密码,或者静态 IP + 网关 + 掩码
+- 规划好内网网段,例:办公 `192.168.10.0/24`,服务器 `192.168.20.0/24`
+- 路由器接口够用(不够就先上三层交换机做 VLAN,路由器只做出口,见「坑」)
+- 内网如果有三层设备,它的网段和互联地址要提前定好
+
+## 配置
+
+**华为 AR 系列:**
+
+```bash
+system-view
+sysname RT-Edge
+
+# 外网口(静态地址;PPPoE 见下面「坑」)
+interface GigabitEthernet0/0/0
+ ip address 1.2.3.4 255.255.255.0
+ quit
+ip route-static 0.0.0.0 0.0.0.0 1.2.3.1
+
+# 内网口
+interface GigabitEthernet0/0/1
+ ip address 192.168.10.1 255.255.255.0
+ quit
+
+# NAT:哪些网段允许上网
+acl 2000
+ rule 5 permit source 192.168.10.0 0.0.0.255
+ rule 10 permit source 192.168.20.0 0.0.0.255
+ quit
+interface GigabitEthernet0/0/0
+ nat outbound 2000
+ quit
+
+# DHCP:给办公网发地址
+dhcp enable
+ip pool office
+ network 192.168.10.0 mask 255.255.255.0
+ gateway-list 192.168.10.1
+ dns-list 223.5.5.5 114.114.114.114
+ excluded-ip-address 192.168.10.1 192.168.10.20
+ lease day 7
+ quit
+interface GigabitEthernet0/0/1
+ dhcp select global
+ quit
+
+# 回程路由:内网还有别的网段,指给三层交换机
+ip route-static 192.168.20.0 255.255.255.0 192.168.10.254
+
+# DNS 代理解析(可选,让内网直接用路由器当 DNS)
+dns resolve
+dns proxy enable
+
+save
+```
+
+**H3C(Comware V7):**
+
+```bash
+system-view
+sysname RT-Edge
+
+interface GigabitEthernet0/0
+ ip address 1.2.3.4 24
+ quit
+ip route-static 0.0.0.0 0 1.2.3.1
+
+interface GigabitEthernet0/1
+ ip address 192.168.10.1 24
+ quit
+
+acl basic 2000
+ rule 5 permit source 192.168.10.0 0.0.0.255
+ rule 10 permit source 192.168.20.0 0.0.0.255
+ quit
+interface GigabitEthernet0/0
+ nat outbound 2000
+ quit
+
+dhcp enable
+dhcp server ip-pool office
+ network 192.168.10.0 mask 255.255.255.0
+ gateway-list 192.168.10.1
+ dns-list 223.5.5.5 114.114.114.114
+ forbidden-ip 192.168.10.1 192.168.10.20
+ quit
+interface GigabitEthernet0/1
+ dhcp select server
+ quit
+
+ip route-static 192.168.20.0 24 192.168.10.254
+
+dns proxy enable
+
+save force
+```
+
+## 验证
+
+```bash
+display ip interface brief         # 内外网口地址都对
+display ip routing-table           # 默认路由指向运营商网关
+display nat outbound               # NAT 规则挂在外网口
+display dhcp server ip-in-use      # 内网机器拿到地址了
+display nat session table          # 有人上网时能看到会话
+ping -a 192.168.10.1 223.5.5.5     # 用内网口作源 ping 外网
+```
+
+从一台内网电脑依次测:`ping 192.168.10.1` → `ping 1.2.3.1` → `ping 223.5.5.5` → `nslookup baidu.com`。
+
+哪一步断,问题就在哪一层,别一上来就怀疑 NAT。
+
+## 回滚
+
+```bash
+undo nat outbound 2000             # 先撤 NAT
+undo ip pool office                # 撤地址池
+undo dhcp enable
+undo ip route-static 0.0.0.0 0.0.0.0 1.2.3.1
+```
+
+断开外网线是最快的止损,内网互通不受影响。
+
+## 坑
+
+!!! note "内网多网段,最容易漏的是回程路由"
+    路由器只认得直连的 `192.168.10.0/24`。如果服务器网段 `192.168.20.0/24` 挂在三层交换机下面,
+    路由器必须有 `ip route-static 192.168.20.0 ... 192.168.10.254`,
+    三层交换机也要有指回路由器的默认路由。**两边都配,缺一边就是单向不通。**
+
+- NAT 的 ACL 只写内网网段,**不要**把外网地址写进去,会把自己 NAT 掉。
+- `excluded-ip-address` / `forbidden-ip` 要避开服务器、打印机、AP 这些自己配了静态地址的设备,不然会撞地址。
+- PPPoE 接入时外网口用 `dialer` 或 `pppoe-client`,不能直接配 IP,命令和静态接入完全不同。
+- 改 DNS 之前先确认运营商有没有劫持;内网用 `223.5.5.5` 这类公共 DNS 比用运营商 DNS 稳。
+- 会话表满了新连接会失败:`display nat session table` 数量接近上限时,看是不是有人在扫内网。
+- 双出口时默认路由只留一条,另一条用策略路由分流,不然会来回切(见 [策略路由(PBR)](策略路由(PBR).md))。
+- 路由器接口不够时,正确做法是**三层交换机做 VLAN 间路由 + 路由器只做出口**,把 `192.168.10.0/24` 这类网段都放到交换机上,路由器只需要一条回程静态路由。