NAT网络地址转换

发布时间 2023-10-17 18:22:35作者: smileleooo

网络地址转换 NAT(Network Address Translation)是一种网络技术,用于将一个网络的IP地址转换为另一个网络的IP地址。

NAT技术的主要作用是将私有IP地址转换为公有IP地址,以便在互联网上进行通信。这样,私有网络中的计算机就可以使用单个公有IP地址与互联网通信,而不需要为每个计算机分配一个唯一的公有IP地址。

IPv4地址资源是有限的(不到43亿个),不可能为每个终端设备分配一个唯一的IP地址。


私有网络IP地址

私有网络IP地址是指在私有网络中使用的IP地址,这些地址不在公共互联网上使用,而是只在私有网络内部使用。如家庭网络、企业网络和其他组织内部网络。私网地址具备可复用性,在不同的私有网络可以出现相同的私有网络IP地址。

私有网络IP地址的范围:

  • A类:10.0.0.0 ~ 10.255.255.255(10.0.0.0/8)
  • B类:172.16.0.0 ~ 172.31.255.255(172.16.0.0/12)
  • C类:192.168.0.0 ~ 192.168.255.255(192.168.0.0/16)

NAT技术

NAT技术有多种实现方式,包括静态NAT和动态NAT。

静态NAT(一对一的NAT):是指将一个私有IP地址映射到一个公有IP地址。

动态NAT:则是根据需要动态地将私有IP地址映射到可用的公有IP地址。

NAT配置

华为体系下所有NAT相关的配置都是在边界路由器的出接口配置

静态NAT

192.168.1.2为私有IP地址,23.0.0.3为一个合法的公有IP地址
[r2-GigabitEthernet0/0/1]nat static global 23.0.0.3 inside 192.168.1.2

动态NAT

1.创建动态地址组
[r2]nataddress-group 1 23.0.0.3 23.0.0.4 

2.创建ACL列表抓取流量(这些流量需要被转换)
[r2]acl 2000
[r2-acl-basic-2000]rule 5 permit

3.动态NAT,转换时不带端口号
[r2-GigabitEthernet0/0/1]nat outbound 2000 address-group 1 no-pat

NAPT技术

它是NAT技术的一种变体,NAPT技术不仅可以将私有IP地址转换为公有IP地址,还可以将私有IP地址和端口号转换为公共IP地址和端口号。

NAPT技术是在NAT设备上维护一个转换表,该表记录了私有IP地址和端口号与公共IP地址和端口号之间的映射关系。当私有网络中的计算机向互联网发送数据包时,NAT设备会将数据包的源IP地址和端口号替换为公有IP地址和不同的端口号,并将这些信息添加到转换表中。当互联网上的计算机向公共IP地址和端口号发送数据包时,NAT设备会根据转换表将数据包转发到相应的私有IP地址和端口号。

配置

1.创建ACL列表抓取流量,需要被转换的
[r1]acl 2000
[r1-acl-basic-2000]rule 5 permit

2.接口上配置一个公有的IP地址
[r1-GigabitEthernet0/0/0]ip address 23.0.0.1 255.255.255.0

3.从这个接口发出时进行转换,转换的地址是这个接口配置的公网地址
[r1-GigabitEthernet0/0/0]nat outbound 2000

如果有多个公网地址可供使用,同样可以创建公网地址组

[r2-GigabitEthernet0/0/0]nat outbound 2000 address-group 1

转换过程中会携带端口号

端口映射

端口映射就是将内网中的主机的一个端口映射到外网主机的一个端口,提供相应的服务。当用户访问外网IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上。

假如在内网中有一台Web服务器,但是外网中的用户是没有办法直接访问该服务器的。于是可以在路由器上设置一个端口映射,只要外网用户访问路由器IP(公网IP地址)的80端口,那么路由器会把自动把流量转到内网Web服务器的80端口上。并且,在路由器上还存在一个Session,当内网服务器返回数据给路由器时,路由器能准确的将消息发送给外网请求用户的主机。在这过程中,路由器充当了一个反向代理的作用,保护了内网中主机的安全。

配置:

例如将访问 23.0.0.1 8080 端口的流量映射给私网192.168.1.200 这台服务器的80端口

nat server protocol tcp global current-interface 8080 inside 192.168.1.200 80