网络技术之NAT

NAT背景

  • 网络迅速发展,合法的IP地址资源日益短缺(2011年2月3日, IANA对外宣布:IPv4地址空间最后5个地址块已经被分配给下属的5个地区委员会)
  • 局域网内部的主机一般使用私有地址,私有地址在Internet上无法路由,如果采用私有地址的网络设备需要访问Internet必须将其IP转为公有IP地址

NAT工作原理

网络地址转换Network Address TranslationNAT)提供私有地址到共有地址的转换。因为私有地址在Internet上无法路由,Internet有效的路由必须是共有地址,因此配置私有地址的网络设备想要访问必须将其数据包中的私有地址转换为共有地址才能正常访问Internet。一般在网络上会有一个设备提供NAT服务(NAT设备),局域网内部的主机访问Internet时,在NAT设备中将数据包中的源IP地址(私有)转换成共有IP地址后转发到Internet上。

NAT包含地址

  • 内部局部地址:内网中主机使用的私有IP地址
  • 内部全局地址:NAT设备转换后的共有IP地址
  • 外部全局地址:相对于另一个内网来说,使用NAT设备转换后的共有IP地址
  • 外部局部地址:指的是另一个内网中主机的私有IP地址,但是在实际的网络中外部局部地址和外部全局地址是一样,原因是经过NAT转换后Internet上的其他设备不会知道外内部主机的IP地址
NAT包含地址类型

NAT转换条目

  • 简单转换条目:只定义IP
  • 扩展转换条目:定义协议、IP、端口

NAT关键流程

  • 网络被分为私网和公网两部分,NAT网关常设置在私网到公网的路由出口位置。
  • 网络访问只能先由私网侧发起,公网无法主动访问私网主机
  • NAT网关在两个访问方向上完成两次地址的转换或翻译,出方向做源IP替换,入方向做目的IP替换。
  • NAT网关的存在对通信双方是保持透明的。
  • NAT网关为了实现双向翻译的功能,需要维护一张关联表,把会话的信息保存下来。

NAT的优缺点

优点

  • 节省公有合法IP地址
  • 处理地址重叠
  • 增强灵活性:地址转换可以在局域网内部提供给外部FTP、WWW、Telnet服务
  • 安全性:NAT可以有效地隐藏内部局域网中的主机,具有一定的网络安全保护作用

缺点

  • 延迟增大
  • 配置和维护的复杂性
  • 无法进行端到端的IP跟踪(破坏了端对端通信的平等性)
  • 不支持某些应用(FTP),可以通过静态NAT映射来避免

NAT分类

  • 静态NAT:内部主机占用一个公网IP,这种方式被称为一对一模型。这种方式对解决IP地址短缺没有帮助,只在特定的组网环境中使用。
    • 隐藏内部主机的真实IP
    • 实现两个IP地址重叠网络的通信
  • 动态NAT:内部主机的私有地址在NAT网关中被转换为地址池中的一个共有地址。
  • PAT:利用源端口将多个私有IP地址映射到一个共有IP地址,这种方式被称为多对一模型。其核心在于利用端口号实现公网和私网的转换,因此理论上最多可让65535台主机共用一个共有IP地址。

NAT配置

  1. 接口IP地址配置
  2. 使用ACL定义哪些内部主机能做NAT
  3. 决定采用什么公有地址,静态或地址池
  4. 在内部和外部端口上启用NAT
  5. 指定地址转换映射

静态NAT配置

# 在内部和外部端口上启动NAT
int f0/0
ip nat inside
int f0/1
ip nat outside
# 一对一地址映射
-- 简单转换条目
ip nat inside source static 192.168.1.100 200.200.200.200
-- 扩展转换条目
ip nat inside source static tcp 192.168.1.100 8888 200.200.200.200 80 extendable
--extendable在PT中默认没有

动态NAT配置

# 在内部和外部端口上启动NAT
int f0/0
ip nat inside
int f0/1
ip nat outside
# 通过ACL设置转换源(标准)
access-list 1 permit 192.168.1.0 0.0.0.255
# 设置内部全局地址池
ip nat pool 名字 开始IP 结束IP netmask 子网掩码
如果加overload代表是可以复用
# 将转换源和地址池关联
ip nat inside source list acl编号 pool 地址池名字 (overload)
如果加overload代表是可以复用

PAT配置

# 在内部和外部端口上启动NAT
int f0/0
ip nat outside
int f0/1
ip nat inside
# 使用ACL定义转换源
access-list 1 permit 192.168.1.0 0.0.0.255
# 关联转换源和目标
ip nat inside source list 1 interface f0/0 overload

查看NAT转换条目

show ip nat translation [verbose]
- verbose显示详细的NAT转换条目信息

清除NAT转换条目

# 清除NAT转换表中的所有条目
clear ip nat translation *
# 清除包含内部转换的转换条目
clear ip nat translation inside local-ip global-ip
# 清除包含外部转换的转换条目
clear ip nat translation outside local-ip global-ip
-- 静态NAT条目不会被清除

NAT故障处理

  1. 检查物理设备和NAT配置
  2. 通过show命令查看NAT的各种信息
  3. 通过debug ip nat命令跟踪NAT操作

参考链接

猜你喜欢

转载自blog.csdn.net/qq_38768365/article/details/114276005