posts - 84,  comments - 264,  trackbacks - 0
<一> 路由器

  最简单的网络可以想象成单线的总线,各个计算机可以通过向总线发送分组以互相通信。但随着网络中的计算机数目增长,这就很不可行了,会产 生许多问题:

   1、带宽资源耗尽。
   2、每台计算机都浪费许多时间处理无关的广播数据。
   3、网络变得无法管理,任何错误都可能导致整个网络瘫痪。
   4、每台计算机都可以监听到其他计算机的通信。

  把网络分段可以解决这些问题,但同时你必须提供一种机制使不同网段的计算机可以互相通信,这通常涉及到在一些ISO网络协议层选择性地在网段间传送数据,我们来看一下网络协议层和路由器的位置。

  我们可以看到,路由器位于网络层。本文假定网络层协议为IPv4,因为这是最流行的协议,其中涉及的概念与其他网络层协议是类似的。

   一、路由与桥接

  路由相对于2层的桥接/交换是高层的概念,不涉及网络的物理细节。在可路由的网络中,每台主机都有同样的网络层地址格式(如IP地址),而无论它是运行在以太网、令牌环、FDDI还是广域网。网络层地址通常由两部分构成:网络地址和主机地址。

  网桥只能连接数据链路层相同(或类似)的网络,路由器则不同,它可以连接任意两种网络,只要主机使用的是相同的网络层协议。

  路由器 <二>

   二、连接网络层与数据链路层


  网络层下面是数据链路层,为了它们可以互通,需要“粘合”协议。ARP(地址解析协议)用于把网络层(3层)地址映射到数据链路层(2层)地址,RARP(反向地址解析协议)则反之。

  虽然ARP的定义与网络层协议无关,但它通常用于解析IP地址;最常见的数据链路层是以太网。因此下面的ARP和RARP的例子基于IP和以太网,但要注意这些概念对其他协议也是一样的。

   1、地址解析协议

  网络层地址是由网络管理员定义的抽象映射,它不去关心下层是哪种数据链路层协议。然而,网络接口只能根据2层地址来互相通信,2层地址通过ARP从3层地址得到。

  并不是发送每个数据包都需要进行ARP请求,回应被缓存在本地的ARP表中,这样就减少了网络中的ARP包。ARP的维护比较容易,是一个比较简单的协议。

   2、简介

  如果接口A想给接口B发送数据,并且A只知道B的IP地址,它必须首先查找B的物理地址,它发送一个含有B的IP地址的ARP广播请求B的物理地址,接口B收到该广播后,向A回应其物理地址。

  注意,虽然所有接口都收到了信息,但只有B回应该请求,这保证了回应的正确且避免了过期的信息。要注意的是,当A和B不在同一网段时,A只向下一跳的路由器发送ARP请求,而不是直接向B发送。 接收到ARP分组后处理,注意发送者的对被存到接收ARP请求的主机的本地ARP表中,一般A想与B通信时,B可能也需要与A通信。  

   3、IP地址冲突

  ARP产生的问题中最常见的是IP地址的冲突,这是由于两个不同的主机IP地址相同产生的,在任何互联的网络中,IP地址必须是唯一的。这时会收到两个ARP回应,分别指出了不同的硬件地址,这是严重的错误,没有简单的解决办法。

  为了避免出现这类错误,当接口A初试化时,它发送一个含有其IP地址的ARP请求,如果没有收到回应,A就假定该IP地址没有被使用。我们假定接口B已经使用了该IP地址,那么B就发送一个ARP回应,A就可以知道该IP地址已被使用,它就不能再使用该IP地址,而是返回错误信息。这样又产生一个问题,假设主机C含有该IP地址的映射,是映射到B的硬件地址的,它收到接口A的ARP广播后,更新其ARP表使之指向A的硬件地址。为了解决这个错误,B再次发送一个ARP请求广播,这样主机C又更新其ARP表再次指向B的硬件地址。这时网络的状态又回到先前的状态,有可能C已经向A发送了应该发送给B的IP分组,这很不幸,但是因为IP提供的是无保证的传输,所以不会产生大的问题。

   4、管理ARP缓存表

  ARP缓存表是对的列表,根据IP地址索引。该表可以用命令arp来管理,其语法包括:

   向表中添加静态表项 -- arp -s

   从表中删除表项 -- arp -d

   显示表项 -- arp -a

  ARP表中的动态表项(没有手动加入的表项)通常过一段时间自动删除,这段时间的长度由特定的TCP/IP实现决定。

