Oamc

路由器做出口网关配置:NAT、DHCP 与回程路由

本页目录

场景

一条宽带进办公室,路由器要一口气把出口的活全干了:拨号/静态地址、给内网发地址、让内网上网(NAT)、再把内网多网段的路由理顺。这篇是完整的一套,缺一样就有一半机器上不了网。

前置条件

  • 运营商给的接入方式:PPPoE 账号密码,或者静态 IP + 网关 + 掩码
  • 规划好内网网段,例:办公 192.168.10.0/24,服务器 192.168.20.0/24
  • 路由器接口够用(不够就先上三层交换机做 VLAN,路由器只做出口,见「坑」)
  • 内网如果有三层设备,它的网段和互联地址要提前定好

配置

华为 AR 系列:

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):

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

验证

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。

回滚

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

断开外网线是最快的止损,内网互通不受影响。

坑

内网多网段,最容易漏的是回程路由

路由器只认得直连的 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))。
  • 路由器接口不够时,正确做法是三层交换机做 VLAN 间路由 + 路由器只做出口,把 192.168.10.0/24 这类网段都放到交换机上,路由器只需要一条回程静态路由。