TCP/IP之IP协议相关技术

仅凭IP无法完成通信:在实际应用中,人们一般不会使用十进制数字组成的某个IP地址,而是直接输入Web网站的地址或者电子邮件地址,这些由应用层提供的地址。因此从上往下的角度,就有必要实现将应用中使用的地址映射为IP地址。此外,数据链路层使用的是mac地址而不是ip地址,并且在实际中,将众多ip数据包在网络上进行传输的就是数据链路本身,因此就有必要了解发送端mac地址。

下面主要包含了:DNS、ARP、ICMP、ICMPv6、DHCP、NAT等协议,还包括IP隧道、IP多播、IP任播、质量控制(QoS)以及以太网拥塞的显式通知和Mobile IP技术。

目录

DNS

1.DNS定义

2.域名

3.DNS的域名和IP的关系

4.域名服务的特点以及图示说明

5.DNS查询流程举例图

ARP

1.ARP报文格式:

2.ARP高速缓存

3.免费ARP(FARP)

4.代理APR(proxy ARP)

ICMP

1.报文类型或者用途

2.ICMP作为IP的上层协议在工作

3.利用ICMP实现的功能

4.ICMP和安全的关系

ICMPv6

1.ICMPv6的报文格式

2.邻居发现协议NDP相关知识

DHCP

DHCP中继代理 

NAT

IP隧道


DNS

协议背景:TCP/IP 网络中要求每一个互连的计算机都具有其唯一的IP 地址,并基于这个IP 地址进行通信。但是IP 地址是由一串数据序列组成,并不好记。因此直接使用IP 地址有很多不便之处。

早先形态(主机识别码时期):

hosts数据库文件中记录了主机名和IP地址一一映射的关系,由互联网信息中心更新和管理。如果新增一台计算机接人到ARPANET 网或者巳有的某台计算机要进行IP 地址变更,中心的这个hosts 文件就得更新,而其他计算机则不得不定期下载最新的hosts 文件才能正常使用网络。因此随着互联网的迅猛发展,该方式的可行性逐渐降低。

1.DNS定义

是一个分布式的客户机/服务器网络数据库,TCP/IP应用程序使用它来完成主机名称和IP地址之间的映射(反之亦然),提供电子邮件路由信息、服务命名和其他服务。DNS提供了允许客户机和服务器相互通信的协议,也提供了服务器之间交互信息的协议。

上面分布式的含义:互联网中没有单独的一个站点能知道所有信息。每一个站点维护自己的信息数据库,并运行一个服务器程序供互联网上其他系统查询。

优点:充分解决了ARPANET初期遇到的问题。无论网络规模变得多么庞大,都能在一天个较小范围内通过DNS进行管理。

2.域名

域名是为了识别主机名称和机构名称的一种具有分层的名称。域名在以前都用ASCII码表示,现在可以使用中文等众多国家的名字表示。

域名结构:包含:根域、顶级域、二级域、子域、主机。域名包含一系列的由点分开的标签,标签代表名称层级中的一个位置,句点是层次结构分隔符,并且名称中自右向左的顺序沿树下降。

  • 根域
    位于域名空间最顶层,一般用一个 “.” 表示

  • 顶级域
    一般代表一种类型的组织机构或国家地区,如 net、com、org、edu、gov、mil、cn、jp、hk

  • 二级域
    用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,如 .cn 顶级域名下面设置的二级域名:.com.cn、.net.cn、.edu.cn …

  • 子域
    二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名

  • 主机
    主机位于域名空间最下层,就是一台具体的计算机,如 www、mail、都是具体的计算机名字,可用www.sina.com.cn.、mail.sina.com.cn. 来表示,这种表示方式称为 FQDN (完全合格域名),也是这台主机在域名中的全名

    平时上网输入的网址都是 FQDN 名,如 www.sina.com.cn,其实表示我们要访问 “sina.com.cn” 域中一台名为 “www” 的计算机

3.DNS的域名和IP的关系

在DNS系统中有一个比较重要的的资源类型叫做主机记录也称为A记录,A记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的IP地址上。
(1)一个域名对应一个IP集群:多见于有一定访问规模的网站,常见的使用技术是负载均衡。广义上的负载均衡器大概可以分为 3 类,包括:DNS 方式实现负载均衡、硬件负载均衡、软件负载均衡。其中DNS方式实现负载均衡时,每次域名解析请求都会根据对应的负载均衡算法计算出一个不同的IP地址并返回,这样A记录中配置多个服务器就可以构成一个集群,并可以实现负载均衡。

(2)多个域名解析到一个IP地址:多见于小流量网站。

一个IP绑定多个域名是很常见的事情,租用的虚拟主机大多数都是多个主机共享同一个IP,区分具体访问的是哪个主机要从两个方面实现:

1.客户端如何区别不同的网站。

客户端在请求时,会在HTTP请求的时候包含要请求的具体主机名称,比如访问Google的请求通过抓包分析内容是这样的:

GET / HTTP/1.1
Host: www.google.com

 整个请求会被发送到服务器上,其中有Host字段标识你要请求的网站域名是什么。因此即使访问的是同一个IP地址,由于Host字段不同,服务器软件有办法区分具体访问的是哪个网站。

2.服务器端如何配置

虚拟主机:web服务器程序可以根据请求头的中的域名返回对应目录资源,这称作web服务器的“虚拟主机”功能。但是不过多数人所知道的虚拟主机一般是使用虚拟化技术(虚拟机软件)将物理服务器虚拟化为多个虚拟主机,常见的虚拟机软件有VMwareWorkstation、VirtualBox,不过这里说的web服务器的虚拟主机和虚拟化技术的虚拟主机是两回事。以最常用的Apache服务器软件为例,要实现虚拟主机功能,只需要做一些虚拟主机的配置即可。

服务器使用Apache,那么在Apache的配置文件中加入VirtualHost即可新增虚拟主机:一对VirtualHost标签就是一个虚拟主机(一个域名)的配置。

<VirtualHost 10.0.0.1>
ServerAdmin admin@admin
DocumentRoot "D:/website1"
ServerName http://myhost1.com
DirectoryIndex index.php
</VirtualHost>

<VirtualHost 10.0.0.1>
ServerAdmin admin@admin
DocumentRoot "D:/website2"
ServerName http://myhost2.com
DirectoryIndex index.php
</VirtualHost>

以上就定义了两个域名http://myhost1.com和http://myhost2.com,分别在不同的根目录,通过这样的配置Apache如果收到http://myhost1.com的请求,那么就到d:/website1里寻找对应的页面,如果是http://myhost2.com的请求,那么就到d:/website2里寻找对应的页面。通常Apache还有一个默认网站,这个网站是可以使用IP地址访问的,如果将这个网站设置为无效,那么这个主机就无法通过IP地址直接访问HTTP资源。、

如果服务器采用IIS(不是服务器的主流,可参考IIS搭建简单网站),IIS能使用同一个IP绑定多个站点,在默认网站->属性->网站->高级中,添加不同的域名即可。高版本的IIS中,可以配置多个网站,每个网站绑定不同的域名,即可实现访问时的区分。

如果服务器没设置默认网站,那么IP地址也无法直接访问主机。

所以,如果你直接通过IP地址访问网站,会遇到两种情况:
1、服务器设置了默认网站,或者使用IP作为主机名去匹配请求的Host字段,那么你通过IP访问的就是这个网站;
2、服务器没有设置默认网站,或者默认网站被禁止,那么你通过IP无法打开任何东,通常遇到的是404错误(找不到页面),在我使用过的几个虚拟主机服务商那,遇到的都是类似的错误。

另外,不管是IIS或者Apache或者其它类型的网站服务器软件,不仅仅支持多域名,也支持多IP,也就是一个服务器同时有多个域名和多个IP,互相之间是互不干扰的。

 

