cisco路由器:Cisco路由技术基础知识详解

 路由器 <

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

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

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

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

    、路由和桥接 

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

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

  路由器 < 2> 

     2、连接网络层和数据链路层 


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

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

    1、地址解析协议 

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

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

    2、介绍 

  如果接口A想给接口B发送数据并且A只知道BIP地址它必须首先查找B物理地址它发送个含有BIP地址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硬件地址它收到接口AARP广播后更新其ARP表使的指向A硬件地址为了解决这个B再次发送个ARP请求广播这样主机C又更新其ARP表再次指向B硬件地址这时网络状态又回到先前状态有可能C已经向A发送了应该发送给BIP分组这很不幸但是IP提供是无保证传输所以不会产生大问题 

    4、管理ARP缓存Cache表 

  ARP缓存Cache表是对列表根据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缓存Cache每个不在本网IP地址都被创建个表项都映射到网关硬件地址在使用代理ARP主机看来世界就象个大没有路由器物理网络 

  路由器 < 3> 

     3、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、子网划分 

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

    A类:255.0.0.0 

    B类:255.255.0.0 

    C类:255.255.255.0 

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

  用较长子网掩码把个网络分成多个网络就叫做划分子网要注意些旧软件Software不支持子网它们不理解子网掩码例如UNIXrouted路由守护进程通常使用路由协议是版本1RIP它是在子网掩码出现前设计 

上面只介绍了 3种子网掩码:255.0.0.0、255.255.0.0和255.255.255.0它们是字节对齐子网掩码但是也可以在字节中间对其进行划分这里不进行详细讲解请参照相关TCP/IP书籍 

  子网使我们可以拥有新规模网络包括很小用于点到点连接网络(如掩码255.255.255.25230位网络地址2位主机地址:两个主机子网)或中型网络(如掩码255.255.240.020位网络地址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-Do Routing)--是个尝试解决此问题思路方法CIDR试图延长IPv4寿命和128位地址IPv6区别它并不能最终解决地址空间耗尽但IPv6实现是个庞大任务因特网目前还没有做好准备CIDR给了我们缓冲准备时间 

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

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

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

  为了解决第 2个问题可以分配多个较小网络例如用多个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%如果可以重新组织现有地址则因特网骨干上路由器广播路由数量将大大减少但这实际是不可行将带来巨大管理负担

  路由器 < 4>   

     4、路由 

    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”(即激活状态)对于直接连接网络些软件Software并不象上例中样给出接口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协议栈内部“假”网卡)第 2项十分有意思为了防止在主机上定义到因特网上每个可能到达网络路由可以定义个缺省路由如果在路由表中没有和目地址相匹配该分组就被送到缺省网关多数主机简单地通过个网卡连接到网络因此只有通过个路由器到其它网络这样在路由表中只有 3项: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 

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

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

  接口 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路由进行工作而不需要作为路由软件Software个特殊情况来实现 

  回头来看看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、静态路由 

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

  目 掩码 网关 标志 接口 
  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 

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

路由器 < 5> 

   4、路由 

  4、路由协议 

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

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

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

  5、ICMP重定向 

  ICMP通常不被看作路由协议但是ICMP重定向却和路由协议工作方式很类似所以将在这里讨论假设现在有上面所给 6个表项路由表分组被送往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是种简单内部路由协议已经存在很久被广泛地实现(UNIXrouted就使用RIP)它使用距离向量算法所以其路由选择只是基于两点间“跳(hop)”数穿过个路由器认为是主机和网关都可以运行RIP但是主机只是接收信息而并不发送路由信息可以从指定网关请求但通常是每隔30秒广播次以保持正确性RIP使用UDP通过端口520在主机和网关间通信网关间传送信息用于建立路由表由RIP选定路由总是具有距离目跳数最少RIP版本1在简单、较小网络中工作得不错但是在较大网络中就出现些问题有些问题在RIP版本2中已纠正但有些是由于其设计产生限制在下面讨论中适用于两种版本时简单称为RIPRIP 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中不过它常常是某些操作系统选择
Tags:  cisco路由器设置 cisco路由器配置 cisco路由器命令 cisco路由器

延伸阅读

最新评论

发表评论