目录

  • 1 IP地址概述和NAT概述
    • 1.1 IP地址概述
    • 1.2 NAT概述
  • 2 NAT分类
    • 2.1 静态NAT
    • 2.2 动态NAT
    • 2.3 PAT
    • 2.4 静态PAT
  • 3 相关NAT命令
    • 3.1 定义内外网接口
    • 3.2 配置PAT
    • 3.3 配置静态端口映射
  • 4 路由器工作原理归纳完善
    • 4.1 对由内到内/外的数据帧:
    • 4.2 对由外到内的数据帧:
  • 5 归纳总结
  • 参考文章

1 IP地址概述和NAT概述

1.1 IP地址概述

(1)ipv4地址使用现状:现在已严重不够用。仅ABC类可以用,D类是组播,E类是科研。IP地址的分类详见《IP地址详解及其相关概念》

(2)IP地址分为公网IP私网IP

  • 1)公网IP仅能在公网上使用。
  • 2)私网IP仅能在内网上使用。私有IP可以在不同的内网内重复使用。
  • 3)为避免重复出现的私有IP冲突,公网上不允许出现私有IP地址。即公网的路由器不认识私有IP地址,不能对私有IP地址进行路由。

(3)私有IP地址范围,从原有ABC类中各抽出一部分作为私有IP地址。

  • 1)10.0.0.0/8(10开头的),如10.1.1.1、10.10.1.254。
  • 2)172.16.0.0/16~172.31.0.0/16(172.16开头的一直到172.31开头的),如172.31.100.200
  • 3)192.168.0.0/16(192.168开头的),如192.168.100.100。

(4)公有IP地址,ABC类中除了私有IP地址以外的IP地址。

(5)静/动态公有IP地址:在运营商处购买的公网IP地址有静动态之分。对于需要搭配服务器供公网用户访问的公司,需要购买静态公用IP地址,因为动态IP地址刷新后会影响别人用ip地址对服务器的访问。

1.2 NAT概述

(1)NAT定义:Network Address Translations 网络地址转换。
(2)作用:NAT技术主要实现公私有IP地址转换。(解决ipv4地址不够用带来的不便)
(3)简介:主机在内网使用的是私有IP地址,IP包头封装时使用的是私有地址,那该数据帧怎么走出外网的呢?答案是在数据帧走到路由器上准备由内网发往外网时,将私有IP地址替换为公有IP地址再封装。
(4)配置位置:一般是在路由器或者防火墙上配置,不建议在三层交换机上配置。

2 NAT分类

在配置NAT前,需要首先定义内外网端口。

2.1 静态NAT

(1)在路由器接口上手动配置NAT地址转换表,一个私有IP对应一个公有IP地址。
(2)缺点:公司够买了多少个公有IP地址,内网就有多少个主机能上网,一一对应。

(3)当NAT转换表中没有对应条目时:当NAT转换表中有匹配项时,给数据包转换IP地址,没有时不给数据包转换IP地址,数据包直接上公网,当数据包没有被NAT转换为公网IP地址时,数据包有去无回,外在表现为上不了网。
(4)为什么不可以多个私网IP同时使用一个公网IP地址:若同时使用,当外网给公司路由器回包时,路由器做NAT转换时,不知道将该数据包的目标IP转换为哪个私网IP。

2.2 动态NAT

(1)NAT转换流程

  • 1)路由器上配置一个内部地址池(公司内部所有主机用到的私有IP)动态映射一个外部地址池(所购买的公有IP)。
  • 2)当有一个内网主机访问外网时,路由器首先查看NAT地址转换表;
  • 3)若无,则再查看是否配置了动态NAT映射,若配置,则将IP包头中的源IP与内部地址池进行匹配,若有匹配项,则将该内网IP从内部地址池中取出,同时取出外部地址池中的一个IP地址,动态形成NAT地址转换表。注意,外部地址池的公网IP地址取出后,外部地址池中将没有该公网IP了。
  • 4)默认当该主机24小时没有联系外网时,该动态NAT条目会自动消失,所被取出的公私有地址重新回到地址池中。

    (2)优点:相比于静态,不用手动修改NAT地址转换表。

(3)缺点:公有IP有多少个,就能允许多少个内网主机上网,用完即止。其他主机若想上网,只能等待。
(4)为什么不可以多个私网IP同时使用一个公网IP地址:若同时使用,当外网给公司路由器回包时,路由器做NAT转换时,不知道将该数据包的目标IP转换为哪个私网IP。

2.3 PAT

(1)定义:Port Address Translations,端口地址转换,也称为端口复用技术。
(2)在动态NAT基础上,增加overload复用技术。

