TCP-IP详解笔记4

TCP-IP详解笔记4

系统配置: DHCP和自动配置

  • 每台主机和路由器需要一定的配置信息,配置信息用于为系统指定本地名称,及为接口指定标识符(如IP地址)。
    • 提供或使用各种网络服务,域名系统(DNS)和移动IP家乡代理。
    • 手工获得信息,通过一个系统获得使用的网络服务,使用某种算法自动确定。
  • TCP/IP网络中的每个接口都需要一个IP地址、子网掩码和广播地址(IPv4).
    • 广播地址通常通过地址和掩码来确定。
    • 系统只要有最基本的信息,就能与同一子网中的其他系统通信。
    • 为了与本地子网之外的系统通信,系统需要一个路由或转发表,以确定到达不同目的地的路由器。
    • 为了使用某些服务(Web和E-mail),使用DNS将用户理解的域名映射为底层协议需要的IP地址。
      • 由于DNS是一个分布式的服务,使用它的任何系统必须知道如何到达至少一台DNS服务器。
  • 拥有一个IP地址和子网掩码,以及DNS服务器和路由器的IP地址,这是一个系统能够在Internet上运行并提供常用服务的基本要素。
  • 为了使用移动IP,系统还需要知道如何找到一个家乡代理。
  • Internet客户端主机中用于建立基本要素的协议和程序: 动态主机配置协议(DHCP)以及IPv4和IPv6中的无状态地址自动配置。
  • 服务器和路由器通常通过手工配置,通常将相关配置信息输入一个文件或图形用户界面;
    • 客户端比服务器和路由器更容易移动,应提供灵活的重新分配器配置信息的机制。
    • 服务器主机和路由器都希望永远可用和相对自治,他们的配置应不依赖于其他网络服务,能为他们提供更好的可靠性。
    • 通过一种集中服务来动态分配客户端主机的配置信息,这样将会更简单也不容易出错。
    • 主机或路由器的配置信息还取决于:
      • 家乡代理;
      • 组播路由器;
      • VPN网关;
      • 回话发起协议(SIP);
      • VoIP网关的位置;

