动态路由协议OSPF与EIGRP的全面对比

No Comments 网络技术详解

在互联网飞速发展的今天,TCP/IP协议已经成为数据网络互联的主流协议。在各种网络上运行的大大小小各种型号路由器,承担着控制本世纪或许最重要信息的流量,而这成百上千台路由器间的协同工作,离不开路由协议。OSPF和EIGRP都是近年来出现的比较好的动态路由协议,OSPF以协议标准化强,支持厂家多,受到广泛应用,而EIGRP协议由网络界公认的领先厂商Cisco公司发明,并靠其在业界的影响力和绝对的市场份额,也受到用户的普遍认同。然而这两种协议究竟哪种更好,谁更适合网络未来发展的需要?本文就用户普遍关心的问题,从技术角度客观分析这两种协议各自的优缺点,以便网络集成商和企业用户在网络设计规划时,能作为参考。

一、OSPF协议

(一)、OSPF协议简介

OSPF是Open Shortest Path First(即“开放最短路由优先协议”)的缩写。它是IETF组织开发的一个基于链路状态的自治系统内部路由协议。在IP网络上,它通过收集和传递自治系统的链路状态来动态地发现并传播路由。

每一台运行OSPF协议的路由器总是将本地网络的连接状态,(如可用接口信息、可达邻居信息等)用LSA(链路状态广播)描述,并广播到整个自治系统中去。这样,每台路由器都收到了自治系统中所有路由器生成的LSA,这些LSA的集合组成了LSDB(链路状态数据库)。由于每一条LSA是对一台路由器周边网络拓扑的描述,则整个LSDB就是对该自治系统网络拓扑的真实反映。

  根据LSDB,各路由器运行SPF(最短路径优先)算法。构建一棵以自己为根的最短路径树,这棵树给出了到自治系统中各节点的路由。在图论中,“树”是一种无环路的连接图。所以OSPF计算出的路由也是一种无环路的路由。

OSPF协议为了减少自身的开销,提出了以下概念:

(1). DR:在各类可以多址访问的网络中,如果存在两台或两台以上的路由器,该网络上要选举出一个“指定路由器”(DR)。“指定路由器”负责与本网段内所有路由器进行LSDB的同步。这样,两台非DR路由器之间就不再进行LSDB的同步。大大节省了同一网段内的带宽开销。

(2). AREA:OSPF可以根据自治系统的拓扑结构划分成不同的区域(AREA),这样区域边界路由器(ABR)向其它区域发送路由信息时,以网段为单位生成摘要LSA。这样可以减少自治系统中的LSA的数量,以及路由计算的复杂度。

OSPF使用4类不同的路由,按优先顺序来说分别是:

区域内路由;

区域间路由;

第一类外部路由;

第二类外部路由。

区域内和区域间路由描述的是自治系统内部的网络结构,而外部路由则描述了应该如何选择到自治系统以外目的地的路由。一般来说,第一类外部路由对应于OSPF从其它内部路由协议所引入的信息,这些路由的花费和OSPF自身路由的花费具有可比性;第二类外部路由对应于OSPF从外部路由协议所引入的信息,它们的花费远大于OSPF自身的路由花费,因而在计算时,将只考虑外部的花费。

(二)、OSPF协议主要优点:

1、OSPF是真正的LOOP- FREE(无路由自环)路由协议。源自其算法本身的优点。(链路状态及最短路径树算法)

2、OSPF收敛速度快:能够在最短的时间内将路由变化传递到整个自治系统。

3、提出区域(area)划分的概念,将自治系统划分为不同区域后,通过区域之间的对路由信息的摘要,大大减少了需传递的路由信息数量。也使得路由信息不会随网络规模的扩大而急剧膨胀。

4、将协议自身的开销控制到最小。见下:

1)用于发现和维护邻居关系的是定期发送的是不含路由信息的hello报文,非常短小。包含路由信息的报文时是触发更新的机制。(有路由变化时才会发送)。但为了增强协议的健壮性,每1800秒全部重发一次。

2)在广播网络中,使用组播地址(而非广播)发送报文,减少对其它不运行ospf 的网络设备的干扰。

3)在各类可以多址访问的网络中(广播,NBMA),通过选举DR,使同网段的路由器之间的路由交换(同步)次数由 O(N*N)次减少为 O (N)次。

4)提出STUB区域的概念,使得STUB区域内不再传播引入的ASE路由。

5)在ABR(区域边界路由器)上支持路由聚合,进一步减少区域间的路由信息传递。

6)在点到点接口类型中,通过配置按需播号属性(OSPF over On Demand Circuits),使得ospf不再定时发送hello报文及定期更新路由信息。只在网络拓扑真正变化时才发送更新信息。

5、通过严格划分路由的级别(共分四极),提供更可信的路由选择。

6、良好的安全性,ospf支持基于接口的明文及md5 验证。

7、OSPF适应各种规模的网络,最多可达数千台。

------中间广告---------

二、EIGRP协议

EIGRP和早期的IGRP协议都是由Cisco发明,是基于距离向量算法的动态路由协议。EIGRP(Enhanced Interior Gateway Routing Protocol)是增强版的IGRP协议。它属于动态内部网关路由协议,仍然使用矢量-距离算法。但它的实现比IGRP已经有很大改进,其收敛特性和操作效率比IGRP有显著的提高。

EIGRP的收敛特性是基于DUAL ( Distributed Update Algorithm ) 算法的。DUAL 算法使得路径在路由计算中根本不可能形成环路。它的收敛时间可以与已存在的其他任何路由协议相匹敌。

EIGRP协议主要具有如下特点:

1. 精确的路由计算和多路由的支持

EIGRP协议继承了IGRP协议的最大的优点:矢量路由权。EIGRP协议在路由计算中要对网络带宽,网络时延,信道占用率,信道可信度等因素作全面的综合考虑,所以EIGRP的路由计算更为准确,更能反映网络的实际情况。同时EIGRP协议支持多路由,使路由器可以按照不同的路径进行负载分担。

2. 较少的带宽占用

使用EIGRP协议的对等路由器之间周期性的发送很小的hello报文,以此来保证从前发送报文的有效性。路由的发送使用增量发送方法,即每次只发送发生变化的路由。发送的路由更新报文采用可靠传输,如果没有收到确认信息则重新发送,直至确认。EIGRP还可以对发送的EIGRP报文进行控制,减少EIGRP报文对接口带宽的占用率,从而避免连续大量发送

路由报文而影响正常数据业务的事情发生。

3. 无环路由和较快的收敛速度

路由计算的无环路和路由的收敛速度是路由计算的重要指标。EIGRP协议由于使用了DUAL算法,使得EIGRP协议在路由计算中不可能有环路路由产生,同时路由计算的收敛时间也有很好的保证。因为,DUAL算法使得EIGRP在路由计算时,只会对发生变化的路由进行重新计算;对一条路由,也只有此路由影响的路由器才会介入路由的重新计算。

4. MD5认证

为确保路由获得的正确性,运行EIGRP协议进程的路由器之间可以配置MD5认证,对不符合认证的报文丢弃不理,从而确保路由获得的安全。

5. 任意掩码长度的路由聚合

EIGRP协议可以通过配置,对所有的EIGRP路由进行任意掩码长度的路由聚合,从而减少路由信息传输,节省带宽。

6. 同一目的但优先级的路由可实现负载分担