(3)工作流程

  • 1)公司内网主机私有IP地址为IPA,公有IP地址为IPB,想要访问百度服务器公有地址IPC,内网主机访问百度网页时,随机生成源端口号5000,目标端口号为80,主机将信息封装成数据帧发送到路由器。
  • 2)数据帧到达路由器后,路由器解封装数据帧后,首先查看NAT地址转换表;若无,则再查看是否配置了动态NAT映射,若配置,则将其源IP与内部地址池进行匹配,匹配后先动态生成NAT地址转换表。从内部地址池中将该IP地址复制到NAT转换表中、从外部地址池中将IP地址复制到NAT转换表中、从数据帧中复制源端口号到NAT转换表中、并由路由器动态生成一个端口号(一般从1开始,不可重复,当原条目消失后才能再次使用),所形成的NAT地址转换表如步骤7。
  • 3)路由器替换掉数据包源IP和源端口号,封装后再将数据发送到外网。
  • 4)路由器收到百度服务器回包时,路由器解封装数据帧,并检查NAT转换表,发现数据包中的目标IP是IPB、目标端口号是1,匹配表中条目。
  • 5)路由器将数据包中目标地址和目标端口号替换掉,封装后再发给内网主机。
  • 6)当内网有其他主机访问外网时,重复上述过程,依靠路由器自己动态生成的端口号区别各个条目。
  • 7)上述工作过程在步骤2生成NAT地址转换表如下。
私有IP 公有IP 源端口号 动态端口
IPA IPB 5000 1
IPX IPB 8080 2

(4)动态生成NAT地址转换表只能是在数据帧由路由器发至外网的过程中生成,数据帧从外网发到内网只能使用该表。
(5)端口号范围:0~65535。
(6)弊端:每一个主机每一个进程都有可能占用一个端口号,每一个主机正常使用是估计约要占用50个端口号,也就是公司一个公用IP大概能供1000个人使用,对于规模更大的公司,需要多购买公用IP地址。
(7)适用情况:实现内网员工同时使用一个公网IP上网。

2.4 静态PAT

(1)背景:动态形成NAT地址转换表时,只有从内网往外发送数据包时,才能形成,而从外到内,只能使用该NAT地址转换表。那么当需要互联网公民可以访问公司服务器时,该怎么办?
(2)静态PAT也称为端口映射。
(3)意义:从数据帧流向上看,动态PAT技术解决了多个内网主机上网的问题;静态PAT解决了外网主机访问内网服务器的问题。
(4)对于公司而言,不建议将提供员工上网使用的公网IP地址与服务建立静态映射,建议另外购买一个公用IP地址,提供给各个服务器使用。如果同时有两个WEB服务,且不想改端口号,则需要继续新购买公用IP地址。
(5)虚拟公网IP地址:一般用来映射内网服务器的公网IP地址称为虚拟公网IP地址,即VIP地址。一般是购买企业级带宽的公用IP,运营商会赠送一部分VIP,用于公司映射服务器使用。
(6)虚拟公网IP地址的配置:假设公司路由器外网接口配置的IP地址是100.1.1.1,另外购买的100.1.1.2地址是用于映射内网服务器给外网用户使用的,此时,无需在路由器接口上另外配置该100.1.1.2IP地址,仅需在NAT地址转行表中添加该条目即可,运营商会对互联网路由器上的路由表进行配置,将公司购买的公网IP往公司路由器上指,公司路由器再根据NAT地址转换表发至内网设备上。
(7)例子:假设192.168.1.3~192.168.1.5都是公司的服务器,其中192.168.1.3和192.168.1.5都是WEB服务器,192.168.1.4是telnet服务器。若外网想访问公司的服务器时,需要在路由器上手工配置静态PAT。

3 相关NAT命令

3.1 定义内外网接口

根据路由器上接口的方向进行定义,假设路由器上f0/0接口连接的是内网,f0/1接口连接的是外网。

en
conf t
int f0/0
ip nat inside
exit
int f0/1
ip nat outside
exit

3.2 配置PAT

定义内部地址池。此处外部地址池不需要定义,因为外部地址池的公网IP只是外网接口的那个IP,当外部地址池还有其他公网IP用于供员工上网时,也需要定义外部地址池。