动态主机配置协议

  • 动态主机配置协议(Dynamic Host Configuration Protocol, DHCP), 是一种流行的客户端/服务器协议,它用于为主机(有时也为路由器)指定配置信息。
  • 使用DHCP获得IP地址、子网掩码、路由器的IP地址、DNS服务器的IP地址。
  • DHCP主要组成部分:
    • 地址管理:用于P地址的动态分配,并为客户机提供地址租用。
    • 配置数据交付: 包括DHCP协议的消息格式和状态即。
  • DHCP服务器可配置为提供三种地址分配: 自动分配、动态分配和手动分配。
    • 是否基于客户机的身份,以及该地址是否可撤销或变更。
    • 最常用的方法是动态分配。
      • 客户机从服务器配置的地址池(一个预定义的范围)中获得一个可撤销的IP地址。
    • 自动分配的地址不可撤销。
    • 手动分配中,DHCP协议用于传输地址,但地址对于请求的客户机是不变的(它不是有服务器维护的可分配池的一部分)。
      • DHCP的作用如同BOOTP, Internet引导程序协议。
  • 地址池和租用:
    • 动态分配中,DHCP客户机请求分配一个IP地址,服务器从可用的地址池中悬着一个地址作为响应。
      • 这个池是专门为DHCP用途而分配的一个连续的IP地址范围。
      • 分配给客户机的地址只在一段特定时间内有效,这段时间称为租用期。
        -租用期是DHCP服务器的一个重要配置参数。
      • 确定租用期的最佳数值需要对预期客户数、地址池大小和地址稳定性等因素加以权衡。
      • 微软建议较小的网络采用8天,较大的网络采用16~24天;
      • 客户机在租用期过半时开始尝试续订租约。
  • 当发送DHCP请求时,客户机需要向服务器提供信息:
    • 客户机名称;
    • 请求的租用期;
    • 已使用或最后使用过的地址副本;
    • 其他参数。
  • DHCP和BOOTP消息格式:
    • DHCP扩展了BOOTP,以保持两种协议之间的兼容性。
    • 消息格式包括一个固定长度的初始部分和一个可变长度的尾部。
      BOOTP消息格式
    • OP(操作)字段标识消息是请求或应答。
    • HW类型(htype)字段的分配基于ARP使用的值,最常见的值是1.
    • HW类型长度(len)字段用于存放硬件(MAC)地址,对于类似以太网的网络,该值设置为0,并在每次中继时递增。
    • 事务ID是由客户机选择的一个随机数,服务器需要将它复制到响应中,它用于将应答与请求匹配。
  • DHCP需要的有些字段在BOOTP中是不存在的:
    • 选项可由DHCP消息中的选项字段携带,也可以由前面提到的服务器名和引导文件名字段携带。
    • TCP/IP节点所需信息:
      • 地址信息;
      • 服务器地址;
      • 初始TTL值;
      • 布尔值指定的配置信息;
      • 启动IP转发。
  • DHCP协议操作:
    • DHCP消息是带有一组特殊选项的BOOTP消息,当一台新的客户机连接到网络中时,他首先发现可用的DHCP服务器,以及它们能够提供的地址。
      • 然后它决定使用那台服务器和那个地址,并向提供该地址的服务器发送请求。
      • 除非服务器在此期间已将该地址分配出去,否则它通过确认将地址分配给请求的客户机。
        一次典型的DHCP交换
    • 在一次典型的DHCP交换中,客户机首先广播一个DHCPDISCOVER消息;
    • 对于接收到请求的每台服务器,无论是直接接收还是通过中继代理,他们都会响应一个DHCPOFFER消息,并包含提供的IP字段。
  • DHCP状态机:
    • DHCP在客户机和服务器中运行一个状态机,状态用于指出协议下一个处理消息类型。
      DHCP客户机的状态机

DHCPv6

  • DHCPv6可以使用一种有状态模式,其工作原理与DHCPv4非常像,也可使用一种无状态模式,并结合无状态地址自动配置。
  • 可使用ICMPv6路由器通告消息获得一台DNS服务器的位置。
  • IPv6地址生命周期:
    • IPv6主机的每个接口通常拥有多个地址,并且每个地址都拥有一组计时器,以指出相应地址可使用多长时间和用于什么目的。
    • 地址分配中包含一个首选生命周期和一个有效生命周期。
    • 将地址在自己的状态机中从一种状态转换为另一种状态。
      IPv6地址的生命周期
    • 当一个地址第一次被选择使用时,它进入一个临时或乐观状态,在处于临时状态时,它可能仅用于IPv6邻居发现协议。
DHCPv6消息格式
  • DHCPv6消息封装为UDP/IPv6数据报,它使用客户机端口546和服务器端口547.
  • 消息发送到中继代理或服务器,它使用一台主机的链路范围的源地址。
  • 两种消息格式:
    • 用于客户机与服务器之间;
    • 用于中继代理。
    • 扩展版本包括链路地址和对等方地址字段。
      DHCPv6消息格式
身份关联
  • 身份关联(IA)是用在DHCP客户机和服务器之间的一个标识符,用于指向一个地址集。
    • 每个IA 包括一个IA表示符(IAID)和相关配置信息。
    • IA相关的配置信息包括一个或多个地址,以及相关的租约信息。
  • 当服务器响应一个请求时,它为客户机的IA分配一个或多个地址,分配是基于服务器管理员确定的一组地址分配策略。
    • 通常情况这些策略依赖于请求所到达的链路、客户机的标准信息,以及DHCP选项中有客户机提供的其他信息。
  • DHCP唯一的标识符:
    • DHCP唯一标识符(DUID)用于标识一台DHCPv6客户机或服务器,并被设计为可持续一段时间。
    • 服务器用它标识所选地址(作为IA的一部分)对应的客户机和配置信息,客户机用它标识感兴趣的服务器。
    • DUID长度是可变的,对于大多数用途而言,客户机和服务器将它看做一个不透明的值。
    • DUID全球唯一,但它很好生成。
  • UDID的类型:
    • DUID-LLT, 基于链路层地址和事件的DUID. 这种格式是推荐的格式。
    • DUID-EN, 基于企业编号和供应商分配的DUID.
    • DUID-LL, 仅基于链路层地址的DUID.
  • 一个标准格式的DUID编码开始于2字节的表示符,用于指出是哪种类型的DUID.
  • 在硬件类型之后包括一个32位的时间戳。