4.域名服务的特点以及图示说明

5.DNS查询流程举例图

pepper主机(所在域名服务器为kusa.co.jp)查询www.ietf.org网站的流程

ARP

定义:地址解析协议(Address Resolution Protocol),其基本功能为透过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。它是IPv4中网络层必不可少的协议,不过在IPv6中已不再适用,并被邻居发现协议(NDP)所替代。

只用在和存在于IPv4中。

工作流程:

假设主机A和B在同一个网段,主机A要向主机B发送信息,具体的地址解析过程如下:
(1) 主机A首先查看自己的ARP表,确定其中是否包含有主机B对应的ARP表项。如果找到了对应的MAC地址,则主机A直接利用ARP表中的MAC地址,对IP数据包进行帧封装,并将数据包发送给主机B。

(2) 如果主机A在ARP表中找不到对应的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。ARP请求报文中的发送端IP地址和发送端MAC地址为主机A的IP地址和MAC地址,目标IP地址和目标MAC地址为主机B的IP地址和全0的MAC地址。由于ARP请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机B)会对该请求进行处理。

(3) 主机B比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:将ARP请求报文中的发送端(即主机A)的IP地址和MAC地址存入自己的ARP表中。之后以单播方式发送ARP响应报文给主机A,其中包含了自己的MAC地址。

(4) 主机A收到ARP响应报文后,将主机B的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据包进行封装后发送出去。

1.ARP报文格式:

  先要清楚,一般说以太网地址就是指MAC地址

  字段1是ARP请求的目的以太网地址,全1时代表广播地址。

  字段2是发送ARP请求的以太网地址。

  字段3以太网帧类型表示的是后面的数据类型,ARP请求和ARP应答这个值为0x0806。

  字段4表示硬件地址的类型,硬件地址不只以太网一种,是以太网类型时此值为1。

  字段5表示要映射的协议地址的类型,要对IPv4地址进行映射,此值为0x0800。

  字段6和7表示硬件地址长度和协议地址长度,MAC地址占6字节,IP地址占4字节。

  字段8是操作类型字段,值为1,表示进行ARP请求;值为2,表示进行ARP应答;值为3,表示进行RARP请求;值为4,表示进行RARP应答。

  字段9是发送端ARP请求或应答的硬件地址,这里是以太网地址,和字段2相同。

  字段10是发送ARP请求或应答的IP地址。

  字段11和12是目的端的硬件地址和协议地址。

2.ARP高速缓存

定义:ARP缓存是一个缓冲区,用来储存IP地址和MAC地址,本质就是<IP地址,MAC地址>的对应表。表中一个条目记录了网络上一个主机的IP地址和其对应的MAC地址。

当地址解析协议被询问一个已知IP地址节点的MAC地址时,先在ARP缓存中查看,若存在,就直接返回与之对应的MAC地址,若不存在,才发送ARP请求向局域网查询。

ARP缓存表项的生存时间TTL:ARP缓存包含动态和静态项目。

(1)动态项目:随时间推移自动添加和删除,每个动态ARP缓存项都有都设置了TTL(生存时间),TTL为0时此项目就从表中删除,Windows下TTL一般不超过10分钟。

(2)静态项目:静态 ARP 缓存条目是永久性的,可以使用 TCP/IP 工具手动添加和删除。静态 ARP 缓存条目用来禁止节点发送对常用的本地IPv4地址(例如路由器和服务器的 IPv4 地址)的ARP请求。

ARP高速缓存的使用:当主机发送一个ARP请求时,先查看ARP高速缓存表,如果存在对应条目,则直接返回MAC地址,否则向局域网发送ARP请求广播。

ARP高速缓存的优缺点:

      优点:从ARP高速缓存的使用中可以看到,ARP高速缓存可以减小广播量,进而减小网络通信量,提高计算机之间的通信效率。

  缺点:造成安全隐患(参考下面免费ARP的作用)。

3.免费ARP(FARP)

定义:免费ARP指主机发送ARP查找自己的IP地址,通常发生在系统引导期间进行接口配置时。与标准ARP的区别就是免费ARP分组的目的IP地址字段封装的是自己的IP地址,即向所在网络请求自己的MAC地址。

免费ARP的作用有:

        1) 一个主机可以通过它来确定另一个主机是否设置了相同的 IP地址。正常情况下发送免费ARP请求不会收到ARP应答,如果收到了一个ARP应答,则说明网络中存在与本机相同的IP地址的主机,发生了地址冲突。

        2)更新其他主机的高速缓存中旧的硬件地址进行。如果发送免费ARP的主机正好改变了硬件地址,如更换了接口卡。其他主机接收到这个ARP请求的时候,发现自己的ARP高速缓存表中存在对应的IP地址,但是MAC地址不匹配,那么就需要利用接收的ARP请求来更新本地的ARP高速缓存表表项。

  3)网关利用免费ARP防止ARP攻击。有些网关设备在一定的时间间隔内向网络主动发送免费ARP报文,让网络内的其他主机更新ARP表项中的网关MAC地址信息,以达到防止或缓解ARP攻击的效果。

  4)利用免费ARP进行ARP攻击。ARP协议并不只在发送了ARP请求才接收ARP应答,计算机只要接收到ARP应答数据包,就会使用应答中的IP和MAC地址对本地的ARP缓存进行更新。主机可以构造虚假的免费ARP应答,将ARP的源MAC地址设为错误的MAC地址,并把这个虚假的免费ARP应答发送到网络中,那么所有接收到这个免费ARP应答的主机都会更新本地ARP表项中相应IP地址对应的MAC地址。更新成功后,这些主机的数据报文就会被转发到错误的MAC地址,从而实现了ARP欺骗的攻击。

4.代理APR(proxy ARP

背景: 先要了解,路由器的重要功能之一就是把局域网的广播包限制在该网内,阻止其扩散,否则会造成网络风暴。ARP请求是个广播包,它询问的对象如果在同一个局域网内,就会收到应答。但是如果询问的对象不在同一个局域网就会被路由器隔离,该如何处理?路由器就提供的代理ARP为这个问题提供了解决方案。

定义:代理ARP使一个系统(通常是一台专门配置的路由器)可回答不同主机的ARP请求。它使请求的发送者认为做出响应的系统就是目的主机,但实际上目的主机可能在其他地方(或不存在)。

工作过程:

ARP代理并不常见,通常应该尽量避免使用它。

代理ARP也称为混杂ARP或ARP黑客。名称来源于历史用途:两个物理网络相互隐蔽自己。在这种情况下,两个物理网络可以使用相同的IP前缀,只要将中间的路由器配置为一个代理ARP,在一个网络中由代理响应对其他网络中的ARP请求。这种技术可用于向一组主机隐藏另一组主机。从前,这样做的原因有两个:(1)有些系统无法进行子网划分,(2)有些系统使用比较久的广播地址。

ICMP

背景:

      在IP通信中,经常有数据包到达不了对方的情况。原因是,在通信途中的某处的一个路由器由于不能处理所有的数据包,就将数据包一个一个丢弃了。或者,虽然到达了对方,但是由于搞错了端口号,服务器软件可能不能接受它。这时,在错误发生的现场,为了联络而飞过来的信鸽就是ICMP 报文。在IP 网络上,由于数据包被丢弃等原因,为了控制将必要的信息传递给发信方。ICMP 协议是为了辅助IP 协议,交换各种各样的控制信息而被制造出来的。

       网络本身是不可靠的,在网络传输过程中,可能会发生许多突发事件并导致数据传输失败。网络层的IP协议是一个无连接的协议,它不会处理网络层传输中的故障,而位于网络层的ICMP协议却恰好弥补了IP的缺限,它使用IP协议进行信息传递,向数据包中的源端节点提供发生在网络层的错误信息反馈。

定义:ICMP全称Internet Control Message Protocol,中文名为因特网控制报文协议。它工作在OSI的网络层,向数据通讯中的源主机报告错误。ICMP可以实现故障隔离和故障恢复。

IPv4中ICMP仅作为一个辅助作用支持IPv4.也就是说,在IPv4时期,即使没有ICMP,任然可以实现IP通信。

1.报文类型或者用途

在RFC,将ICMP 大致分成两种功能:差错通知和信息查询。

(1)给送信者的错误通知。在 IP 数据包被对方的计算机处理的过程中,发生了什么错误时被使用。不仅传送发生了错误这个事实,也传送错误原因等消息。

(2)送信者的信息查询。信息询问是在送信方的计算机向对方计算机询问信息时被使用。被询问内容的种类非常丰富,他们有目标IP 地址的机器是否存在这种基本确认,调查自己网络的子网掩码,取得对方机器的时间信息等。

2.ICMP作为IP的上层协议在工作

ICMP 的内容是放在IP 数据包的数据部分里来互相交流的。也就是,从ICMP的报文格式来说,ICMP 是IP 的上层协议。但是,正如RFC 所记载的,ICMP 是分担了IP 的一部分功能。所以,被认为是与IP 同层的协议。

RFC 规定的数据包格式和报文内容:

上图中的IP数据包中,用来传送ICMP 报文的IP 数据包上实际上有不少字段。但是实际上与ICMP 协议相关的只有7 个子段。

1)协议;2)源IP 地址;3)目的IP 地址;4)生存时间;这四个包含在IP 首部的字段。