5、静态ARP地址的使用

  静态ARP地址的典型使用是设置独立的打印服务器,这些设备通常通过telnet来配置,但首先它们需要一个IP地址。没有明显的方法来把此信息告诉该设备,好象只能使用其串口来设置。但是,这需要找一个合适的终端和串行电缆,设置波特率、奇偶校验等,很不方便。

  假设我们想给一个打印服务器设置IP地址P-IP,并且我们知道其硬件地址P-hard,在工作站A上创建一个静态ARP表项把P-IP映射到P-hard,这样,虽然打印服务器不知道自己的IP地址,但是所有指向P-IP的数据就将被送到P-hard。我们现在就可以telnet到P-IP并配置其IP地址了,然后再删除该静态ARP表项。

  有时会在一个子网里配置打印服务器,而在另一个子网里使用它,方法与上面类似。假设其IP地址为P-IP,我们分配一个本网的临时IP地址T-IP给它,在工作站A上创建临时ARP表项把T-IP映射到P-hard,然后telnet到T-IP,给打印服务器配以IP地址P-IP。接下来就可以把它放到另一个子网里使用了,别忘了删除静态ARP表项。

   6、代理ARP

  可以通过使用代理ARP来避免在每台主机上配置路由表,在使用子网时这特别有用,但注意,不是所有的主机都能理解子网的。基本的思想是即使对于不在本子网的主机也发送ARP请求,ARP代理服务器(通常是网关)回应以网关的硬件地址。

  代理ARP简化了主机的管理,但是增加了网络的通信量(不是很明显),并且可能需要较大的ARP缓存,每个不在本网的IP地址都被创建一个表项,都映射到网关的硬件地址。在使用代理ARP的主机看来,世界就象一个大的没有路由器物理网络。

  路由器 <三>

   三、IP地址

  在可路由的网络层协议中,协议地址必须含有两部分信息:网络地址和主机地址。存贮这种信息最明显的方法是用两个分离的域,这样我们必须考虑到两个域的最大长度,有些协议(如IPX)就是这样的,它在小型和中型的网络里可以工作的很好。

  另一种方案是减少主机地址域的长度,如24位网络地址、8位主机地址,这样就有了较多的网段,但每个网段内的主机数目很少。这样一来,对于多于256个主机的网络,就必须分配多个网段,其问题是很多的网络给路由器造成了难以忍受的负担。

  IP把网络地址和主机地址一起包装在一个32位的域里,有时主机地址部分很短,有时很长,这样可以有效利用地址空间,减少IP地址的长度,并且网络数目不算多。有两种将主机地址分离出来的方法:基于类的地址和无类别的地址。

   1、主机和网关

  主机和网关的区别常产生混淆,这是由于主机意义的转变。在RFC中(1122/3和1009)中定义为:

   主机是连接到一个或多个网络的设备,它可以向任何一个网络发送和从其接收数据,但它从不把数据从一个网络传向另一个。

   网关是连接到多于一个网络的设备,它选择性的把数据从一个网络转发到其它网络。

  换句话说,过去主机和网关的概念被人工地区分开来,那时计算机没有足够的能力同时用作主机和网关。主机是用户工作的计算机,或是文件服务器等。现代的计算机的能力足以同时担当这两种角色,因此,现代的主机定义应该如此:

   主机是连接到一个或多个网络的设备,它可以向任何一个网络发送和从其接收数据。它也可以作为网关,但这不是其唯一的目的。

  路由器是专用的网关,其硬件经过特殊的设计使其能以极小的延迟转发大量的数据。然而,网关也可以是有多个网卡的标准的计算机,其操作系统的网络层有能力转发数据。由于专用的路由硬件较便宜,计算机用作网关已经很少见了,在只有一个拨号连接的小站点里,还可能使用计算机作为非专用的网关。

   2、基于类的地址

  最初设计IP时,地址根据第一个字节被分成几类:

   0: 保留
   1-126: A类(网络地址:1字节,主机地址:3字节)
   127: 保留
   128-191: B类(网络地址:2字节,主机地址:2字节)
   192-223: C类(网络地址:3字节,主机地址:1字节)
   224-255: 保留

   3、子网划分

  虽然基于类的地址系统对因特网服务提供商来说工作得很好,但它不能在一个网络内部做任何路由,其目的是使用第二层(桥接/交换)来导引网络中的数据。在大型的A类网络中,这就成了个特殊的问题,因为在大型网络中仅使用桥接/交换使其非常难以管理。在逻辑上其解决办法是把大网络分割成若干小的网络,但在基于类的地址系统中这是不可能的。为了解决这个问题,出现了一个新的域:子网掩码。子网掩码指出地址中哪些部分是网络地址,哪些是主机地址。在子网掩码中,二进制1表示网络地址位,二进制0表示主机地址位。传统的各类地址的子网掩码为:

   A类:255.0.0.0

   B类:255.255.0.0

   C类:255.255.255.0

  如果想把一个B类网络的地址用作C类大小的地址,可以使用掩码255.255.255.0。

  用较长的子网掩码把一个网络分成多个网络就叫做划分子网。要注意的是,一些旧软件不支持子网,因为它们不理解子网掩码。例如UNIX的routed路由守护进程通常使用的路由协议是版本1的RIP,它是在子网掩码出现前设计的。
 上面只介绍了三种子网掩码:255.0.0.0、255.255.0.0和255.255.255.0,它们是字节对齐的子网掩码。但是也可以在字节中间对其进行划分,这里不进行详细讲解,请参照相关的TCP/IP书籍。

  子网使我们可以拥有新的规模的网络,包括很小的用于点到点连接的网络(如掩码255.255.255.252,30位的网络地址,2位的主机地址:两个主机的子网),或中型网络(如掩码255.255.240.0,20位网络地址,12位主机地址:4094个主机的子网)。

  注意DNS被设计为只允许字节对齐的IP网络(在in-addr.arpa.域中)。

   4、超网(supernetting)

  超网是与子网类似的概念--IP地址根据子网掩码被分为独立的网络地址和主机地址。但是,与子网把大网络分成若干小网络相反,它是把一些小网络组合成一个大网络--超网。

  假设现在有16个C类网络,从201.66.32.0到201.66.47.0,它们可以用子网掩码255.255.240.0统一表示为网络201.66.32.0。但是,并不是任意的地址组都可以这样做,例如16个C类网络201.66.71.0到201.66.86.0就不能形成一个统一的网络。不过这其实没关系,只要策略得当,总能找到合适的一组地址的。

   5、可变长子网掩码(VLSM)

  如果你想把你的网络分成多个不同大小的子网,可以使用可变长子网掩码,每个子网可以使用不同长度的子网掩码。例如:如果你按部门划分网络,一些网络的掩码可以为255.255.255.0(多数部门),其它的可为255.255.252.0(较大的部门)。

   6、无类别地址(CIDR)

  因特网上的主机数量增长超出了原先的设想,虽然还远没达到232,但地址已经出现匮乏。1993年发表的RFC1519--无类别域间路由CIDR(Classless Inter-Domain Routing)--是一个尝试解决此问题的方法。CIDR试图延长IPv4的寿命,与128位地址的IPv6不同,它并不能最终解决地址空间的耗尽,但IPv6的实现是个庞大的任务,因特网目前还没有做好准备。CIDR给了我们缓冲的准备时间。

  基于类的地址系统工作的不错,它在有效的地址使用和少量的网络数目间做出了较好的折衷。但是随着因特网意想不到的成长出现了两个主要的问题:

   已分配的网络数目的增长使路由表大得难以管理,相当程度上降低了路由器的处理速度。

   僵化的地址分配方案使很多地址被浪费,尤其是B类地址十分匮乏。

  为了解决第二个问题,可以分配多个较小的网络,例如,用多个C类网络而不是一个B类网络。虽然这样能够很有效地分配地址,但是更加剧了路由表的膨胀(第一个问题)。

  在CIDR中,地址根据网络拓扑来分配。连续的一组网络地址可以被分配给一个服务提供商,使整组地址作为一个网络地址(很可能使用超网技术)。例如:一个服务提供商被分配以256个C类地址,从213.79.0.0到213.79.255.0,服务提供商给每个用户分配一个C类地址,但服务提供商外部的路由表只通过一个表项--掩码为255.255.0.0的网络213.79.0.0--来分辨这些路由。

  这种方法明显减少了路由表的增长,CIDR RFC的作者估计,如果90%的服务提供商使用了CIDR,路由表将以每3年54%的速度增长,而如果没有使用CIDR,则增长速度为776%。如果可以重新组织现有的地址,则因特网骨干上的路由器广播的路由数量将大大减少。但这实际是不可行的,因为将带来巨大的管理负担。

  路由器 <四>  

   四、路由

   1、路由表

  如果一个主机有多个网络接口,当向一个特定的IP地址发送分组时,它怎样决定使用哪个接口呢?答案就在路由表中。来看下面的例子:

目的 子网掩码 网关 标志 接口
201.66.37.0 255.255.255.0 201.66.37.74 U eth0
201.66.39.0 255.255.255.0 201.66.39.21 U eth1

  主机将所有目的地为网络201.66.37.0内主机(201.66.37.1-201.66.37.254)的数据通过接口eth0(IP地址为201.66.37.74)发送,所有目的地为网络201.66.39.0内主机的数据通过接口eth1(IP地址为201.66.39.21)发送。标志U表示该路由状态为“up”(即激活状态)。对于直接连接的网络,一些软件并不象上例中一样给出接口的IP地址,而只列出接口。
 此例只涉及了直接连接的主机,那么目的主机在远程网络中如何呢?如果你通过IP地址为201.66.37.254的网关连接到网络73.0.0.0,那么你可以在路由表中增加这样一项:  

  目的
  掩码
  网关
  标志
  接口

  73.0.0.0
  255.0.0.0
  201.66.37.254
  UG
  eth0

  此项告诉主机所有目的地为网络73.0.0.0内主机的分组通过201.66.37.254路由过去。标志G(gateway)表示此项把分组导向外部网关。类似的,也可以定义通过网关到达特定主机的路由,增加标志H(host): 

  目的 掩码 网关 标志 接口
  91.32.74.21 255.255.255.255 201.66.37.254 UGH eth0

  下面是路由表的基础,除了特殊表项之外:

  目的 掩码 网关 标志 接口
  127.0.0.1 255.255.255.255 127.0.0.1 UH lo0
  default 0.0.0.0 201.66.37.254 UG eth1

 第一项是loopback接口,用于主机给自己发送数据,通常用于测试和运行于IP之上但需要本地通信的应用。这是到特定地址127.0.0.1的主机路由(接口lo0是IP协议栈内部的“假”网卡)。第二项十分有意思,为了防止在主机上定义到因特网上每一个可能到达网络的路由,可以定义一个缺省路由,如果在路由表中没有与目的地址相匹配的项,该分组就被送到缺省网关。多数主机简单地通过一个网卡连接到网络,因此只有通过一个路由器到其它网络,这样在路由表中只有三项:loopback项、本地子网项和缺省项(指向路由器)。

   2、重叠路由


  假设在路由表中有下列重叠项: 

  目的 掩码 网关 标志 接口
  1.2.3.4 255.255.255.255 201.66.37.253 UGH eth0
  1.2.3.0 255.255.255.0 201.66.37.254 UG eth0
  1.2.0.0 255.255.0.0 201.66.37.253 UG eth1
  default 0.0.0.0 201.66.39.254 UG eth1

   之所以说这些路由重叠是因为这四个路由都含有地址1.2.3.4,如果向1.2.3.4发送数据,会选择哪条路由呢?在这种情况下,会选择第一条路由,通过网关201.66.37.253。原则是选择具有最长(最精确)的子网掩码。类似的,发往1.2.3.5的数据选择第二条路由。

  注意:这条原则只适用于间接路由(通过网关)。把两个接口定义在同一子网在很多软件实现上是非法的。例如下面的设置通常是非法的(不过有些软件将尝试在两个接口进行负载平衡):

  接口 IP地址 子网掩码
  eth0 201.66.37.1 255.255.255.0
  eth1 201.66.37.2 255.255.255.0

  对于重叠路由的策略是十分有用的,它允许缺省路由作为目的为0.0.0.0、子网掩码为0.0.0.0的路由进行工作,而不需要作为路由软件的一个特殊情况来实现。

  回头来看看CIDR,仍使用上面的例子:一个服务提供商被赋予256个C类网络,从213.79.0.0到213.79.255.0。该服务提供商外部的路由表只以一个表项就了解了所有这些路由:213.79.0.0,子网掩码为255.255.0.0。假设一个用户移到了另一个服务提供商,他拥有网络地址213.79.61.0,现在他是否必须从新的服务提供商处取得新的网络地址呢?如果是,意味着他必须重新配置每台主机的IP地址,改变DNS设置,等等。幸运的是,解决办法很简单,原来的服务提供商保持路由213.79.0.0(子网掩码为255.255.0.0),新的服务提供商则广播路由213.79.61.0(子网掩码为255.255.255.0),因为新路由的子网掩码较长,它将覆盖原来的路由。

  3、静态路由

  回头看看我们已建立的路由表,已有了六个表项:

  目的 掩码 网关 标志 接口
  127.0.0.1 255.255.255.255 127.0.0.1 UH lo0
  201.66.37.0 255.255.255.0 201.66.37.74 U eth0
  201.66.39.0 255.255.255.0 201.66.39.21 U eth1
  default 0.0.0.0 201.66.39.254 UG eth1
  73.0.0.0 255.0.0.0 201.66.37.254 UG eth0
  91.32.74.21 255.255.255.255 201.66.37.254 UGH eth0

  这些表项分别是怎么得到的呢?第一个是当路由表初始化时由路由软件加入的,第二、三个是当网卡绑定IP地址时自动创建的,其余三个必须手动加入,在UNIX系统中,这是通过命令route来做的,可以由用户手工执行,也可以通过rc脚本在启动时执行。上述方法涉及的是静态路由,通常在启动时创建,并且没有手工干预的话将不再改变。

 路由器 <五>

  四、路由

  4、路由协议

  主机和网关都可以使用称作动态路由的技术,这使路由表可以动态改变。动态路由需要路由协议来增加和删除路由表项,路由表还是和静态路由一样地工作,只是其增添和删除是自动的。

  有两种路由协议:内部的和外部的。内部协议在自制系统(AS)内部路由,而外部协议则在自制系统间路由。自制系统通常在统一的控制管理之下,例如大的公司或大学。小的站点常常是其因特网服务提供商自制系统的一部分。

  这里只讨论内部协议,很少有人涉及到甚至听说外部协议。最常见的外部协议是外部网关协议EGP(External Gateway Protocol)和边缘网关协议BGP(Border Gateway Protocol),BGP是较新的协议,在逐渐地取代EGP。

  5、ICMP重定向

  ICMP通常不被看作路由协议,但是ICMP重定向却与路由协议的工作方式很类似,所以将在这里讨论一下。假设现在有上面所给的六个表项的路由表,分组被送往201.66.43.33,看看路由表,除了缺省路由外,这并不能匹配任何路由。静态路由将其通过路由器201.66.39.254发送(trip 1),但是,该路由器知道所有发向子网201.66.43.0的分组应该通过201.66.39.253,因此,它把分组转发到适当的路由器(trip 2)。但是如果主机直接把分组发到201.66.39.253就会提高效率(trip 3)。

   因为路由器把分组从同一接口发回了分组,所以它知道有更好的路由,路由器可以通过ICMP重定向指示主机使用新的路由。虽然路由器知道所有发向201.66.43.0子网的分组应该通过201.66.39.253,它通常只发送特定的主机的ICMP重定向(此例中是201.66.43.33)。主机将在路由表中创建一个新的表项: 