conf t#定义内部地址池
#ACL表应用于路由器接口上时是用于进行数据包过滤的,此时ACL运用在这只是应用于匹配条件是否满足
acc 1 permit 192.168.0.0 0.0.255.255    #网段与反子网掩码配合用于匹配私有IP地址是否属于该地址池#做PAT动态映射:
#inside source 表示来自内网的数据包的源IP地址
#"list 1"与“上述的acc 1”的表名需要一致。
#“对IP地址做NAT地址转换,凡是从内网来的数据包的源IP满足list 1这张表时,将源IP与“f0/1接口的IP地址”进行PAT动态映射,并启用overload(端口复用)技术。
ip nat inside source list 1 int f0/1 overload     #不同厂家不一样,这是思科的#查看NAT地址转换表
show ip nat translations
#清空NAT地址转换表
clear ip nat translations

3.3 配置静态端口映射

假设公司路由器外网接口配置的IP地址是100.1.1.1,另外购买的10.1.1.2地址是用于映射内网服务器,从而外网用户可以访问该服务器。此时,无需在路由器接口上另外配置该IP地址,仅需在NAT地址转换表中添加该条目即可,运营商会对互联网路由器上的路由表进行配置,将公司购买的公网IP往公司路由器上指,公司路由器再根据NAT地址转换表发至内网设备上。

conf t
ip nat inside source static 192.168.1.3 100.1.1.2 #将192.168.1.3整个服务器映射到100.1.1.2这个公网IP
ip nat inside source static tcp 192.168.1.3 80 100.1.1.2 80 #只映射TCP80端口号,将192.168.1.3的80端口映射成100.1.1.2的80端口

tips:
1)一般傻瓜式交换机也可以做端口映射。
2)若想发布一台服务器,需要购买静态公网IP。

4 路由器工作原理归纳完善

注意,做NAT地址转换始终是在外网接口上进行的。

4.1 对由内到内/外的数据帧:

(1)路由器内网接口收到数据帧;
(2)首先查看目标AMC地址是否是自己,是则解封装,否则丢弃;
(3)查看是否有ACL表对数据过滤,可正常通行后送至路由器内部;
(4)匹配路由表将数据包路由至目标接口;
(5)查看是否有ACL表对数据过滤,
(6)如果是路由到外网接口则需要先查看并匹配NAT地址转换表(配置了动态NAT映射后动态形成的NAT地址转换表和手工配置的静态NAT地址转换表),决定是否对源IP进行地址转换,(NAT和ACL哪个先?个人理解应该是NAT更接近外侧,即先ACL再NAT,暂未验证。)
(7)封装帧头帧尾后发出到下一跳。

4.2 对由外到内的数据帧:

(1)路由器外网接口收到数据帧,
(2)首先查看目标AMC地址是否是自己,是则解封装,否则丢弃,
(3)查看并匹配NAT地址转换表(配置了动态NAT映射后动态形成的NAT地址转换表和手工配置的静态NAT地址转换表),决定是否对目标IP进行地址转换,(NAT和ACL哪个先?个人理解应该是NAT更接近外侧,即先NAT再ACL,暂未验证。)
(4)查看是否有ACL表对数据过滤,可正常通行后送至路由器内部;
(5)匹配路由表将数据包路由至目标接口,
(6)查看是否有ACL表对数据过滤,
(7)封装帧头帧尾后发出到下一跳。

5 归纳总结

(1)了解IP地址分为公网IP和私网IP、私网IP地址有哪些。
(2)了解NAT技术应用的背景
(3)了解NAT技术的分类,掌握各自的原理。其中,内网员工需要多对一上网时,使用PAT技术,外网需要访问内网服务器时,使用静态端口映射技术。
(4)熟悉实现公网IP地址和私网IP地址之间转换的相关命令。
(5)深度理解路由器的工作原理。

参考文章

[1] 《NAT——实现公私有IP地址转换》
[2] 视频传送门

