NAT

1.NAT是什么

  • NAT (Network Address Translation) 又称为网络地址转换,用于实现私有网络和公有网络之间的互访
  • 公有网络地址( 以下简称公网地址)是指在互联网上全球唯一的IP地址。2019年11月26日, 是人类互联网时代值得纪念的一- 天,全球近43亿个IPv4地址已正式耗尽
  • 私有网络地址(以下简称私网地址)是指内部网络或主机的IP地址,IANA (互联网数字分配机构)规定将下列的IP地址保留用作私网地址,不在Internet(互联网).上被分配,可在一个单位或公司内部使用

RFC1918中规定私有地址如下:
A类私有地址: 10.0.0.0~10.255.255.255 /8
B类私有地址: 172.16.0.0~172.31.255.255 /16
c类私有地址: 192.168.0.0~192.168.255.255 /24
公网地址不够用需要NAT解决,需要将公网地址转换成私网地址供更多人使用

2.NAT功能

NAT不仅能解决了IP地址不足的问题,而且还能够有效地避免来自网络外部的入侵,隐藏并保护网络内部的计算机

  1. 宽带分享:这是NAT主机的最大功能
  2. 安全防护:NAT之内的PC联机到Internet.上面时,他所显示的IP是NAT主机的公网IP,所以client端的PC就具有一定程度的安全了,外界在进行portscan (端口扫描)的时候,就侦测不到源client端的PC

3.NAT优缺点

优点:节省公有合法IP地址、处理地址重叠、增强灵活性、安全性
缺点:延迟增大、配置和维护的复杂性、不支持某些应用( 比如VPN)

4.NAT作用工作原理

  1. NAT用来将内网地址和端口号转换成合法的公网地址和端口号,建立一个会话,与公网主机进行通信
  2. NAT外部的主机无法主动跟位于NAT内部的主机通信,NAT内部主机想要通信,必须主动和公网的一个IP通信,路由器负责建立一个映射关系,从而实现数据的转发

image.png
NAT数据包从内网到外网时,会转换源IP地址,由私网IP地址转换成 公网IP地址
NAT数据包从外网到内网时,会转换的目的IP地址,由公网IP地址转换成私网IP地址

5.NAT 静态 动态

5.1静态

  1. 静态NAT实现私网地址和公网地址的一对一转换。有多少个私网地址就需要配置多少个公网地址。静态NAT不能节约公网地址,但可以起到隐藏内部网络的作用
  2. 内部网络向外部网络发送报文时,静态NAT将报文的源IP地址替换为对应的公网地址:外部网络向内部网络发送响应报文时,静态NAT将报文的目的地址替换为相应的私网地址

静态配置

image.png

1.全局模式下设置静态NAT

[R1]int g0/0/0 进入g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.1.1 24 配置IP地址及子网掩码
[R1-GigabitEthernet0/0/0]un sh 启动接口
[R1-GigabitEthernet0/0/0]q 退出接口
[R1]nat static global 20.20.20.20 inside 192.168.1.10 添加PC1到20.20.20.20的地址转换
[R1-GigabitEthernet0/0/0]int g0/0/1 进入g0/0/1外网口
[R1-GigabitEthernet0/0/1]ip add 13.0.0.1 24 配置IP地址及子网掩码
[R1-GigabitEthernet0/0/1]un sh 启动接口
[R1-GigabitEthernet0/0/1]nat static en 启动静态nat

2.接口上设置静态NAT

[R1]int g0/0/0 进入g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.1.1 24 配置IP地址及子网掩码
[R1-GigabitEthernet0/0/0]un sh 启动接口
[R1-GigabitEthernet0/0/0]int g0/0/1 进入g0/0/1外网口
[R1-GigabitEthernet0/0/1]ip add 13.0.0.1 24 配置IP地址及子网掩码
[R1-GigabitEthernet0/0/1]un sh 启动接口
[R1-GigabitEthernet0/0/1]nat static global 20.20.20.20 inside 192.168.1.10 添加PC1到20.20.20.20的地址转换

5.2动态

多个私网IP地址对应多个公网IP地址,基于地址池一对一映射
1、配置外部网口和内部网口的IP地址
2、定义合法IP地址池

动态配置

