分类: 系统运维
2008-09-17 17:31:15
网络地址转换 NAT
一、 NAT概念和术语
1. NAT(Network Address Translation)通过将内部网络的私有IP地址翻译成全球唯一的公网IP地址,使内部网络可以连接到互联网上。
2. 原因:解决了IP 地址不足的问题,而且还能够隐藏内部网络的细节,避免来自网络外部的攻击,起到了一定的安全作用。
3. 原理:NAT将自动修改IP包头中的源IP地址和目的IP地址,IP地址校验则在NAT处理过程中自动完成。
4. NAT的实现方式:
静态转换:将私有转换成公有合法IP,对应关系一对一。
动态转换:转换时,IP地址对应关系是不确定的、随即
所有访问外网的私有IP可随即指定合法IP。动态转换可以使用多个合法地址集。
端口多路复用:改变源IP地址和源端口并进行端口转换,内部网络共享一个合法的外部IP。
术语:
内部主机与外部主机传输数据时,边界路由器进行检查:
为了避免地址的重叠,做了两个方向的地址转换
u 对于到内部区域的数据包,会用内部局部地址替换目的地址,用外部局部地址替换源地址。
u 对于到外部区域的数据包,会用内部全局地址替换源地址,用外部全局地址替换目的地址。
l 内部局部IP:在内部网络中分配给主机的私有IP地址
l 内部全局IP:一个合法的IP地址,对外代表多个内部局部IP地址。
l 外部全局IP:由其所有者给外部网络上的主机分配的IP地址。
l 外部局部IP:外部主机表现在内部网络的IP地址。
l 简单转换条目:将一个IP地址映射到另一个IP地址的转换条目。
l 扩展转换条目:映射IP地址和端口到另一个IP地址和端口的条目。
5. NAT的优势和缺点
优点:
Ø NAT允许内部网络使用私有IP,通过合法地址池,上公网。
Ø NAT可以减少规划地址集时地址重叠的发生。
Ø NAT增强了内部网络与公网连接时的灵活性
Ø NAT支持地址重叠。
缺点:
² NAT会使延迟增大。因为转发每个数据包报头中的IP地址,就会增加包转发时延。路由器只能用处理器交换方式进行包转发。
² NAT增加了配置和排错的复杂性。无法实现对IP包端对端的路径跟踪。
² NAT会使需要使用内嵌IP地址的应用不能正常工作,因为它隐藏了端到端的IP地址。可使用静态NAT映射来避免。
二、 NAT的应用
1. 支持的数据流
TCP/UDP HTTP TFTP Telnet NTP NFS DNS IP ICMP FTP TCP/IP
不支持:路由表更新,DNS区域传送,SNMP
2.复用内部LAN的地址(PAT)
通过准许对TCP连接或UDP会话的端口进行转换。
3.TCP负载均衡
利用NAT技术,用对外的IP地址来代表多个同样的服务器,就象它们时服务器一样。
三、 NAT的配置
1. 静态NAT
(1) 设置端口IP地址
#int s0/0
#ip add
#no shutdown
#int f0/0
#ip add
#no shutdown
(2)在内部局部和内部全局地址之间建立静态地址转换
#ip nat inside source static
(3) 在内部和外部端口上启用NAT
#int s0/0
#ip nat outside
#int f0/0
#ip nat inside
2. 动态NAT
(1) 设置端口IP地址
#int s0/0
#ip add
#no shutdown
#int f0/0
#ip add
#no shutdown
(2) 定义内部网络中允许访问外部网络饿的访问控制列表。
#access-list 1-99 permit source wildcard
(3) 定义合法IP地址池
#ip nat pool name
(4) 实现网络地址转换
#ip nat inside source list 1-99 pool name
(5) 端口启用NAT
#int s0/0
#ip nat ouside
#int f0/0
#ip nat inside
3. PAT的配置
(1) 设置端口IP地址
(2) 定义内部访问列表
(3)定义合法IP地址池
#ip nat pool name
(4) 设置复用动态IP地址转换
#ip nat inside source list 1-99 pool name overload
#ip nat inside source list 1-99 int s0/0 overload
(6) 端口启用NAT
由于直接使用外部接口地址,所以可不定义IP地址池
Overload 使用地址复用,用于PAT
查看NAT #show ip nat translations
TCP 负载均衡配置
:指利用NAT技术,用对外的IP地址来代表多个同样的服务器。就像他们是服务器一样。
1. 设置端口IP地址
2. 为虚拟主机定义阳光标准IP ACL
#access-list 1-99 permit source
3. 给真实主机定义一个NAT地址集
#ip nat pool real-host
4. 设置ACL与NAT地址集的映射
#ip nat inside destination list 1-99 pool name
5. 端口启用NAT