NAT和PAT
一、NAT(网络地址转换)
NAT (Network Address Translation) 又称为网络地址转换,用于实现私有网络和公有网络之间的互访。
学习之前再回顾一下之前讲过的私有网络地址知识点:
- A类私有地址: 10.0.0.0~10.255.255.255
- B类私有地址: 172.16.0.0~172.31.255.255
- c类私有地址: 192.168.0.0~192. 168.255.255
1.1 NAT的工作原理
- NAT用来将内网地址和端口号转换成合法的公网地址和端口号,建立一个会话,与公网主机进行通信;
- NAT外部的主机无法主动跟位于NAT内部的主机通信,NAT内部主机想要通信,必须主动和公网的一个IP通信,路由器负责建立一个映射关系,从而实现数据的转发。
1.2 NAT主要功能
NAT不仅能解决了IP地址不足的问题,而且还能够有效地避免来自网络外部的入侵,隐藏并保护网络内部的计算机。
- 宽带分享:这是NAT主机的最大功能。
- 安全防护: NAT之内的PC联机到Internet上面时,他所显示的IP是NAT主机的公网IP,所以Client端的PC就具有一定程度的安全了,外界在进行portscan (端口扫描)的时候,就侦测不到源Client端的PC。
优点:节省公有合法IP地址、处理地址重叠、增强灵活性、安全性
缺点:延迟增大、配置和维护的复杂性、不支持某些应用( 比如VPN)
1.3 静态NAT
- 静态NAT实现私网地址和公网地址的一对一转换。有多少个私网地址就需要配置多少个公网地址。静态NAT不能节约公网地址,但可以起到隐藏内部网络的作用。
- 内部网络向外部网络发送报文时,静态NAT将报文的源IP地址替换为对应的公网地址,外部网络向内部网络发送响应报文时,静态NAT将报文的目的地址替换为相应的私网地址。
常用命令:
有2种配置方法:
第一种:
全局模式下设置静态NAT
[R1]nat static global 8.8.8.8 inside 192.168.10.10
[R1]int g0/0/1 ###外网口
[R1-GigabitEthernet0/0/1]nat static enable ###在网口,上启动nat static enable功能
第二种:直接在接口上声明nat static
[R1]int g0/0/1 ###外网口
[R1 -GigabitEthernet0/0/1]nat static global 8.8.8.8 inside 192.168.10.10
[R1]dis nat static ###查看NAT静态配置信息
1.3.1 静态NAT实验
要求:隐藏PC1的IP地址访问公网服务器Server1,使用全局模式和接口模式分别配置
使用全局模式时路由器AR1配置如下:
The device is running!
//进入管理模式
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
//修改名称
[Huawei]sys R1
//关闭信息提示
[R1]un in en
Info: Information center is disabled.
//进入R1的0/0/0接口
[R1]int g0/0/0
//添加IP地址
[R1-GigabitEthernet0/0/0]ip address 192.168.1.254 24
//进入R1的0/0/1接口
[R1-GigabitEthernet0/0/0]int g0/0/1
//添加IP地址
[R1-GigabitEthernet0/0/1]ip address 12.0.0.254 24
//退出接口模式
[R1-GigabitEthernet0/0/1]q
//使用nat用公网ip 8.8.8.8 代替PC1的私网ip
[R1]nat static global 8.8.8.8 inside 192.168.1.1
//进入R1的0/0/1接口
[R1]int g0/0/1
//启用nat功能
[R1-GigabitEthernet0/0/1]nat static enable
使用接口模式时路由器AR1配置如下:
//进入管理模式
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
//修改名称
[Huawei]sys R1
//关闭信息提示
[R1]un in en
Info: Information center is disabled.
//进入R1接口0/0/0
[R1]int g0/0/0
//添加IP地址
[R1-GigabitEthernet0/0/0]ip add 192.168.1.254 24
//进入R1的0/0/1接口
[R1-GigabitEthernet0/0/0]int g0/0/1
//添加IP地址
[R1-GigabitEthernet0/0/1]ip add 12.0.0.254 24
//使用nat用公网ip 8.8.8.8 代替PC1的私网ip
[R1-GigabitEthernet0/0/1]nat static global 8.8.8.8 inside 192.168.1.1
主机和Server1服务器的配置如下:
测试结果如下:
- 主机PC1可以正常访问服务器
- 使用抓包软件可以看出,PC1的私网地址已经转换为公网地址。
1.4 动态NAT
概念:多个私网IP地址对应多个公网IP地址,基于地址池一对一映射
常用命令:
1、配置外部网凸和内部网口的IP地址
2、定义合法IP地址池
[R1]nat address-group 1 212.0.0.100 212.0.0.200 ##新建一个名为1的nat地址池
3、定义访问控制列表
[R1]acl 2000 ###创建ACL,允许源地址为192.168.20.0/24网段和11.0.0.0/24的数据通过
[R1-acl-basic-2000]rule permit source 192.168.20.0 0.0.0.255
[R1-acl-basic-2000]rule permit source 11.0.0.0 0.0.0.255
4、在外网口,上设置动态IP地址转换
[R1-acl-basic-2000]int g0/0/1 ###外网口
ACL2000匹配的数据转换为改接口的IP地址作为源地址(no pat不做端口转换,只做IP地址转换,默认为pat)
[R1 -GigabitEthernet0/0/1]nat outbound 2000 address-group 1 no-pat
[R1]dis nat outbound ###查看NAT Outbound的信息
1.4.1 静态NAT实验
要求:给PC1配置公网IP范围为12.0.0.100到12.0.0.120
路由器R1 的配置如下:
//进入管理模式
sys
Enter system view, return user view with Ctrl+Z.
//修改名称
[Huawei]sys R1
//关闭提示
[R1]un in en
Info: Information center is disabled.
//进入R1的0/0/0接口
[R1]int g0/0/0
//配置IP地址
[R1-GigabitEthernet0/0/0]ip add 192.168.1.254 24
//进入R1的0/0/1接口
[R1-GigabitEthernet0/0/0]int g0/0/1
//配置IP地址
[R1-GigabitEthernet0/0/1]ip add 12.0.0.254 24
//退出接口模式
[R1-GigabitEthernet0/0/1]q
//配置地址池,名称为group1
[R1]nat address-group 1 12.0.0.100 12.0.0.120
//创建ACL 2000
[R1]acl 2000
//设置允许192.168.1.0网段的通过
[R1-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255
//进入接口0/0/1
[R1-acl-basic-2000]int g0/0/1
//ACL2000匹配的数据转换为改接口的IP地址作为源地址,no pat不做端口转换,只做IP地址转换
[R1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1 no-pat
测试结果如下:
- 通过抓包软件可以看出转换后的公网地址为我们规定的地址池中的IP。
二、PAT端口多路复用
2.1 概念和原理
PAT又称为NAPT (Network Address PortTranslation),它实现一个公网地址和多个私网地址之间的映射,因此可以节约公网地址。
PAT的基本原理是将不同私网地址的报文的源IP地址转换为同一公网地址,但他们被转换为该地址的不同端口号,因而仍然能够共享同一地址。
2.2 作用和类型
PAT有以下作用:
- 改变数据包的ip地址和端口号;
- 能够大量节约公网IP地址。
PAT的类型有以下:
- 动态PAT,包括NAPT和Easy IP;
- 静态PAT,包括NAT Server.
2.3 动态PAT
2.3.1 NAPT
多个私网I P地址对应固定外网IP地址( 比如200.1.1.10),配置方法与动态NAT类似
常用配置命令如下:
1、配置外部网口和内部网口的IP地址
2、定义合法IP地址池
[R1]nat address-group 1 200.1.1.10 200.1.1.10 ###使用一个固定IP
3、定义访问控制列表
[R1]acl 2000 ###允许源地址为192.168.30.0/24网段的数据通过
[R1 -acl-adv- 2000] rule permit source 192.168.30.0 0.0.0.255
4、在外网口.上设置IP地址转换
[R1-acl-basic-2000]int g0/0/1 ###外网口
[R1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1
2.3.2 NAPT实验
要求:192.168.1.0网段都转换为固定公网IP12.0.0.100
路由器R1配置如下:
[Huawei]
//进入管理模式
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
//修改名称
[Huawei]sys R1
//关闭提示
[R1]un in en
Info: Information center is disabled.
//进入接口0/0/0
[R1]int g0/0/0
//配置IP地址
[R1-GigabitEthernet0/0/0]ip add 192.168.1.254 24
进入接口0/0/1
[R1-GigabitEthernet0/0/0]int g0/0/1
//配置IP地址
[R1-GigabitEthernet0/0/1]ip add 12.0.0.254 24
//退出接口模式
[R1-GigabitEthernet0/0/1]q
//创建地址池group1 固定IP
[R1]nat address-group 1 12.0.0.100 12.0.0.100
//创建ACL 2000
[R1]acl 2000
//允许192.168.1.0网段通过
[R1-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255
//进入接口0/0/1(公网网关的接口)
[R1]int g0/0/1
//将符合规则的ip地址转换为固定的公网地址
[R1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1
[R1]
结果如下:192.168.1.0网段的ip全部转换为12.0.0.100这个公网IP了
2.3.1 EasyIp
概念:将多个私网IP地址对应外网口公网IP地址
常用配置命令如下:
1、配置外部网口和内部网口的IP地址
2、定义合法IP地址池
由于直接使用外网口IP地址所以不用再定义IP地址池
3、定义访问控制列表
[R1]acl 3000 ###允许源地址为192.168.30.0/24网段的数据通过
[R1-acl-adv-3000]rule permit ip source 192.168.30.0 0.0.0.255
4、在外网口.上设置IP地址转换
[R1]int g0/0/1 ###外网口
ac13000匹配的源IP数据到达此接口时,转换为该接口的IP地址做为源地址
[R1-GigabitEthernet0/0/1]nat outbound 3000
[R1]display nat session all ## 查看NAT的流表信息
2.3.1 EasyIp实验
要求:192.168.1.0网段都转换为路由器公网接口对应的IP
路由器R1 配置如下:
[Huawei]
//进入管理模式
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
//修改名称
[Huawei]sys R1
//关闭提示
[R1]un in en
Info: Information center is disabled.
//进入接口0/0/0
[R1]int g0/0/0
//配置IP地址
[R1-GigabitEthernet0/0/0]ip add 192.168.1.254 24
进入接口0/0/1
[R1-GigabitEthernet0/0/0]int g0/0/1
//配置IP地址
[R1-GigabitEthernet0/0/1]ip add 12.0.0.254 24
//退出接口模式
[R1-GigabitEthernet0/0/1]q
//创建ACL 2000
[R1]acl 2000
//允许192.168.1.0网段通过
[R1-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255
//进入接口0/0/1(公网网关的接口)
[R1]int g0/0/1
//将符合规则的ip地址转换为固定的公网地址
[R1-GigabitEthernet0/0/1]nat outbound 2000
[R1]
结果如下:192.168.1.0网段的ip全部转换为12.0.0.254这个公网IP了,这个IP就是路由器的公网网关IP
2.4 静态PAT—NATServer
NATServer:端口映射,将私网地址端口映射到公网地址,实现内网服务器供外网用户访问
常用配置命令:
[R1]int g0/0/1
[R1-GigabitEthernet0/0/1]nat server protocol tcp global 9.9.9.9 www inside 192.168.10.100 www
###在连接公网的接口.上将私网服务器地址和公网地址做一对NAT映射绑定
[R1-GigabitEthernet0/0/1]nat server protocol tcp global current-interface 8080 inside 10.1.1.1 www
###在连接公网的接口.上将私网服务器地址和外网接口做一对NAT映射绑定
[R1 -Gigabi tEthernet0/0/1]nat server. protocol tcp global current-interface 2121 inside 10.1.1.2 ftp
###端口为21可以直接使用关键字“ftp"代替
2.4.1 静态PAT—NATServer实验
要求:client1通过访问公网IP12.0.0.1也可以访问服务器Server
路由器R1配置如下:
//进入管理模式
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
//修改名称
[Huawei]sys R1
//关闭信息提示
[R1]un in en
Info: Information center is disabled.
//进入接口0/0/0
[R1]int g0/0/0
//配置IP地址
[R1-GigabitEthernet0/0/0]ip add 12.0.0.1 24
//进入接口0/0/1
[R1-GigabitEthernet0/0/0]int g0/0/1
//配置IP地址
[R1-GigabitEthernet0/0/1]ip add 192.168.1.1 24
//进入0/0/0接口配置,公网网关接口
[R1-GigabitEthernet0/0/1]int g0/0/0
//配置将服务器ip映射到公网ip地址上
[R1-GigabitEthernet0/0/0]nat server protocol tcp global current-interface 8080 i
nside 192.168.1.10 80
主机PC1和client1及服务器Server配置如下:
测试结果如下:
client1主机通过访问公网ip地址12.0.0.1可以访问到处于私网地址的服务器,可以有效的保护服务器。
下图抓包可以看出:目标IP地址为12.0.0.1的公网地址实际是服务器映射处理的IP地址。