● NAT简介
NAT(Network Address Translation)的功能,就是指在一个网络内部,根据需要可以随意自定义的IP地址,而不需要经过申请。在网络内部,各计算机间通过内部的IP地址进行通讯。而当内部的计算机要与外部internet网络进行通讯时,具有NAT功能的设备(比如:路由器)负责将其内部的IP地址转换为合法的IP地址(即经过申请的IP地址)进行通信。 ● NAT 的应用环境:
外向的NAT,常常用在共享一个IP地址发出流向外部网络的数据流,而不接受外部网络向内部网络发出的连接请求的地方,比如多节点用户、远程的工作点、小型商业用户等。具体的说,就是通过ISDN、DSL(Digital subscriber Line)、cable modem连接的小型局域网。双向的静态NAT/NAPT常被安装有防火墙的大型企业使用。另外,当ISP的地址发生变化,如果企业不想改变自己的地址规划,也会用到NAT技术。
●NAT地址转换类型:
NAT地址转换有两种主要类型:静态转换(Static Translation),动态转换(Dynamic Translations)。 静态转换(Static Translation)是最简单的一种转换方式,它在NAT表中为每一个需要转换的内部地址创建了固定的转换条目,映射了唯一的全局地址。内部地址与全局地址一一对应。每当内部节点与外界通信时,内部地址就会转化为对应的全局地址。
动态转换(Dynamic Translations)增加了网络管理的复杂性,但也提供了很大的灵活性。它将可用的全局地址地址集定义成NAT池(NAT pool)。对于要与外界进行通信的内部节点,如果还没有建立转换映射,边缘路由器或者防火墙将会动态的从NAT池中选择全局地址对内部地址进行转化。每个转换条目在连接建立时动态建立,而在连接终止时会被回收。这样,网络的灵活性大大增强了,所需要的全局地址进一步的减少。值得注意的是,当NAT池中的全局地址被全部占用以后,以后的地址转换的申请会被拒绝。这样会造成网络连通性的问题。所以应该使用超时操作选项来回收NAT池的全局地址。另外,由于每次的地址转换是动态的,所以同一个节点在不同的连接中的全局地址是不同的,这会使snmp的操作复杂化。
端口地址转换(NAPT—Network address port translatin)是动态转换的一种变形。它可以使多个内部节点共享一个全局IP地址,而使用源和目的的TCP/UDP的端口号来区分NAT表中的转换条目及内部地址。这样,就更节省了地址空间。比如说,假设内部节点10.1.1.3,10.1.1.2都用源端口1723向外发送数据包。NAPT路由器
把这两个内部地址都转换成全局地址192.168.2.2,而使用不同的源端口号:1492,1723。当接收方收到的源端口号为1492,则返回的数据包在边缘网关处,目的地址和端口被转换为10.1.1.3:1723;而接收到的源端口号为1723的,目的被映射到10.1.1.2:1723。 NAPT可以使整个局域网都使用一个IP地址来联入Internet,所以它常常用在小型办公室/家庭办公室(SOHO)中,作与外部公共网络的连接。
以上的映射转换中,只使用了IP地址的转换条目被称为简单条目,而包含IP地址和TCP/UDP端口号的转换条目被称为扩展条目。 以上所有的地址转换功能,都是由防火墙或者边缘路由器(即连接内部网络和公用网络的路由器)完成的,而对于通信的各节点,无论是内部还是外部的,都是透明的。 ●采用NAT,可以实现以下几个功能:
1. 内部地址翻译(Translation inside local addresses):这是比较通用的一种方法,将内部IP一对一的翻译成外部地址。在内部主机连接到外部网络时,当第一个数据包到达NAT路由器时,router检查它的NAT表,因为是NAT是静态配置的,故可以查询出来(simply entry),然后router将数据包的内部局部IP(源地址)更换成内部全局地址,再转发出去。外部主机接受到数据包用接受到的内部全局地址来响应,NAT接受到
外部回来的数据包,再根据NAT表把地址翻译成内部局部IP,转发过去。
2. 内部全局地址复用(overloading inside glogal addresses):使用地址和端口pair将多个内部地址影射到比较少的外部地址。这也是所谓的PAT。和内部地址翻译一样,NAT router同样也负责查表和翻译内部IP地址,唯一的区别就是由于使用了overloading,router将复用同样的内部全局IP地址,并存储足够的信息以区分它和其他地址,这样查询出来的是extended entry。NAT router和外部主机的通讯采用翻译过的内部全局地址,故同一般的通信没有差别,router到内部主机通讯时,同样要查NAT表。
3. TCP负载重分配(TCP load distributing):和以上两种操作不同,这是NAT由外到内的翻译,所以那种以为WEB server一定要放置到NAT外部的说法是错误的。工作原理:外部主机向虚拟主机(定义为内部全局地址)通讯,NAT router接受外部主机的请求并依据NAT表建立与内部主机的连接,把内部全局地址(目的地址)翻译成内部局部地址,并转发数据包到内部主机,内部主机接受包并作出响应。NAT router再使用内部局部地址和端口查询数据表,根据查询到的外部地址和端口做出响应。此时,如果同一主机再做第二个连接,NAT router将根据NAT表将建立与另一虚拟主机的连接,并转发数据。
4. 处理重叠网络(Handing overlapping networks):这种方法主要用于两个intranet的互连,同样给我们处理两个重叠网络提供了方法。它的实现要求DNS server的支持(用于区别两个不同的主机。
1、主机A要求向主机C建立连接,先象DNS server做地址查询。
2、NAT router截获DNS的响应,如果地址有重叠,将翻译返回的地址。它将创建一个simply entry把重叠的外部全局地址(目的地址)翻译成外部局部地址。
3、路由器转发DNS响应到主机A,它已经把主机C的地址(外部全局地址)翻译成外部局部地址。
4、当路由器接受到主机C的数据包时,它将建立内部局部、全局,外部全局、局部地址间的转换,主机A将由内部局部地址(源地址)翻译成内部全局地址,主机C将由外部全局地址(目的地址)翻译成外部局部地址。 5,主机C接受数据包并继续通讯。 ● 一般NAT 配置步骤:
1. 定义内部网络(inside),外部网络(outside) 在进接口输入ip nat inside 在出接口输入ip nat outside
2. 必须确保外部网络可以访问内部全局网络,可以通过路由选择协议和静态路由来进行传播该地址,或配置缺省路由
3. 配置要转换的网络 配置静态NAT转换:
ip nat inside source static
local_ip_addr global_ip_addr //配置单个静态NAT地
址
ip nat inside source static network local_ip_network global_ip_network / prefix-length //根据主机号,配
置多个静态NAT地址 配置动态NAT池:
in nat inside source list [list{1-99}|route-map] pool
pool_name overload //这里的ACL定义了哪些内部本地地
址要进行NAT转换,overload允许一个全局地址用于多个本地地址(PAT)
4. 配置动态NAT地址池(静态转换这步不要)(若使用动态NAT转换,应该先配置NAT pool)
ip nat pool pool_name starting_ip_addr ending_ip_addr {netmask netmask|prefix-length prefix-length} //这里的
starting_ip_addr ending_ip_addr 为内部全局地址的范围
若配置TCP负载均衡,则使用:
ip nat pool pool_name starting_ip_addr ending_ip_addr {netmask netmask|prefix-length prefix-length} type rotary //关键字type rotary 说明使用TCP负载平衡,并且这里的starting_ip_addr ending_ip_addr 为内部本地地址的范围
ip nat inside destination list
[list{1-99}|route-map] pool pool_name //这里的ACL定
义了要转换成的内部全局地址
注意:动态NAT必须先由内部产生NAT条目后,外部才能访问内部 ●NAT基本配置: 一.静态转换:
当外出的数据包到达边缘网关时,从NAT表中查找相应的静态转换条目,检索出对应的全局地址,并替换数据包中的源地址(内部地址),而当外部的数据包要通过边缘网关的时候,目的地址(全局地址)被替换成相应的内部地址。(拓扑图见图1)
图1
interface e0 //连接内部网的接口,使用ip nat inside 定义
ip address 10.1.1.9 255.255.255.0 ip nat inside
interface s0 /连接外部公用网的接口,使用ip nat outside定义
ip address 172.16.2.1 255.255.255.0 ip nat outside
ip nat inside source static 10.1.1.2 192.168.2.3 //将内部地址转化为外部地址 二.动态转换
外出的数据包到达边缘网关的时候,首先检查NAT表,看是否已经建立映射。如果没有,则动态的从NAT池中映射一个全局地址,建立转换条目,并替换源地址。当连接终止时,转换条目被删除,全局地址被NAT池回收。(拓扑图见图2)如果池内所有地址被用完后,基它PC将不能实现地址转换
注意:只有在内部网络首先访问过外部网络一次后,NAT表才会产生对应的映射,外部网络才能访问内部地址
图2
interface e0 //连接内部网的接口,使用ip nat inside 定义
ip address 10.1.1.9 255.255.255.0 ip nat inside
interface s0 /连接外部公用网的接口,使用ip nat outside定义
ip address 172.16.2.1 255.255.255.0 ip nat outside
ip nat pool OUT 192.168.2.1 192.168.2.254 netmask 255.255.255.0
ip nat inside source list 1 pool OUT //定义外部地址为NAT池\"OUT \",并把内部地址映射到外部地址 access-list 1 permit 10.1.1.0 0.0.0.255 //用标准访问列表来定义内部地址 三.端口地址转换实现共享外部地址
当数据包到达边缘网关时,首先检查NAT表,看是否已经建立转换条目。如果没有,并且已经存在其他的转换条目,在配置了端口地址转换的情况下,则会再次使用此全局地址,并保存足够信息(IP地址和端口号)。
在配置时,只需要在“ip nat inside source list nunber pool name\"命令后面加上“overload\"的关键字就行了。 四.对发向内部网络的数据实现TCP负载均衡
当内部节点共享一个IP地址时,在外部看来就是一台虚拟的主机。如果外部节点要与内部节点建立连接,那么边缘路由器会使用TCP负载均衡的功能。注意:只能对TCP协议进行负载均衡,如TELNET等,像PING等命令,则没用
当边缘路由器接收到外部的请求时,会从NAT表中检查上一次的转换条目,并为本次连接分配下面一个条目进行映射,使用下面一个内部地址。本次连接结束后,下一次的外部请求将会被分配到接下来的一个转换条目。(Round-Robin算法)
图3
interface e0
ip address 10.1.1.254 255.255.255.0 ip nat inside
interface s0
ip address 192.168.1.129 255.255.255.224 ip nat outside
ip nat pool INTERNAL 10.1.1.1 10.1.1.3
prefix-length 23 type rotary //关键字type rotary 说明使用TCP负载平衡 // ip nat inside destination list 2 pool INTERNAL //将虚拟主机地址转化成由\"INTERNAL \"池定义的内部地址,将
10.1.1.127--->10.1.1.1--10.1.1.3上
access-list 2 permit 10.1.1.127 //用访问列表定义虚拟主机的地址——代表内部节点的全局地址 五.其他
清除NAT转换条目: clear ip nat translation * 验证NAT: show ip nat translations/statics NAT排错: debug ip nat
CISCO NAT经典基础配置:
● 全部采用端口(PAT):ISP分配的IP 202.99.160.129
interface fastethernet0/0 ip address 192.168.1.1 255.255.255.0 in nat inside interface fastethernet0/1
ip address 192.168.2.1 255.255.255.0 in nat outside
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 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 ip nat inside
interface serial 0/0
ip address 202.99.160.129 255.255.255.192 ip nat outside
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.1 netmask 255.255.255.192 ip nat inside source list1 pool
OutPort overload //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.1中的所有地址。
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 ip address 192.168.1.1 255.255.255.0 ip nat inside interface fastethernet0/1
ip address 211.82.220.81 255.255.255.248 ip nat outside
ip nat pool Outpool 211.82.220.86 211.82.20.86 netmask 255.255.255.248
access-list 1 permit 192.168.1.2 0.0.0.255 access-list 1 permit 192.168.1.3 0.0.0.255 access-list 1 permit 192.168.1.4 0.0.0.255 access-list 1 permit 192.168.1.5 0.0.0.255 ip nat inside source list1 pool Outpool overload ip nat inside source static 192.168.1.2 211.82.220.82
ip nat inside source static 192.168.1.3 211.82.220.83
ip nat inside source static 192.168.1.4 211.82.220.84
ip nat inside source static 192.168.1.5 211.82.220.85
● NAT映射:如果ISP提供的IP地址比较多还可以,但如果不是的时候(如就两个时),一个用于内网地址转换,另一个用于对提供服务。ISP提供的内网上网IP。
interface ethernet0
ip address 192.168.1.1 255.255.255.0 ip nat inside
interface fastethernet0/0
ip address 211.82.220.129 255.255.255.248 ip nat outside
access-list 1 permit 192.168.1.0 0.0.0.255 ip nat pool Everybody 211.82.220.130 211.82.220.130 network 255.255.255.252
ip nat inside source list1 pool Everybody overload ip nat inside source static tcp 192.168.1.2 80 202.99.220.130 80
ip nat inside source static tcp 192.168.1.3 21 202.99.220.130 21
ip nat inside source static tcp 192.168.1.4 25 202.99.220.130 25
ip nat inside source static tcp 192.168.1.5 110 202.99.220.130 110
● 利用地址转换实现负载均衡:当有如象腾讯公司似的多服务器时,使用路由器实现负载平衡,可以使它们有平等的访问机会.
interface fastethernet0/1
ip address 192.168.1.1 255.255.255.0 ip nat inside
interface fastethernet0/0
ip address 202.110.198.81 255.2555.255.248 ip nat outside
access-list 1 permit 202.110.198.82 access-list 2 permit 202.110.198.83 access-list 3 permit 192.168.1.0 0.0.0.255 ip nat pool Webser 192.168.1.2 192.168.1.3 255.255.255.248 type rotary
ip nat pool Ftpser 192.168.1.4 192.168.1.5 255.255.255.248 type rotary
ip nat pool normal 202.110.198.84 202.110.198.84 netmask 255.255.255.248
ip nat inside destination list 1 pool Webser ip nat inside destination list 2 pool Ftpser
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- baomayou.com 版权所有 赣ICP备2024042794号-6
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务