目的 掩码 网关 标志 接口
  201.66.43.33 255.255.255.255 201.66.39.253 UGHD eth1

  注意标志D,对所有由ICMP重定向创建的路由设置此标志。将来此类分组将通过新路由发送(trip 3)。

  6、RIP

  RIP是一种简单的内部路由协议,已经存在很久,被广泛地实现(UNIX的routed就使用RIP)。它使用距离向量算法,所以其路由选择只是基于两点间的“跳(hop)”数,穿过一个路由器认为是一跳。主机和网关都可以运行RIP,但是主机只是接收信息,而并不发送。路由信息可以从指定网关请求,但通常是每隔30秒广播一次以保持正确性。RIP使用UDP通过端口520在主机和网关间通信。网关间传送的信息用于建立路由表,由RIP选定的路由总是具有距离目的跳数最少的。RIP版本1在简单、较小的网络中工作得不错,但是在较大的网络中,就出现一些问题,有些问题在RIP版本2中已纠正,但有些是由于其设计产生的限制。在下面的讨论中,适用于两种版本时简单称为RIP,RIP v1和RIP v2则指特定的版本。

  RIP并没有任何链接质量的概念,所有的链路都被认为是相同的,低速的串行链路被认为与高速的光纤链路是同样的。RIP以最小的跳数来选择路由,因此当在下面两个路由中选择时:

   100Mbps的光纤链路,路由器,然后是10Mbps的以太网

   9600bps的串行链路

  RIP将选择后者。RIP也没有链路流量等级的概念。例如对于两条以太网链路,其中一个很繁忙,另一个根本没有数据流,RIP可能会选择繁忙的那条链路。

  RIP中的最大hop数是15,大于15则认为不可到达。因此在很大的自制系统中,hop数很可能超过15,使用RIP是很不现实的。RIP v1不支持子网,交换的信息中不含子网掩码,对给定路由确定子网掩码的方法各不相同,RIP v2则弥补了此缺点。RIP每隔30秒才进行信息更新,因此在大网中断链信息可能要花些时间才能传播开来,路由信息的稳定时间可能更长,并且在这段时间内可能产生路由环路。对此有一些解决办法,但这里不进行讨论。

  可以看出,RIP是一个简单的路由协议,有一些限制,尤其在版本1中。不过,它常常是某些操作系统的唯一选择。