协议操作
  • DHCPv6协议操作与DHCPv4的对应部分相似,一台客户机是否启用DHCP, 取决于这台主机接收的ICMPv6路由器通告消息中的配置选项。
    • 路由通告包括两个重要的位字段:
      • M位是可管理地址配置标志,表示IPv6地址可使用DHCPv6获得。
      • O位是其他配置标志,表示IPv6地址之外的其他信息可使用DHCPv6获得。
        DHCPv6的基本操作
  • DHCPv6也可用于配置路由器,这通过一台路由器向量一台路由器委托一个地址空间范围来实现。
    • 这个地址范围可描述一个IPv6地址前缀,这个地址前缀被定义在DHCP前缀选项中。
  • OPTION_6RD选项长度可变,包括几个值:
    • IPv4掩码长度;
    • 6rd前缀长度;
    • 6rd前缀;
    • 6rd中继地址列表;
      • 提供6rd中继的IPv4地址。

使用DHCP中继

  • 在最简单的网络中,一个DHCP服务器可供同一局域网中的客户机使用。
  • 但是复杂的网络中,可通过一个或多个DHCP中继代理来中继DHCP流量。
  • 中继代理用于将DHCP操作扩展到跨越多个网段。
    • 中继不会参与客户机和服务器之间的所有DHCP流量交换,仅中继那些广播消息(IPv6中的组播)。
    • 这种消息通常在客户机首次获得自己的地址时交换。
    • 当一台客户机获得一个IP地址,并且服务器的IP地址使用服务器标识选项时,它可与服务器进行单播通信而不经过中继。
  • 中继代理在传统上是第3层设备,并且通常结合了路由功能。
  • 中继的共同需求是通过超出客户机自身提供的信息之外的信息来标识发送DHCP请求的客户机。
  • 中继可能希望干预DHCP客户机和服务器之间的操作,这可采用一个特殊的服务器标识符覆盖子选项来实现。
  • 在某些环境下,允许第三方系统(如中继或介入集中器)学习一个特定DHCP客户机的地址绑定是有用的,这个功能由DHCP租约查询提供。
    • DHCPv4支持4种查询:
      • IPv4地址;
      • MAC地址;
      • 客户机标识符和远程ID;
    • DHCPv6支持2种查询:
      • IPv6地址和客户机标识符(DUID).
  • 客户机ID、IPv6地址、IPv6前缀和客户机的最后事务时间。
  • 租约查询的扩展称为大批量租约查询(BL);
    • BL提供了对基本租约查询的几个扩展,它使用TCP/IP,一次查询可获得大量的查询类型,BL提供了一个中继标识符选项,允许查询者更容易地识别查询。
      • BL查询可基于中继标识符、链路地址(网段)和中继ID.
  • 第2层中继代理
    • 第2层设备(例如交换机、网桥)更靠近端系统,他们会中继和处理DHCP请求,这些第二层设备没有完整的TCP/IP协议栈,并且不使用IP进行寻址。

