路由器做出口网关配置: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这类网段都放到交换机上,路由器只需要一条回程静态路由。