去往同一目的的路由表项,可根据接口的速率、连接质量、可靠性等属性,自动生成路由优先级,报文发送时可根据这些信息自动匹配接口的流量,达到几个接口负载分担的目的。

7. 协议配置简单

使用EIGRP协议组建网络,路由器配置非常简单,它没有复杂的区域设置,也无需针对不同网络接口类型实施不同的配置方法。使用EIGRP协议只需使用router eigrp命令在路由器上启动EIGRP 路由进程,然后再使用network 命令使能网络范围内的接口即可。

三、OSPF和EIGRP的比较

OSPF和EIGRP都是收敛速度较快并且不会形成环路的算法,网络带宽占用较小,使用灵活,安全性较好的路由协议。但是从以上分析可以看出,各自还是有优缺点。

(一)、OSPF的缺点

1、配置相对复杂。由于网络区域划分和网络属性的复杂性,需要网络分析员有较高的网络知识水平才能配置和管理OSPF网络。

2、路由负载均衡能力较弱。OSPF虽然能根据接口的速率、连接可靠性等信息,自动生成接口路由优先级,但通往同一目的的不同优先级路由,OSPF只选择优先级较高的转发,不同优先级的路由,不能实现负载分担。只有相同优先级的,才能达到负载均衡的目的,不象EIGRP那样可以根据优先级不同,自动匹配流量。

(二)、EIGRP的缺点

1. EIGRP没有区域(AREA)的概念,而OSPF在大规模网络的情况下,可以通过划分区域来规划和限制网络规模。所以EIGRP适用于网络规模相对较小的网络,这也是矢量-距离路由算法(RIP协议就是使用这种算法)的局限所在。

2. 运行EIGRP的路由器之间必须通过定时发送HELLO报文来维持邻居关系,这种邻居关系即使在拨号网络上,也需要定时发送HELLO报文,这样在按需拨号的网络上,无法定位这是有用的业务报文还是EIGRP发送的定时探询报文,从而可能误触发按需拨号网络发起连接,尤其在备份网络上,引起不必要的麻烦。所以一般运行EIGRP的路由器,在拨号备份端口还需配置Dialer list和Dialer group,以便过滤不必要的报文,或者运行TRIP协议,这样做增加路由器运行的开销。而OSPF可以提供对拨号网络按需拨号的支持,只用一种路由协议就可以满足各种专线或拨号网络应用的需求。

3. EIGRP的无环路计算和收敛速度是基于分布式的DUAL算法的,这种算法实际上是将不确定的路由信息(active route)散播(向邻居发query报文),得到所有邻居的确认后(reply报文)再收敛的过程,邻居在不确定该路由信息可靠性的情况下又会重复这种散播,因此某些情况下可能会出现该路由信息一直处于active状态(这种路由被称为stuck in active route),并且,如果在active route的这次DUAL计算过程中,出现到该路由的后继(successor)的metric发生变化的情况,就会进入多重计算,这些都会影响DUAL算法的收敛速度。而OSPF算法则没有这种问题,所以从收敛速度上看,虽然整体相近,但在某种特殊情况下,EIGRP还有不理想的情况。

4、EIGRP是Cisco公司的私有协议。Cisco公司是该协议的发明者和唯一具备该协议解释和修改权的厂商。如果要支持EIGRP协议需向Cisco公司购买相应版权,并且Cisco公司修改该协议没有义务通知任何其他厂家和使用该协议的用户。而OSPF是开放的协议,是IETF组织公布的标准。世界上主要的网络设备厂商都支持该协议,所以它的互操作性和可靠性由于公开而得到保障,并且在众多的厂商支持下,该协议也会不断走向更加完善。(T004)

OSPF,EIGRP,IGRP,RIPv2,RIPv1比较

No Comments 网络技术详解

Routing protocol comparison

Characteristic OSPF EIGRP IGRP RIPv2 RIPv1 Type of protocol Link-state Hybrid Distance vector Distance vector Distance vector Classless support Yes Yes No Yes No VLSM support Yes Yes No Yes No Auto summarization No Yes Yes Yes Yes Manualsummarization Yes No No No No Discontiguous support Yes Yes No Yes No Route propagation Multicast on change Multicast on change Periodic multicast Periodic multicast Periodic multicast Path metric Bandwidth Bandwidth & Delay(Default)
Reliability、Load Bandwidth & Delay(Default)
Reliability、Load、MTU Hops Hops Hop count limit None 100, 255(max) 100 , 255(max) 15 15 Convergence Fast Fast slow slow slow Hierarchical network Yes No No No No updates Event Triggered Event Triggered Route table updates Route table updates Route table updates Route computation Dijkstra DUAL   Bellman-Ford Bellman-Ford Default AD    110 90 100 120 120 RDM No Yes (IP,IPX,AppleTalk) No No No Unequal cost load balancing No Yes Default(4) Max(6) Yes Default(4) Max(6) No  equal cost (4) No  equal cost (4)

交换机工作原理的详细介绍

No Comments 网络技术详解

三种交换技术
  1.端口交换
  端口交换技术最早出现在插槽式的集线器中,这类集线器的背板通常划分有多条以太网段(每条网段为一个广播域),不用网桥或路由连接,网络之间是互不相通的。以大主模块插入后通常被分配到某个背板的网段上,端口交换用于将以太模块的端口在背板的多个网段之间进行分配、平衡。根据支持的程度,端口交换还可细分为:
  ?模块交换:将整个模块进行网段迁移。
  ?端口组交换:通常模块上的端口被划分为若干组,每组端口允许进行网段迁移。
  ?端口级交换:支持每个端口在不同网段之间进行迁移。这种交换技术是基于OSI第一层上完成的,具有灵活性和负载平衡能力等优点。如果配置得当,那么还可以在一定程度进行客错,但没有改变共享传输介质的特点,自而未能称之为真正的交换。
  2.帧交换
  帧交换是目前应用最广的局域网交换技术,它通过对传统传输媒介进行微分段,提供并行传送的机制,以减小冲突域,获得高的带宽。一般来讲每个公司的产品的实现技术均会有差异,但对网络帧的处理方式一般有以下几种:
  ?直通交换:提供线速处理能力,交换机只读出网络帧的前14个字节,便将网络帧传送到相应的端口上。
  ?存储转发:通过对网络帧的读取进行验错和控制。
  前一种方法的交换速度非常快,但缺乏对网络帧进行更高级的控制,缺乏智能性和安全性,同时也无法支持具有不同速率的端口的交换。因此,各厂商把后一种技术作为重点。
  有的厂商甚至对网络帧进行分解,将帧分解成固定大小的信元,该信元处理极易用硬件实现,处理速度快,同时能够完成高级控制功能(如美国MADGE公司的LET集线器)如优先级控制。
  3.信元交换
  ATM技术代表了网络和通讯技术发展的未来方向,也是解决目前网络通信中众多难题的一剂“良药”,ATM采用固定长度53个字节的信元交换。由于长度固定,因而便于用硬件实现。ATM采用专用的非差别连接,并行运行,可以通过一个交换机同时建立多个节点,但并不会影响每个节点之间的通信能力。ATM还容许在源节点和目标、节点建立多个虚拟链接,以保障足够的带宽和容错能力。ATM采用了统计时分电路进行复用,因而能大大提高通道的利用率。ATM的带宽可以达到25M、155M、622M甚至数Gb的传输能力。
