您的位置:首页 > 其它

在思科路由器上针对ADSL动态IP做端口映射(NAT)

2015-02-02 14:25 399 查看
几年前拿的网络工程师证,但后来一直从事软件开发,思科的好多命令都忘了。今天早上一来,有同事求救,说要发布一台服务器供第三方做联调测试,需要在路由器上做端口映射。

现在的情况是,本来昨天在路由器上都做好了设置,第三方公司也能访问我们的服务,但今天一来,人家说服务访问不了。原来是ADSL动态IP地址惹的祸,因为路由器今天重新从ISP哪里获取了一个新的IP地址。路由器的公网IP地址都变了,对应的nat策略也就失效了。

我看了同事在路由器上做的nat策略,仔细分析了一下,他使用的命令格式为:

ip nat inside source static protocol local-address local-port global-address global-port [permit-inside]

参数说明:

local-address:内部本地地址。是主机在网络内部的IP地址,一般是未注册的私有地址。
global-address:内部全局地址。是内部主机在外部网络表现出的地址,一般是注册的合法公网IP地址。
protocol:协议。可以是 TCP 或 UDP。
local-port:本地地址的服务端口号。
global-port:全局地址的服务端口号,它可以和local-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 *


然后再执行删除。不过该操作会造成整个网络短暂掉线。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: