第16章_NAT原理与配置

  • 随着Internet的发展和网络应用的增多,有限的IPv4公有地址已经成为制约网络发展的瓶颈。为解决这个问题,NAT(Network Address Translation,网络地址转换)技术应需而生。
  • NAT技术主要用于实现内部网络的主机访问外部网络。
    • 一方面NAT缓解了IPv4地址短缺的问题,
    • 另一方面NAT技术让外网无法直接与使用私有地址的内网进行通信,提升了内网的安全性。
  • 本章节我们将了解NAT的技术背景, 学习不同类型NAT的技术原理、使用场景。

1.NAT概述

1.1NAT产生背景

  • 随着互联网用户的增多,IPv4的公有地址资源显得越发短缺。
  • 同时IPv4公有地址资源存在地址分配不均的问题,这导致部分地区的IPv4可用公有地址严重不足。
  • 为解决该问题,使用过渡技术解决IPv4公有地址短缺就显得尤为必要。

image-20231120202744902

1.2私网IP地址

  • ==公有地址==:由专门的机构管理、分配,可以在Internet上直接通信的IP地址。
  • ==私有地址==:组织和个人可以任意使用,无法在Internet上直接通信,只能在内网使用的IP地址。
  • A、B、C类地址中各预留了一些地址专门作为私有IP地址:
    • 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

image-20231120202834744

1.3NAT技术原理

  • NAT:对IP数据报文中的IP地址进行转换,是一种在现网中被广泛部署的技术,一般部署在网络出口设备,例如路由器或防火墙上。
  • NAT的典型应用场景:在私有网络内部(园区、家庭)使用私有地址,出口设备部署NAT,对于“从内到外”的流量,网络设备通过NAT将数据包的源地址进行转换(转换成特定的公有地址),而对于“从外到内的”流量,则对数据包的目的地址进行转换。
  • 通过私有地址的使用结合NAT技术,可以有效节约公网IPv4地址。

image-20231120203832759

  • 由于私有地址无法在Internet上路由转发,访问Internet的IP数据包将缺乏路由无法到达私有网络出口设备。
  • 如果使用了私有地址的私有网络需要访问Internet,必须在网络出口设备配置NAT,将访问Internet的IP数据报文中的私有网络源地址转换成公有网络源地址。

2.NAT应用场景

  • 企业或家庭所使用的网络为私有网络,使用的是私有地址;运营商维护的网络为公共网络,使用的是公有地址。私有地址不能在公网中路由。

  • NAT一般部署在连接内网和外网的网关设备上。

image-20231120184217889

  • 随着网络设备的数量不断增长,对IPv4地址的需求也不断增加,导致可用IPv4地址空间逐渐耗尽。解决IPv4地址枯竭问题的权宜之计是分配可重复使用的各类私网地址段给企业内部或家庭使用。但是,私有地址不能在公网中路由,即私网主机不能与公网通信,也不能通过公网与另外一个私网通信。

  • NAT是将IP数据报文头部中的IP地址转换为另一个IP地址的过程,主要用于实现内部网络(私有IP地址)访问外部网络(公有IP地址)的功能。NAT一般部署在连接内网和外网的网关设备上。当收到的报文源地址为私网地址、目的地址为公网地址时,NAT可以将源私网地址转换成一个公网地址。这样公网目的地就能够收到报文,并做出响应。此外,网关上还会创建一个NAT映射表,以便判断从公网收到的报文应该发往的私网目的地址。

image-20240306135522504

image-20240306135858138

3.静态NAT

3.1静态NAT原理

  • 静态NAT:每个私有地址都有一个与之对应并且固定的公有地址,即私有地址和公有地址之间的关系是一对一映射。
  • 支持双向互访:私有地址访问Internet经过出口设备NAT转换时,会被转换成对应的公有地址。同时,外部网络访问内部网络时,其报文中携带的公有地址(目的地址)也会被NAT设备转换成对应的私有地址。

image-20231120205128845

3.2静态NAT转换示例

image-20231120205223422

3.3静态NAT配置介绍

1.方式一:接口视图下配置静态NAT

[Huawei-GigabitEthernet0/0/0] nat static  global { global-address} inside {host-address } 

global参数用于配置外部公有地址,inside参数用于配置内部私有地址。

2.方式二:系统视图下配置静态NAT

[Huawei] nat static  global { global-address} inside {host-address } 

配置命令相同,视图为系统视图,之后在具体的接口下开启静态NAT。

[Huawei-GigabitEthernet0/0/0] nat static enable

在接口下使能nat static功能。

3.4静态NAT配置示例

image-20231120205706723

配置验证

image-20231120205726986

  • 命令display nat static用于查看静态NAT的配置。
    • Global IP/Port表示公网地址和服务端口号。
    • Inside IP/Port表示私有地址和服务端口号。

4.动态NAT

4.1动态NAT原理

  • 动态NAT:静态NAT严格地一对一进行地址映射,这就导致即便内网主机长时间离线或者不发送数据时,与之对应的公有地址也处于使用状态。为了避免地址浪费,动态NAT提出了地址池的概念:所有可用的公有地址组成地址池
  • 当内部主机访问外部网络时临时分配一个地址池中未使用的地址,并将该地址标记为“In Use”。当该主机不再访问外部网络时回收分配的地址,重新标记为“Not Use”。

image-20231120210443599

4.2动态NAT转换示例

image-20231120210510797

image-20231120210526450

4.3动态NAT配置介绍

1.创建地址池

[Huawei] nat address-group group-index start-address end-address