三、局域网交换机的种类和选择
  局域网交换机根据使用的网络技术可以分为:
  ?以大网交换机;    ?令牌环交换机;
  ?FDDI交换机;    ?ATM交换机;
  ?快速以太网交换机等。
  如果按交换机应用领域来划分,可分为:
  ?台式交换机;    ?工作组交换机;
  ?主干交换机;    ?企业交换机;
  ?分段交换机;    ?端口交换机;
  ?网络交换机等。
  局域网交换机是组成网络系统的核心设备。对用户而言,局域网交换机最主要的指标是端口的配置、数据交换能力、包交换速度等因素。因此,在选择交换机时要注意以下事项:
  (1)交换端口的数量;  (2)交换端口的类型;
  (3)系统的扩充能力;  (4)主干线连接手段;
  (5)交换机总交换能力;  (6)是否需要路由选择能力;
  (7)是否需要热切换能力;  (8)是否需要容错能力;
  (9)能否与现有设备兼容,顺利衔接;  (10)网络管理能力。
四、交换机应用中几个值得注意的问题
  1.交换机网络中的瓶颈问题
  交换机本身的处理速度可以达到很高,用户往往迷信厂商宣传的Gbps级的高速背板。其实这是一种误解,连接入网的工作站或服务器使用的网络是以大网,它遵循CSMA/CD介质访问规则。在当前的客户/服务器模式的网络中多台工作站会同时访问服务器,因此非常容易形成服务器瓶颈。有的厂商已经考虑到这一点,在交换机中设计了一个或多个高速端口(如3COM的Linkswitch1000 可以配置一个或两个100Mbps端口),方便用户连接服务器或高速主干网。用户也可以通过设计多台服务器(进行业务划分)或追加多个网卡来消除瓶颈。交换机还可支持生成树算法,方便用户架构容错的冗余连接。
  2.网络中的广播帧
  目前广泛使用的网络操作系统有Netware、Windows NT等,而Lan Server的服务器是通过发送网络广播帧来向客户机提供服务的。这类局域网中广播包的存在会大大降低交换机的效率,这时可以利用交换机的虚拟网功能(并非每种交换机都支持虚拟网)将广播包限制在一定范围内。
  每台文交换机的端口都支持一定数目的MAC地址,这样交换机能够“记忆”住该端口一组连接站点的情况,厂商提供的定位不同的交换机端口支持MAC数也不一样,用户使用时一定要注意交换机端口的连接端点数。如果超过厂商给定的MAC数,交换机接收到一个网络帧时,只有其目的站的MAC地址不存在于该交换机端口的MAC地址表中,那么该帧会以广播方式发向交换机的每个端口。
  3.虚拟网的划分
  虚拟网是交换机的重要功能,通常虚拟网的实现形式有三种:
  (1)静态端口分配
  静态虚拟网的划分通常是网管人员使用网管软件或直接设置交换机的端口,使其直接从属某个虚拟网。这些端口一直保持这些从属性,除非网管人员重新设置。这种方法虽然比较麻烦,但比较安全,容易配置和维护。
  (2)动态虚拟网
  支持动态虚拟网的端口,可以借助智能管理软件自动确定它们的从属。端口是通过借助网络包的MAC地址、逻辑地址或协议类型来确定虚拟网的从属。当一网络节点刚连接入网时,交换机端口还未分配,于是交换机通过读取网络节点的MAC地址动态地将该端口划入某个虚拟网。这样一旦网管人员配置好后,用户的计算机可以灵活地改变交换机端口,而不会改变该用户的虚拟网的从属性,而且如果网络中出现未定义的MAC地址,则可以向网管人员报警。
  (3)多虚拟网端口配置
  该配置支持一用户或一端口可以同时访问多个虚拟网。这样可以将一台网络服务器配置成多个业务部门(每种业务设置成一个虚拟网)都可同时访问,也可以同时访问多个虚拟网的资源,还可让多个虚拟网间的连接只需一个路由端口即可完成。但这样会带来安全上的隐患。虚拟网的业界规范正在制定当中,因而各个公司的产品还谈不上互操作性。Cisco公司开发了Inter-Switch Link(ISL)虚拟网络协议,该协议支持跨骨干网(ATM、FDDI、Fast Ethernet)的虚拟网。但该协议被指责为缺乏安全性上的考虑。传统的计算机网络中使用了大量的共享式Hub,通过灵活接入计算机端口也可以获得好的效果。
  4. 高速局域网技术的应用
  快速以太网技术虽然在某些方面与传统以大网保持了很好的兼容性,但100BASE-TX、100BASAE-T4及100BASE-FX对传输距离和级连都有了比较大的限制。通过100Mbps的交换机可以打破这些局限。同时也只有交换机端口才可以支持双工高速传输。
  目前也出现了CDDI/FDDI的交换技术,另外该CDDI/FDDI的端口价格也呈下降趋势,同时在传输距离和安全性方面也有比较大的优势,因此它是大型网络骨干的一种比较好的选择。
  3COM的主要交换产品有Linkswitch系列和LANplex系列;BAY的主要交换产品有LattisSwitch2800,BAY stack workgroup、System3O00/5000(提供某些可选交换模块);Cisco的主要交换产品有Catalyst 100020003000/5000系列。
  三家公司的产品形态看来都有相似之处,产品的价格也比较接近,除了设计中要考虑网络环境的具体需要(强调端口的搭配合理)外,还需从整体上考虑,例如网管、网络应用等。随着ATM技术的发展和成熟以及市场竞争的加剧,帧交换机的价格将会进一步下跌,它将成为工作组网的重要解决方案。

路由原理

No Comments 网络技术详解

当IP子网中的一台主机发送IP分组给同一IP子网的另一台主机时,它将直接把IP分组送到网络上,对方就能收到。而要送给不同IP于网上的主机时,它要选择一个能到达目的子网上的路由器,把IP分组送给该路由器,由路由器负责把IP分组送到目的地。如果没有找到这样的路由器,主机就把IP分组送给一个称为“缺省网关(default gateway)”的路由器上。“缺省网关”是每台主机上的一个配置参数,它是接在同一个网络上的某个路由器端口的IP地址。
路由器转发IP分组时,只根据IP分组目的IP地址的网络号部分,选择合适的端口,把IP分组送出去。同主机一样,路由器也要判定端口所接的是否是目的子网,如果是,就直接把分组通过端口送到网络上,否则,也要选择下一个路由器来传送分组。路由器也有它的缺省网关,用来传送不知道往哪儿送的IP分组。这样,通过路由器把知道如何传送的IP分组正确转发出去,不知道的IP分组送给“缺省网关”路由器,这样一级级地传送,IP分组最终将送到目的地,送不到目的地的IP分组则被网络丢弃了。
——目前TCP/IP网络,全部是通过路由器互连起来的,Internet就是成千上万个IP子网通过路由器互连起来的国际性网络。这种网络称为以路由器为基础的网络(router based network),形成了以路由器为节点的“网间网”。在“网间网”中,路由器不仅负责对IP分组的转发,还要负责与别的路由器进行联络,共同确定“网间网”的路由选择和维护路由表。
——路由动作包括两项基本内容:寻径和转发。寻径即判定到达目的地的最佳路径,由路由选择算法来实现。由于涉及到不同的路由选择协议和路由选择算法,要相对复杂一些。为了判定最佳路径,路由选择算法必须启动并维护包含路由信息的路由表,其中路由信息依赖于所用的路由选择算法而不尽相同。路由选择算法将收集到的不同信息填入路由表中,根据路由表可将目的网络与下一站(nexthop)的关系告诉路由器。路由器间互通信息进行路由更新,更新维护路由表使之正确反映网络的拓扑变化,并由路由器根据量度来决定最佳路径。这就是路由选择协议(routing protocol),例如路由信息协议(RIP)、开放式最短路径优先协议(OSPF)和边界网关协议(BGP)等。
——转发即沿寻径好的最佳路径传送信息分组。路由器首先在路由表中查找,判明是否知道如何将分组发送到下一个站点(路由器或主机),如果路由器不知道如何发送分组,通常将该分组丢弃;否则就根据路由表的相应表项将分组发送到下一个站点,如果目的网络直接与路由器相连,路由器就把分组直接送到相应的端口上。这就是路由转发协议(routed protocol)。
——路由转发协议和路由选择协议是相互配合又相互独立的概念,前者使用后者维护的路由表,同时后者要利用前者提供的功能来发布路由协议数据分组。下文中提到的路由协议,除非特别说明,都是指路由选择协议,这也是普遍的习惯。

