CISCO IP nat 常用命令及原理详解(转发1) - bw_0927

时间:2024-03-07 12:12:20
CISCO IP nat 常用命令及原理详解

语法:

ip nat {inside | outside}

no ip nat {inside | outside}

本命令用于设置应用NAT的内网和外网的接口。使用 no 选项可使接口不再应用NAT。

参数:

inside:表示该接口连接内部网络。

outside:表示该接口连接外部网络。

缺省值:接口上没有应用NAT。

命令模式:接口配置模式。

说明:数据包只有在 outside 接口和 inside 接口之间路由时,并且符合一定规则的,才会进行NAT转换。所以实现NAT的路由器必须配置至少一个 outside 接口和一个 inside 接口,也可配置多个。

范例:

Ruijie(config)#interface f0/0Ruijie(config-if)#ip address 192.168.10.1 255.255.255.0Ruijie(config-if)#ip nat insideRuijie(config-if)#no shutdownRuijie(config-if)#interface f0/1Ruijie(config-if)#ip address 200.19.12.17 255.255.255.0Ruijie(config-if)#ip nat outsideRuijie(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地址池中定义的是各台实际主机的地址。

范例:

Ruijie(config)#ip nat pool np 192.168.1.1 192.168.1.3 netmask 255.255.255.0 type rotaryRuijie(config)#access-list 1 permit 60.8.1.1 0.0.0.0Ruijie(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,以使多个地址同时通过一个nat地址来通信,如果不加此命令则一个时间片内只有一条内部地址可以通信。此命令在nat地址下加子接口。

缺省值:没有启用NAT。

命令模式:全局配置模式。

说明:在锐捷路由器中,端口复用默认是启用的,有没有overload关键字都是一样的,保留这个参数是为了和Cisco的命令兼容。

配置内部源地址的动态NAT时,访问控制列表定义的是内部本地地址的规则,IP地址池中定义的是内部全局地址,它通常是注册的合法地址。

范例1:

Ruijie(config)#ip nat pool np 200.10.10.1 200.10.10.9 netmask 255.255.255.0Ruijie(config)#access-list 1 permit 192.168.1.0 0.0.0.255Ruijie(config)#access-list 1 permit 172.16.0.0 0.0.255.255Ruijie(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:

Ruijie(config)#access-list 1 permit 192.168.0.0 0.0.255.255Ruijie(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:允许内部用户使用全局地址访问本地主机