*** 地址转换(NAT)技术的理论部分可以看博客—— *** 层——NAT。NAT 的功能大致为:在局域网中组织会为内部主机分配私有地址,当内部主机发送数据包到外部 *** 时私有地址就会自动转换为公有 IP 地址,公有 IP 地址返回的流量的目的地址也会自动转换为内部私有地址。NAT 通常工作在末节 *** 的边界。
在 NAT 术语中,NAT 转换后的地址称之为全局地址,NAT 转换前的地址为本地地址。内部本地地址是需要进行 NAT 转换的主机的私有地址,外部本地地址是与 ISP 相连的路由器接口的地址,这会是个公有地址。进行 NAT 转换时,内部本地地址将会转换为内部全局地址,外部全局地址会成为目的地址。
地址类型
含义
内部本地地址
转换前的内部源地址
外部本地地址
转换后的目标地址
内部全局地址
转换后的源地址
外部全局地址
转换前的外部目标地址
相关视频讲解:
*** 穿透,P2P,打洞的核心原理,NAT,穿透的蓝盟超越网原理:「链接」
*** 穿透,NAT,打洞,了解p2p的秘密:「链接」
静态 NAT 实现本地地址和全局地址的一对一映射,这些映射由 *** 管理员进行配置。当配置静态 NAT 的设备向互联网发送流量时,内部本地地址会被转换为已配置的内部全局地址,内部全局地址是共有的 IPv4 地址。很显然,静态 NAT 并不能节省共有 IP 地址的使用。例如有如图所示拓扑,可用的公网地址有 170.168.2.2、170.168.2.3、170.168.2.4,则 NAT 转换表可能是:
内部本地 IP 地址
内部全局 IP 地址
192.168.1.21
170.168.2.2
192.168.1.22
170.168.2.3
192.168.1.23
170.168.2.4
例如主机 192.168.1.21 向外部 *** 发送分组,则配置了 NAT 的路由器发现分组的源 IP 地址是内部本地 IP 地址,则就将该地址转换为内部全局 IP 地址并记录在 NAT 表中,例如这里转换为 170.168.2.2。转换后分组会被转发到外部接口,当路由器收到外部主机返回的分组时,路由器会根据 NAT 表把内部全局 IP 地址转换回内部本地 IP 地址。
动态 NAT 实现本地地址和全局地址之间的多对多映射,将使用公有地址池,以先到先得的原则分配地址的使用。当配置了动态 NAT 的内部设备访问外部 *** 时,动态 NAT 会分配 NAT 地址池中可用的 IPv4 地址。动态 NAT 的转换也会受到 IP 地址池的 IP 地址数量限制,例如内部 *** 有 50 个使用私有地址的设备,IP 地址池有 5 个公有地址,则只能将这 50 个私有地址映射到这 5 个公有地址上。
端口地址转换 PAT实现本地地址和全局地址之间的多对一映射,地址将通过端口号进行重载。由于端口号可以是 0 ~ 65536,所以一个公有 IP 地址可以重载 65536 次。内部本地地址进行转换时,PAT 会将唯一的源端口号添加到内部全局地址上。端口号会用来区分流量,当目的主机返回响应时,端口号会决定路由器将数据包转发到哪个设备上。在实际情况下端口号可能会被其他会话或者应用占用,此时如果使用的端口号已经被使用了,则 PAT 会从端口号组中分配一个可用的端口号。如果已经没有可用的端口号了,PAT 会进入下一个公网地址进行转换,并且重新分配端口号。例如有如图所示拓扑,可用的公网地址只有 170.168.2.2,则 NAT 转换表可能是:
内部本地 IP 地址
内部全局 IP 地址
192.168.1.21:12000
170.168.2.2:12000
192.168.1.22:12000
170.168.2.3:12001
192.168.1.23:24000
170.168.2.4:12002
PAT 可以使用端口号对一个公网地址进行重载,例如主机 192.168.1.21 向外部 *** 发送分组,则配置了 NAT 的路由器发现分组的源 IP 地址是内部本地 IP 地址,则就将该地址转换为内部全局 IP 地址并加上一个可用的端口号记录在 NAT 表中,例如这里转换为 170.168.2.2:12000。当路由器收到外部主机返回的分组时,路由器会根据 NAT 表,根据端口号把内部全局 IP 地址转换回内部本地 IP 地址。
C/C Linux后台服务器开发高级架构师学习视频 点击 正在跳转 获取,内容知识点包括Linux,Nginx,ZeroMQ,MySQL,Redis,线程池,MongoDB,ZK,Linux内核,CDN,P2P,epoll,Docker,TCP/IP,协程,DPDK等等。免费学习地址:C/C Linux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂
静态 NAT 的配置比较简单,因为只需要将一个内部地址映射到一个外部地址就行。在配置模式使用的命令如下,local-ip 表示进行 NAT 转换的内部地址,global-ip 表示进行 NAT 转换的外部地址,这样就可以建立起地址的映射关系。
Router(config)# ip nat inside source static local-ip global-ip
接着需要将接口配置为相对于 NAT 的内部接口和外部接口,内部接口使用如下命令在接口配置模式下定义:
Router(config-if)# ip nat inside
外部接口使用如下命令在接口配置模式下定义:
Router(config-if)# ip nat outside
动态 NAT 的配置需要先定义用于转换的地址池,并且为这个地址池命名,使用的命令如下。“pool-name” 是地址池名,“start-ip” 是之一个可用 ip,“end-ip” 是最后一个可用的 ip,这 2 个参数将表示 ip 地址的范围。netmask 关键字指示哪些地址位属于 *** 位。
Router(config)# ip nat pool pool-name start-ip end-ip {netmask netmask | prefix-length prefix-length}
接着需要定义一个 ACL 把需要进行 NAT 转换的流量筛选出来,使用命令如下,使用命名 ACL 也可以:
Router(config)# access-list access-list-number permit source [ source-wildcard ]
接下来要将 ACL 和 NAT 地址池进行绑定,使用的命令如下:
Router(config)# ip nat inside source list access-list-number pool pool-name
最后接着需要将接口配置为相对于 NAT 的内部接口和外部接口,内部接口使用如下命令定义:
Router(config-if)# ip nat inside
外部接口使用如下命令定义:
Router(config-if)# ip nat outside
思科 11.2.3.7 Lab 配置 NAT 地址池过载和 PAT 的实验拓扑如下。
地址分配表:
设备
接口
IP 地址
子网掩码
默认网关
Gateway
G0/1
192.168.1.1
255.255.255.0
N/A
S0/0/1
209.165.201.18
255.255.255.252
N/A
ISP
S0/0/0 (DCE)
209.165.201.17
255.255.255.252
N/A
Lo0
192.31.7.1
255.255.255.255
N/A
PC-A
NIC
192.168.1.20
255.255.255.0
192.168.1.1
PC-B
NIC
192.168.1.21
255.255.255.0
192.168.1.1
PC-C
NIC
192.168.1.22
255.255.255.0
192.168.1.1
配置网关路由器,将来自 192.168.1.0/24 *** 的 IP 地址转换为 209.165.200.224/29 范围内的六个可用地址中的一个。首先定义与 LAN 私有 IP 地址相匹配的访问控制列表,由于要对 G0/1 接口的网段 192.168.1.0/24 做 NAT,因此定义 ACL 1 用来允许对 192.168.1.0/24 的流量能够被转换。标准 ACL 筛选流量的作用也可以从此处体现。
Gateway(config)# access-list 1 permit 192.168.1.0 0.0.0.255
定义可用的公有 IP 地址池,和动态 NAT 一样,使用的命令为 “ip nat pool pool-name start-ip end-ip { netmask netmask | prefix-length prefix-length }”。“pool-name” 是地址池名,“start-ip” 是之一个可用 ip,“end-ip” 是最后一个可用的 ip,这 2 个参数将表示 ip 地址的范围。netmask 关键字指示哪些地址位属于 *** 位。
Gateway(config)# ip nat pool public_access 209.165.200.225 209.165.200.230 netmask 255.255.255.248
定义从内部源列表到外部地址池的 NAT,使用 “ip nat inside source list access-list-number pool pool-name overload” 命令绑定 ACL 和地址池。注意到示例命令后面跟了个关键字 overload,该关键字表示过载,用于配置 PAT。
Gateway(config)# ip nat inside source list 1 pool public_access overload
指定接口,对接口使用 “ip nat inside” 配置内部接口,“ip nat outside” 命令配置外部接口。
Gateway(config)# interface g0/1 Gateway(config-if)# ip nat inside Gateway(config-if)# interface s0/0/1 Gateway(config-if)# ip nat outside
每台 PC 对 192.31.7.1 地址执行 ping 操作后,显示网关路由器上的 NAT 统计数据。
Gateway# show ip nat statistics
该命令可以显示总转换数,NAT 配置参数、地址池地址数量和已分配地址数量。
显示网关路由器上的 NAT。
Gateway# show ip nat translations
该命令可以显示活动的 NAT 转换。
命令列出了 3 个内部本地 IP 地址,分别是 192.168.1.20、192.168.1.21、192.168.1.22,列出了 1 个内部全局 IP 地址 209.165.200.225。
删除可用公有 IP 地址池。
Gateway(config)# no ip nat pool public_access 209.165.200.225 209.165.200.230 netmask 255.255.255.248
删除从内部源列表到外部地址池的 NAT 转换
Gateway(config)# no ip nat inside source list 1 pool public_access overload
首先定义与 LAN 私有 IP 地址相匹配的访问控制列表,ACL 1 用来允许对 192.168.1蓝盟超越网.0/24 进行转换。标准 ACL 筛选流量的作用也可以从此处体现。
Gateway(config)# access-list 1 permit 192.168.1.0 0.0.0.255
指定接口,对接口使用 ip nat inside 和 ip nat outside 命令。
Gateway(config)# interface g0/1 Gateway(config-if)# ip nat inside Gateway(config-if)# interface s0/0/1 Gateway(config-if)# ip nat outside
使用接口而不是地址池来定义外部地址,进而配置 PAT,将源列表与外部接口相关联。
Gateway(config)# ip nat inside source list 1 interface serial 0/0/1 overload
每台 PC 对 192.31.7.1 地址执行 ping 操作后,显示网关路由器上的 NAT 统计数据。
Gateway# show ip nat statistics
显示网关路由器上的 NAT。
Gateway# show ip nat translations
近段时间,一轮新的 BitRAT 恶意软件活动正在加速传播。手段是利用非官方的微软许可证激活器,来激活盗版 Windows 操作系统。Bleeping Computer 指出,BitRAT 是一款功能强大的远程访问木马。在网络犯罪论坛和暗网市场上,它正以 20 美元的买断价,向网络犯罪分子们兜售。...
据The Verge报道,根据Bellingcat的调查结果,俄罗斯外卖平台Yandex Food的一次大规模数据泄漏暴露了属于那些与俄罗斯秘密警察有关的递送地址、电话号码、姓名和配送指示。 Yandex Food是俄罗斯大型互联网公司Yandex的子公司,于3月1日首次报告了数据泄漏事件,将其归...
就在我们了解到国家支持的黑客已经开始研究上周震惊网络安全界的Log4j漏洞问题时,其他研究人员发出了一个令人不安的发展信号。Log4j黑客,也被称为Log4Shell已经有一个补丁,已经可以部署到企业。但事实证明,这个补丁玩起了“套娃”:它解决原有问题的同时又产生新的安全问题,且可以被外部利用。因此...
一家位于美国的电脑零售公司成为SideWalk攻击的目标,这种攻击以前从未被发现,是一个中国高级黑客组织最近开展的活动一部分,该组织主要以专门针对东亚和东南亚实体的网络攻击而闻名。 斯洛伐克网络安全公司ESET在持续跟踪名为SparklingGoblin的高级威胁过程当中发现了这个攻击,被认为与Wi...
Hackernews 编译,转载请注明出处: 我们发现一个以前未知的rootkit,它瞄准了惠普企业的Integrated Lights Out(iLO)服务器管理技术,并进行攻击,篡改固件模块并彻底清除受感染系统中的数据。 伊朗网络安全公司Amnpardaz本周记录了这一发现,这是iLO固件中...
据BBC新闻报道,联邦调查局与澳大利亚政府合作,在全球范围内逮捕了800多名涉及毒品走私、洗钱、谋杀阴谋等的犯罪分子,这要归功于联邦调查局秘密运行的加密信息应用ANoM。 ANoM App是联邦调查局创建的ANoM公司的一部分。装有ANoM的设备通过高级人物在整个犯罪网络中分发,这让其他犯罪分子有信...