接口种类

  路由器能支持的接口种类,体现路由器的通用性。常见的接口种类有:通用串行接口(通过电缆转换成RS232 DTE/DCE接口、V.35 DTE/DCE接口、X.21 DTE/DCE接口、RS449 DTE/DCE接口和EIA530 DTE接口等)、10M以太网接口、快速以太网接口、10/100自适应以太网接口、千兆以太网接口、ATM接口(2M、25M、155M、633M等)、POS接口(155M、622M等)、令牌环接口、FDDI接口、E1/T1接口、E3/T3接口、ISDN接口等。

用户可用槽数
  该指标指模块化路由器中除CPU板、时钟板等必要系统板及/或系统板专用槽位外用户可以使用的插槽数。根据该指标以及用户板端口密度可以计算该路由器所支持的最大端口数。  

CPU
  无论在中低端路由器还是在高端路由器中,CPU都是路由器的心脏。通常在中低端路由器中,CPU负责交换路由信息、路由表查找以及转发数据包。在上述路由器中,CPU的能力直接影响路由器的吞吐量(路由表查找时间)和路由计算能力(影响网络路由收敛时间)。在高端路由器中,通常包转发和查表由ASIC芯片完成,CPU只实现路由协议、计算路由以及分发路由表。由于技术的发展,路由器中许多工作都可以由硬件实现(专用芯片)。CPU性能并不完全反映路由器性能。路由器性能由路由器吞吐量、时延和路由计算能力等指标体现。
 
内存
  路由器中可能由多种内存,例如Flash、DRAM等。内存用作存储配置、路由器操作系统、路由协议软件等内容。在中低端路由器中,路由表可能存储在内存中。通常来说路由器内存越大越好(不考虑价格)。但是与CPU能力类似,内存同样不直接反映路由器性能与能力。因为高效的算法与优秀的软件可能大大节约内存。

端口密度
  该指标体现路由器制作的集成度。由于路由器体积不同,该指标应当折合成机架内每英寸端口数。但是出于直观和方便,通常可以使用路由器对每种端口支持的最大数量来替代。

路由信息协议(RIP)
  RIP是基于距离向量的路由协议,通常利用跳数来作为计量标准。RIP是一种内部网关协议。由于RIP实现简单,是使用范围最广泛的路由协议。该协议收敛较慢,一般用于规模较小的网络。RIP协议在RFC 1058规定。