ARP地址解析协议原理及应用

No Comments 网络技术详解

一、什么是ARP协议
ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
二、ARP协议的工作原理
在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的,如附表所示。
附表
 ip地址mac地址
192.168.1.100-aa-00-62-c6-09
192.168.1.200-aa-00-62-c5-03
192.168.1.303-aa-01-75-c3-06
……  ……
我们以主机A(192.168.1.5)向主机B(192.168.1.1)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“192.168.1.1的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.1.1的MAC地址是00-aa-00-62-c6-09”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。
三、如何查看ARP缓存表
ARP缓存表是可以查看的,也可以添加和修改。在命令提示符下,输入“arp -a”就可以查看ARP缓存表中的内容了。
用“arp -d”命令可以删除ARP表中某一行的内容;用“arp -s”可以手动在ARP表中指定IP地址与MAC地址的对应。

FTP协议的分析和扩展

No Comments 网络技术详解

1.0<< FTP和TCP端口号
根据是使用Port模式还是Passive模式,FTP使用不同的TCP端口号,在详细描述FTP前,我们来
简单讨论一下TCP端口号的一些基本概念。TCP使用端口号来标识所发送和接收的应用,端口号
可以帮助TCP来分离字节流并且帮相应字节传递给正确的应用程序。
TCP端口号可以是半永久的和暂时的。服务器端监听在半永久的端口上来让客户端访问。客户
端使用暂时的端口在本地标识一个对话,客户端端口只在使用TCP服务时候才存在,而服务器
端口只要服务器在运行就一直在监听。
TCP端口可以归为3类:
1、众所周知的端口来标识在TCP上运行的标准服务,包括FTP、HTTP、TELNET、SMTP等,这些
    端口号码范围为0-1023;
2、注册端口号用来标识那些已经向IANA(Internet Assigned Numbers Assigned Numbers
    Authority)注册的应用,注册端口号为1024-49151;
3、私有端口号是非注册的并且可以动态地分配给任何应用,私有端口为49152-65535;
   注册的端口号本来打算只给注册的应用使用,可近年来端口号已经陷入了到达极限的困境,你
    可能会看到本来应该是给注册应用使用的注册端口被非注册应用用做暂时的端口。RFC1700详
    细标注了众所周知的和注册的端口号,然而不幸的是,这个RFC文档自从1994年以来一直没有
    被更新,然后你仍可以从IANA得到一个及时更新的端口列表,详细URL为:
    http://www.iana.org/assignments/port-numbers
>;>;2.0<< FTP Port模式和FTP Passive模式
当你对一个FTP问题进行排错时候,你首先要问的一个问题是使用的是port模式的还是passive
模式。因为这两种行为迥异,所以这两种模式引起的问题也不同;在过去,客户端缺省为acti
ve(port)模式;近来,由于Port模式的安全问题,许多客户端的FTP应用缺省为Passive模式。
>;>;2.1   FTP Port模式
Port模式的FTP步骤如下:
1、 客户端发送一个TCP SYN(TCP同步)包给服务器段众所周知的FTP控制端口21,客户端
   使用暂时的端口作为它的源端口;
2、 服务器端发送SYN ACK(同步确认)包给客户端,源端口为21,目的端口为客户端上使用
   的暂时端口;
3、 客户端发送一个ACK(确认)包;客户端使用这个连接来发送FTP命令,服务器端使用这个
   连接来发送FTP应答;
4、 当用户请求一个列表(List)请求或者发起一个要求发送或者接受文件的请求,客户端软件使用
   PORT命令,这个命令包含了一个暂时的端口,客户端希望服务器在打开一个数据连接时候使用
   这个暂时端口;PORT命令也包含了一个IP地址,这个IP地址通常是客户自己的IP地址,而且FT
   P也支持第三方(third-party)模式,第三方模式是客户端告诉服务器端打开与另台主机的连接;
5、 服务器端发送一个SYN包给客户端的暂时端口,源端口为20,暂时端口为客户端在PORT命令中
   发送给服务器端的暂时端口号;
6、 客户端以源端口为暂时端口,目的端口为20发送一个SYN ACK包;
7、 服务器端发送一个ACK包;
8、 发送数据的主机以这个连接来发送数据,数据以TCP段(注:segment,第4层的PDU)形式发送(
   一些命令,如STOR表示客户端要发送数据,RETR表示服务器段发送数据),这些TCP段都需要
   对方进行ACK确认(注:因为TCP协议是一个面向连接的协议)
9、 当数据传输完成以后,发送数据的主机以一个FIN命令来结束数据连接,这个FIN命令需要另一
   台主机以ACK确认,另一台主机也发送一个FIN命令,这个FIN命令同样需要发送数据的主机以A
   CK确认;
10、 客户端能在控制连接上发送更多的命令,这可以打开和关闭另外的数据连接;有时候客户端结
   束后,客户端以FIN命令来关闭一个控制连接,服务器端以ACK包来确认客户端的FIN,服务器
   同样也发送它的FIN,客户端用ACK来确认。
