几年前拿的网络工程师证,但后来一直从事软件开发,思科的好多命令都忘了。今天早上一来,有同事求救,说要发布一台服务器供第三方做联调测试,需要在路由器上做端口映射。
现在的情况是,本来昨天在路由器上都做好了设置,第三方公司也能访问我们的服务,但今天一来,人家说服务访问不了。原来是ADSL动态IP地址惹的祸,因为路由器今天重新从ISP哪里获取了一个新的IP地址。路由器的公网IP地址都变了,对应的nat策略也就失效了。
我看了同事在路由器上做的nat策略,仔细分析了一下,他使用的命令格式为:
ip nat inside source static protocol local-address local-port global-address global-port [permit-inside]
参数说明:
按道理,按照上述命令格式来配置端口转换,是没有错误的。但是同事忽略了一点,我们的路由器是使用ADSL拨号的,IP地址随时都会发生改变,配置时,他将global-address写死了一个固定IP地址,这也就导致了路由器重新获取IP地址后端口转换失效,贴出同事的nat配置:
ip nat inside source static tcp 10.10.49.180 80 14.153.20.47 10000
要解决这个问题,分两步:
1、确定路由器上的wan口名称
R2800-zuoyue-jifang# show running-config interface Loopback0 ip address 10.10.100.2 255.255.255.255 ip ospf network point-to-point ! interface GigabitEthernet0/0 no ip address ip nat enable ip virtual-reassembly duplex auto speed auto pppoe enable group global pppoe-client dial-pool-number 1 ! interface GigabitEthernet0/1 ip address 10.10.39.10 255.255.255.248 ip access-group qq in ip nat inside ip nat enable ip virtual-reassembly duplex auto speed auto ! interface Dialer100 mtu 1492 ip address negotiated ip nat outside ip virtual-reassembly encapsulation ppp dialer pool 1 dialer-group 1 ppp authentication pap callin ppp pap sent-username ****** ******
找到了wan口名称是“interface Dialer100”。
2、global-address不在写成固定ip地址,以wan口名代替
ip nat inside source static tcp 10.10.49.180 80 interface Dialer100 10000
这样就不怕路由器的IP地址经常改变了,nat策略也一直生效。
最后,提供在路由器上不能清除nat测试的方法,例如:
no ip nat inside source static tcp 10.10.49.180 80 interface Dialer100 10000
会报“%Static entry in use, cannot remove”错误,解决的方法是:
R2800-zuoyue-jifang# clear ip nat translation *
然后再执行删除。不过该操作会造成整个网络短暂掉线。