• 认识NAT技术


    目录

    一、什么是NAT技术

     二、NAT技术的作用过程

    三、报文如何返回??(NAPT的作用机制)

    1、实现方式

     2、结合案例分析

    三、虚拟机NAT模式

    四、公网无法主动访问局域网的原因


    NAT是解决当前IP地址不足的主要手段,是路由器的一个重要功能。核心思路就是在传递报文的时候,每到达下一跳设备,就更换一次IP地址。NAT一般集成在防火墙、路由器等硬件设备上。

    一、什么是NAT技术

    局域网中的主机访问公网IP时,路上的路由器会将源IP地址 替换为 WAN口IP,这样的话,不同局域网的主机可以有相同的网络号和主机号。(其实也有可能替换端口号,我们暂时不考虑端口号的变化

    主机A发送的报文,源IP地址填的肯定是 192.168.0.3,传递给路由器A以后,源IP地址会被替换为WAN口IP(10.1.1.4);主机B发送的报文,源IP地址肯定也是 192.168.0.3,传递给路由器B以后,源IP地址同样会被替换为 WAN口IP(10.1.1.5

    此时,站在局域网之外的角度,路由器A传递报文的源IP地址是10.1.1.4 ,路由器B传递报文的源IP地址是10.1.1.5,因此不同局域网的主机可以有完全一样的IP地址,大大提升了IP地址的利用率。

     二、NAT技术的作用过程

    以下面这个图为例

    第一步,主机A封装自己的报文,源IP是192.168.1.113,目标IP是39.156.66.10,随后转发给路由器X。

    第二步,路由器X收到报文,源IP替换为 WAN口IP(10.1.1.2),目标IP是39.156.66.10。现在相当于IP地址为 10.1.1.2的局域网要发送一个报文,随后转发给路由器Y。

    第三步,路由器Y也是做同样的操作,源IP替换为 WAN口IP(39.156.66.25),目标IP是39.156.66.10,此时报文终于来到了服务器所处的网段。

    第四步,路由器Y将报文传递给百度服务器,百度服务器收到请求,然后构建响应。

    ==》这个过程中变化的只有源IP,目标IP是不变的!

    三、报文如何返回??(NAPT的作用机制)

    1、实现方式

    这其实还是基于上述的NAT技术,路由器在替换IP地址的时候,并不是简单的替换,会建立起源IP和替换以后的IP的映射关系。以上述第一步为例。

    路由器X收到报文以后,源IP地址是 192.168.1.113,随后会替换成路由器X 的WAN口IP(10.1.1.2),此时路由器X会建立起 192.168.1.113 与 10.1.1.2的映射关系。

    假设路由器X的 映射关系(转换表)大致如下,左半部分的IP肯定都属于同一个局域网,同一个局域网里的IP是具有唯一性的,这样就保证了从右边到左边的转换不会出现歧义。在TCP的情况下, 建立连接时, 就会生成这个表项; 在断开连接后, 就 会删除这个表项

    替换之前替换之后

    源IP:192.168.1.113:1025

    目的IP:39.156.66.10:80

    源IP:10.1.1.2: 1025

    目的IP:39.156.66.10: 80

     2、结合案例分析

    仍然以下面这个图为例,报文到达百度服务器的时候,源IP地址变成了 39.156.66.25,目的IP是39.156.66.10。假设现在百度服务器要返回一个响应给我们的主机。

    早在路由器Y替换IP的时候,路由器Y就保存了 从局域网到广域网的映射关系,假设映射关系如下:

    替换之前替换之后

    源IP:10.1.1.2

    目的IP:39.156.66.10

    源IP:39.156.66.25

    目的IP:39.156.66.10

    ... ...... ...

    百度服务器将响应报文发送给路由器Y,路由器Y收到的报文:源IP地址是39.156.66.10,目的IP是39.156.66.25。响应报文和前面请求报文对应,现在的源IP —— 请求报文的目的IP、现在的目的IP —— 请求报文的源IP

    查询映射表的右半部分,发现报文的源IP与映射表的目的IP是一致的,报文的目的IP与映射表的源IP是一致的,说明来的时候走的就是这条路,此时就会将目的IP替换为 10.1.1.2。

    后面查询路由器X的转换表也是这种方式。

    三、虚拟机NAT模式

    我们有的时候会在自己的电脑上安装虚拟机,其中有NAT模式和桥接模式。NAT模式就是把主系统当作一个大路由器,每次虚拟机发送请求都要经过主系统,同时主系统需要帮你维护转换表。

    四、公网无法主动访问局域网的原因

    现在就可以理解 一些公网IP为什么无法访问我们的主机?我们的局域网IP并不是全球唯一的,如果我们没有访问过那些IP,也就没有转换表,他们在传递报文的时候,无法根据转换表替换报文的目的IP。

  • 相关阅读:
    F1值(F-Measure)、准确率(Precision)、召回率(Recall) 菜鸡版理解
    2023亚太杯数学建模B题思路解析
    css动画效果和canvas
    shiro授权-SSM
    【SA8295P 源码分析】127 - 摄像头 GMSL1、GMSL2 加串-解串器 常用寄存器配置整理(正在更新中......)
    JAVA小知识22:迭代器iterator与列表迭代器ListIterator
    【vue-9】购物车案例
    ARM32开发-fat_fs文件系统
    LeetCode 541. 反转字符串 II
    Linux中的man命令
  • 原文地址:https://blog.csdn.net/challenglistic/article/details/126909877