6.4 IP 路 由
简单地说,Internet就是用路由器连接起来的网络。IP层的一个重要功能是
IP路由,它为路由器提供了互连不同物理网络的基本能力。
6.4.1 路由器工作概述
1.路由器的基本工作流程
Internet是由众多相对独立的子网连接起来的互联网络,各子网内部又由许
多主机组成。子网内部主机间的通信按照链路层协议进行;子网之间的通信则
要通过路由器实现。
路由器处在两个或多个网络的连接点上,作为不同网络之间互相连接的枢
纽,路由器系统构成了Internet的主体脉络,也可以说,路由器系统构成了Internet
的骨架。路由器的处理速度是网络通信的主要瓶颈之一,它的可靠性则直接影响
着网络互连的质量。因此,在园区网、地区网乃至整个Internet研究领域中,路由器
技术始终处于核心地位,其发展历程和方向成为整个Internet研究的一个缩影。
简单地说,路由器的主要工作是:
�路径判断,使用一定的路由算法选择合适路径;
�转发。
发送数据时,源主机知道目的主机地址和相邻路由器的地址,并在IP分组
中用物理地址指明相邻路由器的地址,用协议地址指明目标主机的地址,接着按
物理地址将IP分组发往第一个路由器。路由器收到IP分组后,按照路由表将
物理地址修改为下一个节点的地址,直到将IP分组传送到目的主机。图6.16
给出了路由器的工作流程。
下面分别介绍路由器工作流程中各步所进行的工作。
(1)接收帧,分解出IP分组
当封装有IP分组的数据帧沿某个物理网传送到路由器的某个端口时,路由
器的低层驱动程序按照相应的数据链路协议接收这个帧,并从中分解出IP分组
交给IP层处理。
· 5 5 1 · 第6章 Internet与TCP/IP体系结构
图6.16 路由器工作流程
(2)验证IP分组的合法性
对IP分组按下列项目进行合法性验证:
�帧的长度必须能容纳下IP分组;
�IP校验和正确;
�目前IP版本号为4;
�IP报头长度必须足够大,可以容纳下最小的IP分组(20字节);
�IP分组必须足够大,要能容纳下IP分组头。
(3)IP分组选项处理
根据不同的路由选项类型,路由器在选项数据域中写入不同的内容:
�记录路由选项,写入自己的IP地址;
�时间戳选项,写入自己的IP地址以及当前世界标准时间计算值(以毫秒
为单位);
�源路由选项,先写入自己的IP地址,然后做进一步处理。
· 6 5 1 · 第2篇 计算机网络体系结构
(4)确定IP分组是本地提交还是转发
路由器收到一个IP分组有三种处理方式:
�转发,IP分组中含有一个源路由选项时;
�本地提交,IP分组的目的地址或非转发组播地址中的一个与路由器一个
端口地址相符;
�既转发又提交,IP目的地址是广播地址或是一个组播地址时。
(5)转发寻径
IP选择路由是基于目的网络号,而不是基于目的主机。一个路由表包含许
多(N,G)对,N是目的IP网络号,G是通过路由表可以将IP分组送到网络N的
网关(连接物理网络的路由器)的IP地址。当收到一个IP分组时,首先通过网
络掩码屏蔽操作从目的IP地址中找出目的网络号,接着按目的网络号在路由选
择表中查找匹配的表项:
�未找到相匹配的表项时,把该IP分组放入默认的下一路径的对应发送
缓冲区中排队输出。
�找到,把该IP分组放入路由选择表指定的发送缓冲区中排队输出。
(6)转发验证
在转发数据包之前,路由器要有选择地进行一些验证工作,提供一定的安全
措施,防止外部主机伪装成内部主机的攻击,如:
�将IP源地址和目的地址不合法的数据包丢弃;
�将非法广播和组播数据包丢弃;
�通过设置包过滤和访问列表功能,限制某些方向上的数据包转发。
(7)TTL处理
生存时间(TTL,TimeToLive)用于限制数据包的生存时间,由一个倒计时时
钟控制。通常数据包每经过一个路由器,该时钟减1。当TTL=0时,传送超时,
该数据包即被丢弃。
(8)数据包分段
当要转发的IP分组长度大于输出到的物理网络的MTU(MaximumTransfer
Unit,最大传输单元)时,路由器就要对该数据包分段。分段的原则是提高网络
的传输效率,节省带宽,并有利于提高传输路径上路由器的处理效率。Internet
中常用的分段方法有:
�第1段取当前路径上最有效的MTU,其余平均分配在比MTU小一些的
段中,这样可减少以后的分段操作。
�按MTU大小分段,余下的为最后一段(小于MTU)。
�将IP分组都分作不大于576字节的段,这可以减少后面的分段,但会增
· 7 5 1 · 第6章 Internet与TCP/IP体系结构
加网络的传输负荷,也会增加目的主机的计算工作量。
需要说明的是,在路由器初始化时,网络管理员为每个转发的网络都配置了
一个相应的端口。由这个端口值,可以得到要输出的网络的物理网络类型和它
的MTU以及相关驱动程序入口。
(9)链路层寻址
路由器在完成了IP层的功能后,接下来是找一个相应的物理端口将数据包
从链路层发送出去。具体实现时,IP层只要把IP分组的包长、目的物理网络地
址、下一站的IP地址告诉驱动程序即可。驱动程序把IP分组封装在数据链路
层的帧中,并利用ARP等地址解析协议把IP地址转换为物理地址。
2.度量
路由器从一个网络接收分组,并将分组转发到另一个网络。但是,路由器通
常连接到多个网络,并且都可能到达目的网络,这时它将把分组转发到哪个网络
呢?
为了基于最优化原则决定一个可用的最佳路径,人们引入了度量(或称度,
metric)。度量就是给通过的网络所指派的代价。一个特定路由的总度量等于组
成该路由的所有网络的度量之和。按照最优化原则,路由器选择具有最小度量
的路由。给每一个网络指派的度量取决于协议的类型。
3.自治系统
在Internet中运行着大量路由协议,这些协议基本上属于动态自适应、分布
式路由选择协议。一般说来,由于各ISP有自己的利益,不愿意提供自身网络详
细的路由信息,因而整个Internet不适合跑单一的路由协议。为了保证各ISP利
益,便于进行路由选择,Internet按运营被划分成许多较小的单位———自治系统
(AS,AutonomousSystem)。每个AS通常由一个组织中的互联网络构成,由一个
单独的管理机构管理(即由一个ISP运营),有权自主地决定本系统内部的路由
协议。
划分了自治系统后,就可以把Internet中使用的协议分为两大类:
(1)内部网关协议(IGP,InteriorGatewayProtocol)———在一个自治系统内部
使用的路由选择协议与其他自治系统中采用什么路由选择协议无关,主要有
RIP、OSPF等。
(2)外部网关协议(EGP,ExternalGatewayProtocol)———当两个自治系统中使
用不同的路由选择协议时,在两个自治系统之间进行数据报文转换的路由选择
协议,主要有BGP。
· 8 5 1 · 第2篇 计算机网络体系结构
6.4.2 路由信息协议RIP
RIP(RoutingInformationProtocol)是一种内部协议网关。它采用距离向量算
法,用于小型自治系统中,并且将源代码嵌入了基于BSDUNIX的操作系统中,
使人们容易接受。
1.RIP的基本特点
(1)动态更新路由
一个自治系统开始工作时,各路由器首先建立自己的初始路由表;然后周期
性地(通常每隔30s)更新它的距离向量表,及时交换因拓扑结构变化引起的路
由信息,维护相邻路由器的关系,同时根据收到的路由表计算自己的路由表。图
6.17所示为使用RIP建立路由表的过程举例。
图6.17 使用RIP建立路由表的过程举例
(2)距离向量协议
RIP按含最少路由器数选择路由,并且不允许同时使用多条路由,即使还存
在另一条高速(低时延)但路由器较多的路由。
(3)适用于小型自治网络
RIP允许一条路由最多只能包含15个路由器。即最多15个跳数(Hop
Count)。也就是说,当距离的最大值达到16时,就称为不可到达。可见RIP只适
用于小型网络。
· 9 5 1 · 第6章 Internet与TCP/IP体系结构
(4)好消息传得快,坏消息传得慢
如果路由器发现了一条更短的路由,更新消息就会传播得很快;而当网络出
现故障时,要经过较长时间才能将此信息传送到所有路径。坏消息传播得慢,会
使许多更新过程的收敛时间过长。
2.RIP报文的类型
(1)请求报文
RIP请求报文用于查询相邻RIP设备,以获得它们的距离向量表。
(2)响应报文
RIP响应报文由一个RIP设备发出,用于公告它的本地距离向量表中维护
的信息。这个表在如下几种情形下被发送:
�如果网络中没有变化,每隔30s自动发送一次更新信息;
�如果网络有变化,路由器立即发送新的路由表———触发更新;
�作为对另一个RIP节点的请求报文的响应。
当一个RIP设备接收到一个响应报文时,便将更新信息与本地距离向量表
进行对比。如果更新信息中包含了一条到目的网络的代价更低的路由,则对本
地表进行更新。
3.RIP报文格式
RIP报文格式如图6.18所示。其最大长度为512bit,在一个单独的RIP通知
中最多可以发送25个路由表项。大于这个值的更新必须用多个数据报进行公
告。在局域网环境中,RIP数据报使用MAC全站点广播地址和一个IP网络广播
地址进行发送。在点到点或非广播环境中,数据报采用专门的编址方式发送到
目的设备。
图6.18 RIP报文格式
6.4.3 开放式最短路由优先协议OSPF
OSPF是针对RIP的缺点于1989年开发出来的一种路由协议。“开放”的设
· 0 6 1 · 第2篇 计算机网络体系结构
计思想,表明它不受任何一家厂商所左右,这正是它的强大生命力和广泛用途的
源泉所在。在技术上,OSPF是一种分布式链路状态协议(LinkStateProtocol),即
它是通过传递链路状态(连接信息)来得到网络信息,维护一张网络有向拓扑图,
利用最小生成树算法得到路由表。
1.OSPF区域
OSPF是在一个AS内部运行的路由协议。由于Internet中许多AS很庞大,
不便于管理,OSPF允许将每一个AS分为一些编号区域(Area),它们是包含在AS
内部的一些网络、主机和路由器的集合,用32bit的区域标识符RID(AreaID)标
识。区域通常对应地理边界或者行政边界。对于几个相邻网络,各区域之间不
重叠,但也不彻底,有些路由器可能不属于任何区域。同一区域内的各路由器具
有相同的链路状态数据库,并运行相同的最短路径算法。
所有的OSPF网络都至少要包含一个区域,并且要有一个主干区域。在具
有多个区域的OSPF网络中,主干区域要与其他区域连接,以使其他区域直接把
路由信息通知给主干区域,然后再由主干区域把此信息通知给其他区域。因此
主干区域相当于一级区域,其他区域相当于二级区域。主干区域的编号为0。
2.路由器的分类
路由器按照其所处的位置可以分为4类。
(1)内部路由器:这类路由器连接的网络都在一个区域内。
(2)区域边界路由器ABR(AreaBorderRouter):把本区域的有关信息概括起
来发给其他区域。
(3)自治系统边界路由器ASBR(ASBorderRouter):连接AS的路由器。一台
路由器可以同时既是ABR,又是ASBR。
(4)主干路由器:在主干中的路由器。一个主干路由器也可以同时是一个
区域边界路由器。
3.链路(网络)类型
OSPF把物理网络称为链路。目前已经定义了4种类型的链路。
(1)点到点链路(或称点对点网络)
点到点链路直接连接两个路由器,中间没有其他主机或路由器。
(2)过渡链路(或称多路访问网络)
过渡链路是一种连接有若干个路由器的网络。数据可以从任何一个路由器
进入网络,并从任何另一个路由器离开网络。这种链路又可以分为两种:
�广播多路访问网络———支持与两个以上的路由器连接,并可以同时把一
个报文发送到所有与之连接的路由器。
· 1 6 1 · 第6章 Internet与TCP/IP体系结构
�非广播多路访问网络———支持与两个以上的路由器连接,但无广播能
力。其特例是点到多点网络。
(3)残桩链路
残桩链路是只连接到一个路由器的网络。数据分组通过这个单一路由器进
入网络,并通过这个路由器离开该网络。
(4)虚拟链路
虚拟链路是当两个路由器之间的链路断开时管理员在它们之间使用一条更
长的路径(可能经过几个路由器)创建的链路。
4.LSA(链路状态公告)及其类型
LSA的内容描述了一个单独的网络组成成分(包括路由器、网段或者外部目
的等)。LSA在OSPF的邻接路由器间进行交换,以同步每个设备上的链路状态
数据库。
LSA包含5种信息类型:
�路由器LSA———由OSPF路由器产生,描述区域内路由器接口(链路)类
型、地址、掩码等信息。
�网络LSA———在多路访问网络中列出与指定路由器(DR)连接的路由器ID。
�网络汇总LSA———描述到其他区域中的网络的路由信息。
�ASBR汇总LSA———描述到达AS边界路由器(ASBR)的路由信息。
�AS外部LSA———由ASBR产生,描述到达OSPF网络外部目的地的路由
信息。
每一个LSA报文都由头部和实例(Instance)组成。如图6.19所示,LSA头部
由LSA类型、广播路由器ID、LS序列号等信息组成。
图6.19 LSA头部格式
LSA头部的LS类型、LSA标志和广播路由器可以惟一地标识一个LSA。
5.LSA扩散
一旦某个路由器产生一个LSA或者修改一个LSA,它就要把这一变化传送
到网络上。这一传送过程称为扩散。扩散从一个路由器把LSA转发到了邻接
· 2 6 1 · 第2篇 计算机网络体系结构
路由器开始。邻接路由器接收到LSA后,一方面要将它们保存到链路状态数据
库中,一方面要继续将LSA传送到它们的邻接路由器。这种保存和转发一直要
进行到所有的路由器都收到此更新。
6.Dijkstra算法
运行OSPF的每个路由器都要将Dijkstra算法应用到其链路状态数据库中,
以便计算出网络中两点之间的最短路径。Dijkstra算法从源节点开始,将所连接
的节点分为两个集合———试验的和确定的,即先将一些节点选入试验节点集合
中,然后再检查它们,并把符合给定准则的节点移入确定节点集合中,从而找到
最短路径中的一个节点。重复进行,直到到达目的节点。下面说明算法。
①以本地节点(路由器)作为树根。
②将代价0指派给该节点,并使之成为确定节点。
③重复进行下列步骤,对最后一个确定节点的每一个相邻节点进行检查,
直到找到最短路径:
�给每一个节点指派一个累计代价,并使之成为试验的;
�在试验集合中寻找具有最小累计代价的节点,使其成为确定的。
7.邻接路由器和OSPF报文类型
属于相同OSPF区域的两个相邻路由器(NeighborRouter),在同步了它们的
拓扑结构数据库后,就可以成为邻接路由器。OSPF通过邻接路由器交换链路状
态信息。为了完成信息交换,OSPF定义了如下一些活动:
�发现邻居;
�选择一个指定路由器;
�建立邻接关系;
�同步数据库。
这些活动通过表6.4所示的5类OSPF报文完成。
表6.4 OSPF的5类报文
报文类型 描 述
Hello报文 路由器启动时,用于发现邻接路由器
数据库描述报文
出现新线路时,给出报文发送者拥有的所有链路状态项序列
号,接收者据此判定谁的数据最新
链路状态请求报文
路由器间相互发送该报文以从邻接路由器要求获取对应的链
路状态信息,确定谁的数据最新
链路状态更新报文 用洪泛法向全网发送更新链路数据库状态
链路状态确认报文 对链路更新报文的确认
· 3 6 1 · 第6章 Internet与TCP/IP体系结构
8.OSPF工作过程
(1)建立邻接关系
一个路由器运行OSPF协议后,就试图与相邻路由器建立邻接关系。它定
期地向各个网络接口(包括虚拟网络接口)发送Hello报文。在Hello报文中,含
有自己的ID(即某一接口的IP地址)、优先权和相邻路由表。接收到Hello报文
的路由器如果发现自己在对方的相邻路由表中,就表明双方都收到了对方的
Hello报文。
(2)同步LSA数据库
建立了邻接关系的路由器之间相互交换各自LSA数据库内信息的过程称
为数据库的同步。每一个LSA数据库中包括许多LSA。每一个LSA代表某一个
路由器的局部信息,由头部和实例组成。
每当路由器发送新的LSA时,其序列号将增1。路由器接收到一个新的
LSA后,可以根据LSA头部的类型、标志和广播路由器判断其自身数据库中是否
有相同的LSA,并根据LSA序号决定对哪一个LSA更新。
两台邻接路由器之间LSA数据库同步的过程如图6.20所示。
图6.20 两台邻接路由器间LSA数据库的同步过程
①假设路由器A与路由器B刚建立起邻接关系,路由器A和B将相互发
送数据库描述报文。在数据库描述报文中包括多个LSA头部。
②一方(如B)发现对方(如A)的数据库描述报文中一些LSA头所代表的
LSA自己的数据库中没有,或比自己的新,则将该LSA头部放入自己的LSA请求
表中,然后向对方发送链路状态请求报文,要求得到具体的LSA信息(实例)。
③对方(如A)收到LSA请求报文后,将向请求方(如B)发送LSA更新报
文。更新报文的数据部分是所请求LSA的完整信息。
④请求方(如B)收到每一个LSA更新报文后,进行检查,将收到的新的LSA
· 4 6 1 · 第2篇 计算机网络体系结构
从自己的LSA请求表中删去,并向发送方(如A)发出LSA确认报文。
⑤如果两个路由器间的LSA请求表为空,则表明两者的数据库达到一致,
同步成功。
注意,同步是一个扩散过程。即一个路由器在其链路状态发生变化或收到
其他路由器发送的LSA更新报文后,也要向其邻接路由器主动发送LSA更新报
文,以便其他路由器尽快更新其拓扑数据库。
(3)计算路由表
在接收到新的链路状态更新报文以及在实现了数据库同步后,路由器都要
根据拓扑数据库重新计算它到各子网的最短路径,建立路径表。由于OSPF将
Internet分成区域、AS和AS外部三个层次,所以路由的计算也要分三个层次进
行。
①根据所在区域的数据库,利用本区域内的路由器LSA和网络LSA,计算
路由器到本区域内各网络的路由。
②根据ABR向本区域散发的网络综合LSA,计算路由器到本AS其他区域
内各子网的可达信息。计算方法为:
本路由器到目的网络的距离=边界网关到目的网络的距离+本路由器到边
界网关的距离
路由器选择到目的地的最优路径记录在路由表中。
③根据ASBR综合LSA和外部LSA,计算路由器到AS外部的网络的可达
性。计算方法为:
本路由器到目的网络的距离=本路由器到ASBR的距离+ASBR到目的网
络的距离
其中:
�“本路由器到ASBR的距离”可以从前两步中得到;
�“ASBR到目的网络的距离”可以从AS外部LSA中得到。
6.4.4 边界网关协议BGP
BGP(BorderGatewayProtocol)是一种外部网关协议。其开发初衷旨在提供一
种自治系统之间交换路由信息的非循环方法,它基于路径向量路由选择,通过
ISP边界的路由器加上一定的策略,选择过滤路由,把RIP、OSPF、BGP等的路由
发送到对方,处理各AS之间的路由传递。Internet是BGP处理多个ISP间路由
的实例。BGP的出现,引起了Internet的重大变革,它把多个ISP有机连接起来,
真正成为全球范围内的网络。
· 5 6 1 · 第6章 Internet与TCP/IP体系结构
1.BGP网络结构
图6.21示出了一个BGP网络的组成。由于BGP是一种外部(边界)网关协
议,因此它主要运行在每个AS的边界路由器间。在每个AS内部,可以运行
OSPF或RIP。运行BGP的路由器称为BGP说话者(BGPSpeaker)。BGP在一对
邻接BGP说话者之间交换路由信息。这一对邻接的BGP称为BGP邻居(BGP
Neighbor),BGP邻居分为如下两种类型:
�IBGP(内部BGP邻居)———位于同一AS中的一对BGP邻居;
�EBGP(外部BGP邻居)———位于不同AS中的一对BGP邻居。
图6.21 BGP网络的组成
显然,一个BGP网络主要由一些AS和一些BGP说话者组成,并且通过BGP
邻居交换路由信息。
2.流量类型和AS类型
BGP定义了两种类型的流量:本地流量和传输流量。本地流量是在AS中
发出、在AS中终止的流量。除此之外的流量都是传输流量。BGP的一个目标
就是最小化传输流量的总量。
BGP还定义了三种AS:
�SubAS———只与另一个AS连接,并只承载本地流量;
�多穴AS———与一个或两个AS连接,但被配置成不转发传输流量;
�传输AS———与一个或两个AS连接,并被配置成承载本地流量和传输流量。
· 6 6 1 · 第2篇 计算机网络体系结构
BGP在处理路由时,使用AS号和AS路径:
�AS号———惟一标识一个AS的一个16bit串;
�AS路径———描述通过网络路由的AS号列表。
3.路由策略
BGP是外部网关协议,实现AS之间的路由。其路由策略的设置,一般要考
虑政治、经济以及安全等多方面的因素。按照到达的目的地,可以将BGP的路
由策略分为三类。
(1)第一类策略:控制从本AS到其他AS的路径。例如,制定策略限制本
AS发出的数据不能经过某些中间自治系统。
(2)第二类策略:控制本AS是否为某相邻的AS传递过境数据。
(3)第三类策略:实现AS内部的协调。
4.BGP报文类型
所有BGP报文都包含了一个标准的报文头,报文头规定了BGP报文的类
型。下面说明一些有效的BGP报文。
(1)OPEN(打开)报文
一旦在两个对等的节点之间建立了连接,每个路由器就发送一个OPEN报
文给邻居,请求建立邻接关系。一个OPEN报文由一个KEEPALIVE报文确认。
OPEN报文中包含:
�版本,1bit;
�本AS号,2bit;
�保持时间(保持计数器的建议值),2bit,定义一方从另一方收到保活(对
OPEN的应答)或更新报文之前所经过的最大秒数;
�发端BGP路由器标识符,4bit;
�其他。
(2)KEEPALIVE(保活)报文
运行BGP协议的各路由器(BGP中称对等路由器)之间定期地相互交换保
活信息,用来通报自己处于BGP工作状态,维护BGP连接。如果在保持计数器
规定的时间内,发送路由器没有收到对等路由器的保活报文,则认为出现了一个
错误,即向对等节点发送一个错误通知报文NOTIFICATION并关闭连接。
(3)UPDATE(更新)报文
BGP不定期地刷新整个BGP路由表。刷新使用UPDATE(更新)报文进行。
一个UPDATE用来在对等BGP间传输路由信息:公告一个可行的路由,或者撤
销那些不可行的路由。其报文中包含如下一些内容:
· 7 6 1 · 第6章 Internet与TCP/IP体系结构
�撤销的所有路由。
�路径属性———用来评估一个路由,宣布本报文可达的网络路径。详见有
关手册。
�网络层可达信息(NLRI)———定义本报文真正通知的网络。
(4)NOTIFICATION(错误条件通知)报文
当一个BGP设备检测到影响与一个对等节点连接的错误条件时,就发送
NOTIFICATION(错误条件通知)报文,关闭与对等节点的连接,解除分配给该连
接的所有资源,同时将与远程对等节点相关联的路由表项标记为无效,并通知给
其他对等节点。
通知报文包括一个错误代码和一个错误子码。BGP提供有如下一些错误代码:
�消息报文头错误;
�OPEN消息错误;
�UPDATE消息错误;
�保持计数器超时;
�有限状态机错误;
�停止。
6.4.5 基于路由器的防火墙技术
在建筑群中,防火墙(FireWall)用来防止火灾蔓延。在计算机网络中,防火
墙是设置在可信任的内部网络和不可信任的外界之间的一道屏障,用来保护计
算机网络的资源和用户的声誉,使一个网络不受来自另一个网络的攻击。从逻
辑上讲,防火墙是一个分离器、一个限制器,也是一个分析器。具体地讲,防火墙
有如下功能:它可以允许或禁止某一类具体IP地址的访问,例如某一台IP主机
上有危险的用户或需要禁止的信息,则可以通过设置防火墙过滤掉从该IP地址
发出的包;它也可以接收或拒绝某一类具体的应用,例如某一用户只使用电子邮
件和WWW服务器,就可以通过设置,使得只有这两类应用的信息包可以通过。
这种技术称为包过滤(PacketFiltering)防火墙技术。包过滤器逐一审查每份数据
包并判断它是否与包过滤规则相匹配。过滤规则基于顺行处理数据包头信息,
即通过对IP包头和TCP包头或UDP包头的检查实现,主要信息包括:
�IP源地址;
�IP目的地址;
�封装协议(TCP、UDP、ICMP或IPTunnel);
�TCP/UDP源端口;
�TCP/UDP目的端口;
· 8 6 1 · 第2篇 计算机网络体系结构
�ICMP报文类型;
�包输入/输出接口;
�TCP链路状态(TCP包头的ACK位)。
通常,包过滤工作在网络层,故也称网络防火墙。
在Internet技术中还使用内容过滤技术。担任内容过滤的软件有:“黑名单”
软件、“白名单”软件和内容选择平台PICS(PlatformforInternetContentSelection)。
“黑名单”软件是第一代Internet内容过滤软件,其工作原理是封锁住不应检
索的网址。其中最有名的是CyberNOT,它记录了大约7000个网址,将有害和非
法信息分为13类,如暴力/渎神、裸体、性行为、肉体描述、种族主义、对少数民族
不恰当的评论、魔鬼崇拜、毒品、好战言论/极端主义、赌博、酒精、香烟。
“白名单”软件是第二代Internet内容过滤软件,其工作原理是先封锁全部网
址,然后只开放应检索的网址。
数据包过滤防火墙网络逻辑简单、性能和透明性好,一般安装在路由器上。
路由器是内部网络与Internet连接的必要设备,是一种“天然”的防火墙,它可以
决定对到来的数据包是否要进行转发。这种防火墙实现方式相当简捷,效率较
高,在应用环境比较简单的情况下,能够以较小的代价在一定程度上保证系统的
安全。
包过滤技术的缺陷也是明显的。包过滤技术是一种完全基于网络层的安全
技术,只能根据数据包的来源、目的和端口等网络信息进行判断,无法识别基于
应用层的恶意侵入,如恶意的Java小程序以及电子邮件中附带的病毒。有经验
的黑客很容易伪造IP地址,骗过包过滤型防火墙,一旦突破防火墙,即可对主机
上的软件和配置漏洞进行攻击。进一步说,由于数据包的源地址、目的地址以及
IP的端口号都在数据包的头部,很有可能被窃听或假冒;并且数据包缺乏用户
日志(Log)和审计信息(Audit),不具备登录和报告性能,不能进行审核管理,因而
过滤规则的完整性难以验证,安全性较差。
除了包过滤技术外,防火墙还采用代理服务(Proxy)技术和监测技术。
代理服务包括代理服务器和客户代理。代理服务器运行在防火墙上,客户
代理运行在客户机上。外部客户访问内部服务器的请求要先发给防火墙的客户
代理,通过防火墙的代理服务器将请求转发给内部服务器;服务器的应答则要先
发给防火墙的代理服务器,再由防火墙的客户代理转发给外部客户。代理服务
器的隔离作用强,具有对过往的数据包进行分析监控、注册登记、过滤、记录和报
告等功能,可以针对应用层进行侦测和扫描,当发现被攻击迹象时会向网络管理
员发出警报,并能保留攻击痕迹。代理服务器的缺点是必须针对客户机可能产
生的所有应用类型逐一进行设置,大大增加了系统管理的复杂性。
· 9 6 1 · 第6章 Internet与TCP/IP体系结构
监测型防火墙是新一代的产品,这一技术实际已经超越了最初的防火墙定
义。监测型防火墙能够对各层的数据进行主动的、实时的监测,在对这些数据加
以分析的基础上,监测型防火墙能够有效地判断出各层中的非法侵入。据权威
机构统计,在针对网络系统的攻击中,有相当比例的攻击来自网络内部。而这种
监测型防火墙产品一般还带有分布式探测器,这些探测器安置在各种应用服务
器和其他网络的节点之中,不仅能够检测来自网络外部的攻击,同时对来自内部
的恶意破坏也有极强的防范作用。因此,监测型防火墙不仅超越了传统防火墙
的定义,而且在安全性上也超越了前两代产品。