[R1]acl 2000 创建设置ACL2000
[R1-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255
允许源地址为192.168.30.0/24网段的数据通过
[R1-acl-basic-2000]q 退出
[R1]nat address-group 1 20.0.0.100 20.0.0.200
新建一个名为1的nat地址池
[R1]int g0/0/1 进入g0/0/1口外网口
[R1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1 no-pat
将ACL2000匹配的数据转换为改接口的IP地址作为源地址(no pat 不做端口转换,只做IP地址转换默认为pat)

测试

长ping 13.0.0.1 -t
wireshark抓包R1
image.png
image.png

6.PAT多路复用 PAT NAPT Easyip NAT server

6.1PAT端口多路复用

PAT又称为NAPT (Network Address Port
Translation),它实现一个公网地址和多个私网地址之间的映射,因此可以节约公网地址。PAT的基本原理是将不同私网地址的报文的源IP地址转换为同一公网地址,但他们被转换为该地址的不同端口号,因而仍然能够共享同一地址。

PAT作用

1.改变数据包的ip地址和端口号:
2.能够大量节约公网IP地址。
PAT的类型有以下:
1.动态PAT,包括NAPT和Easy IP: NAT是一对一转换 NAPT 多对一转换
2.静态PAT,包括NAT Server.

1.NAPT

多个私网Ip地址:对应固定外网IP地址(比如200.1.1.10),配置方法与动态NAT类似

配置

[R1]nat address-group 1 200.1.1.10 200.1.1.10 配置使用一个固定IP
[R1]acl 2000 创建ACL2000
[R1-acl-2000]rule permit source 192.168.10.0 0.0.0.255
允许源地址为192.168.10.0/24网段的数据通过
或者
[R1-acl-2000]rule permit source any 允许所有通过
[R1-acl- 2000]int g0/0/1 进入g0/0/1外网口
[Rl-GigabitEthernet0/0/1]nat outbound 2000 address-group 1将ACL2000设置下外网口出口方向地址转换

内网地址 端口 公网地址 不同端口

测试

pc1长ping 13.0.0.1 -t
在r1中输 dis nat session all
或者用wireshark抓包R1

image.png
image.png

2.EasyIp

多个私网IP地址对应路由器外网接口公网IP地址

配置

[R1-acl-adv-3000] 创建ACL3000
[R1-acl-adv-3000]rule permit ip source 192.168.1.0 0.0.0.255
配置允许192.168.1.0/24段通过
[R1-acl-adv-3000]q 退出ACL3000
[R1]int g0/0/1 进入g0/0/1外网口
[R1-GigabitEthernet0/0/1]nat outbound 3000
当acl3000匹配的源IP数据到达此接口时,转换为该接口的IP地址:做为源地址

测试

pc1长ping 13.0.0.1 -t
在r1中输 dis nat session all
或者用wireshark抓包R1
image.png

image.png

3.NAT server

端口映射,将私网地址端口映射到公网地址,实现内网服务器供外网用户访问

配置

image.png
R1]int g0/0/0 进入g0/0/0
[R1-GigabitEthernet0/0/0]ip add 13.0.0.1 24 配置IP地址及子网掩码
[R1-GigabitEthernet0/0/0]un sh 启动接口
[R1-GigabitEthernet0/0/0]int g0/0/1 进入g0/0/1
[R1-GigabitEthernet0/0/1]ip add 192.168.1.1 24 配置IP地址及子网掩码
[R1-GigabitEthernet0/0/1]q 退出g0/0/1口
[R1]int g0/0/0 进入g0/0/0(对于server1来说的外网口)
[R1-GigabitEthernet0/0/0]nat server protocol tcp global current-interface 8080 inside 192.168.1.10 www 在连接公网的接口,上将私网服务器地址与端口和外网接口做一对NAT映射绑定
或者
nat server protocol tcp global 9.9.9.9 www inside 192.168.10.100 www
在连接公网的接口上将私网服务器地址与端口和公网地址做一对NAT映射绑定

8080可以用www代替
其他协议

image.png

测试

在server 1上选择个文件启动httpserver
image.png
点击client 1的httpclient 的获取,得出以下图即为成功
image.png

相关推荐

  1. <span style='color:red;'>NAT</span>

    NAT

    2024-06-11 18:52:02      21 阅读
  2. .Net <% %>

    2024-06-11 18:52:02       16 阅读
  3. <span style='color:red;'>NAT</span>配置

    NAT配置

    2024-06-11 18:52:02      46 阅读
  4. <span style='color:red;'>NAT</span>小记

    NAT小记

    2024-06-11 18:52:02      33 阅读
  5. NAT笔记

    2024-06-11 18:52:02       22 阅读
  6. <span style='color:red;'>NAT</span>技术

    NAT技术

    2024-06-11 18:52:02      23 阅读
  7. <span style='color:red;'>NAT</span>协议

    NAT协议

    2024-06-11 18:52:02      18 阅读
  8. 静态<span style='color:red;'>NAT</span>

    静态NAT

    2024-06-11 18:52:02      20 阅读
  9. 动态<span style='color:red;'>NAT</span>

    动态NAT

    2024-06-11 18:52:02      15 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-11 18:52:02       5 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-11 18:52:02       5 阅读
  3. 在Django里面运行非项目文件

    2024-06-11 18:52:02       4 阅读
  4. Python语言-面向对象

    2024-06-11 18:52:02       6 阅读

热门阅读

  1. 享元模式

    2024-06-11 18:52:02       16 阅读
  2. css特效:对多个tag标签实现模拟地球仪特效

    2024-06-11 18:52:02       18 阅读
  3. 2024-6-11-SPECT和PET的区别是什么

    2024-06-11 18:52:02       13 阅读
  4. docker-ce 和 docker-ee介绍版本介绍

    2024-06-11 18:52:02       13 阅读
  5. C++中的命令模式

    2024-06-11 18:52:02       12 阅读
  6. 结构化表达,了解python的pep

    2024-06-11 18:52:02       11 阅读
  7. 关系模式R(U,F)【数据库-软件设计师】

    2024-06-11 18:52:02       14 阅读
  8. 常用的三种软件架构

    2024-06-11 18:52:02       12 阅读
  9. GMT shp转gmt数据

    2024-06-11 18:52:02       12 阅读
  10. 数据库文件的简单设计

    2024-06-11 18:52:02       8 阅读
  11. 关于AD9781芯片的说明以及FPGA控制实现 I

    2024-06-11 18:52:02       15 阅读
  12. Web前端后端精通:深度解析与技能进阶

    2024-06-11 18:52:02       14 阅读