第22节 NAT(网络地址转换)—实现公网IP和私网IP之间的转换相关推荐

  1. 计算机网络基础(静态路由,动态路由,公网IP,私网IP,NAT技术)

    文章目录 一:静态路由和动态路由 二:静态路由的配置路由信息的方式演示 三:默认路由 四:公网IP和私网IP和NAT技术的基本理解 一:静态路由和动态路由 在说静态路由和动态路由前,我们需要来了解一下 ...

  2. 详解公网Ip和私网ip

    为什么百度查到的ip和ipconfig查到的不一样:详解公网Ip和私网ip:详解网络分类ABC: 原创 逃离地球的小小呆 最后发布于2018-01-30 22:52:47 阅读数 38183 收藏 发 ...

  3. 已知IP地址和子网掩码求最小IP和最大IP、公网IP和私网IP的概念

    1.已知IP地址和子网掩码求最小IP和最大IP 最小IP = 网络号 + 1 最大IP = 广播地址 - 1   首先要通过IP地址和子网掩码求得该网络的网络号以及广播地址,然后才能求出最小IP和最大 ...

  4. 为什么百度查到的ip地址和ipconfig查到的不同;详解公网Ip和私网ip; 网络分类ABC类;

    文章目录 1.百度查到的ip和ipconfig查到的不同 1.1引出问题 1.2不一样的原因 2.IP地址分类 2.1IP类别 2.1 Public IP和Private IP 3.总结 3.1整理上 ...

  5. 【网络】为什么百度查到的ip和ipconfig查到的不一样;详解公网Ip和私网ip;详解网络分类ABC;

    原文地址 IP可以分为Public IP 和 Private IP,出现这种规划的原因在于IPv4所能表示的IP太少而电脑太多以至于不够用,然而只有Public IP才能直接连接上网络,所以对于那些公 ...

  6. DHCP的工作原理 公网IP与私网IP 网络通信的流程与数据包发送 网卡的工作原理 网卡丢包问题

    网络通信的四个要素 本机的IP地址 子网掩码 网关的IP地址 DNS服务器的IP地址 获取以上配置,有两种方式 : 静态获取==>手动配置 动态获取==>dhcp自动获取 DHCP的作用 ...

  7. 为什么百度查到的ip和ipconfig查到的不一样;详解公网Ip和私网ip;详解网络分类ABC;

    IP可以分为Public IP 和 Private IP,出现这种规划的原因在于IPv4所能表示的IP太少而电脑太多以至于不够用,然而只有Public IP才能直接连接上网络,所以对于那些公司,学校, ...

  8. 公网IP与私网IP的区别

    公网IP与私网IP 计算机上网原理 互联技术      公网IP与私网IP 最近在自己的虚拟机上装了一个Linux系统,相当于是一个服务器,但是这个"服务器"跟我们常说的云服务器, ...

  9. 为什么百度查到的ip和ipconfig查到的不一样?公网IP和私网IP 有什么区别?

    一.查询 我们分别在百度搜ip查询,查询到本机的ip如左图,再利用ipconfig查询到自身ip如右图. 我们能看到这两个地址是不同的,那么不是说,每个主机都只有一个ip地址么,为什么我们查到的两个I ...

  10. 公网ip与私网ip区别联系

    一般的私网的网段 100.0.0.0 10.0.0.0 172.16.0.0 192.168.0.0 什么是公网ip 有了公网ip,那么在互联网上你的宽带就有一个唯一的ip地址,家庭的宽带的公网ip地 ...

最新文章

  1. 农村程序员吐槽:虽然挣着2万高薪,但却舍不得吃舍不得穿
  2. 请问anroid怎么播放aac文件。
  3. iOS: JS和Native交互的两种方法,iosjsnative交互
  4. Ubuntu 14.04.02 安装openvswitch-2.3.1
  5. python调用qt动态库_QT开发——动态库(.so文件)的生成与调用
  6. 《HeadFirst SQL》笔记
  7. 韩忠康mysql正则表达式_Go语言中正则表达式的处理
  8. 使用keras和tensorflow进行minst数据集图像分类
  9. java tostring apache_apache lang ToStringBuilder java类的使用
  10. 详解数据库的第一范式、第二范式、第三范式、BCNF范式
  11. Ubuntu 下启用trackPoint
  12. HHL论文第三弹(参数讨论)
  13. 微信怎么制作朋友圈H5链接
  14. 这两天用鸿蒙开发板做了个“自动门锁”
  15. 解决springboot的pom.xml文件第一行报错问题
  16. 每日打卡 22 11 16 CF 1694B Paranoid String
  17. 小程序体积优化(1)--优化大文本
  18. rethinkdb_如何在Node.js应用程序中使用RethinkDB
  19. 数据结构分析之线性哈希表(Linear Hash Tables)
  20. 消除if…else的锦囊妙计

热门文章

  1. trajan 算法 离线求lca
  2. 基于HSLcommunication的SiemensTools 西门子PLC 调试工具
  3. html 文字竖着排引号,竖排文字 引号如何使用?
  4. 教育技术学专业属于计算机类么,教育技术学是什么专业
  5. C语言 分支语句:if 语句和 switch语句
  6. 程序员小妙招:只需一个代码!就能删除C盘垃圾,释放几十G
  7. MSCS+FailSafe 双机集群做HA 小结
  8. 计算机 无法自检,电脑开机不能自检是什么原因 电脑不能完成自检解决办法
  9. ebay 后台HTML有尺寸宽度要求吗,Ebay后台有哪些常用的操作页面?
  10. 解决创建文本文件,修改后缀为.py,仍改不了文本类型的问题