配置公有地址范围,其中group-index为地址池编号,start-addressend-address分别为地址池起始地址、结束地址。

2.配置地址转换的ACL规则

[Huawei] acl number 
[Huawei-acl-basic-number ] rule permit source  source-address source-wildcard 

配置基础ACL,匹配需要进行动态转换的源地址范围。

3.接口视图下配置带地址池的NAT Outbound

[Huawei-GigabitEthernet0/0/0] nat outbound acl-number address-group group-index [ no-pat ]

接口下关联ACL与地址池进行动态地址转换,no-pat参数指定不进行端口转换。

4.4动态NAT配置示例

image-20231120210818444

  • nat outbound命令用来将一个访问控制列表ACL和一个地址池关联起来,表示ACL中规定的地址可以使用地址池进行地址转换。ACL用于指定一个规则,用来过滤特定流量。后续将会介绍有关ACL的详细信息。

  • nat address-group命令用来配置NAT地址池。

  • 本示例中使用nat outbound命令将ACL2000与待转换的192.168.1.0/24网段的流量关联起来,并使用地址池1(address-group 1)中的地址进行地址转换。no-pat表示只转换数据报文的地址而不转换端口信息。

配置验证

image-20231120211039748

  • display nat address-group group-index命令用来查看NAT地址池配置信息。

  • display nat outbound用来查看动态NAT配置信息。

  • 可以用这两条命令验证动态NAT的详细配置。在本示例中,指定接口Serial1/0/0与ACL关联在一起,并定义了用于地址转换的地址池1。参数no-pat说明没有进行端口地址转换。

5.NAPT

5.1NAPT原理

  • 动态NAT选择地址池中的地址进行地址转换时不会转换端口号,即No-PAT(No-Port Address Translation,非端口地址转换),公有地址与私有地址还是1:1的映射关系,无法提高公有地址利用率。
  • NAPT(Network Address and Port Translation,网络地址端口转换):从地址池中选择地址进行地址转换时不仅转换IP地址,同时也会对端口号进行转换,从而实现公有地址与私有地址的1:n映射,可以有效提高公有地址利用率。

image-20231120211644848

  • NAPT借助端口可以实现一个公有地址同时对应多个私有地址。该模式同时对IP地址和传输层端口进行转换,实现不同私有地址(不同的私有地址,不同的源端口)映射到同一个公有地址(相同的公有地址,不同的源端口)。

5.2NAPT转换示例

image-20231120211724875

image-20231120211736853

5.3NAPT配置示例

image-20231120212358730

6.Easy IP

6.1Easy IP原理

  • Easy IP:实现原理和NAPT相同,同时转换IP地址、传输层端口,区别在于Easy IP没有地址池的概念,使用接口地址作为NAT转换的公有地址。
  • Easy IP适用于不具备固定公网IP地址的场景:如通过DHCP、PPPoE拨号获取地址的私有网络出口,可以直接使用获取到的动态地址进行转换。

image-20231120212848753

  • DHCP:Dynamic Host Configuration Protocol ,动态主机配置协议
  • PPPoE:Point-to-Point Protocol over Ethernet ,以太网承载PPP协议

6.2Easy IP配置示例

image-20231120213111731

  • nat outbound acl-number命令用来配置Easy-IP地址转换。Easy IP的配置与动态NAT的配置类似,需要定义ACLnat outbound命令,主要区别是Easy IP不需要配置地址池,所以nat outbound命令中不需要配置参数address-group

  • 在本示例中,命令nat outbound 2000表示对ACL 2000定义的地址段进行地址转换,并且直接使用Serial1/0/0接口的IP地址作为NAT转换后的地址。

  • 在RTA上配置Easy-IP让内网所有私有地址通过200.10.10.1访问公网。

配置验证

image-20231120213527677

  • 命令display nat outbound用于查看命令nat outbound的配置结果。
    • Address-group/IP/Interface表项表明接口和ACL已经关联成功,type表项表明EasyIP已经配置成功。

7.NAT Server

7.1NAT Server使用场景

  • NAT Server:指定[公有地址:端口][私有地址:端口]的一对一映射关系,将内网服务器映射到公网,当私有网络中的服务器需要对公网提供服务时使用。
  • 外网主机主动访问[公有地址:端口]实现对内网服务器的访问。

image-20231120213722838

7.2NAT Server转换示例

image-20231120213750367

7.3NAT Server配置示例

image-20231120213821318

  • nat server [protocol {protocol-number|icmp|tcp|udp}global {global-addresscurrent-interface global-port;inside {host-address host-port }vpn-instance vpn-instance-nameacl acl-number description description]命令用来定义一个内部服务器的映射表,外部用户可以通过公网地址和端口来访问内部服务器。
    • 参数protocol指定一个需要地址转换的协议;
    • 参数global-address指定需要转换的公网地址;
    • 参数inside指定内网服务器的地址。

配置验证

image-20231120214035625

  • display nat server命令用于查看详细的NAT服务器配置结果。

  • 可以通过此命令验证地址转换的接口、全局和内部IP地址以及关联的端口号。在本示例中,全局地址202.10.10.1和关联的端口号80(www)分别被转换成内部服务器地址192.168.1.1和端口号8080。

8.思考

  • 何种NAT转换可以让外部网络主动访问内网服务器?

    • 静态NAT、NAT server都可以。静态NAT实现了双向互访,所以自然容许外部网络对内网服务器的访问。NAT Server的场景本身就是让外部网络主动访问内部服务器。
  • NAPT相比较于No-PAT有哪些优点?

    • NAPT支持多个私有地址转换为一个共同的公有地址,公有地址利用率更高。