下图图示了FTP PORT模式前几步步骤:
/====================================================================\
|                                                                    |
|    [ ftp Client ]                       [ ftp Server ]       |
|                                                                    |
|    (TCP:21 连接初始化,控制端口)                                  |
|                            SYN                                   |
|        Port xxxx ———————->; Port 21    [TCP]   |
|                             SYN+ACK                                |
|        Port xxxx <———————- Port 21              |
|                            ACK                                   |
|        Port xxxx ———————->; Port 21              |
|                                                                    |
|    (控制操作: 用户列目录或传输文件)                               |
|                                                                    |
|                       Port, IP, Port yyyy                          |
|        Port xxxx <———————- Port 21              |
|                       Port Seccussful                            |
|        Port xxxx <———————- Port 21              |
|                       List, Retr or Stor                         |
|        Port xxxx ———————->; Port 21              |
|                                                                    |
|                                                                    |
|        (TCP:20 连接初始化,数据端口)                                   |
|                            SYN                               |
|        Port yyyy <———————- Port 20              |
|                         SYN+ACK                               |
|        Port yyyy ———————->; Port 20              |
|                            ACK                               |
|        Port yyyy <———————- Port 20              |
|                                                                    |
|                                                                    |
|        (数据操作: 数据传输)                                        |
|                         Data + ACK                            |
|        Port yyyy <———————>; Port 20              |
|                            .                                  |
|                            .                                  |
|                            .                                  |
|                                                                    |
\====================================================================/
FTP Port模式会给网络管理人员在许多方面带来很多问题,首先,在PORT命令消息中的IP地址和端
口号的编码不是直白地显示。另外,应用层的协议命令理论上不应该包含网络地址信息(注:
IP地址),因为这打破了协议层的原则并且可能导致协同性和安全性方面的问题。
下图是WildPackets EtherPeek协议分析仪解码了PORT命令的地址参数,地址参数后是端口号,见PORT
192,168,10,232,6,127;6,127部分的第一个阿拉伯数字乘以256,然后加上第2个阿拉伯数字
就得到端口号,所以客户端指定了端口号为6*256+127=1663;
/====================================================================\
| IP Header – Internet Protocol Datagram                             |
| Version:              4                                        |
| Header Length:        5   (20   bytes)                             |
|                                                                    |
| ……………                                                  |
|                                                                    |
| Time To Live:       128                                     |
| Protocol:          6   TCP – Transmission Control Protocol     |
| Header Checksum:    0xAA36                                  |
| Source IP Address: 192.168.0.1   DEMO                          |
| Dest. IP Address:     192.168.0.3   VI                         |
| No IP Options                                                 |
|                                                                    |
| TCP – Transport Control Protocol                                   |
| Source Port:       2342   manage-exec                          |
| Destination Port:     21   ftp                                  |
| Sequence Number:    2435440100                               |
| Ack Number:           9822605                                  |
| Offset:             5   (20   bytes)                             |
| Reserved:          %000000                                  |
| Flags:             %011000                                  |
|                      0. …. (No Urgent pointer)             |
|                      .1 …. Ack                                |
|                      .. 1… Push                            |
|                      .. .0.. (No Reset)                      |
|                      .. ..0. (No SYN)                         |
|                      .. …0 (No FIN)                         |
|                                                                    |
| Window:             65150                                      |
| Checksum:          0x832A                                  |
| Urgent Pointer:    0                                        |
| No TCP Options                                                 |
|                                                                    |
| FTP Control – File Transfer Protocol                            |
| Line   1:              PORT 192,168,0,1,9,39<CR>;<LF>;              |
|                                                                    |
| FCS – Frame Check Sequence                                         |
| FCS (Calculated):     0xF4C04A4F                               |
\====================================================================/

 

下图验证了服务器端的确从端口20打开到端口1663的TCP连接:
/====================================================================\
| TCP – Transport Control Protocol                                   |
| Source Port:       20   ftp-data                            |
| Destination Port:     1663                                     |
| Sequence Number:    2578824336                               |
| Ack Number:           0                                        |
| Offset:             6   (24   bytes)                             |
| Reserved:          %000000                                  |
| Flags:             %000010                                  |
|                      0. …. (No Urgent pointer)             |
|                      .0 …. (No Ack)                         |
|                      .. 0… (No Push)                          |
|                      .. .0.. (No Reset)                      |
|                      .. ..1. SYN                                |
|                      .. …0 (No FIN)                         |
|                                                                    |
| Window:             3731                                     |
| Checksum:          0x8A4C                                  |
| Urgent Pointer:    0                                        |
| No TCP Options                                                 |
|                                                                    |
| TCP Options                                                        |
| Options Type:       2 Maxinum Segment Size                |
| Length:             4                                        |
| MSS:                1460                                     |
|                                                                    |
| FCS – Frame Check Sequence                                         |
| FCS (Calculated):     0x5A1BD023                               |
\====================================================================/
当使用FTP时候,网络中的防火墙必须要声明相应的端口,防火墙必须要跟踪FTP对话然后检查
PORT命令,防火墙必须要参与从服务器端到客户端在PORT命令中指定的端口连接的建立过程。
如果网络中使用了NAT(注:网络地址翻译),那么NAT的网关同样也需要声明相应的端口,网
关需要把在PORT命令中指定的IP地址翻译成分配给客户的地址,然后重新计算TCP的Checksum
;如果网关没有正确地执行这个操作,FTP就失败了。
黑客可能会利用FTP支持第三方特性这一特点,在PORT命令中设置IP地址和端口号参数来指定
一台目标主机的地址和端口号(有时候称这种攻击为FTP反弹攻击),例如黑客可以让一台FTP
服务器不断地从它的源端口20发送TCP SYN包给一系列目的端口,让FTP服务器看起来正在进行
端口扫描,目的主机不知道攻击来自黑客的主机,看起来攻击象是来自FTP服务器。一些常用的
FTP应用在PORT命令中设置地址为0.0.0.0,这样做的意图是让FTP服务器只需要与打开控制连接
的相同客户进行数据连接,设置地址为0.0.0.0可能会让防火墙不知所措。例如,CISCO PIX IOS
6.0以上版本的PIX(注:CISCO硬件防火墙设备,6.0以上版本为其修正了相关的FTP协议)
要求数据连接的IP地址与已经存在的控制连接的IP地址必须相同。这样做的原因是防止黑客用
PORT命令来攻击别的机器,虽然一些FTP应用设置IP地址为0.0.0.0不是有意图的攻击,但在PI
X修正协议环境下的确引起了一些问题,同时对其他不允许第三方模式和避免FTP反弹攻击的防
火墙来说,这也会引起相同的问题。
>;>;2.2   FTP Passive模式
下面的列表描述了Passive模式的FTP的步骤,步骤1到3和Port模式FTP相同,步骤9到11同样与
Port模式FTP最后三步相同。
1、客户端发送一个TCP SYN(TCP同步)包给服务器段众所周知的FTP控制端口21,客户端使
    用暂时的端口作为它的源端口;
2、服务器端发送SYN ACK(同步确认)包给客户端,源端口为21,目的端口为客户端上使用
    的暂时端口;
3、客户端发送一个ACK(确认)包;客户端使用这个连接来发送FTP命令,服务器端使用这个
    连接来发送FTP应答;
4、当用户请求一个列表(List)或者发送或接收文件时候,客户端软件发送PASV命令给服务器端
    表明客户端希望进入Passive模式;
5、服务器端进行应答,应答包括服务器的IP地址和一个暂时的端口,这个暂时的端口是客户端
    在打开数据传输连接时应该使用的端口;
6、客户端发送一个SYN包,源端口为客户端自己选择的一个暂时端口,目的端口为服务器在PASV
    应答命令中指定的暂时端口号;
7、服务器端发送SYN ACK包给客户端,目的端口为客户端自己选择的暂时端口,源端口为PASV
    应答中指定的暂时端口号;
8、客户端发送一个ACK包;
9、发送数据的主机以这个连接来发送数据,数据以TCP段(注:segment,第4层的PDU)形式发送(
    一些命令,如STOR表示客户端要发送数据,RETR表示服务器段发送数据),这些TCP段都需要
    对方进行ACK确认;
10、当数据传输完成以后,发送数据的主机以一个FIN命令来结束数据连接,这个FIN命令需要另一
    台主机以ACK确认,另一台主机也发送一个FIN命令,这个FIN命令同样需要发送数据的主机以A
    CK确认;