DHCP认证

  • DHCP的顺利运行被干扰,主机很可能配置为错误的信息,并可能导致严重的服务中断。
    • DHCP没有提供安全保障,因此可能建立一些未授权的DHCP客户机或服务器,这可能严重破坏一个网络的其他功能。
  • DHCP认证选项的目的是确定DHCP消息是否来自一个授权的发送方;
    • 代码字段设置为90, 长度字段给出选项中的字节(不包括代码或长度字段)。
  • 认证信息字段保存一个简单的共享配置令牌,只要客户机和服务器的配置令牌匹配,相应的消息可以接收。
  • 一种比较安全的方法称为延期认证,具体看协议和算法字段是否设置为1.
    • 这种认证信息包含一个消息认证码(MAC), 它提供对发送方的认证和消息内容完整性的检验。
  • DHCP认证没有广泛使用的原因:
    • 这种方法需要在DHCP服务器和每个需要认证的客户机之间分发共享密钥;
    • 认证选项的定义出现在DHCP已广泛使用之后。

重新配置扩展

  • DHCP客户机启动对地址绑定的更新,定义了重新配置扩展金额相关的DHCPFORCERENEW消息。
  • 这个扩展的目的是当网络中出现一些明显的状态改变时,使客户端能重新建立一个地址或丢弃自己的地址。
  • 快速确认:
    • DHCP快速确认选项允许一台DHCP服务器通过一个DHCPACK来响应DHCPDISCOVER消息。
    • 从而有效跳过DHCPREQUEST消息,并最终使用两消息交换来代替四消息替换。
    • 这个选项的设计目的是快速配置可能频繁改变其网络接入点的主机(移动主机)。
  • 位置信息(LCI和LoST):
    • 一个可供选择的高层协议称为启用HTTP的位置投递(HELD)协议,它可用于提供位置信息。
  • 移动和切换信息(Mos和ANDSF):
    • 随着使用移动计算机和智能手机通过蜂窝技术访问Internet的用户逐渐增多,定义了有关蜂窝配置和不同无线网络之间切换的框架和相关DHCP选项。
      • IEEE802.21移动服务(MoS)发现;
      • 接入网发现和选择功能(ANDSF).
    • IEEE802.21标准规定了一个不同类型网络之间的介质无关切换(MIH)的框架,包括有IEEE(802.3、802.11、802.16)、3GPP和3GPP2定义的类型。
    • MoS提供了3种类型的服务:
      • 信息服务;
      • 命令服务;
      • 事件服务。
  • DHCP嗅探:
    • 是某些交换机厂商在其产品中提供的一种能力,可用于检查DHCP消息内容,以确保只有访问控制列表中列出的地址才可交换DHCP流量。

无状态地址自动配置

  • 大多数路由器通过手动配置地址、主机即可手动配置地址,也可使用一种如DHCP的分配协议或某种算法来自动配置地址。
  • 对于一条链路的地址(链路本地地址),一台主机只需要找到一些在链路上未使用的合适地址。
  • 无状态地址自动配置(SLAAC).
  • IPv4链路本地地址的动态配置:链路本地地址的动态配置或自动专用IP寻址(APIPA).
    • 一台主机从一个范围中随机选择一个地址,并检查该地址是否已在本子网中被其他系统使用。

链路本地地址的IPv6 SLAAC

  • IPv6 SLAAC的目标是允许节点自动(和自主)分配链路本地IPv6地址。
  • IPv6重复地址检测(DAD),IPv6 DAD使用ICMPv6邻居请求和邻居通告消息,以确定一个特定(临时或乐观)IPv6地址是否已在链接链路上使用。
  • DHCPv6可用于一种无状态模式,在这种模式下, DHCPv6服务器不指定地址(或保留任何一台客户机的状态),但提供其他配置信息。
  • 地址自动配置的用途:
    • IP地址自动配置的用途通常是有限的,这是由于路由器可能需要为同一网络中的客户机配置特定范围的IP地址,而这台客户机自动配置的地址与该范围不一致。

