【网络工程师】NAT网络地址转换技术

汇总命令,理解记忆

bash 复制代码
# ------静态NAT-------------
# 进入外网接口
[R1] interface GigabitEthernet 0/0/1
# 一对一静态映射
[R1-GigabitEthernet0/0/1] nat static global 100.1.1.10 inside 10.1.1.10

# ------动态NAT,内外网一对一映射-------------
# 系统视图创建ACL和地址组
[R1] acl 2000
[R1-acl-basic-2000] rule 5 permit source 10.1.1.0 0.0.0.255
[R1-acl-basic-2000] quit

[R1] nat address-group 1
# 定义了一个地址段,0为地址段索引号,起始地址为100.1.1.20,结束地址为100.1.1.30
[R1-address-group-1] section 0 100.1.1.20 100.1.1.30
[R1-address-group-1] quit

# 进入外网接口应用动态NAT
[R1] interface GigabitEthernet 0/0/1
# no-pat不做端口转换,去掉no-pat就是NAPT了
[R1-GigabitEthernet0/0/1] nat outbound 2000 address-group 1 no-pat
# ------NAPT,内外网多对一映射,上述命令去掉no-pat-------------

# ------Easy IP,将内网地址直接转换为接口的公网IP地址-------------
# 系统视图创建ACL
[R1] acl 2002
[R1-acl-basic-2002] rule 5 permit source 10.1.3.0 0.0.0.255
[R1-acl-basic-2002] quit

# 进入外网接口应用Easy IP
[R1] interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1] nat outbound 2002

# ------NAT Server,将公网地址的特定端口映射到内网服务器-------------
# 进入外网接口配置NAT Server
[R1] interface GigabitEthernet 0/0/1
# unr-route自动生成黑洞路由
[R1-GigabitEthernet0/0/1] nat server protocol tcp global 100.1.1.9 8443 inside 10.2.1.2 443 unr-route
# 映射UDP端口范围示例
[R1-GigabitEthernet0/0/1] nat server protocol udp global 100.1.1.10 10000 inside 10.2.1.3 10000 to 20000

# ------双向NAT,同时对源地址和目的地址进行转换-------------
# 系统视图创建ACL
[R1] acl 3000
[R1-acl-adv-3000] rule 10 permit ip source 10.1.1.100 destination 172.16.1.100
[R1-acl-adv-3000] quit

# 创建目的NAT地址组
[R1] nat address-group 3
[R1-address-group-3] section 0 100.1.1.50 100.1.1.50
[R1-address-group-3] quit

# 进入外网接口配置双向NAT
[R1] interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1] nat server protocol tcp global 100.1.1.50 8080 inside 172.16.1.100 80
[R1-GigabitEthernet0/0/1] nat outbound 3000 address-group 3

# ------黑洞路由,将NAT公网地址的路由只想空接口,防止路由环路-------------
# 系统视图手动配置黑洞路由
[R1] ip route-static 100.1.1.9 255.255.255.255 NULL0
# 配置网段级别的黑洞路由
[R1] ip route-static 100.1.1.0 255.255.255.0 NULL0 preference 70

# ------完整配置示例------------
# 基础接口配置
[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] ip address 192.168.1.1 255.255.255.0
[R1-GigabitEthernet0/0/0] quit

[R1] interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1] ip address 100.1.1.1 255.255.255.0

# 在同一个外网接口应用多种NAT
# 静态NAT
[R1-GigabitEthernet0/0/1] nat static global 100.1.1.10 inside 192.168.1.10
# 动态NAT,不做端口转发
[R1-GigabitEthernet0/0/1] nat outbound 2000 address-group 1 no-pat
# NAPT,进行端口转发
[R1-GigabitEthernet0/0/1] nat outbound 2001 address-group 2
# Easy IP,内网地址转为接口的公网地址
[R1-GigabitEthernet0/0/1] nat outbound 2002
# NAT server配置,从外往里,unr-route同时配置黑洞路由
[R1-GigabitEthernet0/0/1] nat server protocol tcp global 100.1.1.9 8443 inside 192.168.1.2 443 unr-route

基础概念

NAT:网络地址转换技术

最初目的:解决私网到公网地址转换,解决地址不够用的问题。

分类:

  • 源NAT:对报文中的源地址进行转换,私网访问Internet场景
  • 目的NAT:对报文中的目的地址进行转换,公网访问私网服务器的场景
  • 双向NAT

NAT优点

  • 实现IP地址复用
  • 有效避免外网攻击
  • 服务器负载均衡,外网访问内部,可以配置一对多轮询

NAT缺点

  • 网络监控难度加大:公网一对多私网场景,无法准确监控具体哪个私网
  • 限制某些具体应用,某些应用不支持

一般部署在网络出口设备上,例如路由器或者防火墙上。

静态NAT:

公网与私网地址一对一映射,支持双向互访。达不到节约IP地址的作用。

配置命令:

  • 接口视图配置
    *

    复制代码
      nat static global [global-address] inside [host-address]
  • 系统视图下配置,接口视图启用
    *

    复制代码
      nat static global [global-address] inside [host-address]   //系统视图创建
    复制代码
      nat static enable  // 接口视图启用

动态NAT

NAT地址池:

  1. 选择一个地址池中未使用的地址作为转换后的地址,并标记为in use
  2. 生成一个临时的NAT映射表
  3. 回包:查找NAT映射表,根据公有地址查找私有地址,并进行IP数据报文目的地址转换

配置命令

  1. 创建地址池
bash 复制代码
[Huawei] nat address-group group-index[0-7] [start-address] [end-address]
  1. 配置地址转换的ACL规则