11、客户端能在控制连接上发送更多的命令,这可以打开和关闭另外的数据连接;有时候客户端结
    束后,客户端以FIN命令来关闭一个控制连接,服务器端以ACK包来确认客户端的FIN,服务器
    同样也发送它的FIN,客户端用ACK来确认。
下图图示了Passive模式FTP的开始几个步骤:
/====================================================================\
|                                                                    |
|    [ ftp Client ]                       [ ftp Server ]       |
|                                                                    |
|    (TCP:21 连接初始化,控制端口)                                  |
|                            SYN                                   |
|        Port xxxx ———————->; Port 21    [TCP]   |
|                             SYN+ACK                                |
|        Port xxxx <———————- Port 21              |
|                            ACK                                   |
|        Port xxxx ———————->; Port 21              |
|                                                                    |
|    (PASV操作: 被动连接数据端口初始化)                            |
|                                                                    |
|                             PASV                                   |
|        Port xxxx ———————->; Port 21              |
|                   PASV OK, IP, Port yyyy                      |
|        Port xxxx <———————- Port 21              |
|                            SYN                               |
|        Port zzzz ———————->; Port yyyy          |
|                         SYN+ACK                               |
|        Port zzzz <———————- Port yyyy          |
|                            ACK                               |
|        Port zzzz ———————->; Port yyyy          |
|                                                                    |
|                                                                    |
|        (数据操作: 数据传输)                                        |
|                       List, Retr or Stor                         |
|        Port xxxx ———————->; Port 21              |
|                         Data + ACK                            |
|        Port zzzz <———————>; Port yyyy          |
|                            .                                  |
|                            .                                  |
|                            .                                  |
|                                                                    |
\====================================================================/
一个PASV请求要求服务器在服务器选择的一个新的端口上接受数据连接,PASV命令没有任何参
数,服务器端的回应只是一行显示服务器IP地址和服务器接受连接的TCP端口号。
下图显示了服务器对PASV命令的回应,服务器告诉客户端它在端口5365(192,168,179,100,20
,245)上进行监听,计算端口的方法是20*256+245=5365;
/====================================================================\
| TCP – Transport Control Protocol                                   |
| Source Port:       21   ftp                                  |
| Destination Port:     1249                                     |
| Sequence Number:    4239887193                               |
| Ack Number:           36925357                                   |
| Offset:             5   (20   bytes)                             |
| Reserved:          %000000                                  |
| Flags:             %011000                                  |
|                      0. …. (No Urgent pointer)             |
|                      .1 …. Ack                                |
|                      .. 1… Push                            |
|                      .. .0.. (No Reset)                      |
|                      .. ..0. (No SYN)                         |
|                      .. …0 (No FIN)                         |
|                                                                    |
| Window:             8760                                     |
| Checksum:          0x3EAB                                  |
| Urgent Pointer:    0                                        |
| No TCP Options                                                 |
|                                                                    |
| FTP Control – File Transfer Protocol                            |
| Line   1:              PASV 192,168,0,1,100,20,245<CR>;<LF>;        |
|                                                                    |
| FCS – Frame Check Sequence                                         |
| FCS (Calculated):     0xBED4346D                               |
\====================================================================/
当收到PASV命令的回应后,客户端打开一个TCP连接,源端口为一个暂时的端口,目的端口为
服务器提供的暂时端口。
下图显示了客户端的TCP连接建立过程,正如上面所说,目的端口为5365。
/====================================================================\
| TCP – Transport Control Protocol                                   |
| Source Port:       1250                                     |
| Destination Port:     5365                                     |
| Sequence Number:    36931503                                   |
| Ack Number:           0                                        |
| Offset:             7   (28   bytes)                             |
| Reserved:          %000000                                  |
| Flags:             %000010                                  |
|                      0. …. (No Urgent pointer)             |
|                      .0 …. (No Ack)                         |
|                      .. 0… (No Push)                          |
|                      .. .0.. (No Reset)                      |
|                      .. ..1. SYN                                |
|                      .. …0 (No FIN)                         |
|                                                                    |
| Window:             8192                                     |
| Checksum:          0x1A57                                  |
| Urgent Pointer:    0                                        |
| No TCP Options                                                 |
|                                                                    |
| TCP Options                                                        |
| Options Type:       2 Maxinum Segment Size                |
| Length:             4                                        |
| MSS:                1460                                     |
|                                                                    |
| FCS – Frame Check Sequence                                         |
| FCS (Calculated):     0x5A1BD023                               |
\====================================================================/
大多数人认为在防火墙网络环境中Passive模式比Port模式的问题小,但我们注意到在Passive
模式下,客户端打开一个暂时的目的端口连接,一些防火墙或者CISCO设备的访问列表(ACL)可
能会阻止这种连接,同样服务器的回应也是从一个暂时的端口到一个暂时的端口,防火墙或者
CISCO的访问列表也会阻止这种连接。在CISCO路由器上你可以用访问列表关键字”established
“来避免第二个问题,”established”关键字告诉路由器允许带ACK字端的包通过,服务器端的S
YN ACK包带有ACK字端。在新版本PIX IOS中也可以通过fixit关键字建立针对ftp协议的深层状
态检测过滤,其他大多数状态检测防火墙例如LinuxNetfilters也支持ftp协议的状态检测,进行
准确的PASV动态端口过滤。

Loopback口和Null0接口揭秘

No Comments 网络技术详解

Loopback口和Null0接口揭秘

Loopback接口
Loopback接口简介
Loopback接口是虚拟接口,大多数平台都支持使用这种接口来模拟真正的接口。这样做的好处是虚拟接口不会像物理接口那样因为各种因素的影响而导致接口被关闭。事实上,将Loopback接口和其他物理接口相比较,可以发现Loopback接口有以下几条优点:
      Loopback接口状态永远是up的,即使没有配置地址。这是它的一个非常重要的特性。
      Loopback接口可以配置地址,而且可以配置全1的掩码–这样做可以节省宝贵的地址空间。
      Loopback接口不能封装任何链路层协议。
   对于目的地址不是loopback口,下一跳接口是loopback口的报文,路由器会将其丢弃。对于CISCO路由器来说,可以配置[no] ip unreachable命令,来设置是[否]发送icmp不可达报文,对于VRP来说,没有这条命令,缺省不发送icmp不可达报文 。
Loopback接口的应用
基于以上所述,决定了Loopback接口可以广泛应用在各个方面。其中最主要的应用就是:路由器使用loopback接口地址作为该路由器产生的所有IP包的源地址,这样使过滤通信量变得非常简单。
在远程访问中的应用
    使用telnet实现远程访问。
    配置telnet,使从该路由器始发的报文使用的源地址是loopback地址。配置命令如下:
        ip telnet source-interface Loopback0
   使用RCMD实现远程访问。
   配置RCMD,使从该路由器始发的报文使用的源地址是loopback地址。配置命令如下:
       ip rcmd source-interface Loopback0
在安全方面的应用
    在TACACS+中的应用。
       配置TACACS+,使从该路由器始发的报文使用的源地址是loopback地址。配置命令如下:
          ip tacacs source-interface Loopback0
          tacacs-server host 215.17.1.1