DHCP和DNS交互

  • 当一台DHCP客户机获得一个IP地址时, 它接收的配置信息的重要部分是一台DNS服务器的IP地址,它允许客户机系统将DNS名称转换为IPv4或IPv6地址。
  • 如果没有DNS服务器或其他方式将域名映射为IP地址,大多数用户会发现他们几乎难以访问互联网系统。
  • 组合DNS/DHCP服务器(如 linux dnsmasq包)是一个服务器程序,它可配置为提供IP地址租约以及其他信息,也可读取一个DHCPREQUEST中的客户机标识符或域名。
  • 以太网上的PPP, 对于大多数局域网和一些广域网连接,DHCP提供了最常用的客户机系统配置方法。
  • 以太网中携带PPP, 因此称为以太网上的PPP(PPPoE), PPPoE用于广域网连接设备(DSL调制解调器)作为一个交换机或网桥而不是使用路由器的情况下。
    • PPP作为某些ISP建立连接的首选,它可提供比其他配置选项(DHCP)更细致的配置控制和审计日志。
      PPP会话阶段
      PPPoE消息携带在以太网帧的有效载荷区
    • PPP会话开始于链路配置(PPP LCP),由客户机发送一个配置请求。
  • 与系统配置相关的攻击:
    • 耗尽资源的各种形式的DoS攻击;
    • 未授权客户机和未授权服务器对DHCP的干扰;
    • IETF致力于为IPv6邻居发现提供安全性,那个邻居、什么时间或是否已部署SLAAC,这些因素将直接影响网络运行的安全性。
  • 主机和路由器使用Internet协议在Internet或专用网络中运行时需要一组基本的配置信息。
    • 路由器通常至少需要分配寻址信息,而主机需要地址、下一跳路由器和DNS服务器的位置。
  • DHCP可同时作用于IPv4和IPv6,但两者之间不能直接互操作。
  • 一台主机通常使用多个地址,IPv6客户机能自主生成自己的链路本地地址,这是通过将一个特定的链路本地IPv6前缀与其他本地信息(MAC地址中获得的特殊位或有助于保护隐私的随机数)相结合实现的。
  • 用于IPv6无状态自动配置的DHCP和ICMPv6路由器通告,部署时通常没有使用安全机制。

防火墙和网络地址转换

  • 在因特网(Internet)中,控制物联网中网络流量的流向,由防火墙来完成,它是一种能够限制所转发的流量类型的路由器。
  • 为了解决IPv4地址数量枯竭,除了IPv6之外,另一种重要的解决机制是网络地址转换(Network Address Translation, NAT), 采用NAT之后互联网地址就不再需要时全球唯一的,允许在多个范围中的同一地址中重复使用。
  • NAT与防火墙相结合生成的复合设备,已经演变成用于连接终端用户的最为常见的路由器类型。

防火墙

  • 利用防火墙来过滤部分流量以限制流量流向终端系统。
    • 代理防火墙(proxy firewall);
      • 是一个多宿主的服务器主机,它是TCP和UDP传输关联的终点,通常不会再IP协议中路由IP数据报。
    • 包过滤防火墙(packet-filter firewall).
      • 是一个互联网路由器,能够丢弃符合特定条件的数据包。
    • 他们的主要区别是所操作的协议栈的层次及由此决定的IP地址和端口号的使用。
包过滤防火墙
  • 包过滤防火墙作为互联网路由器,能够过滤(filter)丢弃一些网络流量。
  • 它们一般都可以配置为丢弃或转发数据包头中符合(或不符合)特定标准的数据包,这些标准被称为过滤器(filter)。
  • 简单的过滤器包括网络层或传输层报头中各个部分的范围比较。
  • 最流行的过滤器包括IP地址或者选项、ICMP报文的类型、以及根据数据包中端口号确定的各种UDP或TCP服务。
  • 最简单的过滤防火墙是无状态的,而复杂的防火墙是有状态的。
    • 无状态的包过滤防火墙单独处理每一个数据报;
    • 有状态的防火墙能够通过关联已经或者即将到达的数据包来推断流或者数据报信息(IP分片)。
    • IP分片使得防火墙的工作变得更为复杂,无状态包过滤防火墙极易被其混淆。