5)类型;6)代码;7)选项数据;这三个包含在ICMP数据部分的字段。

这里面,1)协议字段值是1。2)和3)是用来交流ICMP 报文的地址信息,没有特殊意义。对于理解ICMP 本身,重要的是5),6),7)三个字段。这里面的可以称为核心的重要字段是5)类型,6)代码这两个字段。所有ICMP 用来交流错误通知和信息询问的报文,都是由类型和代码的组合来表示的。RFC 定义了15种类型。“报文不可到达”这样的错误通知和“回送请求”这样的信息查询是由类型字段来区分的。ICMP报文由类型来表达它的大概意义,需要传递细小的信息时由代码来分类。进一步,需要向对方传送数据的时候,用7)选项数据字段来放置。

3.利用ICMP实现的功能

(1)ICMP实现之改变路由;(2)ICMP实现之ping命令;(3)ICMP实现之traceroute命令;(4)ICMP实现之端口扫描

4.ICMP和安全的关系

为什么有停止ICMP 使用的设定项目呢?理由只有一个,那就是确保安全。虽然ICMP 是非常便利的协议,但黑客在尝试非法访问的时候会被恶意利用。由于ICMP 被恶意使用而遭受损害的用户正在不断增加之中,因此有了限制ICMP 使用的意见。从安全的方面来说,ICMP 是有百害而无一利的。

ICMPv6

在IPv6中,ICMP的作用被扩大,如果没有ICMPv6,IPv6就无法进行正常通信。

定义:基于ipv6的ICMPv6(Internet control message protocol for IPv6)是 IPv6 下的 Internet 控制报文协议;在 IPv6 中,ICMPv6 整合实现了 IPv4 中的 ICMP(ping命令)、ARP 以及 IGMP 的所有功能,主要包括错误报告、网络诊断(ping6命令)、邻居发现、多播实现和重定向等。

1.ICMPv6的报文格式

ICMPv6报文封装在IPv6中,回顾下IPv6的首部报文格式:

ICMPv6的协议号为58,也就是在IPv6报文中的Next Header的值为58。ICMPv6的报文格式如下:

类型字段用于确定特定的报文,ICMPv4和ICMPv6的该字段值并不相同;代码字段进一步肯定报文的含义,ICMPv4和ICMPv6的该字段值并不相同;校验和字段用于确定报文信息的正确性。

(1)Type:表示 ICMPv6 报文的类型,当取值介于 0 到 127 之间时,表示该报文为差错报文(如目的不可达、超时等),当取值在 128 到 255 之间时,则表示该报文为信息报文。

(2)Code:表示此消息类型(Type)细分的类型,具体区分每种消息类型的错误信息,如目的不可达可能是防火墙导致的,也可能是路由错误导致的。

(3)Checksum:校验和,校验的部分包括了 IPv6 伪首部和ICMPv6报文。IPV6伪首部包含4个部分:16字节的sourse address, 16字节的destination addrss,2字节的 payload length, 1字节的next header。

2.邻居发现协议NDP相关知识

定义:邻居发现协议(Neighbor Discovery Protocol,NDP)就是使用以下的功能实现即插即用特性的协议:

  • 路由器发现:当一个节点连接到一个IPV6的链路时,它能够发现本地的路由器,不必借助DHCP。
  • 前缀发现:当一个节点连接到一个IPV6的链路时,它能够发现分配给该链路的前缀。
  • 参数发现:节点能够发现它所相连的链路的参数(链路的MTU和跳数限制等)。
  • 地址自动配置:节点能够确定他的完整性,不需要DHCP。
  • 地址解析 :节点不需要借助ARP就能够发现所连接链路上其他节点的链路层地址。
  • 下一跳确定:一条链路上的节点能够确定到达目的节点的下一跳链路层节点。
  • 邻居不可达检测 :节点能检测到链路上的邻居(主机或路由器)何时不再可达。
  • 地址冲突检测:节点能检测到他所要使用的地址是否已经被链路上的其他节点所占用。
  • 重定向:对于非连接的目的节点,路由器能够通过重定向消息通知主机存在比它自己更好的下一跳路由。

NDP定义了5种ICMPv6报文类型:ICMPv6消息类型中有5种是为了支持邻居发现协议而定义的。

  • 类型133 路由器请求(Router Solicitation Message,RS):由主机发起,用来请求一个路由器发送一个RA

  • 类型134 路由器通告(Router Advertisement Message,RA):由路由器发起,通告路由器的存在和链路的细节参数(链路前缀,MTU,跳数限制等),周期性发送,也用于答RS。

  • 类型135 邻居请求(Neighbor Solicitation Message,NS):由节点主机发起,用来请求另一台主机的链路层地址,或实现地址冲突检测、邻居不可达检测。

  • 类型136 邻居通告(Neighbor Advertisement Message,NA):有节点发起用来响应NS,如果一个节点改变了他的链路层地址,那么它能够主动发送一个NA来通告这个新地址。

  • 类型137 重定向(Redirect)

NDP消息通常在链路本地的范围内收发。
为了进一步增强安全性,承载所有NDP消息的IPV6数据包的跳数限制为255,如果收到的数据包跳数小于255的,说明该数据包最少已经经过一台路由器,因此该数据包应该被丢弃。这样可以防止NDP受到来自不与本地链路相连的源节点的攻击或欺骗。

1.路由器发现

定义:路由器发现功能用来发现与本地链路相连的设备,并获取与地址自动配置相关的前缀和其他配置参数。

在IPv6中,IPv6地址可以支持无状态的自动配置,即主机通过某种机制获取网络前缀信息,然后主机自己生成地址的接口标识部分。路由器发现功能是IPv6地址自动配置功能的基础,主要通过以下两种报文实现:

RA报文:每台设备为了让二层网络上的主机和设备知道自己的存在,定时都会组播发送RA报文,最小缺省周期为200S,RA报文中会带有网络前缀信息,及其他一些标志位信息。未经请求的RA源地址是路由器接口的链路地址,目的地址是所有节点的多播地址(FE02::1)。