策略路由方式
  路由器除将目的地址作为选路的依据以外,还可以根据TOS字段、源和目的端口号(高层应用协议)来为数据包选择路径。策略路由可以在一定程度上实现流量工程,使不同服务质量的流或者不同性质的数据(语音、FTP)走不同的路径。

距离矢量组播路由协议(DVMRP)
  DVMRP是基于距离矢量的组播路由协议,基本上基于RIP开发。DVMRP利用IGMP与邻居交换路由

全双工线速转发能力
  路由器最基本且最重要的功能是数据包转发。在同样端口速率下转发小包是对路由器包转发能力最大的考验。全双工线速转发能力是指以最小包长(以太网64字节、POS口40字节)和最小包间隔(符合协议规定)在路由器端口上双向传输同时不引起丢包。该指标是路由器性能重要指标。

设备吞吐量
  指设备整机包转发能力,是设备性能的重要指标。路由器的工作在于根据IP包头或者MPLS标记选路,所以性能指标是转发包数量每秒。设备吞吐量通常小于路由器所有端口吞吐量之和。

端口吞吐量
  端口吞吐量是指端口包转发能力,通常使用pps:包每秒来衡量,它是路由器在某端口上的包转发能力。通常采用两个相同速率接口测试。但是测试接口可能与接口位置及关系相关。例如同一插卡上端口间测试的吞吐量可能与不同插卡上端口间吞吐量值不同。

路由表能力
  路由器通常依靠所建立及维护的路由表来决定如何转发。路由表能力是指路由表内所容纳路由表项数量的极限。由于Internet上执行BGP协议的路由器通常拥有数十万条路由表项,所以该项目也是路由器能力的重要体现。

背板能力
  背板能力是路由器的内部实现。背板能力能够体现在路由器吞吐量上:背板能力通常大于依据吞吐量和测试包场所计算的值。但是背板能力只能在设计中体现,一般无法测试。

QoS分类方式
  指路由器可以区分QoS所依据的信息。最简单的QoS分类可以基于端口。同样路由器也可以依据链路层优先级(802.1Q中规定)、上层内容(TOS字段、源地址、目的地址、源端口、目的端口等信息)来区分包优先级。

分组语音支持方式
  在企业中,路由器分组语音承载能力非常重要。在远程办公室与总部间,支持分组语音的路由器可以使电话通信和数据通信一体化,有效地节省长途话费。当前技术环境下,分组语音可以分为3种:使用IP承载分组语音、使用ATM承载语音以及使用帧中继承载语音。使用ATM承载语音时可以分AAL1和AAL2两种。AAL1即电路仿真,技术非常成熟但是相对成本较高,AAL2技术较先进,但是当前ATM接口通常不支持。帧中继承载语音也比较成熟,相对成本较低。IP承载语音当前较流行。在上述技术中成本最低,但是当前IP网络QoS保证困难,通话质量较难保证。

语音压缩能力
  语音压缩是IP电话节约成本的关键之一。通常可以使用G.723和G.729。G.723在ITU-T建议G.723.1(1996),语音编码器在5.3和6.3Kbps多媒体通信传输双率语音编码器中规定。相对压缩比较高,压缩时延较大。G.729在ITU-T 建议G.729 (1996),8Kbps共扼结构代数码激励线形预测(CS-ACELP)语音编码中规定。压缩比较低,通话质量较好。

信令支持
  路由器E1端口上可能支持多种信令:ISUP、TUP、中国1号信令以及DSS1。支持ISUP、TUP或者DSS1信令的路由器可以有效地减少接续时间。在电信级的IP电话网络设备中通常要求支持7号信令。但是作为中低端路由器,通常只支持DSS1和中国1号信令。