代理防火墙
  • 包过滤的防火墙作为一个路由器可以选择性地丢弃数据包。
  • 代理防火墙并不是真正意义上的互联网路由器,它们本质上是运行一个或多个应用层网关(Application-Layer Gateways, ALG)的主机。
    • 该主机拥有多个网络接口,能够在应用层中继两个链接/关联之间的特定类型的流量。
    • 它们通常不像路由器那样做IP转发,虽然现在已经有结合了各种功能的更复杂的代理防火墙。
  • 防火墙的客户端通常会做特殊配置以便关联(或连接)到代理防火墙,而不是连接到实际提供所需服务的真正的终端主机。
  • 通常这些防火墙作为多宿主机,即便具备IP转发的能力也是被禁用的。
  • 代理防火墙具有脆性和缺乏灵活性。
    • 这些防火墙在所有被访问的网络服务均能提前确定的环境中能工作得很好,但是添加额外的服务可能需要网络运营者的重大干预。
  • 代理防火墙的两种最常见的形式:
    • HTTP代理防火墙;
      • 也称为Web代理,只能用于HTTP和HTTPS 协议(web),内网用户像WEB服务器,对外网来说像Web客户端。
      • 也提供Web缓存(Web cache)功能,缓存保存网页的副本,以便后续访问可以直接从缓存中获取,而不再需要访问原始的Web服务器,减少显示网页的延迟。
      • Web代理也经常被用作内容过滤器(content filter), 根据黑名单来阻止访问某些Web网站。
      • 隧道代理服务器(tunneling proxy server), 以避免用户被内容过滤器封阻。
    • SOCKS防火墙;
      • SOCKS协议比HTTP代理访问使用更为广泛,第4版为代理传输提供了基本的支持,第5版增加了强大的认证、UDP传输和IPv6寻址。
      • 为使用SOCKS代理,应用程序在开发是必须添加SOCKS代理支持功能,同时配置应用程序能够获知代理的位置和版本号。
      • 一旦配置完成,客户端使用SOCKS协议请求代理进行网络连接,也可以选择性地进行DNS查找。