bash 复制代码
[Huawei] acl [number]
[Huawei-acl-basic-number] rule permit source [source-address] [source-wildcard]
wildcard:通配符掩码
配置基础ACL,匹配需要进行动态地址转换的源地址范围。
  1. 接口视图下配置带地址池的NAT Outbound
bash 复制代码
[Huawei-GigabitEthernet 0/0/0] nat outbound acl-number address-group group-index [ no-pat ]
接口下关联ACL与地址池进行动态地址转换,no-pat参数指定不进行端口转换

NAPT(Network and port Translation)网络地址端口转换

不仅转换IP地址,同时也对端口号进行转换,实现公有地址与私有地址的1:n映射,可以有效提高公有地址利用率。

  1. 选择一个地址池中的地址,同时转换源I、端口
  2. 生成一个临时的NAT映射表,其中记录:源地址:端口,目标地址:端口
  3. 回包:查找NAT映射表,根据公有地址:端口信息查找对应的私有地址:端口,并进行数据报文中IP和端口转换

配置命令(基于动态NAT,去掉no pat参数)

  1. 创建地址池
bash 复制代码
[Huawei] nat address-group group-index[0-7] [start-address] [end-address]
  1. 配置地址转换的ACL规则
bash 复制代码
[Huawei] acl [number]
[Huawei-acl-basic-number] rule permit source [source-address] [source-wildcard]
wildcard:通配符掩码
配置基础ACL,匹配需要进行动态地址转换的源地址范围。
  1. 接口视图下配置带地址池的NAT Outbound
bash 复制代码
[Huawei-GigabitEthernet 0/0/0] nat outbound acl-number address-group group-index
接口下关联ACL与地址池进行动态地址转换,no-pat参数指定不进行端口转换

Easy IP

  • 基于NAPT精简
  • 省掉地址池

配置示例,内网所有私有地址通过122.1.2.1访问公网。

bash 复制代码
[R1] acl 2000
[R1-acl-basic-2000] rule 5 permit source 192.168.1.0  0.0.0.255
[R1-acl-basic-2000] quit
[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet 0/0/0] nat outbound 2000

NAT Server使用场景

与静态NAT很像(双向),主要做目标地址转换场景,一般用于外部访问内部(单向)。

  • NAT Server:公有地址:端口 的一对一映射关系,将内网服务器映射到公网。
  • 外网主机主动访问 公网地址:端口 实现对内网服务器的访问

配置示例

bash 复制代码
[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet 0/0/0] nat server protocol tcp global 122.1.2.1 www inside 192.168.1.10 8080

www默认指80端口

一对一映射配置

bash 复制代码
[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet 0/0/0] nat server global 122.1.2.1 inside 192.168.1.10

双向NAT

  • 域间双向NAT:在NAT Server基础上(外往里),增加源NAT配置(公网地址转换为私网地址)。
  • 域内双向NAT

防火墙上针对不同NAT类型处理顺序如下:

  • 匹配NAT Server
  • 匹配目的NAT
  • 查找路由表
  • 匹配安全策略
  • 匹配源NAT

黑洞路由

也是一条静态路由,出口为Null0

主要进行数据过滤和环路避免

  • NAT地址池地址与公网接口地址不在同一个网段时,必须配置黑洞路由
  • 配置指定协议和端口的NAT Server的global地址与公网接口地址不在同一个网段时,必须配置黑洞路由
  • 地址池或NAT Server的global地址与公网接口地址在同一个网段时(直连路由,不走默认路由导致来回发送,可以避免一个多余的ARP报文),建议配置黑洞路由
  • 地址池或NAT Server的global地址与公网接口地址一致时,不会产生环路,不需要配置黑洞路由

配置案例

unr-route自动为global地址配置黑洞路由

bash 复制代码
nat server policy protocol tcp global 100.1.1.9 8443 inside 10.2.1.2 443 unr-route

命令解释:外网tcp请求100.1.1.9:8443,转发到内网10.2.1.2:443
unr-route:自动为100.1.1.9配置黑洞路由

黑洞路由案例

外面公网访问地址池中公网,但是对应公网未配置私网时,未匹配到映射表,会匹配路由表,使用默认路由发送回发送方,发送方再使用默认路由发回来,形成路由黑洞,循环发送。。不是致命的,消耗带宽和资源,默认最多发送255次之后被丢弃。如果被恶意攻击,会影响网络健康。

解决:地址池中公网地址配置黑洞路由,找不到地址映射时,丢弃报文。

防火墙工作模式

  • 透明模式:内外部端口均没有配置IP地址
  • 路由模式:外部端口、内部端口均配置了IP地址
  • 混合模式:外部端口配置了IP地址,内部端口没有配置IP地址
相关推荐
NOVAnet20235 小时前
应对AI全球化部署挑战:南凌科技云连接服务实现算法模型全球稳定传输
网络·人工智能·科技·网络安全
tkevinjd6 小时前
select/poll/epoll
网络
微信api接口介绍7 小时前
微信个人发消息api
运维·服务器·开发语言·前端·网络·微信·ipad
网硕互联的小客服7 小时前
SSD和HDD存储应该如何选择?
linux·运维·服务器·网络·安全
Ronin3059 小时前
【Linux网络】进程间关系与守护进程
linux·网络·守护进程·进程间关系·前台进程·后台进程
せいしゅん青春之我9 小时前
【JavaEE初阶】网络经典面试题小小结
java·网络·笔记·网络协议·tcp/ip·java-ee
南♡黎(・ิϖ・ิ)っ9 小时前
JavaEE初阶,初识网络原理
网络·java-ee·智能路由器
NewCarRen9 小时前
未来智能网联汽车的网络安全档案建立方法
网络·自动驾驶·预期功能安全
Stanf up10 小时前
网络编程Socket套接字
linux·网络