可以通过过滤来保护TACACS+服务器–只允许从LOOPBACK地址访问TACACS+端口,从而使读/写日志变得简单,TACACS+日志纪录中只有loopback口的地址,而没有出接口的地址。
在RADIUS用户验证中的应用。
配置RADIUS, 使从该路由器始发的报文使用的源地址是loopback地址。配置命令如下:
ip radius source-interface Loopback0
radius-server host 215.17.1.1
auth-port 1645 acct-port 1646
这样配置是从服务器的安全角度考虑的,可以通过过滤来保护 RADIUS服务器和代理–只允许从LOOPBACK地址访问RADIUS端口,从而使读/写日志变得简单,RADIUS日志纪录中只有loopback口的地址,而没有出接口的地址。
在纪录信息方面的应用
输出网络流量纪录。
配置网络流量输出,使从该路由器始发的报文使用的源地址是loopback地址。配置命令如下:
ip flow-export source Loopback0
Exporting NetFlow records Exporting NetFlow
这样配置是从服务器的安全角度考虑的,可以通过过滤来保护 网络流量收集–只允许从LOOPBACK地址访问指定的流量端口。
日志信息方面。
发送日志信息到Unix或者Windows SYSLOG 服务器。路由器发出的日志报文源地址是loopback接口,配置命令如下:
logging source-interface loopback0
这样配置是从服务器的安全角度考虑的,可以通过过滤来保护 SYSLOG服务器和代理–只允许从LOOPBACK地址访问syslog端口,从而使读/写日志变得简单,SYSLOG日志纪录中只有loopback口的地址作为源地址,而不是出接口的地址。
在NTP中的应用
用NTP(网络时间协议)使所有设备的时间取得同步,所有源于该路由器的NTP包都把Loopback地址作为源地址。配置如下:
ntp source loopback0
ntp server 169.223.1.1 source loopback 1
这样做是从NTP的安全角度着想,可以通过过滤来保护NTP系统–只允许从loopback地址来访问NTP端口。NTP将Loopback接口地址作为源地址,而不是出口地址。
在SNMP中的应用
如果使用SNMP(简单网络管理协议),发送traps时将loopback地址作为源地址。配置命令:
snmp-server trap-source Loopback0
snmp-server host 169.223.1.1 community
这样做是为了保障服务器的安全,可以通过过滤来保护SNMP的管理系统–只允许从Loopback接口来访问SNMP端口。从而使得读/写trap信息变得简单。SNMP traps将loopback接口地址作为源地址,而不是出口地址。
在Core Dumps中的应用
如果系统崩溃,有Core dump特性的路由器能够将内存的映像上传到指定的FTP服务器。配置Core dumps使用loopback地址作为源地址。配置命令如下:
ip ftp source-interface loopback 0
exception protocol ftp
exception dump 169.223.32.1
这样的做的好处是保证了Core Dump FTP 服务器的安全,通过过滤能够保护用于core dumps的FTP服务器–只允许从loopback地址访问FTP端口。
这个FTP服务器必须是不可见的。
在TFTP中的应用
通过TFTP从TFTP服务器配置路由器,可以将路由器的配置保存在TFTP服务器,配置TFTP,将loopback地址作为源于该路由器的包的源地址。配置命令如下:
ip tftp source-interface Loopback0
这样做对TFTP服务器的安全是很有好处的:通过过滤来保护存储配置和IOS映像的TFTP服务器–只允许从loopback地址来访问TFTP端口,TFTP服务器必须是不可见的。
在IP unnumbered中的应用
应用IP Unnumbered在点到点链路上就不需要再配置地址了。配置举例:
interface loopback 0
ip address 215.17.3.1 255.255.255.255
interface Serial 5/0
ip unnumbered loopback 0
ip route 215.34.10.0 255.255.252.0 Serial 5/0
在Router ID中的应用
如果loopback接口存在、有IP地址,在路由协议中就会将其用作Router ID,这样比较稳定–loopback接口一直都是up的。
如果loopback接口不存在、或者没有IP地址,Router ID就是最高的IP地址,这样就比较危险–只要是物理地址就有可能down掉。
对于CISCO来说,Router ID是不能配置的,对于VRP来说,Router ID可以配置,那麽我们也可以将Loopback接口地址配成Router ID。
配置BGP
在IBGP配置中使用loopback接口,可以使会话一直进行,即使通往外部的接口关闭了也不会停止。配置举例:
interface loopback 0
ip address 215.17.1.34 255.255.255.255
router bgp 200
neighbor 215.17.1.35 remote-as 200
neighbor update-source loopback 0

Null0接口
Null0接口简介
Null0口是个伪接口(pseudo-interface),不能配地址,也不能被封装,它总是up的,但从不转发或接收任何通信量。
Null0的配置命令
为指定空接口,在全局配置模式下使用下面命令:
interface null 0
任何命令,只要有接口类型这个参数的都可以使用null0接口。 对于CISCO路由器来说,Null接口唯一一条配置命令是[no] ip unrechable,该命令的作用是设置是[否]发送icmp不可达报文,对于VRP来说,没有这条命令,缺省不发送icmp不可达报文 。
Null0接口的应用
Null0接口从不转发或接收任何通信量,对于所有发到该接口的通信量都直接丢弃,由于它的这个特征,使它被广泛应用。
防止路由环
null接口最典型的使用是用来防止路由环。例如,EIGRP在聚合一组路由时,总是创建一条到NULL接口的路由。
举例如下:
如图所示,一台CISCO AS5200通过ISDN为多个远端站点路由器提供接入服务。在ISDN连接期间通过RADIUS创建到远端局域网的路由。在CISCO AS5200有一条到网关路由器的静态路由,网关路由器通过CISCO AS5200有静态路由到远端局域网,还有到Internet的连接。

当ISDN连接down掉时,从Internet向远端站点传送的包就会走静态路由到CISCO AS5200,而CISCO AS5200会将流量再返回给网关路由器–因为CISCO AS5200已经没有到远端局域网的路由了。网关路由器再将包发给CISCO AS5200。这个过程会一直重复到TTL计数器超时。由此产生的“包洪水”会使CPU极为繁忙,利用率达到98%以上,从而使远端路由器不能再建连接,直到“风暴”停止。
配置下一跳是null0,目的地址是远端局域网的浮动静态路由命令如下:
ip route 192.168.10.0 255.255.255.0 Null0 200
除非ISDN连接是UP的,否则从网关转发到Cisco AS5200的包会被丢弃。如果连接是UP的,通过RADIUS会创建一条更优的路由,流量也会正常。CPU的负担会骤然降低,路由器能够正常工作。
用于安全方面
null0接口提供了过滤通信量的一个可选的方法,可以通过将不想要的通信量引到空接口,来避免过分涉及访问列表的使用。下面对访问列表和null0做一下比较。
null0和访问列表都可以用于过滤通信量,这两种用法相比,各有裨益。
1、使用null0配置简单,只要将不想要的通信量的下一跳接口配制成null0就可以了,当路由器收到报文时,直接查找转发表,发现下一跳是null0,不做任何处理,直接丢弃。而如果使用访问列表,首先要配置规则,然后将它应用到接口,当路由器收到报文时,要首先查找访问列表的队列,如果是deny的,就直接扔掉,如果是permit的,还要查找转发表。所以对比起来,应用null0效率要高,速度要快。
举例如下:
某路由器不希望收到目的是131.1.0.0/16的通信量。
用null0实现,只要配置ip route 131.1.0.0 255.255.0.0 null 0就可以了。如果用访问列表实现,就要先配置一条acl规则如下:access-list 100 deny any 131.1.0.0 0.0.255.255,然后将这条规则在路由器的所有接口上应用。
2、null0不能细化通信量,它面向的对象是整个路由器,而访问列表是可以面向接口的,如果细致到面向接口的通信量,null0就不能做到了。
举例如下:
某路由器不希望在接口s3/1/0收到目的是131.1.0.0/16的通信量。
用null0是不能实现的,只能通过配置acl规则,然后将其应用到接口s3/1/0。
用于BGP的负载分担

