文章目录
路由器通过路由表转发数据
路由器的转发依赖路由表
一、路由表内容
Network Destination
:目标网段Netmask
:子网掩码,IP地址与子网掩码按位与,可以得出该IP地址的网络号,IP地址与子网掩码取反后按位与,可以得出该IP地址的主机号。Interface
:达到该目标网段的本地路由器的出口IP。Gateway
:网关IP,下一跳路由器的入口IP,通常情况下,interface和gateway是同一网段的。Metric
:跳数,该条路由记录的质量,一般情况下,如果有多条到达相同目的地的路由记录,路由器会采用metric值小的那条路由。
二、路由分组转发过程
- (1)首先从IP数据报首部提取出目的主机的IP地址D,得出其所在的网络N。
- (2)若N就是与此路由器直接相连的某个网络,则进行直接交付,不需要经过其它的路由器进行转发,直接把数据报交付给目的主机。 否则就执行(3)
- (3)若路由表中有目的地址为D的特定主机路由,则把数据报传给路由表中所指明的下一跳路由器。否则执行(4)
- (4)若路由表中有到达网络N的路由,则把数据报传给路由表中所指明的下一跳路由器。否则执行(5)
- (5)若路由表中有一个默认路由,则把数据报传给默认路由所指明的默认路由器。否则执行(6)
- (6)报告转发分组出错。
路由器在网络中所扮演的角色
路由器是用来连接不同网络的,依赖的是路由表
路由器说明
- 路由器:连接因特网中各局域网、广域网的设备,它会bai根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号的设备。 路由器英文名Router,路由器是互联网络的枢纽、“交通警察”。目前路由器已经广泛应用于各行各业,各种不同档次的产品已经成为实现各种骨干网内部连接、骨干网间互联和骨干网与互联网互联互通业务的主力军。
- 路由器的一个作用是连通不同的网络,另一个作用是选择信息传送的线路。选择通畅快捷的近路,能大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,提高网络系统畅通率,从而让网络系统发挥出更大的效益来。 从过滤网络流量的角度来看,路由器的作用与交换机和网桥非常相似。但是与工作在网络物理层,从物理上划分网段的交换机不同,路由器使用专门的软件协议从逻辑上对整个网络进行划分。例如,一台支持IP协议的路由器可以把网络划分成多个子网段,只有指向特殊IP地址的网络流量才可以通过路由器。对于每一个接收到的数据包,路由器都会重新计算其校验值,并写入新的物理地址。因此,使用路由器转发和过滤数据的速度往往要比只查看数据包物理地址的交换机慢。但是,对于那些结构复杂的网络,使用路由器可以提高网络的整体效率。路由器的另外一个明显优势就是可以自动过滤网络广播。从总体上说,在网络中添加路由器的整个安装过程要比即插即用的交换机复杂很多。
路由器和交换机的一些主要区别特征
- 路由器
根据第3层及以上层的信息转发数据包;
建立网络地址转换(NAT)边界;
终止虚拟电路(VPN);
加密和解密流量;
实施复杂的过滤器(状态检查,路由策略等);
支持多种类型的模块化物理接口。 - 交换机
主要在第2层转发数据包(如果需要,则为帧);
将许多连接聚合到一些更高带宽的链接中;
提供更高吞吐量的底板;
主要包括固定的铜缆或光纤以太网接口。
上文中并没有提到路由器中的路由协议。这是因为,即使配置了路由接口,边缘交换机通常也会运行路由协议。 - 一般而言,关于设备分类的困惑源于多层交换机(那些具有可配置为在第二层或第三层运行的接口的交换机)。同样,应仅考虑设备的最终实现方式进行分类。
例如访问边缘设备,该设备通过VLAN接口将几十个工作站聚合到一个或两个路由分配链路。尽管从技术上讲是路由器,但该设备可以很容易地识别为能够完成交换机的功能。
第二个示例:假设采用多层交换机(例如Cisco Catalyst
3560)作为低成本CPE设备,以在WAN边缘终止城域以太网链路。交换机仅服务于两个或三个路由链接。尽管设计为交换机,但该设备在此实例中的角色主要是充当路由器。
实际上,定义解析起来永远都不是完美的。我们需避免被挂在模棱两可的标签上,应学会根据设备所扮演的角色对设备进行分类。
路由器的硬件组成
- 硬件模块全部
电源:供电
SDRAM:路由器的内存 程序的运行空间
FLASH:相当于硬盘 储存固件的地方
CPU:处理器
交换机:LAN口
WAN口
wifi模块
串口 - 内部硬件如下
路由器的两大功能介绍
- 路由器一般只有两大功能,就是控制功能与数据通道功能。数据通道功能包括转发决定、背板转发以及输出链路调度等,一般由特定的硬件来完成:然后控制功能一般用软件来实现,包括与相邻路由器之间的信总交换、系统配罝、系统管理等。
- 路由器也有判断网络地址和选择路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全的数据分组和介成访问方法连接各种子网。路由器只接受源站或其他路由器的信息,W网络层的一种互联设备,它不关心各子网使用的硬件设备,但要求运行与网络层协议相一致的软件。
路由表中路由的生成方式
-
路由表的生成方法有以下几种:
- 1.通过手工配置添加路由表.
- 2.通过运行动态路由协议自动学习产生
-
在计算机网络中,路由表或称路由择域信息库(RIB)是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库。路由表存储着指向特定网络地址的路径(在有些情况下,还记录有路径的路由度量值)。路由表中含有网络周边的拓扑信息。路由表建立的主要目标是为了实现路由协议和静态路由选择。
-
在现代路由器构造中,路由表不直接参与数据包的传输,而是用于生成一个小型指向表,这个指向表仅仅包含由路由算法选择的数据包传输优先路径,这个表格通常为了优化硬件存储和查找而被压缩或提前编译。
为了路由数据,路由器需要做什么?
- 数据包在网络上的传送就好像是快递公司运送包裹一样,通过多个快递站点的收发最终将包裹送到客户手中。类似的,每一个路由器只负责本站数据包通过最佳路径转发,通过多个路由器一站一站的收发将数据包通过最佳路径转发到目的地。
(如果实施路由策略,数据包不一定选择最佳路径)
- 每个路由器都有多个输入接口和多个输出接口,它的输入接口收到数据包后去除数据链路层封装,交给网络层处理。网络层首先检查报文是否是送给本机的,如果是,去掉网络层封装,送给上层协议处理。如果不是,则根据报文的目的地址将报文交给相应输出接口的数据链路层,封装接口对应的链路层协议后,将报文发送给下一个路由器。下一个路由器也重复此动作,直至传给路径上最后的路由器,再由其将数据包送交目的主机。
静态路由和动态路由
- 静态路由和动态路由的区别:静态路由一般适用于比较简单的网络;动态态路由应用在复杂的网络环境
- 具体区别:
- 1、动态路由是与静态路由相对的一个概念,指路由器能够根据路由器之间的交换的特定路由信息自动地建立自己的路由表,并且能够根据链路和节点的变化适时地进行自动调整。
当网络中节点或节点间的链路发生故障,或存在其它可用路由时,动态路由可以自行选择最佳的可用路由并继续转发报文。 - 2、使用静态路由的好处是网络安全保密性高。动态路由因为需要路由器之间频繁地交换各自的路由表,而对路由表的分析可以揭示网络的拓扑结构和网络地址等信息。
因此,网络出于安全方面的考虑也可以采用静态路由。不占用网络带宽,因为静态路由不会产生更新流量。
- 1、动态路由是与静态路由相对的一个概念,指路由器能够根据路由器之间的交换的特定路由信息自动地建立自己的路由表,并且能够根据链路和节点的变化适时地进行自动调整。
静态路由应用场景
- 简单的说,静态路由采用的是手工管理的方式。显然比起动态路由来说,其工作量非常的庞大。但是这并不是说静态路由就一无用处了。在现实工作中,静态路由还是有其用武之地的。作为网络管理员,必须要知道静态路由的优劣,并能够判断在什么情况下更适合采用静态路由。
- 静态路由的特点是很明显的。总的来说,与动态路由相比,具有如下的优势。
- 一是可以节省带宽。在静态路由工作模式下,网络管理员是以手工的方式将路由添加到每台路由器中。为此就不存在路由器之间相互更新路由表的情况。这也就是说在网络中的路由器之间没有带宽占用的情况。为此在静态路由下,用户可用的带宽会比动态路由的带宽要多。从而可以提升企业网络的性能。
- 二是在安全性上,会更加灵活,安全性也会更高。这主要是因为在静态路由模式下,网络管理员可以有选择的允许路由只访问特定的网络。如现在某个集团有四个分公司。分公司之间通过光纤和路由器进行连接。此时就可以通过路由来进行限制,只允许分公司访问集团公司的网络(一般服务器都是部署在集团公司),而集团公司不能够访问分公司的网络。而动态路由采用的是自动更新路由表的机制,所以就没有这个特性。
- 三是可以提高路由器的性能。在动态路由模式下,路由器每隔一段时间需要更新一下自己的路由表。这需要一定的资源开销。而在静态路由模式下,路由一经配置之后,不会自动更新。这也就是说,路由器的CPU或者内存等没有管理性能方面的开销。这对用户来说,就可以提高数据处理的性能,或者说,购买配置比较低的路由器,帮助用户节省信息化方面的投资等等。
- 静态路由也有其难以掩饰的缺陷。跟动态路由相比,静态路由的缺陷主要体现在以下几个方面。
- 一是管理的工作量比较大。在静态路由的模式下,网络管理员需要一一的配置所有的静态路由信息。如上面配置案例。如果企业网络中有30台路由器,那么就需要在每台路由器上配置三十条记录。显然这个工作量有点大。
- 二是不够灵活。当网络中增加了一台路由器之后,路由环境就发生了改变。此时在静态路由模式下,就不会进行自动更新。此时需要手工更新每台路由器的路由表,添加相关的路由记录才行。这对后续的网络升级与调整,会带来很大的负面影响。
- 三是对于网络管理员的技能有更高的要求。如果采用的是动态路由的话,只需要将路由器接入到网络。路由器就会根据所启用的路由选择规则,来选择合适的路由信息。也就是说,网络管理员并不需要对企业的网络状况进行全面的了解。相反,在静态路由模式下,网络管理员必须要了解所配置的网络,以及每台路由器该如何进行正确的连接,以正确配置这些路由信息。总之,在静态路由模式下,对用户的专业技能有更高的要求。
- 从这个优点与缺陷的对比中,我们可以看到,静态路由与动态路由有不同适用的场合。作为静态路由来说,往往是用在规模比较小的网络中,或者说对安全有特别要求的应用中。在这些场合中,主要的一个特点就是即时手工维护路由信息,其工作量也不是很大。或者说能够被用户所接受。
- 而对于大型网络,或者静态在变化的网络来说,不适宜采用静态路由工作模式。因为此时工作量会变得很大。此时采用动态路由可能会更加合适。
静态路由配置思路
-
下图中的A网络现在要访问172.16.1.0这个网络,配置路由思路说明。
-
配置网络,我们需要知道2个概念:1:到哪去,2:怎么去.
- 1、到哪去:由A网络到172.16.1.0这个网络,中间需要经过172.16.2.1这个路由(上图是站在上帝视角的,更多情况是需要自己脑补出上面这种上帝视角的图来理解)这里需要经过的路由专业名词叫做:下一跳。
- 2、怎么去:其实就是通过命令配置实现而已。
滤清上面2样以后,就可以开始实行配置了,登陆到源地址(如上图中的A网络)上,通过ip route
配置,后面跟的就是目的地址和掩码 和 下一跳的路由地址,如下图
静态路由配置演示
路由关系图如下:
配IP地址
enable
进入全部模式操作。
-
R1
-
R2
配环回接口地址
-
loopback称为环回接口。
-
loopback接口是一种纯软件性质的虚拟接口。loopback接口创建后物理层状态和链路层协议永远处于up状态。loopback接口可以配置ip地址,为了节约ip地址,系统会自动给loopback接口的ip地址配置32位的子网掩码。loopback接口下也可以使用路由协议,可以收发路由协议报文。
-
物理接口可能会坏,但这种环回接口只要设备不坏,这个接口就不会坏。
-
环回地址配置方法
interface loopback IP
掩码
也可以interface loopback ?
查看环回地址可配置数量
-
R1
配置完毕以后就可以看到2个C地址
- R2
配置完毕以后就可以看到2个C地址
路由配置
说明
上图总 R1上的10.0.12.1/24和R2的10.0.12.2/24属于共有网络
1.1.1.1/24属于R1上的私有网络,2.2.2.2/24属于R2的私有网络,他们两互相不知道彼此的存在。
操作命令
现在1.1.1.0网络要访问2.2.2.0网络
而1.1.1.0属于R1的私有地址,所以需要在R1上添加一条静态路由:ip route 2.2.2.0 255.255.255.0 10.0.12.2
配置完毕查看的时候就会多一条到对方的静态路由地址,配置完毕。
路由表中的字段介绍
- 在思科(Cisco)系列路由器上,
show ip route
这个命令是一个非常常用并且十分重要的命令。里面可以查看该设备的当前直连的或者学习到的全部路由信息,即路由表:routing table。该命令后面可以接多个可选项,包括:[address [mask] [longer-prefixes]] | [protocol [process-id]]
等。 - 若需使用该命令,你应当通过命令行进入路由器的执行模式(EXEC mode),其输出结果会按行列出:具体的路由条目,路由类型,管理距离(administrative distance),相邻路由器地址,获得该路由信息的物理端口名等信息。Show ip route可以简化为:sh ip ro,在进行路由配置、排错时,它是一个非常重要、实用的必备工具。
多说无意,还是来看看实例吧! C 192.168.1.0/24 is directly connected, FastEthernet0/0
C是connected直接相连的意思,192.168.1.0/24是直连的网段,24是255.255.255.0的缩写,要转发数据包到192.168.1.0网段,通过fastethernet0/0接口转发。R 192.168.3.0/24 [120/1] via 192.168.65.2, 00:00:04, Serial2/0
R是RIP协议,通过动态路由协议RIP学到的路由,192.168.3.0/24就是学到的路由,[120/1]即[管理距离/度量值(此数为路由跳数)],是度量值和管理距离,也就是优先级的意思。via 192.168.65.2 via 有“经由”的意思,一般路由表中理解为“下一跳” ,指下一跳的接口IP地址为192.168.65.2,就是你要发送数据包到下个路由器的接口,从Seria2/0口转发。- 此外,
show ip route connected
要仅显示路由表中直接相连的网络;show ip route static
要仅显示路由表中的静态路由。 - 值得一提的是,在
show ip route
命令的输出中,会列出关于路由类型的简写代码,包括:I, R, O, C, S, E, B, i
等。它们的含义分别为:I
,指从内部网关协议(IGRP)中学到的路由。R
,从RIP协议中学到的路由。O
,从OSPF(开放式最短路径优先)协议学到。C
,直连路由。S
,静态配置的路由,请注意,静态路由的管理距离为 0。E
,从外部网关协议(EGP)学到的路由。B和i
,分别指从BGP协议、IS-IS协议学到的路由信息。
- 在下面代码中,Codes部分,列出的是简写代码及其含义解释,而Codes区域以下的部分,则列出的是该设备上的具体路由条目。具体看下 Cisco 官方说明:
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2,
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2,
ia - IS-IS inter area, * - candidate default, U - per-user static route,
o - ODR, P - periodic downloaded static route
通过AD和Metric进行相同网络的选路
AD和Metric是什么
- AD和Metric是s(静态路由)中的[a/d]全程
AD【管理距离】说明
管理距离(AD):管理距离,每个不同的路由获取方式(不同的路由协议),有不同的AD;
也表示路由可能通过多种协议获取的相同路由,而路由器选取AD小的加入路由表。
Metric说明
度量值(metric):当有多跳路径可选时,路由器会几时每条路径的代价(metric),而路由器选取metric小的加入路由表。
网络中路由器会首先比较管理距离,如果管理距离相同,则比较度量值。
选路(路由)
相同目的网络选择
-
AD和Metric是路由选路需要用到的值,如果有两条目的网络相同的路由,那么选择AD值小的走,如果AD值一样,选择Metric小的。
-
下面2个分析说明:
不同网络的路由选择-最长掩码匹配原则
不同网络之间的选路(最长掩码匹配原则)
10.0.0.0/8 [10/100]
10.1.0.0/16 [10/50]
10.1.1.0/24 [50/100]
10.1.1.1/32 [30/10]
如果路由表中,有多条路由能选择把数据送到目的地,那么选择掩码最长的,所以,上面网络中,选择32位掩码的路【掩码位数越大,IP数也少,也就越好确定】
路由的负载均衡
什么是负载均衡?
当一台应用服务器的性能达到极限时,我们可以使用集群这种技术手段来提高网站的整体性能。那么,在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台服务器的负载情况将请求分配给某一台应用服务器去处理。
这个调度者就是负载均衡服务器。
- 负载均衡服务器可以用来实现网站架构的高可用以及伸缩性:
- 高可用:当某个节点故障时,负载均衡器会将用户请求转发到另外的节点上,从而保证所有服务持续可用;
- 伸缩性:根据系统整体负载情况,可以很容易地添加或移除节点。
负载均衡服务器的实现可以分成两个部分:
根据负载均衡算法和Web服务器列表计算得到集群中一台Web服务器的地址
将请求数据发送到该地址对应的Web服务器上
下面分别介绍负载均衡的算法与转发实现这两个部分。
一、负载均衡算法
1. 轮询(Round Robin)
轮询算法把每个请求轮流发送到每个服务器上。
适合于所有服务器硬件都相同的场景。
如下图所示,一共有四个请求(1,2,3,4)按序到达负载均衡调度器,它们会被轮流发给服务器 A 和服务器 B.
但是如果服务器性能差异过大,那么性能较差的服务器可能无法承担过大的负载,如下图的Server B,它只能承受一个请求。
2. 加权轮询(Weighted Round Robbin)
加权轮询是在轮询的基础上,根据服务器的性能差异,为服务器赋予一定的权值,性能高的服务器分配更高的权值。
如下图所示,服务器 A 被赋予的权值为 3,服务器 B 被赋予的权值为 1,那么 (1, 2, 3) 请求会被发送到服务器 A,(4) 请求会被发送到服务器 B。
3. 随机(Random)
把请求随机发送到服务器上。和轮询算法类似,该算法比较适合服务器性能差不多的场景。同样,对于服务器性能有差异的场景,也可以使用加权随机算法。
4. 最少连接(least Connections)
记录每个应用服务器正在处理的连接数(请求数),将新到的请求分发到最少连接的服务器上,应该说,这是最符合负载均衡定义的算法。同样,最少连接算法也可以实现加权最少连接。
如下所示,此时服务器 B 的连接数较少,那么新到达的请求,将会被转发到服务器 B上。
5. 源地址散列(Source Hashing)
根据请求来源的IP地址进行Hash计算,再对应用服务器数量进行取模,得到应用服务器,这样来自同一个IP地址的请求总在同一个服务器上处理,该请求的上下文信息可以存储在这台服务器上,在一个会话周期内重复使用,从而实现会话粘滞(Session 复制)
二、转发实现
1. HTTP 重定向负载均衡
HTTP 重定向负载均衡服务器使用某种负载均衡算法计算得到服务器的 IP 地址之后,将该地址写入 HTTP 重定向报文中,状态码为 302。客户端收到重定向报文之后,需要重新向服务器发起请求。
优点:实现简单。
缺点:
两次请求,访问延迟较高
HTTP 负载均衡器处理能力有限,会限制集群的规模。
实践中使用这种方案进行负载均衡的案例并不多见。
2. DNS 域名解析负载均衡
在 DNS 服务器中配置多个 A 记录,如 : www.mysite.com IN A 114.100.80.1、www.mysite.com IN A 114.100.80.2、www.mysite.com IN A 114.100.80.3。
每次域名解析请求都会根据负载均衡算法计算一个不同的IP地址返回,这样 A 记录中配置的多个服务器就构成一个集群,并可以实现负载均衡。
优点:DNS 能够根据地理位置进行域名解析,返回离用户最近的服务器 IP 地址。
缺点:由于 DNS 具有多级结构,每一级的域名记录都可能被缓存,当下线一台服务器需要修改 DNS 记录时,需要过很长一段时间才能生效。
大型网站总是部分使用 DNS 域名解析, 利用 DNS 做为第一级负载均衡手段,然后在内部使用其它方式做第二级负载均衡。也就是说,域名解析的结果为内部的负载均衡服务器 IP 地址,而不是实际提供Web服务的物理服务器。之后再有这些内部的负载均衡服务器进行负载均衡,将请求发到真实的Web服务器上。
3. 反向代理负载均衡
利用反向代理可以缓存资源,以改善网站性能。
在部署位置上,反向代理服务器处于Web服务器前面(所以可以缓存Web响应,加速访问),这个位置正好也是负载均衡服务器的位置,所以大多数反向代理服务器同时提供负载均衡的功能。
在这种负载均衡转发方式下,客户端不直接请求源服务器,因此源服务器不需要外部 IP 地址,而反向代理需要配置内部和外部两套 IP 地址。
由于反向代理服务器转发请求在HTTP协议层面,因此也叫应用层负载均衡。
优点:与其它功能集成在一起,部署简单。
缺点:所有请求和响应都需要经过反向代理服务器,它可能会成为性能瓶颈。
4. IP负载均衡
在网络层通过修改请求目标地址进行负载均衡。
用户请求数据包到达负载均衡服务器后,负载均衡服务器在操作系统内核进程获取网络数据包,根据负载均衡算法计算源服务器的 IP 地址,并修改请求数据包的目的 IP 地址,最后进行转发。
源服务器返回的响应也需要经过负载均衡服务器,通常是让负载均衡服务器同时作为集群的网关服务器来实现。
优点:在内核进程中进行处理,性能比较高。
缺点:和反向代理一样,所有的请求和响应都经过负载均衡服务器,会成为性能瓶颈。
5. 数据链路层负载均衡
在链路层根据负载均衡算法计算源服务器的 MAC 地址,并修改请求数据包的目的 MAC 地址,并进行转发。
通过配置源服务器的虚拟 IP 地址和负载均衡服务器的 IP 地址一致,从而不需要修改 IP 地址就可以进行转发 。也正因为 IP 地址一样,所以源服务器的响应不需要转发回负载均衡服务器,可以直接转发给客户端,避免了负载均衡服务器的成为瓶颈。
这是一种三角传输模式,被称为直接路由。对于提供下载和视频服务的网站来说,直接路由避免了大量的网络传输数据经过负载均衡服务器。
静态路由配置实验
详细配置看下面这篇博客