计算机网络常见概念介绍 路由 NAT

路由器

路由器(router)是互联网的枢纽,是连接英特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送数据。作用在OSI模型的第三层,提供了路由与转发两种重要机制。

路由器就是完成路由过程的设备,从构成上看,它是一个完整的计算机系统,包括硬件,操作系统和应用软件算法,与通用计算机系统的不同之处就在于,路由器硬件以通讯处理为主要设计目标,特别是 I/O部分。

  • 那么路由器是如何进行包的转发的呢?就像一个人如果在去某个地方,一定要在他的脑海里有一张地图,在每个路由器的内部也有一张地图,这张地图就是路由表
  • 在这个路由表中包含有该路由器掌握的所有目地网络地址,以及通过此路由器到达这些网络中最佳路径,这个最佳路径指的是路由器的某个接口或下一条路由器的地址
  • 这是由于路由表的存在,路由器才可以依据路由表进行包的转发,把数据包转发到路由器的指定网口
  • 路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组,也就是说,将路由器某个输入端口收到的分组,按照分组要去的目的地,把该分组从路由器的某个合适的输出端口转发给下一跳的路由器。下一跳的路由器也按照这种方法处理分组,直到该分组到达终点为止

路由器功能

  • 路由:收集网络拓扑信息并动态形成路由表
  • 转发:根据转发表(FIB)转发IP数据包
  • 子网间速率适配
  • 隔离子网
  • 隔离广播域
  • 指定访问规则
  • 不同类型的网络互联:路由器经常会收到以某种类型的数据链路帧封装的数据包,当转发这种数据包时,路由器可能需要将其封装为另一种类型的数据链路帧。数据链路封装取决于路由器接口的类型及其连接的介质类型

路由表

  • 路由表是在路由器中维护的路由条目的集合,路由表为路由做出最佳路径选择提供依据
  • 需要通过静态路由或者动态路由添加路由规则到路由器

实际中由于路由器开发厂商的不同,路由表中的信息也不尽相同,但是几乎都包含五项基本信息:

  • 目标网络的IP地址:32位,这里在上文提到,是目标网络的IP地址而非目标计算机的IP地址
  • 目标网络的子网掩码:32位,即子网掩码,没什么好解释
  • 下一跳IP地址:32位,如果目标网络需经过多个路由器,下一跳即使下一个路由器的IP地址
  • 出接口名字:路由器会提供多个接口,每个接口通向不同的网段,所以表项中需要提供该项,即使确定IP分组从哪一个接口发出去,出接口只是标识本路由器的信息
  • 度量:从该路由器到达目标网络的代价,这个属性反映这一路径的优劣,由于路由协议的不同,该项具体数据形式也不同,常见的有跳数(途径路由器的数量),当前往返时间,最窄链路带宽等等

路由表简单示例:

IP或网段 mask 接口 距离 下一跳IP
1.0 255.255.255.0 E0 1 173…
2.0 255.255.255.0 S0 2 173…

注意:
数据包经过路由器,源IP与目标IP是不改变的,除非做了NAT。不过mac地址是变化的,因为发送端开始不知道目的主机的mac地址,所以每经过一个路由器mac地址是变化的。MAC通过ARP协议获得

NAT

NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换”。NAT 功能通常被集成到路由器、防火墙、ISDN路由器或者单独的NAT设备中。

分类

NAT有三种类型:静态NAT(Static NAT)、动态地址NAT(Pooled NAT)、网络地址端口转换NAPT(Port-Level NAT)

静态NAT

通过手动设置,使 Internet 客户进行的通信能够映射到某个特定的私有网络地址和端口.在静态NAT方式中,内部的IP地址与公有IP地址是一种一一对应的映射关系,所以,采用这种方式的前提是,机构能够申请到足够多的全局IP地址

动态NAT

当数据包进出内网时,具有NAT功能的设备对IP数据包的处理与静态NAT的一样,只是NAT table表中的记录是动态的,若内网主机在一定时间内没有和外部网络通信,有关它的IP地址映射关系将会被删除,并且会把该全局IP地址分配给新的IP数据包使用,形成新的NAT table映射记录

网络地址端口转换NAPT

网络地址端口转换NAPT(Network Address Port Translation)则是把内部地址映射到外部网络的一个IP地址的不同端口上。

有两种类型:

  • 源NAT(Source NAT,SNAT):修改数据包的源地址
  • 目的NAT(Destination NAT,DNAT):修改数据包的目的地址

NAT原理

  • 地址转换
  • 连接跟踪,通过TrackTable
  • 端口转换,通过TrackTable

主要应用

  • 数据包伪装
  • 端口转发
  • 负载均衡

缺陷

  • 不能处理嵌入IP地址端口
  • 有一些应用程序A端口是命令端口,B端口是数据端口,NAT不知道B要映射B端口
  • P2P,需要P2P NAT穿透技术

网络图

NAT网络图

序列图

NAT序列图

参考