网络层——IP分组交换及NAT技术

IP分组交换及路由选择

问题:IP分组如何从源主机到达目的主机?

解决方案:分组交付和路由选择

基本概念

  • 分组交付(forwarding)是指在互联网络中路由器转发IP分组的物理传输过程与数据报转发交付机制 ;

  • 分组交付可以分为直接交付间接交付两类;

  • 是直接交付还是间接交付,路由器需要根据分组的目的IP地址与源IP地址是否属于同一个子网来判断。

直接交付

当分组的源主机和目的主机是在同一个网络,或转发是在最后一个路由器与目的主机之间时将直接交付。
这里写图片描述

间接交付

当分组的原主机和目的主机不在同一个网络的时候,需要间接交付
这里写图片描述

转发过程

  • 1.默认路由
    路由器还可采用默认路由以减少路由表所占用的空间和搜索路由表所用的时间。
    如果一个主机连接在一个小网络上,而这个网络只用一个路由器和因特网连接,那么在这种情况下使用默认路由是非常合适的。
    这里写图片描述
    只要目的网络不是 N1 和 N2,就一律选择默认路由,把分组先间接交付路由器 R1,让 R1 再转发给下一个路由器。

  • 2.使用到子网掩码转发
    在不划分子网的两层IP 地址下,从 IP 地址得出网络地址是个很简单的事
    划分子网的情况下,从IP地址却不能唯一地得出网络地址来,这是因为网络地址取决于那个网络所采用的子网掩码,但分组的首部并没有提供子网掩码的信息。
    实例:
    这里写图片描述
    经过对比发现,H1和H2不在同一个网络,所以需要经过路由器R1转发
    因此 H1 必须把分组传送到路由器 R1然后逐项查找路由表。(目的地址与子网掩码‘与’,和目的网络一致则说明在就使用这条路由)
    这里写图片描述
    这样就成功找到路由转发给主机H2了

NAT技术

问题:随着网络的普及,IP地址非常短缺已成了现实问题,如何解决
解决方案:NAT地址转换
作用:让多台主机通过一个公有IP地址访问因特网的私有网络

简介

  • NAT(Network Address Translation)的功能,就是指在一个网络内部,根据需要可以随意自定义IP地址,而不需要经过申请。
  • 在网络内部,各计算机间通过内部的IP地址进行通信。
  • 而当内部的计算机要与外部Internet网络进行通讯时,具有NAT功能的设备(比如:路由器)负责将其内部的IP地址转换为合法的IP地址(即经过申请的IP地址)进行通信。

应用场景

  • 情况1:一个企业不想让外部网络用户知道自己的网络内部结构,可以通过NAT将内部网络与外部Internet 隔离开,则外部用户根本不知道通过NAT设置的内部IP地址。
  • 情况2:一个企业申请的合法Internet IP地址很少,而内部网络用户很多。可以通过NAT功能实现多个用户同时公用一个合法IP与外部Internet 进行通信。

和NAT相关的两个概念
专用IP地址:
分配给内部网络中的计算机的内部IP地址。
全球IP地址:
对外进入IP通信时,代表一个或多个内部本地地址的合法IP地址。需要申请才可取得的IP地址。

分类
NAT有三种类型:
1. 静态NAT(Static NAT)
2. 动态地址NAT(Pooled NAT)
3. 网络地址端口转换NAPT(Port-Level NAT)。

其中,网络地址端口转换NAPT(Network Address Port Translation)是把内部地址映射到外部网络的一个IP地址的不同端口上。它可以将中小型的网络隐藏在一个合法的IP地址后面。NAPT与 动态地址NAT不同,它将内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的端口号。

NAPT是使用最普遍的一种转换方式,在HomeGW中也主要使用该方式。它又包含两种转换方式:SNAT和DNAT。
(1)源NAT(Source NAT,SNAT):修改数据包的源地址。源NAT改变第一个数据包的来源地址,它永远会在数据包发送到网络之前完成,数据包伪装就是一具SNAT的例子。
(2)目的NAT(Destination NAT,DNAT):修改数据包的目的地址。Destination NAT刚好与SNAT相反,它是改变第一个数据懈的目的地地址,如平衡负载、端口转发和透明代理就是属于DNAT。
这里写图片描述

原理

  • 地址转换
    NAT的基本工作原理是,当私有网主机和公共网主机通信的IP包经过NAT网关时,将IP包中的源IP或目的IP在私有IP和NAT的公共IP之间进行转换。
    如下图所示,NAT网关有2个网络端口,其中公共网络端口的IP地址是统一分配的公共 IP,为202.20.65.5;私有网络端口的IP地址是保留地址,为192.168.1.1。私有网中的主机192.168.1.2向公共网中的主机202.20.65.4发送了1个IP包(Dst=202.20.65.4,Src=192.168.1.2)。
    这里写图片描述
    对于通信双方而言,这种地址的转换过程是完全透明的。转换示意图如下
    这里写图片描述
    如果内网主机发出的请求包未经过NAT,那么当Web Server收到请求包,回复的响应包中的目的地址就是私网IP地址,在Internet上无法正确送达,导致连接失败。

  • 连接跟踪
    在上述过程中,NAT Gateway在收到响应包后,就需要判断将数据包转发给谁。此时如果子网内仅有少量客户机,可以用静态NAT手工指定;但如果内网有多台客户机,并且各自访问不同网站,这时候就需要连接跟踪(connection track)。如下图所示:
    这里写图片描述
    在NAT Gateway收到客户机发来的请求包后,做源地址转换,并且将该连接记录保存下来,当NAT Gateway收到服务器来的响应包后,查找Track Table,确定转发目标,做目的地址转换,转发给客户机。

  • 端口转换
    以上述客户机访问服务器为例,当仅有一台客户机访问服务器时,NAT Gateway只须更改数据包的源IP或目的IP即可正常通讯。但是如果Client A和Client B同时访问Web Server,那么当NAT Gateway收到响应包的时候,就无法判断将数据包转发给哪台客户机,如下图所示。
    这里写图片描述
    此时,NAT Gateway会在Connection Track中加入端口信息加以区分。如果两客户机访问同一服务器的源端口不同,那么在Track Table里加入端口信息即可区分,如果源端口正好相同,那么在时行SNAT和DNAT的同时对源端口也要做相应的转换,如下图所示。(这里的理解灰常重要)
    这里写图片描述

鸣谢(参考文献)
http://blog.csdn.net/hzhsan/article/details/45038265
芷菁博客

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 成长之路 设计师:Amelia_0503 返回首页