Cisco路由器ip nat命令

Cisco路由器ip nat命令
Cisco路由器ip nat命令 ip natip nat inside destination ip nat inside source list ip nat inside source static ip nat outside source list ip nat outside source static ip nat pool ip nat translation  ip nat 语法:  ip nat {inside | outside}  no ip nat {inside | outside}  本命令用于设置应用NAT的内网和外网的接口。使用 no 选项可使接口不再应用NAT。  参数: inside:表示该接口连接内部网络。  outside:表示该接口连接外部网络。  缺省值:接口上没有应用NAT。  命令模式:接口配置模式。  说明:数据包只有在 outside 接口和 inside 接口之间路由时,并且符合一定规则的,才会进行NAT转换。所以实现NAT的路由器必须配置至少一个 outside 接口和一个 inside 接口,也可配置多个。  范例:  Router(config)#interface f0/0Router(config-if)#ip address 192.168.10.1 255.255.255.0Router(config-if)#ip nat insideRouter(config-if)#no shutdownRouter(config-if)#interface f0/1Router(config-if)#ip address 200.19.12.17 255.255.255.0Router(config-if)#ip nat outsideRouter(config-if)#no shutdown 本例路由器的 fastethernet 0/0 连接的是内网,被定义为 inside 接口, fastethernet 0/1 连接的是外网,被定义为 outside 接口。 相关命令: show ip nat statistics 查看NAT统计数据和规则,包括inside和outside接口 ip nat inside destination 语法: ip nat inside destination list access-list-number pool pool-name no ip nat inside destination list access-list-number pool pool-name 启用NAT内部目标地址转换。使用 no 选项可关闭NAT内部目标地址转换。 参数: access-list-number:访问控制列表的表号。它指定由哪个访问控制列表来定义目标地址的规则。 pool-name:IP地址池名字。该地址池定义了用于NAT转换的内部本地地址。 缺省值:没有启用NAT内部目标地址转换。 命令模式:全局配置模式。 说明:NAT内部目标地址转换可用于实现TCP负载均衡,你可以用一台虚拟主机代替多台实际主机接收用户的TCP请求,由NAT把这些请求轮流映射到各个实际主机上,达到负载分流的目的。 配置TCP负载均衡时,访问控制列表定义的是虚拟主机的地址,IP地址池中定义的是各台实际主机的地址。 范例: Router(config)#ip nat pool np 192.168.1.1 192.168.1.3 netmask 255.255.255.0 type rotaryRouter(config)#access-list 1 permit 60.8.1.1 0.0.0.0Router(config)#ip nat inside destination list 1 pool np 本例定义了一个TCP负载均衡,虚拟主机地址为60.8.1.1,由access-list 1定义,实际主机地址为192.168.1.1~192.168.1.3,由地址池np定义。 相关命令: ip nat pool 创建一个NAT地址池access-list 定义访问控制列表 ip nat inside source list 语法: ip nat inside source list access-list-number {pool pool-name | interface interface-id} [overload] no ip nat inside source list access-list-number 启用内部源地址转换的动态NAT。使用 no 选项可关闭该动态NAT。 参数: access-list-number:访问控制列表的表号。它指定由哪个访问控制列表来定义源地址的规则。 pool-name:IP地址池名字。该地址池定义了用于NAT转换的内部全局地址。 interface-id:接口号。指定用该接口的IP地址作为内部全局地址。 overload:启用端口复用,使每个全局地址可以和多个本地地址建立映射。 缺省值:没有启用NAT。 命令模式:全局配置模式。 说明:在锐捷路由器中,端口复用默认是启用的,有没有overload关键字都是一样的,保留这个参数是为了和Cisco的命令兼容。 配置内部源地址的动态NAT时,访问控制列表定义的是内部本地地址的规则,IP地址池中定义的是内部全局地址,它通常是注册的合法地址。 范例1: Router(config)#ip nat pool np 200.10.10.1 200.10.10.9 netmask 255.255.255.0Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255Router(config)#access-list 1 permit 172.16.0.0 0.0.255.255Router(config)#ip nat inside source list 1 pool np overload 本例定义了一个内部源地址动态NAT,内部本地地址为192.168.1.*和172.16.*.*的格式,由access-list 1定义,只有这两种地址才会进行NAT转换。内部全局地址为200.10.10.1~200.10.10.9,共9个地址,由地址池np定义。每个全局地址都可以和多个本地地址建立映射,用端口号区分各个映射。 范例2: Router(config)#access-list 1 permit 192.168.0.0 0.0.255.255Router(config)#ip nat inside source list 1 interface s1/0 overload 本例定义了一个内部源地址动态NAT,内部本地地址为192.168.*.*的格式,由access-list 1定义。内部全局地址为 Serial 1/0 的IP地址。所有本地地址都会映射为这一个IP地址,用端口号区分各个映射。 相关命令: ip nat pool 创建一个NAT地址池access-list 定义访问控制列表 ip nat inside source static 语法: ip nat inside source static local-address global-address [permit-inside] no ip nat inside source static local-address global-address [permit-inside] ip nat inside source static protocol local-address local-port global-address global-port [permit-inside] no ip nat inside source static protocol local-address local-port global-address global-port [permit-inside] 启用内部源地址转换的静态NAT。使用 no 选项可删除该静态NAT。 参数: local-address:内部本地地址。是主机在网络内部的IP地址,一般是未注册的私有地址。 global-address:内部全局地址。是内部主机在外部网络表现出的地址,一般是注册的合法地址。 protocol:协议。可以是 TCP 或 UDP。 local-port:本地地址的服务端口号。 global-port:全局地址的服务端口号,它可以和local-port不同。 permit-inside:允许内部用户使用全局地址访问本地主机。 缺省值:没有启用NAT。 命令模式:全局配置模式。 说明:静态NAT主要用于那些对需要对外部用户开放的服务,如Web服务器等,它可以把本地地址映射为指定的全局地址。 第一种格式实现的是一对一的NAT映射。第二种格式可实现一对多的映射,即一个全局地址可映射多个内部地址,用端口号区分各个映射。 范例1: Router(config)#ip nat inside source static 192.168.1.6 200.10.10.2 本例定义了一个内部源地址静态NAT,内部本地地址为192.168.1.6,内部全局地址为200.10.10.2。外网用户只能用200.10.10.2访问这台主机,内网用户只能用192.168.1.6访问这台主机,如果加上permit-inside关键字,内网用户也能用200.10.10.2访问。 范例2: Router(config)#ip nat inside source static tcp 192.168.1.6 80 200.10.10.2 80Router(config)#ip nat inside source static tcp 192.168.1.8 80 200.10.10.2 8080 本例定义了两个内部源地址静态NAT,两个服务都是Web服务,内网用户可以用http://192.168.1.6和http://192.168.1.8访问这两个网站,外网用户需要用http://200.10.10.2和http://200.10.10.2:8080访问这两个网站。 ip nat outside source list 语法: ip nat outside source list access-list-number pool pool-name no ip nat outside source list access-list-number 启用外部源地址转换的动态NAT。使用 no 选项可关闭该动态NAT。 参数: access-list-number:访问控制列表的表号。它指定由哪个访问控制列表来定义源地址的规则。 pool-name:IP地址池名字。该地址池定义了用于NAT转换的外部本地地址。 缺省值:没有启用NAT。 命令模式:全局配置模式。 说明:外部源地址NAT用于有地址重叠的情况。当两个需要互访的私有网络使用了同样的IP地址,或一个私有网络和公有网络使用了同样的IP地址,则产生地址重叠。这时需要把外部全局地址映射为一个本地没有的外部本地地址才能实现互访。 配置外部源地址的动态NAT时,访问控制列表定义的是外部全局地址的格式,IP地址池中定义的是外部本地地址,它应该和内部本地地址没有重叠。 范例: Router(config)#ip nat pool outp 172.18.1.1 172.18.1.254 netmask 255.255.255.0Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255Router(config)#ip nat outside source list 1 pool outp 本例定义了一个外部源地址动态NAT,外部全局地址为192.168.1.*的格式,由access-list 1定义,它和内部地址有重叠。外部本地地址为172.18.1.1~172.18.1.254,由地址池outp定义,这组地址是内部网络中不使用的可路由地址。当从外部来的数据包,源地址是192.168.1.*的格式时,用172.18.1.*的地址替换,再进入内部网络。 相关命令: ip nat pool 创建一个NAT地址池access-list 定义访问控制列表 ip nat outside source static 语法: ip nat outside source static global-address local-address no ip nat outside source static global-address local-address ip nat outside source static protocol global-address global-port local-address local-port no ip nat outside source static protocol global-address global-port local-address local-port 启用外部源地址转换的静态NAT。使用 no 选项可删除该静态NAT。 参数: global-address:外部全局地址。是外部主机在外部网络的地址。 local-address:外部本地地址。是外部主机在网络内部表现的IP地址。 protocol:协议。可以是 TCP 或 UDP。 global-port:外部全局地址的服务端口号。 local-port:外部本地地址的服务端口号,它可以和global-port不同。 缺省值:没有启用NAT。 命令模式:全局配置模式。 说明:外部源地址静态NAT用于有地址重叠的情况。第一种格式实现的是一对一的NAT映射。第二种格式可实现一对多的映射,即一个本地地址可映射多个全局地址,用端口号区分各个映射。 范例: Router(config)#ip nat outside source static 192.168.1.1 172.18.1.6 本例定义了一个外部源地址静态NAT,外部全局地址为192.168.1.1,外部本地地址为172.18.1.6。当从外部来的数据包,源地址是192.168.1.1时,用172.18.1.6的地址替换,再进入内部网络。 ip nat pool 语法: ip nat pool pool-name start-address end-address {netmask subnet-mask|prefix-length prefix-length} [type rotary] ip nat pool pool-name {netmask subnet-mask|prefix-length prefix-length} [type rotary] no ip nat pool pool-name 定义一个IP地址池。使用 no 选项可删除地址池。 参数: pool-name:地址池名字。在动态NAT配置命令中用这个名字引用地址池。 start-address:地址块起始IP地址。 end-address:地址块结束IP地址。 subnet-mask:地址块的子网掩码。 prefix-length:使用长度表示的掩码,是掩码的简化写法。 type rotary:表示定义为轮转型地址池,每个地址分配的概率相等。锐捷路由器默认的地址池类型就是轮转型,所以有没有 rotary 关键字都一样,保留此关键字是为了和 Cisco 命令兼容。 缺省值:没有定义地址池。 命令模式:全局配置模式。 说明:第一种格式定义了一个包含地址块的地址池。第二种格式定义的是一个空地址池,之后可以用 address 命令向其中添加一个或多个地址块。 范例1: Router(config)#ip nat pool np1 200.10.10.1 200.10.10.9 netmask 255.255.255.0 本例定义了一个名为 np 的地址池,地址范围是 200.10.10.1~200.10.10.9,掩码是 255.255.255.0。 范例2: Router(config)#ip nat pool np2 200.10.10.1 200.10.10.9 prefix-length 24 本例定义的地址池和例1完全相同,只是掩码用的是长度写法。 范例3: Router(config)#ip nat pool np3 netmask 255.255.255.0Router(config)#address 200.10.10.1 200.10.10.9Router(config)#address 201.15.8.17 201.15.8.25 本例先定义了一个空地址池,再用 addess 命令向其中加入了两个地址块。 相关命令: addess 向NAT地址池中添加地址  ip nat translation 语法: ip nat translation 参数名 参数值 no ip nat translation 参数名 配置NAT转换记录的超时时间和转换记录条数限制。使用 no 选项可恢复缺省配置。 该命令有多种用法: ip nat translation dns-timeout seconds 定义DNS转换记录的超时时间,单位为秒。缺省值为 60 秒。 ip nat translation finrst-timeout seconds 定义TCP连接FIN及RESET后转换记录的超时时间,单位为秒。缺省值为 60 秒。 ip nat translation icmp-timeout seconds 定义ICMP转换记录的超时时间,单位为秒。缺省值为 60 秒。 ip nat translation syn-timeout seconds 定义TCP发出syn后没有收到应答的超时时间,单位为秒。缺省值为 60 秒。 ip nat translation tcp-timeout seconds 定义TCP连接转换记录的超时时间,单位为秒。缺省值为 1 天。 ip nat translation udp-timeout seconds 定义UDP连接转换记录的超时时间,单位为秒。缺省值为 300 秒。 ip nat translation max-entries number 定义NAT转换记录的最大个数。缺省为 30000 条。 ip nat translation pre-user user-ip [number] 指定内网某个用户所允许的最大转换记录数。user-ip时用户的IP地址,如果为 0.0.0.0,则内网所有用户使用相同的条数限制。具体IP的配置优先级高于 0.0.0.0 的配置。如果user-ip后没有给出具体数值,则为300条。缺省情况下,不做限制。 命令模式:全局配置模式。 范例1: Router(config)#ip nat translation pre-user 0.0.0.0 500Router(config)#ip nat translation pre-user 192.168.5.112 1000 本例对内网用户转换记录条数做了限制,用户192.168.5.112限制为1000条,其他用户统一限制为500条。 范例2: Router(config)#ip nat translation icmp-timeout 30 本例把ICMP的NAT转换记录的超时时间设置为30秒。 if you have two different ISP, each have their own public address, for server 10.1.1.1 can have different public address. if you do not use ext option: Router(config)#ip nat inside source static 10.1.1.1 135.1.1.1Router(config)#ip nat inside source static 10.1.1.1 168.1.1.1% 10.1.1.1 already mapped (10.1.1.1 -> 135.1.1.1) if use "ext" option Router(config)#no ip nat inside source static 10.1.1.1 135.1.1.1Router(config)#ip nat inside source static 10.1.1.1 135.1.1.1 extRouter(config)#ip nat inside source static 10.1.1.1 168.1.1.1 extRouter(config)#do sh ip nat transPro Inside global Inside local Outside local Outside global--- 135.1.1.1 10.1.1.1 --- ------ 168.1.1.1 10.1.1.1 --- ---[plain]  

推荐阅读