为什么会有NAT
以前由于IPv4地址不足,无法满足网络的发展,IPv6还未广泛应用 为了节约IPv4地址,将IPv4地址分为公有地址和私有地址,企业内网都使用私有IPv4地址,而公网上的设备都使用公网IPv4地址
由于私有IPv4地址在不同的企业内是被重复使用的,所以企业私有IPv4地址在公网上使用会产生IP地址冲突,所以企业私有IPv4地址无法透传到公网,所以企业内网无法与公网设备通信
如果企业内网要与公网通信,企业就需要拥有公网IPv4地址,假设企业有上千台电脑和服务器,所以企业也必然有上千个私有IPv4地址,但是企业可以租用到的公有IPv4地址可能只有4个或8个,所以公网IPv4地址数量太少,无法满足企业内网所有设备的上网需求
所以企业的私有IPv4地址要与公网通信,就需要将多个私有IPv4地址转换为1个公有IPv4地址后,才可以和公网设备通信
如果将企业私有IPv4地址转换为公有IPv4地址,需要依赖一个技术,NAT(网络地址转换)
NAT是什么
NAT是将IP数据报文中的私有IP地址转换为公有IP地址的过程
NAT的作用
-
对数据包的“私有IP地址”和“公有IP地址”进行转换,实现内网到外网的访问
-
隐藏内网,避免来自外网的攻击,提高网络安全性
NAT核心工作表:NAT转换表
每一个条目 1个私有 和 1个公有 绑定在一起
数据包从内向外发送时
-
转换的是数据包的:“源IP地址”,由私转公
-
先经过路由表,再经过NAT表
数据包从外向内返回时
-
转换的是数据包的:“目标IP地址” 由公转私
-
先经过NAT表,再经过路由表
NAT分类
静态NAT:
私有IP地址和公有IP地址都是1对1转换,不节省公网IP
动态NAT:
基于“NAT地址池”实现“私有IP地址”和“公有IP地址”之间的转换
一个公有IP地址在不同的时间可以为多个私有IP地址进行转换 但是在同一时间一个公有IP地址只能为一个私有IP地址的网络会话进行转换 所以,动态NAT也没有从根本上解决公网IP节约的问题, 所以,如果公司的内网设备有同时上网的需求,产生大量网络会话,会导致NAT地址池枯竭 那么NAT地址池里公有IP地址的数量就需要很多很多,才有可能满足私有IP地址的主机上网的需求 所以动态NAT也没有从根本上解决节省公有IP地址的目的
NAPT:网络地址端口转换( Network Address Port Translation )
多对一的地址转换,使用“IP地址+端口号”的形式进行转换,使多个私有IP地址可共用一个公网IP地址访问外网 允许多个私有地址同时转换为同一个公有地址,因此也称为“多对一地址转换”或地址复用 NAPT的实现方式主要有EasyIP和地址池NAPT
NAT Server:
NATServer 是一种特殊的静态NAT 主要应用于外网用户访问企业内网服务器的场景
四、静态NAT配置
拓扑
需求
实现企业内网主机(PC1/PC2)访问公网网站服务器(Server1)
配置步骤
第一步:给PC1/PC2/Server1配置接口IP地址,掩码,网关
第二步:R1配置路由和静态NAT -边界路由器R1,配置接口IP地址 -边界路由器R1,配置默认路由 -在边界路由器R1的出接口上配置静态NAT 备注:静态NAT是配置的出口设备的出接口上 第三步:配置ISP路由器 -配置路由器接口IP地址 第四步:测试与验证 -测试PC1/PC2是否可以访问Server1
配置命令
第一步:给PC1/PC2/Server1配置接口IP地址,掩码,网关 第二步:配置NAT R1的配置: [Huawei]sys R1 [R1]int g0/0/0 [R1-GigabitEthernet0/0/2]ip address 192.168.1.254 24 [R1-GigabitEthernet0/0/2]int g0/0/1 [R1-GigabitEthernet0/0/1]ip address 200.1.1.1 24 [R1-GigabitEthernet0/0/1]quit [R1]ip route-static 0.0.0.0 0.0.0.0 200.1.1.2 //配置默认路由,下一跳为公网网关 [R1]int g0/0/1 //进入出接口 [R1-GigabitEthernet0/0/1]nat static global 200.1.1.10 inside 192.168.1.1 //在出口设备的出接口上配置静态NAT,让公网IP 200.1.1.10 和内网IP 192.168.1.1做1对1绑定 以后PC1在访问公网的时候,PC1发送的数据包到达R1的g0/0/1接口的时候,这个接口会将PC1发的 这个数据报文的源IP:192.168.1.1 转换为200.1.1.10,从而实现内网访问公网的需求 [R1-GigabitEthernet0/0/1]nat static global 200.1.1.11 inside 192.168.1.2 第三步:配置ISP路由器 ISP的配置: [Huawei]sys ISP [ISP-]int g0/0/0 [ISP-GigabitEthernet0/0/1]ip address 200.1.1.2 24 [ISP-GigabitEthernet0/0/1]int g0/0/2 [ISP-GigabitEthernet0/0/2]ip address 210.1.1.254 24 第四步:测试与验证 PC1 ping Server1 可以通 PC2 ping Server1 可以通
总结
1)NAT配置在出口设备的出接口上 2)NAT转换表 NAT有一个转换表:一个私有IP 和一个公网IP绑定在一起 数据包出去的时候,转换源IP: 将源IP由私有IP转换为公有IP, 目标IP不变 数据包回来的时候,转换目的IP: 将目的IP由公有IP地址,转换为私有IP,源IP不变 3)备注: -默认路由解决的是数据出去的问题 -NAT解决的时候数据回来的问题 4)静态NAT:
私有IP地址和公有IP地址是1对1转换 一个私有IP地址,绑定一个公有IP地址 静态1对1 并没有从根本上节约IPv4地址
五、动态NAT配置
拓扑
需求
实现企业内网主机(PC1/PC2)访问公网网站服务器(Server1)
配置步骤 在上个实验的基础上:
第一步:删除静态NAT配置 第二步:配置动态NAT 1.创建NAT地址池-多个公有地址-泳池-多个
2.创建ACL-看泳池的老大爷-多个
3.在出口将地址池和ACL进行绑定调用 no-pat -老大爷和泳池绑定在一起 第三步:测试与验证 -测试PC1/PC2是否可以访问Server1
配置命令
删除静态NAT: [R1]in g0/0/1 [R1-GigabitEthernet0/0/1]undo nat static global 200.1.1.10 inside 192.168.1.1 [R1-GigabitEthernet0/0/1]undo nat static global 200.1.1.11 inside 192.168.1.2
动态NAT配置:
[R1]nat address-group 1 200.1.1.5 200.1.1.10 //创建公有地址池
起始地址 结束地址
[R1]acl 2000 //创建ACL
[R1-acl-basic-2000]rule 10 permit source 192.168.1.0 0.0.0.255
允许 192.168.1.0网段
默认规则:拒绝所有
[R1-acl-basic-2000]q
[R1]in g0/0/1 //进入出口
[R1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1 no-pat // 让acl 2000 定义的内网地址段,192.168.1.0/24 绑定公网地址池 address-group 1 //不做端口转换(no-pat)
总结
动态NAT:
基于“NAT地址池”实现“私有IP地址”和“公有IP地址”之间的转换 一个公有IP地址在不同的时间可以为多个私有IP地址进行转换 但是在同一时间一个公有IP地址只能为一个私有IP地址的网络会话进行转换 所以,动态NAT也没有从根本上解决公网IP节约的问题, 所以,如果公司的内网设备有同时上网的需求,产生大量网络会话,会导致NAT地址池枯竭 那么NAT地址池里公有IP地址的数量就需要很多很多,才有可能满足私有IP地址的主机上网的需求 所以动态NAT也没有从根本上解决节省公有IP地址的目的
六、NAPT之NAT地址池配置
需求
实现企业内网主机(PC1-PC4)访问公网网站服务器(Server1)
配置步骤
第一步:删除出接口动态NAT配置 第二步:配置NAPT 1.创建NAT地址池-多个公有地址-泳池-多个
2.创建ACL-看泳池的老大爷-多个
3.在出口将地址池和ACL进行绑定调用 -老大爷和泳池绑定在一起 第三步:测试与验证 -测试PC1/PC2是否可以访问Server1
配置命令
删除出接口动态NAT配置
[R1]in g0/0/1 //进入出口
[R1-GigabitEthernet0/0/1]undo nat outbound 2000 address-group 1 no-pat
NAPT配置:
[R1]nat address-group 2 200.1.1.3 200.1.1.3 //创建地址池2
地址池可以放入1个地址 起始 结束
[R1]acl 2001 //创建ACL2001
[R1-acl-basic-2001]rule 10 permit source 192.168.1.0 0.0.0.255
[R1]in g0/0/1
[R1-GigabitEthernet0/0/1]nat outbound 2001 address-group 2
配置步骤和动态NAT一样,最后调用时不加no-pat 就是NAPT的配置
测试与验证 PC1 ping server1 -t 通 PC2 ping server1 -t 通
总结
NAPT:网络地址端口转换 使用“IP地址+端口号”的形式进行转换,使多个私有IP地址可共用一个公网IP地址访问外网 允许多个私有地址同时转换为同一个公有地址,因此也称为“多对一地址转换”或地址复用 NAPT的实现方式主要有EasyIP和地址池NAPT 地址池NAT在目前企业中应用的最为广泛,是最主流的NAT解决方案 地址池NAT适用于大型企业,主机数量多企业
七、NAPT之easy-ip配置
需求
实现企业内网主机(PC1-PC4)访问公网网站服务器(Server1)
配置步骤
第一步:删除出接口NAPT配置 第二步:配置easy-IP
1.创建ACL
2.在出口NAT直接调用ACL 第三步:测试与验证 -测试PC1/PC2是否可以访问Server1
配置命令
第一步:删除出接口NAPT配置
[R1]in g0/0/1 //进入出口
[R1-GigabitEthernet0/0/1]undo nat outbound 2001 address-group 2 第二步:配置NAPT之easy-ip R1配置:
1.创建ACL 如已有相同的规则acl(可忽略) [R1]acl 2001 [R1-acl-basic-2001]rule 10 permit source 192.168.1.0 0.0.0.255 //定义acl [R1-acl-basic-2001]quit
2.在出口NAT直接调用ACL [R1]int g0/0/1 [R1-GigabitEthernet0/0/1]nat outbound 2001 //让acl 2001 定义的内网地址段,利用出接口IP地址来做nat 转换 第三步:测试与验证 PC1-4 ping server1 -t (可以抓包验证转换的地址为出接口IP地址)
总结
Easy-ip:
利用出口设备的出接口IP地址做NAT转换 这是目前最节约公网IP的一种NAT解决方案 easy-ip 适用于中小型企业,主机数量少的企业
八、NAT-Server
拓扑
需求
1)让企业内网主机访问公网网站服务器--已完成
2)让公网主机可以访问企业内网服务器(web/ftp)-实现内网服务器的对外映射
配置步骤
配置步骤: 第一步:给PC/Server配置接口IP地址,掩码,网关 第二步:R1配置默认路由 -边界路由器R1,配置接口IP地址和掩码 -边界路由器R1,配置默认路由 第三步:配置easy-IP -配置ACL-允许那些内网网段访问互联网 -在边界路由器R1的出接口配置easy-IP 第四步:配置nat-server -在企业内网中将server1的ftp服务启动,将server2的web服务启动 -在边界路由器R1的出接口的配置nat-server(实现外网主机访问内网服务器) 第五步:配置ISP路由器 -配置ISP-dx路由器接口IP地址 第六步:测试与验证 -测试PC1/PC2是否可以访问Server1
配置命令
第一步:给Client/Server1/Server2配置接口IP地址,掩码,网关 第二步:配置默认路由 R1配置: [Huawei]sys R1 [R1]int g0/0/2 [R1-GigabitEthernet0/0/0]ip address 192.168.1.254 24 [R1-GigabitEthernet0/0/0]int g0/0/1 [R1-GigabitEthernet0/0/1]ip address 200.1.1.1 24 //掩码是29 [R1-GigabitEthernet0/0/1]quit [R1]ip route-static 0.0.0.0 0.0.0.0 200.1.1.2 //配置默认路由 第三步:配置easy-ip R1配置: [R1]acl 2000 [R1-acl-basic-2000]rule 10 permit source 192.168.1.0 0.0.0.255 //定义acl [R1-acl-basic-2000]quit [R1]int g0/0/1 [R1-GigabitEthernet0/0/1]nat outbound 2000 备注: 让外网主机ping 通200.1.1.10(做nat-server -icmp 绑定) [R1-G0/0/1]nat server protocol icmp global 200.1.1.10 inside 192.168.1.1
第四步:配置NAT Server R1配置: [R1]int g0/0/1 [R1-G0/0/1]nat server protocol tcp global 200.1.1.10 21 inside 192.168.1.1 21 //将私有IP:192.168.1.1的21端口映射给公有IP:200.1.1.10的21的端口 //让外网主机能够通过200.1.1.10:21 访问到企业内网ftp服务器 [R1-G0/0/1]nat server protocol tcp global 200.1.1.10 80 inside 192.168.1.2 80 //将私有IP:192.168.1.2的80端口映射给公有IP:200.1.1.10的80的端口 //让外网主机能够通过200.1.1.10:80 访问到企业内网web服务器 [R1-G0/0/1]quit =============================================================== 第五步:配置ISP路由器 ISP的配置: [Huawei]sys ISP- [ISP]int g0/0/1 [ISP-GigabitEthernet0/0/0]ip address 200.1.1.2 24 [ISP-GigabitEthernet0/0/0]int g0/0/2 [ISP-GigabitEthernet0/0/1]ip address 210.1.1.254 24 第五步:测试与验证 外网:Client1 通过http-client1 访问内网web服务器: http://200.1.1.10 外网:Client1 通过ftp-client1 访问内网ftp服务器 :服务器地址:200.1.1.10
总结
NATServer 是一种特殊的静态NAT 主要应用于外网用户访问企业内网服务器的场景
DAY10-面试题
1.问题: 在面对外部网络攻击时,ACL和NAT如何协同提高企业网络的安全性?
ACL通过定义哪些流量可以进入网络来提供访问控制,而NAT通过转换内外网络地址来隐藏内部网络结构。两者协同工作,ACL阻止不安全或不必要的流量,而NAT则提供一个额外的安全层,防止外部攻击者直接访问内部网络资源。
2.问题:在进行网络维护时,您发现有些内部网络设备使用静态NAT配置连接到公网。考虑到IPv4地址的稀缺,您怎样决定是否继续使用静态NAT,或者转向使用动态NAT或NAPT?
我会基于网络需求和可用资源来评估。如果网络中有少量关键设备需要稳定的公网IP,例如公开的Web服务器或远程访问服务器,那么我会保留这些设备的静态NAT配置。但对于大部分内部用户而言,动态NAT或NAPT将是更有效的解决方案,因为它们允许多个私有IP共享有限的公网IP资源。我还会考虑NAPT的端口重用特性,这在公网IP非常有限的情况下尤为重要。此外,我会关注网络安全和管理的便利性,确保任何更改都不会降低网络的整体性能和安全性。