RS报文:很多情况下主机接入网络后希望尽快获取网络前缀进行通信,此时主机可以立刻发送RS报文,网络上的设备将回应RA报文。RS的源地址可以是未指定的地址(::),也可以是该主机的链路本地地址,目的地址则始终是所有路由器的多播地址(FE02::2)。

当一台主机收到一条RA时,它就会将这台路由器添加到他的缺省路由器列表中,如果存在多台路由器条目时,要么在列表中依次轮询,要么选择保持单台路由器作为缺省路由。

2.地址自动配置

定义:当一台IPV6的主机第一次连接到链路上时,他能够自我配置自己接口的链路地址:在自己接口的48位的MAC地址中间插入一个保留的16位数值0xFFFE,并把它的U/L位(第七位)翻转,这样就得到了一个64位接口ID。在接口ID前面加上链路本地前缀FE80::/10,就得到了链路本地地址。

如果主机只需要和所在链路上的设备通信时,自动配置的地址已经足够,但是要和链路以外的主机通讯时,就需要更大的范围地址,通常使用以下两种方法获取地址:

  • 有状态:借助DHCPV6获取地址。
  • 无状态:主机将RA发来的链路前缀加上自己确定的接口ID,这样就得到了一个全球唯一的IPV6地址

3.邻居地址解析(类ARP)

Host A在向Host B发送报文之前它必须要解析出Host B的链路层地址,所以首先Host A会发送一个NS报文(利用IPv6的多播地址实现传输),其中源地址为Host A的IPv6地址,目的地址为Host B的被请求节点组播地址,需要解析的目标IP为Host B的IPv6地址,这就表示Host A想要知道Host B的链路层地址。同时需要指出的是,在NS报文的Options字段中还携带了Host A的链路层地址。

当Host B接收到了NS报文之后,就会回应NA报文,其中源地址为Host B的IPv6地址,目的地址为Host A的IPv6地址(使用NS报文中的Host A的链路层地址进行单播),Host B的链路层地址被放在Options字段中。这样就完成了一个地址解析的过程。

还可参考TCP/IP中的图:

4.邻居不可达检测

背景:通过邻居或到达邻居的通信,会因各种原因而中断,包括硬件故障、接口卡的热插入等。如果目的地失效,则恢复是不可能的,通信失败;如果路径失效,则恢复是可能的。因此节点需要维护一张邻居表,每个邻居都有相应的状态,状态之间可以迁移。

邻居状态:RFC2461中定义了5种邻居状态,分别为

  • 未完成(Incomplete):表示正在解析地址,但邻居链路层地址尚未确定。
  • 可达(Reachable):表示地址解析成功,该邻居可达。
  • 陈旧(Stale):表示可达时间耗尽,未确定邻居是否可达。
  • 延迟(Delay):邻居可达性未知。Delay状态不是一个稳定的状态,而是一个延时等待状态。
  • 探查(Probe):邻居可达性未知,正在发送邻居请求探针以确认可达性.

居状态的具体迁移过程如下图所示:

下面以A、B两个邻居节点之间相互通信过程中A节点的邻居状态变化为例(假设A、B之前从未通信),说明邻居状态迁移的过程。

  1. A先发送NS报文,并生成缓存条目,此时,邻居状态为Incomplete。
  2. 若B回复NA报文,则邻居状态由Incomplete变为Reachable,否则固定时间后邻居状态由Incomplete变为Empty,即删除表项。
  3. 经过邻居可达时间,邻居状态由Reachable(默认30s)变为Stale,即未知是否可达。
  4. 如果在Reachable状态,A收到B的非请求NA报文(MAC地址修改),且报文中携带的B的链路层地址和表项中不同,则邻居状态马上变为Stale。
  5. 在Stale状态若A要向B发送数据,则邻居状态由Stale变为Delay,并发送NS请求。
  6. 在经过一段固定时间后,邻居状态由Delay(默认5s)变为Probe(每隔1s发送一次NS报文,连续发送3次),其间若有NA应答,则邻居状态由Delay变为Reachable。
  7. 在Probe状态,A每隔一定时间间隔z(1s)发送单播NS,发送固定次数(3)后,有应答则邻居状态变为Reachable,否则邻居状态变为Empty,即删除表项。

5.重复地址检测 Duplicate Address Detect,DAD(类FARP)

基本概念:

        在接口使用某个IPv6单播地址之前进行的,主要是为了探测是否有其它的节点使用了该地址。尤其是在地址自动配置的时候,进行DAD检测是很必要的。

        一个IPv6单播地址在分配给一个接口之后且通过重复地址检测之前称为试验地址(Tentative Address)。此时该接口不能使用这个试验地址进行单播通信,但是仍然会加入两个组播组:ALL-NODES组播组和试验地址所对应的Solicited-Node组播组。

        IPv6重复地址检测技术和IPv4中的免费ARP类似:节点向试验地址所对应的Solicited-Node组播组发送NS报文。NS报文中目标地址即为该试验地址。如果收到某个其他站点回应的NA报文,就证明该地址已被网络上使用,节点将不能使用该试验地址通讯。

地重复地址检测过程:

PC A的IPv6地址2000::1为新配置地址,即2000::1为PC A的试验地址。PC A向2000::1的Solicited-Node组播地址FF02::1:FF00:1发送一个以2000::1为请求的目标地址的NS报文进行重复地址检测,由于2000::1并未正式指定,所以NS报文的源地址为未指定地址。当PC B收到该NS报文后,有两种处理方法:

  • 如果PC B发现2000::1是自身的一个试验地址,则PC B放弃使用这个地址作为接口地址,并且不会发送NA报文。
  • 如果PC B发现2000::1是一个已经正常使用的地址,PC B会向FF02::1发送一个NA报文,该消息中会包含2000::1。这样,PC A收到这个消息后就会发现自身的试验地址是重复的,从而弃用该地址。

DHCP

背景:

定义:DHCP(Dynamic Host Configuration Protocol),动态主机配置协议,是一个应用层协议。当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户端分配IP,使得客户机能够利用这个IP上网。

优点:

           1. 减少管理员的工作量。

           2. 减少输入错误的可能。

           3. 避免IP冲突。

           4. 当网络更改IP地址段时,不需要重新配置每台计算机的IP地址。

           5. 计算机移动不必重新配置IP地址。

           6. 提高了IP地址的利用率。

 

DHCP中继代理 

背景:在家庭网络中大多都只有一个以太网(无线LAN) 的网段,与其连接的主机台数也不会太多。因此,只要有一台DHCP 服务器就足以应对IP 地址分配的需求,而大多数情况下都由宽带路由器充当这个DHCP 的角色。但是,,一个企业或学校等较大规模组织机构的网络环境当中,一般会有多个以太网(无线LAN) 网段。。在这种情况下,若要针对每个网段都设置DHCP服务器将会是个庞大的工程。也就是说将DHCP 服务器分设到各个路由器上,于管理和运维都不是件有益的事。

解决:在这类网络环境中,往往需要将DHCP 统一管理。具体方法可以使用DHCP 中继代理来实现。有了DHCP 中继代理以后,对不同网段的IP 地址分配也可以由一个DHCP 服务器统一进行管理和运维。

NAT

背景:解决面临地址枯竭的IPv4问题而开发的技术,在IPv6 中为了提高网络安全也在使用NAT, 在IPv4 和IPv6 之间的相互通信当中常常使用NAT-PT。

定义:NAT (Network Address Translator) 是用于在本地网络中使用私有地址,在连接互联网时转而使用全局IP 地址的技术。。除转换IP 地址外,还出现了可以转换TCP 、UDP 端口号的NAPT (Network Address Ports Translator) 技术,由此可以实现用一个全局IP 地址与多个主机的通信。(通常人们提到的NAT, 多半是指NAPT。NAPT 也叫做IP伪装或Multi NAT 。)

