CISCO NAT 经典 配置 合集 网络学习 2009-05-20 13:43 阅读 228 评论 1 字号: 大 大 中 中 小 小 ip nat inside source Translates the source of IP packets that are traveling inside to outside. Translates the destination of the IP packets that ar
CISCO NAT 经典配置合集
网络学习 2009-05-20 13:43 阅读
字号: 大大 中中 小小
ip nat inside source
Translates the source of IP packets that are traveling inside to outside.
Translates the destination of the IP packets that are traveling outside to inside.
ip nat outside source
Translates the source of the IP packets that are traveling outside to inside.
Translates the destination of the IP packets that are traveling inside to outside.
ip nat inside destination
Translates the destination of IP packets that are traveling inside to outside.
Translates the source of the IP packets that are traveling outside to inside.
ip nat outside destination
Translates the destination of the IP packets that are traveling outside to inside.
Translates the source of the IP packets that are traveling inside to outside.
ip nat inside 是对配置了ip nat inside的接口的数据包进行nat转换,相应的ip nat outside是对配置了ip nat outside的接口的数据包进行nat转换。
而source和destination是对数据包的源地址活着目的地址进行转换。
NAT基础知识
● NAT简介
NAT(Network Address Translation)的功能,就是指在一个网络内部,根据需要可以随意自定义的IP地址,而不需要经过申请。在网络内部,各计算机间通过内部的IP地址进行通讯。而当内部的计算机要与外部internet网络进行通讯时,具有NAT功能的设备(比如:路由器)负责将其内部的IP地址转换为合法的IP地址(即经过申请的IP地址)进行通信。
● NAT 的应用环境:
情况1:一个企业不想让外部网络用户知道自己的网络内部结构,可以通过NAT将内部网络与外部Internet 隔离开,则外部用户根本不知道通过NAT设置的内部IP地址。
CISCO NAT经典基础配置
● 全部采用端口:ISP分配的IP202.99.160.129
interface fastethernet0/0 ip address 192.168.1.1 255.255.255.0 duplex auto speed auto in nat inside no shutdown interface fastethernet0/1 ip address 192.168.2..1 255.255.255.0 duplex auto speed auto in nat outside no shutdown ip nat pool OnlyYou 202.99.160.130 202.99.160.130 netmask 255.255.255.252 //OnlyYou代表地址池的名称。 2个202.99.160.130是代表只用一个ip做转换后ip. access-list 1 permit 192.168.1.0 0.0.0.255 access-list 1 permit 192.168.2.0 0.0.0.255 ip nat inside source list1 pool OnlyYou overload |
● 动态地址转换+端口:ISP分配的IP 有:202.99.160.130~190 255.255.255.192
Interface fastethernet0/1 Ip address 192.168.1.1 255.255.255.0 Ip address 192.168.2.1 255.255.255.0 secondary Duplex auto Speed auto Ip nat inside No shutdown Interface serial 0/0 Ip address 202.99.160.129 255.255.255.192 Duplex auto Speed auto Ip nat outside No shutdwon Ip nat pool OutPort 202.99.160.190 202.99.160.190 netmask 255.255.255.192 Ip nat pool OutPool 202.99.160.130 202.99.160.190 netmask 255.255.255.192 Ip nat inside source list1 pool OutPort //192.168.1.0段主机全部转成202.99.160.190 Ip nat inside source list2 pool OutPool //出于访问ftp站点等考虑:192.168.2.0和192.168.3.0段主机全部 //转成202.99.160.130到202.99.160.189中的所有地址。 Access-list1 permit 192.168.1.0 0.0.0.255 Access-list2 permit 192.168.2.0 0.0.0.255 Access-list2 permit 192.168.3.0 0.0.0.255 |
● 静态地址转换:ISP分配的IP地址是:211.82.220.80~211.82.220.87、211.82.220.81 255.255.255.248。要求Intranet上的Web.E-mail.Ftp.Media可以被外部访问。
Interface fastethernet0/0 Interface fastethernet0/1 Ip nat pool Outpool 211.82.220.86 211.82.20.86 netmask 255.255.255.248 |
● NAT映射:如果ISP提供的IP地址比较多还可以,但如果不是的时候(如就两个时),一个用于内网地址转换,另一个用于对外网提供服务。ISP提供的内网上网IP。
Interface ethernet0 |
● 利用地址转换实现负载均衡:当有如象腾讯公司似的多服务器时,使用路由器实现负载平衡,可以使它们有平等的访问机会.
Interface fastethernet0/1 |
示例3
在本例中,公司使用一台具有两个接口的路由器,分别是以太网和串行接口。Ethernet0连接到内部网络,而串行接口则通过点到点协议(PPP)链路连接到ISP路由器。在内部网络中,公司使用的地址来自地址空间10.0.0.0/24,该地址空间在Internet上是不可路由的。公司自己使用IP地址范围171.100.1.0/24。到ISP的PPP链路使用来自198.50.1.0/30子网的地址。公司希望在路由器上配置合适的命令,以便内部用户可以通过使用有效的、全局可路由的地址访问Internet。这些地址应该是来自ISP所提供的地址空间171.100.1.0/24。我们打算与上游的ISP路由器交换OSPF(开放式最短路径优先)更新信息。从而可以从该路由器接收缺省路由,并将其通知ISP路由器,该路由正在公司路由器上使用。
1 解决方案1
interface ethernet0
ip address 10.1.1.1 255.255.255.0
ip nat inside
!
interface serial0
ip address address 198.50.1.1 255.255.255.252
ip nat outside
!
ip access-list 1 permit 10.0.0.0 0.255.255.555
!
ip nat pool internet 171.100.1.1 171.100.1.254 netmask 255.255.255.0
!
ip nat inside source list 1 pool internet
!
ip route 171.100.1.0 255.255.255.0 null0
!
router ospf 1
network 198.50.1.0 0.0.0.255 area 0
redistribute static
2 解决方案2
interface loopback 0
ip address 171.100.1.1 255.255.255.0
ip ospf network point-to-point
!
interface ethernet0
ip address 10.1.1.1 255.255.255.0
ip nat inside
!
interface serial0
ip address address 198.50.1.1 255.255.255.252
ip nat outside
!
ip access-list 1 permit 10.0.0.0 0.255.255.555
!
ip nat pool internet 171.100.1.1 171.100.1.254 netmask 255.255.255.0
!
ip nat inside source list 1 pool internet
!
ip route 171.100.1.0 255.255.255.0 null0
!
router ospf 1
network 198.50.1.0 0.0.0.255 area 0
network 171.100.1.0 0.0.0.255 area 0
3 分析
在解决方案1中,先定义了用于NAT的接口,并通过将合适的命令放在每个接口下面,来指定该接口是一个NAT内部或外部接口。在每个接口下面定义了适当的 NAT命令之后,再定义内部全局地址所在的NAT池。定义全局地址的起始IP地址为171.100.1.1,结束IP地址为171.100.1.254。我们使用除.1和.2地址之外的所有主机地址,是因为这些主机地址都不用于路由器接口。通过在NAT池中使用与用户路由器接口所用子网不同的子网,可以获得一些主机地址。但这又引入了一个新的问题。
在前一个示例中,ISP路由器直接连接到分配给NAT池的子网上。这种情况下,ISP路由器只发出一个ARP请求,以请求NAT池中的单个NAT地址,而用户路由器则使用自己的MAC地址来响应,此时工作正常。但是,上游的ISP路由器并不直接连接到NAT地址池子网171.100.1.0/24,所以必须告诉它如何通过路由协议或静态路由的方法到达NAT池所在的子网。在解决方案1中,我们启用了OSPF并且为171.100.1.0/24重新分配一个静态路由到OSPF中。上游的ISP路由器会接收到该路由,并且将所有目的地址为NAT池中地址的报文转发到我们的路由器中。
可选地,ISP可以在其路由器上安装一个静态路由,用来将所有171.100.1.0/24网络的报文指向我们的路由器。但是,我们希望:当NAT池地址不是直接从相连的子网上取出时,能够显示出路由信息的传播路径。注意,我们将整个171.10.10/24子网的NAT地址表置为null0。由于我们要指定NAT地址表中的某些表项,而非整个171.100.1.0/24子网,这时路由器并不丢弃这些报文,而是将它们转发到NAT表中所定义的内部主机上。
在解决方案2中,我们使用了另一种方法来通知ISP路由器有关NAT池的信息。这种方法是创建一个闭环(loopback)接口,并给其分配一个NAT池中的IP地址。通过将network171.100.1.00.0.0.255 area 0语句包含在我们的OSPF路由进程下面,可以将该闭环地址作为OSPF路由的一部分。注意,我们将.1地址从NAT池中删除,而使用主机地址.2作为 NAT池的起始地址,这样就减少了NAT池地址和用于闭环接口上的IP地址重叠的可能性。另外,我们在闭环接口下面使用接口命令ip ospf ntwork point-to-point。一般地,OSPF将闭环接口看成是一个OSPF桩(stub)网络,并且将接口的32位表项作为路由,而非整个子网。在本例中,OSPF进程会发送172.100.1.1/32而非表172.100.1.0/24。在这种情况下,由于需要将整个171.100.1.0/24 子网信息传送给上游的ISP路由器,所以该地址转换过程不能工作。OSPF接口命令告诉OSPF传送该接口的路由,就像该网络是点到点网络一样,而不像是一个桩(stub)网络。这意味着它将通过OSPF传送整个171.100.1.0/24子网信息(ip ospf network point-to-point命令在IOS版本11.3或更高版本中使用),这两种方法都能正常工作,但使用哪一种则是读者的偏好问题了。
注意:我们知道一个公司通常会在其路由器和ISP路由器之间运行边界网关协议(Border Gateway Protocol, BGP)。在本例中,我们选择了OSPF路由协议,目的是为了分析ip ospf network point-to-point命令。
示例4
在本例中,公司与示例2中的公司相同,但情况稍有不同。这里公司处于Internet环境中,它决定提供一个能从Internet访问的Web服务器,以便那些浏览Web的用户能够了解公司。该服务器位于内部网络中,并且能够从Internet上的主机访问该服务器。这样它将拥有IP地址 10.1.1.100。由于Web服务器必须能够通过Internet来访问,所以这个源IP地址在转发给ISP路由器之前,必须被转换成内部全局缓冲池中的地址。我们为公司Web服务器选择171.100.1.100作为其转换成的内部全局地址。
如示例2那样,Ethernet0连接到内部网络,而串行接口则通过PPP链路连接到ISP路由器。在内部网络中,公司使用10.0.0.0/24中的地址,而全局池中的IP地址范围是171.100.1.0/24。在本例中,我们将假定ISP使用静态路由来找到我们的路由器,其中路由器地址在 172.100.1.0/24地址范围内。并且ISP将该路由传送到Internet上。
1 解决方案
interface ethernet0
ip address 10.1.1.1 255.255.255.0
ip nat inside
!
interface serial0
ip address 198.50.1.1 255.255.255.252
ip nat outside
ip access-list 1 permit 10.0.0.0 0.255.255.255
!
ip nat pool internet prefix-length 24
address 171.100.1.1 171.100.1.99
address 171.100.1.101 171.100.1.254
!
ip nat inside source static 10.1.1.100 171.100.1.100
ip nat inside source list 1 pool internet
2 分析
如其他示例那样,我们在使用任何其他NAT命令之前,应先定义NAT内部和外部接口。而后需要配置NAT池地址和NAT源列表,以允许能够从池中获得地址。本例与示例2的不同之处在于:我们需要为Web服务器设置IP地址171.100.1.100。另外,必须在内部全局地址和内部本地地址之间给出静态映射关系。不然的话,就不能保证NAT表中的NAT转换会将NAT池中的特定IP地址映射到Web服务器。这也意味着无法从Internet上知道应该使用哪个地址才能到达Web服务器,显然这是毫无用处的。
注意,我们在配置中使用ip nat inside source static 命令,以建立10.1.1.100和171.100.1.100之间的静态映射。注意到在本例中NAT池的语法有些不同。Cisco已扩展了NAT语法,所以可以拆分NAT池所用的IP地址范围。我们定义了两个不同的地址范围:从171.100.1.1到171.100.1.9 9,以及从171.100.1.1 0 1到171.100.1.254。所以我们可以将IP地址171.100.1.100从NAT池中排除出去,因为我们使用该地址进行静态转换。我们使用 ip nat inside source list命令来定义IP地址,以允许该IP地址从NAT池中获取