NAT 基础原理[产生背景]
- IPv4公网地址资源耗尽
- IPv6普及遥遥无期
- 子网划分杯水车薪
NAT基础原理[定义]
- 网络地址转换
- 通过把私有地址转换为公有地址,使私有IP地址主机可以访问互联网,来解决公网地址不够用的问题
NAT基础原理[分类]
> 静态NAT
- 把公有地址一对一的静态映射给私有地址使用
> 基本NAT
- 建立公有地址池,把池内的公有地址动态的映射给私有地址使用。
- [本质上还是一对一的映射]
> NAPT
- 把公有地址和端口动态的映射给私有地址和端口,实现一个公网地址可以供多个私有地址同时使用访问互联网
- 转换源IP和端口,数据回包还原目的IP和目的端口
- SNAT(源地址转换)
> Easy IP
- NAPT的一种简易实现形式
- 使用与公网地址不固定的场景
> NAT Server
- 把公网IP的某个端口固定映射到私网IP的某个端口,让公网上的用户可以主动访问私网中的服务
- 转换目的IP和目的端口,数据回包还原源IP和源端口
- 也称端口映射,DNAT(目的地址转换)
思科配置静态NAT
首先建立私有地址与公有地址的映射
代码语言:javascript复制in nat inside source static [私有地址] [公网地址]
将转换的接口配置为内部接口或者外部接口绑定
代码语言:javascript复制#在接口或者线路下
ip nat inside
ip nat outside
思科配置动态NAT
首先先定义一个地址池,池内包含要分配的公网地址段范围
代码语言:javascript复制ip nat pool [PoolName] [start-address] [end-address] netmask [mask]
创建标准ACL,允许转换这些地址
代码语言:javascript复制access-list [ID] [permit] [source]
将ACL与地址池绑定,来使路与其能够配置来确定那些地址能使用NAT地址
代码语言:javascript复制ip nat inside source list [access-list-number] pool [pool-name]
最后在配置接口
代码语言:javascript复制ip nat inside #确定哪个是内部接口
ip nat outside #确定哪个是外部接口