网络地址转换(NAT)
  • NAT本质上是一种允许在互联网的不同地方重复使用相同IP地址集的机制。
  • NAT设备将内部系统的地址空间和全球互联网地址空间分割开,内部系统可以使用本地分配的私有IP地址访问互联网。
  • NAT的几个缺点:
    • 需要做特殊配置才能使处于NAT内部的主机能够提供可供互联网访问的服务,因为互联网上的用户无法直接访问具备私有地址的主机。
    • NAT必须重写每个数据报的寻址信息,以便私有地址空间的系统和Internet主机之间正常通信;
    • NAT和互联网协议的基本宗旨是背道而驰的,NAT需要跟踪跟踪每个关联(per-association)的连接状态,其操作贯穿多个协议,并不像传统的路由器。
      • 修改IP层地址需要同时修改传输层的校验码。
    • NAT会对一些应用协议造成困扰,尤其是那些在应用层的有效载荷内记录IP地址信息的协议。(文件传输协议, File Transfer Protocol, FTP).
  • NAT的工作原理就是重写通过路由器的数据包的识别信息。
    • 发生在数据传输的两个方向上。
    • NAT需要重写一个方向的源IP地址和两一个方向传输的目的IP地址。
  • 大多数的NAT同时执行转换(translation)和包过滤(packet filtering);
    • 包过滤的标准取决于NAT的动态状态。
    • 包过滤策略的选择可能会有不同的粒度。
  • 传统的NAT: 基本NAT(basic NAT)和网络地址端口转换(Network Address Port Translation, NAPT).
    • 基本NAT值只执行IP地址重写,本质上就是将私有地址改写为一个公共地址;
      • 全局可路由的地址数量必须大于或等于希望同时访问Internet的内部主机数量。
    • NAPT使用传输层标识符(即TCP和UDP端口,ICMP查询标识符)来确定一个特定的数据包到底和NAT内部的那台私有主机关联。
      • 这使大量的内部主机能够同时访问互联网,而使用的共有地址却很少,通常只有一个。
  • NAT和TCP:
    • 互联网中最为主要的传输层协议是TCP,使用一个IP地址和端口号来标识一个连接的每一端。
    • 每个TCP连接由两个IP地址和两个端口号唯一标识。
    • NAT/防火墙设备作为客户端的默认路由器,将会收到第一个数据包,NAT注意到传入的数据包是一个新的连接(因为TCP报头中的SYN标志位是打开的)。
    • 如果策略运行,数据包的源IP地址会被修改为NAT路由器的外部接口的IP地址。
    • NAT还创建一个内部状态记住当前正在处理一个新连接(称为NAT会话,NAT session)。
    • 大多数的NAT包括一个TCP连接建立的简化版本,并可以区分连接成功还是失败了。
    • NAT在检测到一个传出的SYN数据报后会激活连接计时器,如果回复的ACK数据报在计时器到期之前还未到达,则该会话状态将被清除。
    • 一个TCP NAT面临的棘手问题是如何处理位于多个NAT内部的主机上运行的对等应用。
  • NAT和UDP:
    • UDP没有连接建立和清除的过程,没有标识位。
    • UDP NAT会采用一个映射计时器(mapping timer)来清除NAT的状态。
    • 分片并不能被NAT或NAPT正确处理。
  • NAT与其他转换协议(DCCP, SCTP):
    • 数据报拥塞控制协议(Datagram Congestion Control Protocol, DCCP), 提供拥塞控制的数据报服务。
    • 流量控制传输协议(Stream Control Transmission Protocol, SCTP)提供了可靠的报文处理服务,可容纳拥有多个地址的主机。
  • NAT与ICMP:
    • ICMP是Internet控制报文协议: 它提供了关于IP数据报的状态信息,也能够用于测量和收集网络状态信息。
      • 信息类的ICMP报文;
      • 出错类的ICMP报文,通常包含一个引起错误条件的IP数据报的副本。
  • NAT和隧道数据包:
    • 隧道数据报也需要通过NAT发送时,NAT不仅要修改IP报头,还需要修改封装在其中的其他数据报的包头和有效载荷。
  • NAT和组播:
    • 为了支持组播流量,需要用IGMP代理来增强NAT。
  • 在IPv6中,防火墙功能、拓扑隐藏和隐私可通过本地网络保护(Local Network Protection, LNP)来提供。
地址和端口转换行为
  • NAT的操作大部分涉及具体的地址和端口映射。
  • 在常见的传输层协议(TCP和UDP)所需的NAT地址和端口处理行为是独立于端点的。
  • 采用NAT的主要问题之一是从外网无法直接访问位于NAT之后的主机提供的服务。
  • 一个NAT通常包括流量重写和过滤功能。
  • 单边的自地址确定:
    • 应用程序使用一系列方法来定位其流量在通过NAT时所采用的地址:
      • 确定、学习和维护地址信息。
      • 间接方法通过与NAT交换流量来推断其行为。
      • 直接方法通过应用程序和NAT本身之间一个或多个协议来进行直接会话。
  • NAT的会话穿越工具:
    • 一个UNSAF和NAT穿越的主要功能,就是NAT会话穿越工具(Session Traversal Utilities for NAT, STUN).
  • 在多数简单的路由器中,NAT能够配置为和防火墙一起工作,window中,NAT被称为互联网连接共享(Internet Connection Sharing, ICS), 在linux中被称为IP伪装(IP masquerading).
  • 无状态的IP/ICMP转换是指不采用状态表格进行IPv4和IPv6数据包转换的方法,转换中无需查表,只需使用一个科创换的IPv4地址和一个预定义的用于转换IP头部。
posted @ 2019-04-07 14:12  coding-for-self  阅读(383)  评论(0编辑  收藏  举报