软件路由器
--------------------------------------------------------------------------------

      一、什么是软件路由器?

  一般认为用普通PC安装一套专用的路由器程序组成的系统称为软件路由器. 486电脑+免费的软件=专业的软件路由器。

  二 、软件路由器技术复杂吗?

  不复杂,非常简单,会用普通操作PC就可以安装软件路由器。

  三、常见的软件路由器有那些?

  根据使用的操作不同可以分为基于windows平台和基于Linux/bsd平台开发的软件路由器,基于Windows平台的软件防火墙比较常见的有ISA Server、Winroute Firewall等,这些软件都是商业化的,通常根据授权用户数不同收费而不同,购买正版的软件防火墙的费用对许多中小型企业来说无疑是一笔不小的开支。有而基于Unix/Linux平台的软件防火墙大家一般接触较少,受益于开放源码运行,目前基于Unix/Linux平台的软件防火墙如雨后春笋般不断推出,这些软件防火墙大多是免费的,常见的有RouterOS、m0n0Wall、SmoothWall、Ipcop、CoyoteLinux等,这些系统共有的特点是一般对硬件要求较低,甚至只需要一台486电脑,一张软盘,两块网卡就可以安装出一台非常专业的软件防火墙,这对很多有淘汰下来的低档电脑的朋友来说,意味着拿一台淘汰的电脑,安装一套免费的防火墙软件,不花一分钱就DIY出一台专业的防火墙,而且这些系统自身也包含了NAT功能,同时可以实现宽带共享,这意味着这台免费的防火墙其实也是一台出色的宽带路由器,这是多么令人激动的事情。

  四、软件路由器功能如何?

  不同的软件路由器功能不一样,绝大部分基于Linux/bsd的免费软件路由器功能并不比商业的差,而且比商业的功能还要强大。

  五、软件路由器的性能和稳定性如何?

  目前常见的硬件宽带路由器,绝大部分都是用软件来实现的,跟软件路由器是一样的,而且软件路由器一般硬件配置要比硬件的宽带路由器配置高,所以某些情况下速度比几千上万元的硬件路由器稳定还要快。至于软件路由器的稳定性,受益于稳定的Linux和BSD内核,软件路由器的稳定性非常好,我见过最长时间不用重启的软件路由器,已经有一年多了。

  六、制作软件路由器需要什么配件?

  一台486以上,8M内存以上的普通PC,再加两块网卡就可以了,有些软件路由器如CoyoteLinux只需一张软盘就可以了,对于网卡没有特殊的要求,常见的Rtl8139 和530tx,3COM905B-TX,Intel82559 服务器网卡等都可以,不过根据我们的经验,一台工作良好的软件路由器,网卡一定要好,所以我们会推荐你使用iNTEL或3COM品牌的网卡,特别是Intel82559效果非常不错。如果经验条件许可,购买一个电子硬盘或CF-IDE转接卡再配上CF存储卡,是不错的选择,这样做出来的软件路由器,可以跟硬件的路由器相比了。

  七、软件路由器会淘汰硬件路由器吗?

  不会,但会软件路由器会逐渐占领更多的硬件路市场,软件路由器还不可能淘汰硬件路由器,它们的市场定位不同,而且在高端只有硬件路由器才能胜任,但对于一般的用途如用软件路由器可以获得更高的经济效益。


  八、哪里可以下载到软件路由器?

  1、老牌的中文软路由bbiagent,全中文,但需要注册购买
   http://www.bbiagent.net/gb/index.html

  2、Coyote北美土狼,方便好用,负载能力强,一张软盘即可。免费
   http://www.coyotelinux.com/

  3、FreeSCO看名字就知道她的能力了,免费的类cisco路由软件。
   http://www.freesco.info/

  4、Floppyfw最早的linux LRP项目之一的产物
   http://www.zelow.no/floppyfw

  5、SmoothWall和IPCOP是用一个内核开发,功能不相上下
   http://www.smoothwall.org         http://www.ipcop.org

  6、RouterOS这个软件有点争议,号称ISP级软路由,支持多路由协议,实际效果并不如意
   http://www.mikrotik.com

  7、Fli4l德国的一个软路由,对ADSL支持非常好
   http://www.fli4l.de/

  8、Clarkconnect功能强大,但是体积大了点
         http://www.clarkconnect.org

  9、http://www.netboz.net/

  10、http://people.freebsd.org/~picobsd/

  11、http://www.docum.org/docum.org/

  12、http://m0n0.ch/wall/


代理服务器的路由分析
--------------------------------------------------------------------------------


  对于小型用户群体或家庭用户接入Internet,采用拨号上网不失为一种廉价实用的方式。在局域网上通过代理服务器软件便可以解决多用户共享访问Internet问题,代理服务器实质上是一个介于用户群体和Internet之间的桥梁,用以实现其网络用户对Internet的访问。

  利用局域网

  目前局域网的组网产品很多,以太网交换机或集线器(HUB)价格低廉,非常容易实现局域网客户的互联。本文以现有园区网为例,阐述如何利用PROXY代理服务器实现Internet连接,并进行代理服务器的内部路由分析。本局域网的拓扑结构如图1所示,局域网组成为:客户机若干台,服务器一台,拨号网络服务器一台,连接Internet的调制解调器一台。

  具体配置如下:

  1、客户机:安装WINDOWS 95/98,IE浏览器(Internet Explorer4.0或5.0)。在Internet Explorer的“选项,连接”一栏中选择“使用代理服务器访问Internet”,并将代理服务器的IP地址和端口号(80)填入“地址”和“端口”项,如此便完成了客户端的简单配置。

  2、服务器:安装WINDOWS NT和PROXY软件。配置服务器的RAS、拨号网络、TCP/IP等,建立WINDOWS用户帐户,启动PROXY软件,启动WEB、FTP等代理任务并进行权限设置,给予客户访问Internet的权限等。

  
