路由器原理与应用

来源:百度文库 编辑:神马文学网 时间:2024/04/28 16:54:43
一、路由的基本概念
路由器的网络层的设备,负责IP数据包的路由选择和转发。
1、路由类型
路由的类型有:直连路由、静态路由、默认路由和动态路由。
直连路由是与路由器直接相联网络的路由,路由器有对直连网络有转发能力。
静态路由是管理员人为设置的路由,网络开支小,可以有效的改善网络状况。
默认路由是静态路由的一个特例,将路由表不能匹配的数据包送默认路由。一般在最后。
动态路由是路由协议自动建立和管理的路由,常见动态路由协议有:
RIP(Routing Information Protocol) 、
IGRP(Interior Gateway Routing Protocol)、
EIGRP(Enhance Interior Gateway Routing Protocol)、
OSPF(Open Shortest Path First)、
BGP(Backbone Getway Protocol)
上述路由协议称为routing protocol,而IP、IPX称为可路由的协议routed protocol。
也有一些协议是不可路由的,如NetBEUI协议。
2、路由算法
路由算法常见的有三种类型:
距离矢量D-V(Distance-Vector) 算法,如:RIP、IGRP、BGP;
链路状态L-S(Link State)算法,如:OSPF、IS-IS;
混合算法,如:Cisco的EIGRP。
3、路由交换范围
路由器通过交换信息建立路由表,当网络结构变化时,路由表能自动维护。
路由表跟随网络结构变化过程称为收俭。为了减少收俭过程引起的网络动荡,要考滤
路由交换范围。
RIP协议通过network命令指定,例如:设置10.0.0.0网络的接口参与路由信息交换
router(config-router)network 10.0.0.0
ospf协议通过network命令指定,例如:设置10.65.1.1 接口参与路由交换
router(config-router)network 10.65.1.1 0.0.0.0 area 0
area是网络管理员在自治系统(国际机构分配)AS(Autonomous System)内部划分的区域。
0.0.0.0是匹配码,0表示要求匹配,1表示不关心。
4、路由表
路由表(Routing Table)是路由器中路由项的集合,是路由器进行路径选择的依据,
每条路由项包括:目的网络和下一跳,还有优先级,花费等。
路由优先匹配原则:
(1)直接路由:直连的网络优先级最高。
(2)静态路由:优先级可设,一般高于动态路由。
(3)动态路由:相同花费时,长掩码的子网优先。
(4)默认路由:最后有一条默认路由,否则数据包丢弃。
二、RIP路由协议
1、RIP协议的认识
RIP(Routing Information Protocol)协议是采用D-V(Distance-Vector)算法的距离矢量
协议;
根据跳数(Hop Count)来决定最佳路径。最大跳数为16,限制了网络的范围。
单独以跳数作为距离或花费,在有些情况下是不合理的,因为跳数少不一定是最佳路径;
实际上带宽和可靠性也是重要的因素。有时需要管理员修改花费值。
RIP有两个版本,RIP-1 和RIP-2。
RIP-1:采用广播方式发送报文。不支持子网路由。
RIP-2:支持多播方式、子网路由和路由的聚合。
2、路由表的维护
通过UDP协议每隔30秒发送路由交换信息,从而确定邻居的存在。
若180秒还没有收到某相邻结点路由信息,标记为此路不可达。
若再120秒后还没有收到路由信息,则删除该条路由。
当网络结构变化时,要更新路由表,这个过程称为收敛(Convergence)。
RIP标记一条路由不可达要经过3分钟,收敛过程较慢。
路由表是在内存当中的,路由器上电时初始化路由表,对每个直接网络生成一条路由。
同时复制相邻路由器的路由表,复制过程中跳数加1,且下一跳指向该路由器。
若去往某网络的下一跳是RouteA,若RouteA去该网络的路由没有了,则删除这一路由。
跳数是到达目的网络所经过的路由器数目,直接网络的跳数是0,且有最高的优先级。
3、路由环路:
矢量路由的一个弱点就是可能产生路由环路,产生路由环路的原因有两种,
一是静态路由设置的不合理,再一是动态路由定时广播产生的误会。
先看静态路由设置不合理的情况:
设两个路由器RouterA和RouterB,其路由表中各有一条去往相同目的网络的静态路由,
但下一跳彼此指向对方,形成环路。
再看动态路由造成的情况:
假设某路由器RouterA通过RouterB至网络neta,
但RouteB到neta不可达了,且RouterB的广播路由比RouterA先来到,
RouterB去neta不可达,但RouterA中有去往neta路由,且下一跳是RouterB,
这时RouteB就会从RouterA那里学习该路由,将去往neta的指向RouterA,跳数加1。
去neta的路由原本是RouterB传给RouterA的,现RouterB却从RouterA学习该路由,
显然是不对的,但这一现象还会继续,
RouterA去neta网络的下一路是RouterB,当RouterB的跳数加1的时候,RouterA将再加1。
周而复反形成环路,直至路由达到最大值16。
4、解决路由环路的办法
(1) 规定最大跳数
RIP规定了最大跳数为16,跳数等于16时视为不可达,从而阻止环跳进行。
(2) 水平分割
水平分割是过滤掉发送给原发者的路由信息。具体路由信息单向传送。
(3) 毒性逆转
水平分割的改进,收到原是自己发出的路由信息时,将这条信息跳数置成16,即毒化。
(4) 触发方式
一旦发现网络变化,不等呼叫,立即发送更新信息,迅速通知相邻路由器,防止误传。
(5) 抑制时间
在收到路由变化信息后,启动抑制时间,此时间内变化项被冻结,防止被错误地覆盖。
三、OSPF路由协议
1、OSPF的特点
OSPF(Open Shortest Path First)开放式最短路径优先协议,
使用L-S(Link State)算法的链路状态路由协议,路由算法复杂,适合大型网络,
网络拓扑结构变化时,采用触发方式,组播更新,收敛快,要求更高的内存和CPU资源。
LSA(Link State Advertisement)链路状态通告是以本路由器为根的最小路径优先树。
LSDB(Link State DataBase)链路状态数据库,这是各个路由器的LSA的集合。
每个路由器的LSA是不同的,但他们的集合LSDB是相同的。
D-V算法只考虑下一跳,没有全局的概念,交给下一跳就完成任务,所以容易产生环路。
L-S算法每个路由器可以根据网络整体结构决定路径,所以不会产生环。
2、指定路由器与路由器标识
指定路由器DR(Dezignated Router)是ospf路由交换的中心,数据通过DR进行交换。
在路由器群组中优先级(Router Priority)值最高的为DR,次高的为备份指定路由器BDR。
管理员可以通过设置优先级指定DB和BDR。优先级相同时,比较 router id。
如果没有设置Router id,则以回环接口loopback ip值高的为DR,
如果loopback ip 没有设置,取接口的IP地址中最高的为DR。
3、建立路由表
(1)Hello报文
Hello报文用于发现新邻居问候老邻居,选举指定路由器DR和BDR。
(2)DD报文(Database Description Packet)
DD报文用LSA头head信息表示LSA的变化情况,将其发送给DR,DR再发给其它路由器。
(3)LSR报文(Link State Request Packet)
LSR是请求更新包,当LSDB需要更新时,将其发送给DR,点对点连接时直接同步LSDB。
(4)LSU报文(Link State Update Packet)
DR用多播Multicast地址224.0.0.6收,224.0.0.5发,同步整个区域的LSDB。
(5)确认后计算路由:
LSDB同步后,计算cost花费,考虑跳数、带宽、可靠性等综合因素求解最佳路径。
4、单区域OSPF配置
单区域OSPF配置是指运行OSPF协议的路由器在同一个区域area n,
对于只有一个区域的网络,区域号是任意的,一般设置为0。
单区域OSPF有三种连接情况:
点对点的连接(Point to point)、
广播方式的连接(Broadcast Multi Access Network)、
非广播方式多点连接(Non Multi Access Network)。
点对点连接结构最简单,可靠性高,工作稳定;
以太网连接是典型的广播方式的连接;
帧中继连接是属于的非广播方式多点连接类型。
5、多区域OSPF的设置
多区域中要求有一个是骨干区域area 0,边界路由器跨接两个区域。
多区域的区域内部按单区域设置,多区域间通过边界路由器的连接。
stub是末节区域,末节区域不接收ospf以外的路由信息,
如果路由器想去往区域以外网络,要使用默认路由。
只有多区域中才存在末节区域。末节区域要设置在边界路由器上。
作为企业可以将分支区域设置为末节区域,
分支区域不需要知道总部网络的细节,却能够通过缺省路由到达那里。
四、访问控制列表
1、访问控制列表类型与作用
访问控制列表是对通过路由器的数据包进行过滤。
过滤是根据IP数据包的5个要素:
源IP地址、目的IP地址、协议号、源端口、目的进行的。
访问控制列表有两类,标准访问控制例表和扩展的访问控制列表。
标准访问列表:
标准访问列表的列表号为1~99,只对源IP地址进行访问控制。
扩展访问列表:
扩展访问列表的列表号为100~199,可以对源和目的地址、协议、端口号进行访问控制。
2、访问控制列表的结构
分三步:
定义一个ACL:access-list
进入指定接口:interface
绑定指定ACL:ip access-group [in|out]
3、访问控制列表匹配原则
访问控制列表默认的是deny any。
一般是逐行匹配,也可以设置深度匹配。
所以写访问控制列表一般是从小的范围向大的范围,成为梯形结构。
一般在访问控制表的最后一行要写permit any。
4、命名方式的访问控制列表
命名方式是用名称代替列表号,便于记忆,扩展了条目数量,可以是基本型或扩展型。
命令方式ACL语法有些变化,支持删除一个列表中的某个语句。
命名语法格式:
router(config)#ip access-list {standard|extended} name
router(config std nacl)#{deny|permit}]
router(config ext nacl)#
{deny|permit}[protocol][op]
第一行是定义命名方式访问控制列表类型:标准或扩展。
第二行是标准命名方式的访问控制列表的语法格式。
第三行是扩展命令方式的访问控制列表的语法格式。
五、地址转换NAT
1、NAT的认识
NAT(Network Address Translate)是地址转换操作。
NAT可以将局网中的私有IP转换成公有IP,解决了内部网络访问internet的问题。
NAT可以做负载均衡,将内部多个服务器对外映射成一台服务器。
定义:
Inside local address: 内部网的私有IP。
Inside global address: 内部网的公有IP。
Outside global address: 互联网中的公有IP。
Outside local address: 互联网中的公有IP对应的私有IP。
NAT可分为原地址变换SNAT和目的地址变换DNAT。
按工作方式划分,可分为静态NAT和动态NAT。
SNAT命令中使用source参数,DNAT命令中使用destination参数。
(对已连接的返回包可自动对应)
2、静态NAT
静态NAT是在指定接口上,对数据包的原IP或目的IP进行一对一的转换。
常用于将某个私有IP固定的映射成为一个公有IP。
语法:
Router(config)#ip nat inside source static
在指定接口inside中对数据包的原地址进行变换,一般ipa是私网IP,ipb是公网IP。
3、动态NAT
动态NAT一般用于将局域网中的多个私有IP从公有IP地址池中提取公有IP对外访问。
设内部局域网是:10.66.0.0,公网IP地址池为:60.1.1.1~60.1.1.8
当内部网络要访问internet时,从公网IP地址池中提取公网IP对外访问。
语法:
定义地址池p1:
Router(config)#ip nat pool p1 60.1.1.1 60.1.1.8 netmask 255.255.255.0
定义访问控制列表1:
Router(config)#access-list 1 permit 10.66.0.0 0.0.255.255
将访问控制列表1的源地址,动态的从公网IP地址池p1的提取公网IP:
Router(config)#ip nat inside source list 1 pool p1
4、PAT
PAT(Port Address Translate)是端口地址转换,将私有IP转换到公网IP的不同端口上。
PAT是原将动态nat地址池pool改为用接口,并使用参数overload。属于动态NAT。
语法:
Router(config)#access-list 2 permit 10.66.0.0 0.0.255.255
Router(config)#ip nat inside source list 2 interface s0/0 overload
5、基于NAT的负载均衡
NAT可以实现负载均衡。
一般的NAT都是将内部私有IP转换为公网IP,连接方向从内部向外。
而对于负载均衡是将一个公网IP翻译成多个内部私有IP,连接访问从外向内。
例如:
内部的www服务负载过重,可将多台同样的服务器,但对外映射成一个IP地址,
内部的多台服务器成为捆绑在一起构成虚拟服务器,外部访问这个虚拟服务器时,
路由器轮流指向各台服务器,从而达到负载均衡。
语法:
定义地址池p2,使用rotary参数轮循。
ra(config)#ip nat pool p2 10.1.1.2 10.1.1.4 netmask 255.255.255.0 type rotary
ra(config)#access-list 1 permit 60.1.1.1
ra(config)#ip nat inside destination list 1 pool p2
在指定接口inside中建立list 2与pool p2的对应关系。Destination表示转换目的地址。
6、基于服务的NAT
基于服务的NAT配置,细化了NAT的应用,转换可以具体到协议和端口,即指定的服务上。
例如:
对内网的虚拟服务器(使用一个公网IP)的访问:
当访问TCP 20端口时就将它转到内部ftp服务上。
当访问TCP 21端口时也将它转到内部ftp服务上。
当访问TCP 80端口时就将它转换到内部的www服务器上。
语法:
Router(config)#ip nat inside source static tcp 10.65.1.2 20 60.1.1.1 20
Router(config)#ip nat inside source static tcp 10.65.1.2 21 60.1.1.1 21
Router(config)#ip nat inside source static tcp 10.65.1.3 80 60.1.1.1 80