NAT工作原理:

以10. 0. 0. 10 的主机与163. 221. 120. 9 的主机进行通信为例。利用NAT, 途中的NAT 路由器将发送源地址从10. 0. 0. 10 转换为全局的IP 地址(202.244. 174.37) 再发送数据。反之,当包从地址163. 221. 120. 9 发过来时,目标地址(202.244. 174.37) 先被转换成私有IP 地址10. 0. 0. 10 以后再被转发。

NAPT工作原理:

主机163. 221. 120. 9 的端口号是80, LAN 中有两个客户端10. 0. 0. IO 和10. 0. 0. 11 同时进行通信,并且这两个客户端的本地端口都是1025 。此时,仅仅转换IP 地址为某个全局地址202.244. 174.37, 会令转换后的所有数字完全一致。为此,只要将10. 0. 0. 11 的端口号转换为1026 就可以解决问题。如上所示,生成一个NAPT 路由器的转换表,就可以正确地转换地址跟端口的组合,令客户端A 、B 能同时与服务器之间进行通信。

NAT和NAPT比较:

  • 相同:在NAT (NAPT) 路由器的内部,有一张自动生成的用来转换地址的表。当10. 0. 0.10 向163. 221. 120. 9 发送第一个包时生成这张表,并按照表中的映射关系进行处理。
  • 应用场景不同:当私有网络内的多台机器同时都要与外部进行通信时,仅仅转换IP 地址,人们不免担心全局IP 地址是否不够用。这时采用如图5.20 所示的包含端口号一起转换的方式(NAPT) 可以解决这个问题。

 以下说的NAT实际上都是指的NAPT,后面不再赘述。

NAT-PT

背景:现在很多互联网服务都基于1Pv4 。如果这些服务不能做到在1Pv6 中也能正常使用的话,搭建1Pv6 网络环境的优势也就无从谈起了。

定义:NAT-PT 是将IPv6 的首部转换为IPv4 的首部的一种技术。有了这种技术,那些只有IPv6 地址的主机也就能够与IPv4 地址的其他主机进行通信了。

工作原理:

NAT-PT 的其他形式:DNS-ALG,结合了DNS 和IP 首部。

以上所以的NAT的潜在问题

由于NAT (NAPT) 都依赖于自己的转换表,因此会有如下几点限制:

  • 无法从NAT 的外部向内部服务器建立连接。
  • 转换表的生成与转换操作都会产生一定的开销。
  • 通信过程中一旦NAT 遇到异常需重新启动时,所有的TCP 连接都将被重置。
  • 即使备置两台NAT 做容灾备份, TCP 连接还是会被断开。

解决潜在问题的方法:

  1. 第一种方法就是改用1Pv6 。在1Pv6 环境下可用的IP 地址范围有了极大的扩展,以至于公司或家庭当中所有设备都可以配置一个全局IP 地址。因为如果地址枯竭的问题得到解决,那么也就没必要再使用NAT 了。然而, IPv6 的普及到现在为止都远不及人们的预期,前景不容乐观。
  2. 另一种方法是“NAT 穿越”。可以使得NAT 外侧与内侧可以进行通信。这种方法与已有的1Pv4 环境的兼容性非常好,即使不迁移到1Pv6 也能通信自如。原理:在NAT 内侧(私有IP 地址的一边)主机上运行的应用为了生成NAT 转换表,需要先发送一个虚拟的网络包给NAT 的外侧。而NAT 并不知道这个虚拟的包究竟是什么,还是会照样读取包首部中的内容并自动生成一个转换表。这时,如果转换表构造合理,那么还能实现NAT 外侧的主机与内侧的主机建立连接进行通信。有了这个方法,就可以让那些处在不同NAT 内侧的主机之间也能够进行相互通信。此外,应用还可以与NAT 路由器进行忑兰忠赞?$芦P。通信生成NAT 表,并通过一定的方法将NAT 路由器上附属的全局IP 地址传给应用。

IP隧道

背景:网络A 、B 使用IPv6, 如果处于中间位置的网络C 支持使用IPv4 的话,网络A 与网络B 之间将无法直接进行通信。为了让它们之间正常通信,这时必须得采用IP 隧道的功能。

定义:种在网络层的首部后面继续追加网络层首部的通信方法就叫做“IP 隧道”。因为一般情况下,紧接着IP 首部的是TCP 或UDP 的首部。

