HCIP Datacom NAT网路地址转换

HCIP Datacom NAT网路地址转换

  • NAT(Network Address Translation,网络地址转换)
  • 主要用于实现内部网络的主机访问外部网络

NAT概述

NAT产生背景

  • 随着互联网用户的增多,IPv4的公有地址资源显得越发短缺
  • 同时IPv4公有地址资源存在地址分配不均的问题,导致部分地区的IPv4可用公有地址严重不足

私网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

NAT技术原理

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

静态

静态NAT原理

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

静态NAT配置介绍

  • 方式一:接口视图下配置静态NAT
    • nat static global { global-address } inside { host-address }
    • global参数用于配置外部公有地址,inside参数用于配置内部私有地址
  • 方式二:系统视图下配置静态NAT
    • nat static global { global-address } inside { host-address }
    • 配置命令相同,视图为系统视图,之后在具体的接口下开启静态NAT
    • nat static enable
    • 在接口下使用nat static功能

静态NAT配置示例

  • 在R1上配置静态NAT将内网主机的私有地址一对一映射到公有地址
    • interface GigabitEthernet0/0/1
    • ip address 122.1.2.1 24
    • nat static global 122.1.2.1 inside 192.168.1.1
    • nat static global 122.1.2.2 inside 192.168.1.2
    • nat static global 122.1.2.3 inside 192.168.1.3

动态

动态NAT原理

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

动态NAT转换示例

动态NAT配置示例

  • 创建地址池
    • nat address-group group-index start-address end-address
    • 配置公有地址范围,其中Group-index为地址池编号,start-address、end-address分别为地址池起始地址、结束地址。
  • 配置地址转换的ACL规则
    • acl number
    • rule permit source source-address source-wildcard
    • 配置基础ACL,匹配需要进行动态转换的源地址范围
  • 接口视图下配置带地址池的NAT Outbound
    • nat outbound acl-number address-group group-index[no-pat]
    • 接口下关联ACL与地址池进行动态转换,no-pat参数指定不进行端口转换

动态NAT配置示例

  • 在R1上配置动态NAT将内网主机的私有地址动态映射到公有地址
    • nat address-group 1 122.1.2.1 122.1.2.3
    • acl 2000
    • rule 5 permit source 192.168.1.0 0.0.0.255
    • q
    • interface GigabitEthernet0/0/1
    • nat outbound 2000 address-group 1 no-pat

NAPT、East-IP

NAPT原理

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

NAPT配置示例

  • 在R1上配置NAPT让内网所有私有地址通过122.1.2.1访问公网
    • nat address-group 1 122.1.2.1 122.1.2.1
    • acl 2000
    • rule 5 permit source 192.168.1.0 0.0.0.255
    • q
    • interface GigabitEthernet0/0/1
    • nat outbound 2000 address-group 1

Easy-IP

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

Easy-IP配置示例

  • 在R1上配置Easy-IP让内网所有私有地址通过122.1.2.1访问公网
    • acl 2000
    • rule 5 permit source 192.168.1.0 0.0.0.255
    • q
    • interface GigabitEthernet0/0/1
    • nat outbound 2000

NAT Server

NAT Server使用场景

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

NAT Server配置示例

  • 在R1上配置NAT Server将内网服务器192.168.1.10的8080端口映射到公有地址122.1.2.1的80端口
    • interface GigabitEthernet0/0/1
    • ip address 122.1.2.1 24
    • nat server protocol tcp global 202.10.10.1 www inside 192.168.1.10 8080