3、调制解调器:在服务器端配置一台调制解调器(MODEM),一条电话线。拨通本地的Internet电话,如169、163等。

  4、拨号网络服务器:在局域网中为远程用户提供服务,使远程用户可以通过专用通讯线路与局域网连接。

  代理服务器的路由问题

  配置服务器的RAS服务和拨号网络后,进行拨号连接。此时的代理服务器中相当于存在两块接口卡,即一个网卡和一个调制解调器,可以把它看作是一个路由器,为客户和外界提供路由转发功能,因此必须查看并调整服务器的路由设置,以保证服务器与客户的正常通讯。

  在服务器上进行拨号,在DOS模式下通过ROUTE命令查看服务器的路由表。下面仅以缺省路由为例简单分析NT服务器在拨号过程中的路由表,假设10.119.40.254为服务器所在网段的网关,10.119.40.49为NT服务器网卡的IP地址。

  拨号前服务器路由表(表1):

  NETWORK ADDRESS NETMASK GATEWAY ADDRESS INTERFACE METRIC

  0.0.0.0 0.0.0.0 10.119.40.254 10.119.40.49 1

  拨号后服务器路由表(表2):

  NETWORK ADDRESS NETMASK GATEWAY ADDRESS INTERFACE METRIC

  0.0.0.0 0.0.0.0 10.119.40.254 10.119.40.49 2

  0.0.0.0 0.0.0.0 10.18.168.168 10.18.168.168 1

  其中10.18.168.168为INTERNET服务器分配给本拨号网络(调制解调器)的IP地址。经对比表1和表2,在拨号前后的缺省路由有了变化。分析这一现象,主要是由于在服务器中“拨号网络”,“TCP/IP设置”的选项中,选择了“使用拨号网络的默认网关”的缘故,这样服务器每次向10.119.40.0网段的客户发送信息都首先经过10.18.168.168的地址。当网络上的客户要求访问INTERNET站点时,每次都要通过局域网到NT服务器,然后至MODEM。所以必须保障客户机与服务器的正常连通,使路由过程通过10.119.40.49局域网网卡进行。应用PING命令进行检测,服务器可以PING通客户机,而客户机PING服务器时出现超时(TIME OUT)。这一现象表明由于代理服务器的默认路由发生了变化,从而使客户与服务器的连通首先要经过10.18.168.168来转发。解决这一问题须做以下设置,假设某客户所在网段为122.103.1.0,SUBMASK:255.255.255.0,需向路由表中填加指定项目,即执行命令ROUTE ADD 122.103.1.0 255.255.255.0 10.119.40.49。其中10.119.40.49为NT服务器的网卡IP地址,再查看服务器路由表如下:

  NETWORK ADDRESS NETMASK GATEWAY ADDRESS INTERFACE METRIC

  0.0.0.0 0.0.0.0 10.119.40.254 10.119.40.49 2

  0.0.0.0 0.0.0.0 10.18.168.168 10.18.168.168 1

  122.103.1.0 255.255.255.0 10.199.40.254 10.119.40.49 1

  进一步分析,我们还可以通过修改默认路由的方法来达到我们的目的,即使用ROUTE ADD 0.0.0.0 0.0.0.0 10.119.40.49 1 IF METRIC=2

  使路由表设置为:

  NETWORK ADDRESS NETMASK GATEWAY ADDRESS INTERFACE METRIC

  0.0.0.0 0.0.0.0 10.119.40.254 10.119.40.49 1

  作为特殊情况,我们分析一下局域网远程用户的路由问题。在局域网中存在远程用户,它们通常经过专用的通讯线路与局域网连接,如果它们试图通过代理服务器访问INTERNET,必须在NT服务器上配置路由表。由于这类远程用户访问INTERNET需要经过2次拨号服务,在PROXY代理服务器上直接的路由设置尤其必要。如上所述,局域网的客户还可以通过修改默认路由的方法使服务器和客户连通。对于远程客户则不然,必须直接设置代理服务器的路由。假设远程用户(拨号网络服务器)所在的网段为122.100.1.0,SUBMASK:255.255.255.0,须加入路由:ROUTE ADD 122.100.1.0 255.255.255.0 10.119.40.49,才能保证远程用户的直通性。否则,在客户拨通局域网时,远程客户机能PING通网上其它所有的设备,惟独PING NT服务器时超时错误。这说明代理服务器的默认路由此时并没有起作用。

  用户的管理

  通过WINDOWS NT可以对每个代理用户进行管理。在客户访问INTERNET时,首先要在代理服务器上进行用户验证,在用户输入正常的用户名和密码时,才能为其提供INTERNET服务,然后通过代理服务器访问INTERNET。代理服务器软件可使用MS PROXY 2.0,它提供了大量的代理权限的控制,使用它可以对授权用户、访问站点等进行方便地管理、监视、记录等。
posted on 2006-02-26 08:25 wf 阅读(567) 评论(1)  编辑 收藏 引用 所属分类: Published
只有注册用户登录后才能发表评论。
<2024年5月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

        欢迎来到我的BLOG~~~

        之前存放FLASH和音乐的地方down掉了,随便链个歌先听听吧~~~
免费的东西真不保险啊~~

听到首英文歌,挺好听的,放上来。。God is a girl。。far away from home

换了新歌All Out of Love

经推荐换个the power of dream~

换个歌I believe in love

今晚,我感觉离你很近---又换歌了

That place in your heart~~

I'm all about you~08317

always and forever~

Acros the universe

常用链接

留言簿(14)

随笔分类

随笔档案

文章分类

文章档案

相册

friend

study

  • Jacky26℃
  • 很全的计算机水平考试资料
  • topboyleo
  • a lot of English stuff like Action English......

最新评论

阅读排行榜

评论排行榜