作用:

  1. 构造一个既支待1Pv4 又支持IPv6 的网络是一项极其庞大的工程。骨干网上通常使用IPv6 或IPv4 进行传输。因此,那些不支持的路由器就可以采用IP 隧道的技术转发数据包,而对应的IP 地址也可以在一旁进行统一管理。这在一定程度上减轻了管理员的部分工作。此外,由于骨干网的设备上仅在一旁应对IP 隧道即可,这也可以大量地减少投资成本。
  2. 可以建立多播隧道。如下图

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本书介绍TCP/IP及其应用。TCP/IP是Internet上使用的协议,而Internet是世界上最大的互联网络。本书内容十分丰富,几乎涵盖了有关TCP/IP的各个方面,包括开放式通信模型、TCP/IP通信模型、IP网络中的命名和寻址机制、地址解析及反向地址解析协议、DNS域字服务器、WINS、地址发现协议、IPv6、IP网络中的路由协议(RIP、OSPF等)、互联网打印协议、LDAP目录服务、远程访问协议、IP安全与防火墙。本书介绍了如何为Windows 9x/NT配置TCP/IP;还介绍了如何使用TCP/IP应用程序,包括远程登录、FTP、Web浏览等。 目 录 译者序 前言 第一部分 TCP/IP基础 第1章 开放式通信模型简介 1 1.1 开放式网络的发展 1 1.1.1 通信处理层次化 2 1.1.2 OSI参考模型 3 1.1.3 模型的使用 5 1.2 TCP/IP参考模型 7 1.3 小结 7 第2章 TCP/IP和Internet 8 2.1 一段历史 8 2.1.1 ARPANET 8 2.1.2 TCP/IP 9 2.1.3 国家科学基金会(NSF) 9 2.1.4 当今的Internet 12 2.2 RFC和标准化过程 12 2.2.1 获得RFC 13 2.2.2 RFC索引 13 2.2.3 有关RFC的幽默 13 2.3 Internet服务简介 13 2.3.1 Whois和Finger 14 2.3.2 文件传输协议 14 2.3.3 Telnet 14 2.3.4 Email 14 2.3.5 WWW 14 2.3.6 USENET News 15 2.4 Intranet和Extranet概览 15 2.4.1 Intranet 15 2.4.2 将Intranet对外开放 16 2.5 Internet的明天 16 2.5.1 下一代Internet(NGI) 16 2.5.2 超速骨干网服务 16 2.5.3 Internet2(I2) 17 2.6 Internet管理组织 17 2.6.1 Internet协会 17 2.6.2 Internet体系结构组 17 2.6.3 Internet工程任务组 17 2.6.4 Internet工程指导组 17 2.6.5 Internet编号管理局 18 2.6.6 Internet名字和编号分配组织 (ICANN) 18 2.6.7 Internet网络信息中心和其他注 册组织 18 2.6.8 RFC编辑 18 2.6.9 Internet服务提供商 18 2.7 小结 19 第3章 TCP/IP概述 20 3.1 TCP/IP的优点 20 3.2 TCP/IP的层和协议 21 3.2.1 体系结构 21 3.2.2 传输控制协议 21 3.2.3 IP协议 23 3.2.4 应用层 25 3.2.5 传输层 25 3.2.6 网络层 25 3.2.7 链路层 25 3.3 远程登录(Telnet) 25 3.4 文件传输协议(FTP) 25 3.5 普通文件传输协议(TFTP) 26 3.6 简单邮件传输协议(SMTP) 26 3.7 网络文件系统(NFS) 26 3.8 简单网络管理协议(SNMP) 27 3.9 TCP/IP和系统结合 27 3.10 内部网概述 28 3.11 小结 28 第二部分 命名和寻址 第4章 IP网络中的名字和地址 29 4.1 IP寻址 29 4.1.1 二进制和十进制数 30 4.1.2 IPv4地址格式 30 4.2 子网的出现 34 4.2.1 分子网 35 4.2.2 可变长子网掩码(VLSM) 37 4.3 无类域前路由(CIDR) 38 4.3.1 无类地址 38 4.3.2 强化路由汇聚 39 4.3.3 超网化 39 4.3.4 CIDR怎样工作 39 4.3.5 公共地址空间 40 4.3.6 RFC 1597和1918 40 4.4 小结 40 第5章 ARP和RARP 41 5.1 使用地址 41 5.1.1 子网寻址 41 5.1.2 IP地址 43 5.2 使用地址解析协议 44 5.2.1 ARP cache 45 5.2.2 代理ARP 47 5.2.3 反向地址解析协议 47 5.3 使用ARP命令 47 5.4 小结 47 第6章 DNS:名字服务器 48 6.1 域名系统概述 48 6.2 授权局 50 6.3 DNS分布数据库 50 6.4 域和区 50 6.5 Internet顶级域 51 6.6 选择一个域名服务器 52 6.7 名字服务解析过程 52 6.7.1 递归查询 52 6.7.2 叠代查询 52 6.8 高速缓存 52 6.9 反向解析(Pointer)查询 52 6.10 DNS安全 52 6.11 资源记录 53 6.12 小结 54 第7章 WINS 55 7.1 NetBIOS 55 7.2 NetBIOS名字解析 57 7.3 动态NetBIOS名字解析 58 7.3.1 使用WINS的优点 58 7.3.2 WINS如何工作 59 7.3.3 配置WINS客户机 60 7.3.4 为代理配置WINS 60 7.3.5 配置NT 4.0系统 61 7.3.6 配置Windows 95或Windows 98 系统 61 7.4 安装WINS服务器 61 7.5 WINS管理和维护 62 7.5.1 加入静态表项 62 7.5.2 维护WINS数据库 63 7.5.3 备份WINS数据库 65 7.5.4 备份WINS注册项 65 7.5.5 恢复WINS数据库 65 7.5.6 压缩WINS数据库 66 7.5.7 WINS复制参与者 66 7.5.8 WINS实现建议 67 7.6 集成WINS和DNS名字解析服务 67 7.7 DHCP服务WINS选项 67 7.8 通过LMHOSTS进行NetBIOS名字 解析 68 7.9 小结 69 第8章 地址发现协议(BOOTP和DHCP) 71 8.1 “引导”协议(BOOTP) 71 8.2 动态主机配置协议(DHCP) 72 8.2.1 DHCP如何工作 72 8.2.2 理解租用地址 73 8.3 管理地址池 74 8.4 DHCP能处理的其他分配 75 8.4.1 注意重载 75 8.4.2 其他分配 75 8.5 小结 76 第三部分 IP相关协议 第9章 IP协议家族 77 9.1 TCP/IP模型 77 9.1.1 解剖TCP/IP模型 78 9.1.2 协议组件 78 9.2 理解网际协议(IP) 79 9.2.1 IPv4结构 79 9.2.2 IP做什么 80 9.3 理解传输控制协议(TCP) 81 9.3.1 TCP头结构 81 9.3.2 TCP做什么 83 9.4 理解用户数据报协议(UDP) 85 9.4.1 UDP头结构 85 9.4.2 UDP能做什么 85 9.4.3 TCP和UDP 86 9.5 小结 86 第10章 IPv6 87 10.1 IPv6数据报 87 10.1.1 优先级分类 88 10.1.2 流标识 89 10.1.3 128位IP地址 89 10.1.4 IP扩展头 90 10.2 多IP地址主机 91 10.3 单播、组播和任一播头 91 10.4 从IPv4到IPv6的过渡 93 10.5 小结 94 第四部分 IP互联 第11章 IP网络中的路由 95 11.1 路由基本知识 95 11.1.1 静态路由 96 11.1.2 距离-向量路由 99 11.1.3 链路-状态路由 100 11.2 IP网络中的收敛 102 11.2.1 适应拓扑变化 102 11.2.2 收敛时间 106 11.3 计算IP网络中的路由 106 11.3.1 存储多条路由 107 11.3.2 初始化更新 107 11.3.3 路由度量标准 107 11.4 小结 108 第12章 路由信息协议(RIP) 109 12.1 理解RFC1058 109 12.1.1 RIP报文格式 109 12.1.2 RIP路由表 111 12.2 操作机制 112 12.2.1 计算距离向量 113 12.2.2 更新路由表 116 12.2.3 寻址问题 118 12.3 拓扑变化 120 12.3.1 收敛 120 12.3.2 计值到无穷 122 12.4 RIP的限制 127 12.4.1 跳数限制 128 12.4.2 固定度量 128 12.4.3 对路由表更新反应强烈 128 12.4.4 收敛慢 128 12.4.5 缺乏负载均衡 128 12.5 小结 129 第13章 开放式最短路径优先 130 13.1 OSPF起源 130 13.2 理解RFC 2328 OSPF,版本2 130 13.2.1 OSPF区 131 13.2.2 路由更新 134 13.3 研究OSPF数据结构 136 13.3.1 HELLO报文 137 13.3.2 数据库描述报文 137 13.3.3 链路-状态请求报文 138 13.3.4 链路-状态更新报文 138 13.3.5 链路-状态应答报文 140 13.4 计算路由 140 13.4.1 使用自动计算 140 13.4.2 使用缺省路由耗费 141 13.4.3 最短路径树 142 13.5 小结 144 第14章 网关协议 145 14.1 网关、桥和路由器 145 14.1.1 网关 145 14.1.2 网桥 146 14.1.3 路由器 146 14.1.4 自治系统 146 14.2 网关协议:基础知识 146 14.3 内部网关协议和外部网关协议 147 14.3.1 网关-网关协议(GGP) 147 14.3.2 外部网关协议(EGP) 147 14.3.3 内部网关协议(IGP) 148 14.4 小结 148 第五部分 网络服务 第15章 互联网打印协议 149 15.1 IPP历史 149 15.2 IPP和端用户 150 15.3 使用HP的IPP实现 151 15.4 小结 152 第16章 LDAP:目录服务 153 16.1 为什么使用目录服务 153 16.2 目录服务的功能 153 16.3 IP上的目录服务 154 16.4 OSI X.500目录模型 156 16.4.1 早期的X.500 157 16.4.2 今天的X.500 157 16.5 LDAP结构 157 16.5.1 LDAP层次结构 157 16.5.2 名字结构 158 16.6 目录系统代理和访问协议 158 16.7 轻型目录访问协议 158 16.7.1 查询信息 159 16.7.2 存储信息 160 16.7.3 访问权限和安全 160 16.8 LDAP服务器-服务器通信 161 16.8.1 LDAP数据互换格式(LDIF) 161 16.8.2 LDAP复制 162 16.9 设计LDAP服务 162 16.9.1 定义需求 162 16.9.2 设计策略 163 16.9.3 性能 164 16.9.4 网络功能 165 16.9.5 安全 166 16.10 LDAP配置 169 16.11 产品环境 169 16.11.1 创建计划 170 16.11.2 有价值的建议 171 16.12 选择LDAP软件 171 16.13 小结 174 第17章 远程访问协议 175 17.1 远程互联 175 17.1.1 ISDN 176 17.1.2 电缆调制解调器 176 17.1.3 数字用户环(DSL) 176 17.1.4 无线网络 177 17.2 远程认证拨入用户服务(RADIUS) 177 17.2.1 RADIUS认证 178 17.2.2 记账信息 179 17.3 用SLIP、CSLIP和PPP传输IP数 据报文 179 17.3.1 串行线路接口协议(SLIP) 179 17.3.2 压缩的SLIP(CSLIP) 180 17.3.3 点到点协议(PPP) 180 17.4 隧道远程访问 184 17.4.1 点到点隧道协议(PPTP) 185 17.4.2 两层隧道协议(L2TP) 188 17.4.3 IPSec 192 17.5 小结 194 第18章 防火墙 195 18.1 使网络安全 195 18.2 使用防火墙 196 18.2.1 代理服务器 197 18.2.2 报文过滤器 198 18.3 使服务安全 198 18.3.1 电子邮件(SMTP) 198 18.3.2 HTTP:万维网 199 18.3.3 FTP 199 18.3.4 Telnet 199 18.3.5 Usenet:NNTP 199 18.3.6 DNS 200 18.4 建造用户自己的防火墙 200 18.5 使用商业防火墙软件 200 18.6 小结 202 第19章 IP安全 203 19.1 使用加密 203 19.1.1 公共-私钥加密 204 19.1.2 对称私钥加密 205 19.1.3 DES、IDEA及其他 205 19.2 数字签名认证 206 19.3 破译加密的数据 207 19.4 保护网络 207 19.4.1 登录名和口令 208 19.4.2 文件的目录允许权限 208 19.4.3 信任关系 209 19.4.4 UNIX和Linux系统上的UUCP 209 19.5 应付最坏情况 210 19.6 小结 210 第六部分 实现TCP/IP 第20章 一般配置问题 211 20.1 安装网卡 211 20.1.1 网卡 211 20.1.2 资源配置 212 20.1.3 安装适配器软件 213 20.1.4 重定向器和API 214 20.1.5 服务 214 20.1.6 NIC接口 215 20.2 网络和传输层协议 215 20.2.1 IP配置要求 215 20.2.2 配置缺省网关地址 216 20.2.3 配置名字服务器地址 217 20.2.4 配置邮件服务器地址 217 20.2.5 注册域名 218 20.3 IP配置 218 20.4 配置路由表 218 20.5 异种协议的IP封装 219 20.6 小结 220 第21章 Windows 98 221 21.1 Windows 98网络体系结构 221 21.1.1 安装网卡 222 21.1.2 更改网卡配置 224 21.1.3 当Windows 98引导失败 224 21.2 配置Windows 98的TCP/IP 225 21.2.1 写在开始之前 225 21.2.2 安装TCP/IP 225 21.2.3 配置微软的TCP/IP 225 21.2.4 DNS配置 227 21.2.5 静态配置文件 228 21.2.6 注册表配置 229 21.2.7 测试TCP/IP 231 21.3 小结 232 第22章 Windows 98拨号网络 233 22.1 配置拨号网络适配器 233 22.2 安装拨号网络 234 22.3 服务器类型 235 22.4 编写脚本 238 22.5 多重链接 238 22.6 PPTP 239 22.6.1 安装及配置PPTP 240 22.6.2 建立PPTP连接 240 22.7 Windows 98拨号服务器 241 22.8 解决拨号网络连接中的问题 242 22.8.1 确认DUN配置 242 22.8.2 PPP日志 243 22.9 小结 243 第23章 Windows NT 4.0 244 23.1 Windows NT版本 244 23.2 体系结构 244 23.3 安装Windows NT 4.0 244 23.4 配置TCP/IP 246 23.4.1 IP地址 246 23.4.2 DNS 248 23.4.3 WINS地址 248 23.4.4 DHCP中继 249 23.4.5 路由 250 23.5 简单TCP/IP服务 250 23.6 远程访问服务(RAS) 250 23.7 DHCP服务器 252 23.7.1 安装DHCP服务器服务 252 23.7.2 控制DHCP服务器服务 253 23.7.3 压缩DHCP数据库 253 23.7.4 管理DHCP 254 23.8 使用Microsoft DNS 256 23.8.1 安装DNS 256 23.8.2 创建区 257 23.8.3 配置逆向域名解功能 258 23.8.4 配置DNS与WINS服务器的连 接 259 23.8.5 增加辅助名字服务器 259 23.9 FTP和HTTP服务 259 23.10 TCP/IP打印服务 259 23.10.1 安装TCP/IP打印服务 259 23.10.2 安装LPR服务 260 23.11 Windows 2000新特性 260 23.12 小结 261 第24章 在Novell NetWare中支持IP 262 24.1 Novell与TCP/IP 262 24.1.1 IP与NetWare 4 262 24.1.2 NetWare 5与Pure IP初始化 262 24.2 传统解决方案:NetWare 3.x到 NetWare 4.x的IP支持 263 24.2.1 IP隧道 264 24.2.2 IP中继 264 24.2.3 LAN WorkPlace 264 24.2.4 IPX-IP网关 265 24.2.5 NetWare/IP 265 24.3 NetWare 5—Novell对IP的 完全支持 266 24.3.1 纯IP 266 24.3.2 多协议 266 24.4 安装选项 266 24.4.1 NetWare 5的IP-Only安装 267 24.4.2 IPX-Only安装 267 24.4.3 混合TCP/IP安装 268 24.5 IP迁移辅助工具 268 24.5.1 NDS 268 24.5.2 DNS 269 24.5.3 DHCP 269 24.5.4 DDNS 269 24.5.5 SLP 269 24.5.6 兼容模式 269 24.5.7 迁移代理 270 24.6 迁移策略 270 24.6.1 使用测试平台 270 24.6.2 迁移建议 270 24.7 小结 271 第七部分 使用TCP/IP应用 第25章 Whois和Finger 273 25.1 理解Whois协议 273 25.1.1 互联网注册 273 25.1.2 Whois数据库 274 25.1.3 基于Web的Whois 275 25.1.4 命令行方式的Whois 276 25.1.5 示例 276 25.1.6 基于Telnet的Whois 278 25.2 扩充Whois 279 25.2.1 提示Whois(RWhois) 279 25.2.2 WHOIS++ 280 25.3 使用Finger 280 25.3.1 Finger命令 280 25.3.2 Finger 守护进程 282 25.3.3 非UNIX环境下的Finger 283 25.3.4 Finger的应用 283 25.4 相关RFC文档 285 25.5 小结 285 第26章 文件传输协议 286 26.1 FTP和TFTP在网络世界中的作用 286 26.2 使用FTP传输文件 286 26.2.1 FTP连接 287 26.2.2 使用FTP客户端建立连接 288 26.2.3 FTP安全 296 26.2.4 FTP服务器及守护进程 299 26.2.5 匿名FTP访问 299 26.3 使用TFTP 300 26.3.1 FTP与TFTP的区别 301 26.3.2 TFTP命令 301 26.4 小结 301 第27章 使用Telnet 302 27.1 理解Telnet协议 302 27.2 Telnet守护进程 303 27.3 使用Telnet 304 27.3.1 UNIX telnet命令 304 27.3.2 Telnet GUI应用 305 27.3.3 Telnet命令 305 27.3.4 示例 308 27.4 高级主题 309 27.4.1 安全 309 27.4.2 Telnet应用 309 27.4.3 使用Telnet访问其他TCP/IP 服务 310 27.5 相关RFC文档 312 27.6 小结 313 第28章 使用r系列实用工具 314 28.1 理解r系列命令 314 28.1.1 安全问题 314 28.1.2 禁止使用r系列命令 315 28.1.3 增强r系列命令的安全性 316 28.2 使用r系列命令的替代方法 317 28.3 r系列命令详解 317 28.3.2 相关文件 320 28.4 在非UNIX环境下实现r系 列命令的功能 321 28.5 小结 322 第29章 使用网络文件系统(NFS) 323 29.1 什么是NFS 323 29.1.1 NFS的历史 323 29.1.2 为何使用NFS 323 29.2 实现—NFS工作过程 324 29.2.1 远程过程调用(RPC) 和外部数据表示(XDR) 324 29.2.2 加载类型 324 29.3 NFS使用的文件及命令 325 29.3.1 NFS守护进程 325 29.3.2 与NFS相关的文件 327 29.3.3 NFS服务器命令 329 29.3.4 NFS客户命令 331 29.4 示例:共享及加载NFS文件系统 333 29.5 NFS常见问题及解决方案 334 29.5.1 不能加载 334 29.5.2 不能卸载 334 29.5.3 硬加载与软加载 334 29.6 相关协议及产品 334 29.6.1 WebNFS 335 29.6.2 基于PC的NFS及其他客户端 软件 335 29.6.3 SMB和CIFS 335 29.6.4 其他产品 336 29.7 小结 336 第八部分 使用基于IP的应用 第30章 在应用中集成TCP/IP 337 30.1 使用浏览器作为表示层 338 30.2 不断增加的Internet应用 338 30.3 在已有应用中集成TCP/IP 339 30.4 在其他网络中使用TCP/IP 339 30.4.1 NetBIOS与TCP/IP 339 30.4.2 IPX与UDP 340 30.4.3 ARCNET与TCP/IP 340 30.5 小结 340 第31章 Internet Email协议 341 31.1 电子邮件 341 31.1.1 电子邮件的历史 341 31.1.2 标准及制定标准的组织 341 31.2 X.400 341 31.3 简单邮件传输协议(SMTP) 343 31.3.1 MIME和SMTP 343 31.3.2 其他编码标准 344 31.3.3 SMTP命令 344 31.3.4 SMTP状态码 345 31.3.5 扩展SMTP 345 31.3.6 检查SMTP的头 346 31.3.7 SMTP的优势与不足 347 31.4 使用POP和IMAP取回客户邮件 347 31.4.1 邮局协议(POP) 347 31.4.2 互联网邮件访问协议(IMAP) 348 31.4.3 POP3与IMAP4的比较 348 31.5 高级主题 349 31.6 相关RFC文档及其他参考信息 351 31.7 小结 352 第32章 HTTP: World Wide Web 353 32.1 万维网(WWW) 353 32.1.1 Web简史 353 32.1.2 Web的发展 354 32.2 统一资源定位器 354 32.3 Web服务器与浏览器 355 32.4 理解HTTP 356 32.4.1 HTTP/1.1 356 32.4.2 MIME与Web 358 32.4.3 HTTP通信示例 358 32.5 高级主题 359 32.5.1 服务器方功能 359 32.5.2 SSL和S-HTTP 359 32.6 Web语言 359 32.6.1 HTML 360 32.6.2 XML 360 32.6.3 CGI 361 32.6.4 Java 361 32.6.5 JavaScript 362 32.6.6 动态服务器页面 362 32.7 Web的未来 363 32.7.1 HTTP-ng 363 32.7.2 IIOP 363 32.7.3 IPv6 363 32.7.4 IPP 363 32.8 小结 364 第33章 NNTP:互联网新闻组 365 33.1 互联网新闻组 365 33.2 新闻组和层次 366 33.3 网络新闻传输协议 367 33.3.1 获取新闻组 367 33.3.2 获取消息 369 33.3.3 发布消息 370 33.4 大量广告(Spamming)和新闻黑洞 (Blackholing) 371 33.5 小结 371 第34章 Web服务 373 34.1 Web服务工作概览 373 34.2 主流Web服务器 375 34.3 运行Apache HTTP Web服务 376 34.3.1 下载、安装和配置Apache 376 34.3.2 在Windows环境下使用Apache 381 34.4 浏览其他Web服务器 383 34.5 小结 383 第九部分 使用与管理TCP/IP网络 第35章 协议配置与调整 385 35.1 系统的初始化问题 385 35.2 配置文件 390 35.2.1 在/etc/protocols文件中定义网 络协议 390 35.2.2 在/etc/hosts文件中标识主机 391 35.2.3 TCP/IP与/etc/services文件 392 35.2.4 inetd守护进程与/etc/inetd.conf 文件 394 35.2.5 在/etc/networks文件中设置网络 397 35.2.6 DNS客户与/etc/resolv.conf 397 35.3 小结 398 第36章 配置DNS 399 36.1 域名服务器 399 36.2 资源记录 400 36.3 域名解析 401 36.4 配置UNIX或Linux域名服务器 (DNS) 401 36.4.1 添加资源记录 402 36.4.2 完成DNS文件 402 36.4.3 启动DNS守护进程 405 36.4.4 配置客户端 405 36.5 Windows和域名服务器 405 36.6 小结 406 第37章 网络管理 407 37.1 制定网络监控方案 407 37.2 网络问题及其解决方案 408 37.3 网络管理工具 408 37.3.1 使用协议分析器 409 37.3.2 专家系统 410 37.3.3 基于PC的分析器 410 37.3.4 网络管理协议支持 411 37.3.5 集成网络仿真/模型工具 411 37.4 配置SNMP 412 37.4.1 配置Windows SNMP 413 37.4.2 配置UNIX SNMP 414 37.4.3 SNMP安全属性 414 37.4.4 SNMP代理与管理 415 37.5 SNMP工具及命令 416 37.6 RMON及相关的MIB模型 417 37.7 建立网管需求 417 37.8 小结 419 第38章 SNMP:简单网络管理协议 420 38.1 什么是SNMP 420 38.2 管理信息基(MIB) 421 38.3 使用SNMP 421 38.4 UNIX与SNMP 422 38.4.1 在UNIX和Linux上安装SNMP 423 38.4.2 SNMP命令 424 38.5 Windows与SNMP 424 38.5.1 Windows NT 425 38.5.2 Windows 95、Windows 98和 Windows 3.x 425 38.6 小结 427 第39章 加强TCP/IP传输安全 428 39.1 定义所需的网络安全 428 39.1.1 什么是网络安全 428 39.1.2 为什么网络安全非常重要 429 39.1.3 安全级别 429 39.1.4 口令与口令文件 430 39.1.5 控制对口令的访问 430 39.2 加强网络安全 431 39.2.1 攻击种类 431 39.2.2 加强网络安全 432 39.3 应用配置 434 39.3.1 Internet守护进程与 /etc/inetd.conf 434 39.3.2 网络加密软件 436 39.3.3 TCP Wrapper 436 39.4 使用端口及可信端口 437 39.4.1 防火墙 437 39.4.2 包过滤 437 39.4.3 应用层网关 438 39.4.4 其他应用的过滤 438 39.5 一般安全事务 438 39.5.1 用户帐号维护 438 39.5.2 审计 438 39.5.3 正确的系统配置 438 39.6 小结 438 第40章 问题解决工具及要点 440 40.1 监视网络行为 440 40.2 标准应用程序 440 40.2.1 测试基本连接 441 40.2.2 ping命令 442 40.2.3 解决网络访问故障 443 40.3 解决网络接口层问题 449 40.4 解决网络层问题 449 40.4.1 TCP/IP配置参数 449 40.4.2 IP地址配置问题 450 40.5 解决TCP和UDP问题 453 40.6 解决应用层问题 455 40.7 小结 455 第十部分 附 录 附录A RFC及标准化 457 附录B Linux 469 附录C 简写与缩略语 480
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值