用于防止路由振荡
在IP网络规划的比较好时
在一个AS内部用的是IGP,AS之间用的是BGP,不推荐在BGP中将IGP的路由redistribute,因为IGP的路由不稳定,可能会导致路由振荡,因为Null0接口是永远up的,所以可以通过以下配置来将IGP路由发布出去:
ip route ip_address mask null0
router bgp as_number
network ip_address mask mask
这样可以防止路由振荡!

UDLD单向链路 检测

No Comments 网络技术详解

UDLD
UDLF Unidirectional Link Failure 单向链路失败 (Fiber-optic |Twisted-Pair)
UDLF Check mechanism: (first Layer-1 auto detection ,than Layer-2 UDLD detection)
1. Layer-1 physical check ? Auto negotiation (Speed|Duplex|Media-type)
Layer-1 UDLF? “interface is down, line protocol is down.”
2. Layer-2 Data-Link check ? UDLD (mode: Normal mode | Aggressive mode)
Layer-2 UDLF?“interface is up, line protocol is down.”
UDLD mode   链路两端都启用.
UDLD不同于之前的各项STP优化技术,UDLD是一个独立在STP协议之外的2层协议,其目的是为了避免环路. UDLD报文也称为UDLD探针.
Caution: UDLD is a separated Layer-2 Protocol used for detection of UDLF.
1. Normal mode UDLD:
周期性向对端发送UDLD报文.组播更新:0100.0ccc.cccc
Message interval 1s/7s/15s.在链路稳定时并且仍然没有建立将每7s发送UDLD报文.调整为每7s发送一次. 当UDLD双向建立完成后,就会调整周期为15s发送一次UDLD报文.(类似于动态建立以太的信道.)
(1)Initial message interval =1s (for fast establish bi-directional link)
(2)Message interval before establishment=7s
(3)Message interval after establishment=15s
(4)UDLD format:1.Device-ID (Serial Number)
2.Port-ID(Port Number)
3.CDP device name
(5)Delay-time =message interval *3 (45s by-default) 仅当双向链路建立起来才存在Delay-time.
(6)Port’s UDLD status be set to “Undetermined” 当检测出单向链路时状态会置为不确定.但不做任何操作.
双向状态为bidirectional
Undetermined是UDLD中的一种状态,而err-disable是接口中的一种状态.
2. Aggressive mode UDLD:
下列是关于相对于Normal mode的改变.
(7)Re-establish bi=directional link for 8 retries in 8seconds(Initial message interval=1s)
当已经建立的双向链路上失效时,delay-time 3倍周期超时后,会再次重新尝试建立双向链路.d当仍然没有建立时,再才将链路置为err-disable.   UDLD状态: “Unidirectional”
这里有一个疑问,当delay-time超时后,仍然重新尝试建立双向链路,这样就是45s加上8s,超过了STP总共的50s选举到转发状态,这样就有可能造成3s的环路..
(8)Set port to “err-disable” state, state when UDLF (show err detect:udld)
涉及命令:
Normal:
Globalconfig)#udld enable(所有fiber-optic接口生效.)defect on fiber-optic
Interfaceconfig-if)#udld port(可指定光口或者电口生效.)specific fiber-optic/twisted-pair port
Aggressive:
Globalconfig)#udld aggressive 同上.
Interface:(config-if)#udld port aggressive 同上.

ATM主要接口

No Comments 网络技术

1、UNI(User-Network Interface)

UNI为ATM网中的用户网络接口,它是用户设备与网络之间的接口,直接面向用户。UNI接口定义了物理传输线路的接口标准,即用户可以通过怎样的物理线路和接口与ATM网相连,还定义了ATM层标准、UNI信令、OAM功能和管理功能等。按UNI接口所在的位置不同,又可分为公用网的UNI和专用网的UNI(PUNI),这两种UNI接口的定义基本上是相同的,只是PUNI由于不必象公网的接口那样过多地考虑严格的一致性,所以PUNI的接口形式更多、更灵活、发展也更快一些。

2、NNI(Network to Network/Network Node Interface)

NNI可理解为网络节点接口或网络/网络之间的接口,一般为两个交换机之间的接口,与UNI一样,NNI接口也定义了物理层、ATM层等各层的规范,以及信令等功能,但由于NNI接口关系到连接在网络中的路由选择问题,所以特别对路由选择方法做了说明。同样,NNI接口也分为公网NNI和专用网中的NNI(PNNI),公网NNI和PNNI的差别还是相当大的,如公网NNI的信令为3、7号信令体系的宽带ISDN用户部分B-ISUP,而PNNI则完全基于UNI接口,仍采用UNI的信令结构。

3、B-ICI(BISDN Inter-Carrier Interface)

B-ICI定义为两个公用ATM网之间的接口,为分别属于两个运营者的UNI接口提供了连接,它的定义基于NNI接口,其特点是支持不同网络间的多种业务传送,包括基于信元的PVC方式业务、PVC方式的帧中继业务、电路仿真业务、SMDS以及SVC业务等。

4、DXI(Data Exchange Interface)

DXI定义在数字终端设备DTE和数字连接设备DCE之间,DTE通过DXI与DCE相连,再通过ATM UNI接口接入ATM网中,DCE完成了不符合ATM标准的数据终端到ATM的适配过程,相当于终端适配器。

5、FUNI(Frame Based UNI Interface)

FUNI的意义与DXI相似,FUNI将ATM适配功能完全移入了交换机内部,终端和ATM交换机之间传送FUNI帧,所以与基于信元的DXI接口相比,FUNI在接入线上有更高的效率。

CE1/PRI接口

No Comments 网络技术

 CE1/PRI接口拥有两种工作方式:E1工作方式(也称为非通道化工作方式)和CE1/PRI工作方式(也称为通道化工作方式)。
  当CE1/PRI接口使用E1工作方式时,它相当于一个不分时隙、数据带宽为2Mbps的接口,其逻辑特性与同步串口相同,支持PPP、帧中继、LAPB和X.25等数据链路层协议,支持IP和IPX等网络协议。
  当CE1/PRI接口使用CE1/PRI工作方式时,它在物理上分为32个时隙,对应编号为0~31,其中0时隙用于传输同步信息。对该接口有两种使用方法:CE1接口和PRI接口。
  当将接口作为CE1接口使用时,可以将除0时隙外的全部时隙任意分成若干组(channel set),每组时隙捆绑以后作为一个接口使用,其逻辑特性与同步串口相同,支持PPP、帧中继、LAPB和X.25等数据链路层协议,支持IP和IPX等网络协议。
  当将接口作为PRI接口使用时,时隙16被作为D信道来传输信令,因此只能从除0和16时隙以外的时隙中随意选出一组时隙作为B信道,将它们同16时隙一起捆绑为一个pri set,作为一个接口使用,其逻辑特性与ISDN PRI接口相同,支持PPP数据链路层协议,支持IP和IPX等网络协议,可以配置DCC等参数。