路由器(Router)
什么是路由器?

官方定义:连接两个或多个网络的硬件设备,在网络间起网关的作用,读取每一个数据包中的地址然后决定如何传送的专用智能性的网络设备。通常是一个计算机,它能够理解不同的协议,例如某个局域网使用的以太协议,因特网使用的TCP/IP协议。这样,路由器可以分析各种不同类型网络传来的数据包的目的地址,把非TCP/IP网络的地址转换成TCP/IP地址,或者反之;再根据选定的路由算法把各数据包按最佳路线传送到指定位置。所以路由器可以把非TCP/ IP网络连接到因特网上。

网关(Gateway)

官方定义:网关又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。

个人理解:网关是每个子网的大门,每个子网内的设备通过二层交换机互联,当子网中的设备想要和另外一个子网中的设备通信时(网间通信),就要通过路由器来连接,此时需要将数据包发给一个指定IP,这个IP地址就充当该子网内的“邮局”,由它将这个数据包发往目的地。所以,路由器上每个接口都要设置一个IP地址,这些IP地址不可以是同一网段下的IP地址(IP地址网络位不可以相同),这些IP地址就充当网关的角色。通常将每个网段的第一个主机位和最后一个主机位设置为网关地址。
家用的路由器在设置时需要在浏览器的地址栏输入“192.168.1.1”,这个地址就是家用路由器的网关,由于我们家用的路由器只有一个接口(WAN,下图蓝色接口),所以只能设置一个网关,其他的接口全部属于二层交换机级别的接口(LAN,下图黄色接口)。也就是说家用路由器都内置了一个二层交换机。

RouterInterface

图片来自网络


IP路由基础
前言

以太网交换机工作在数据链路层,用于在网络内进行数据转发。而企业网络的拓扑结构一般会比较复杂,不同的部门,或者总部和分支可能处在不同的网络中,此时就需要使用路由器来连接不同的网络,实现网络之间的数据转发。

自治系统(AS)

由同一个管理机构管理、使用统一路由策略的路由器的集合。
一般地我们可以把一个企业网络认为是一个自治系统AS(Autonomous System)。根据RFC1030的定义,自治系统是由一个单一实体管辖的网络,这个实体可以是一个互联网服务提供商,或一个大型组织机构。自治系统内部遵循一个单一且明确的路由策略。最初,自治系统内部只考虑运行单个路由协议;然而,随着网络的发展,一个自治系统内现在也可以支持同时运行多种路由协议。

局域网(LAN)和广播域

一个AS通常由多个不同的局域网组成。以企业网络为例,各个部门可以属于不同的局域网,或者各个分支机构和总部也可以属于不同的局域网。局域网内的主机可以通过交换机来实现相互通信。不同局域网之间的主机要想相互通信,可以通过路由器来实现。路由器工作在网络层,隔离了广播域,并可以作为每个局域网的网关,发现到达目的网络的最优路径,最终实现报文在不同网络间的转发。
此例中,RTA和RTB把整个网络分成了三个不同的局域网,每个局域网为一个广播域。LAN1内部的主机直接可以通过交换机实现相互通信,LAN2内部的主机之间也是如此。但是,LAN1内部的主机与LAN2内部的主机之间则必须要通过路由器才能实现相互通信。

LANimg

图片


路由选路

路由器收到数据包后,会根据数据包中的目的IP地址选择一条最优的路径,并将数据包转发到下一个路由器,路径上最后的路由器负责将数据包送交目的主机。数据包在网络上的传输就好像是体育运动中的接力赛一样,每一个路由器负责将数据包按照最优的路径向下一跳路由器进行转发,通过多个路由器一站一站的接力,最终将数据包通过最优路径转发到目的地。当然有时候由于实施了一些特别的路由策略,数据包通过的路径可能并不一定是最佳的。
路由器能够决定数据报文的转发路径。如果有多条路径可以到达目的地,则路由器会通过进行计算来决定最佳下一跳。计算的原则会随实际使用的路由协议不同而不同。

三种选路原则
1. 匹配掩码最长
2. 匹配优先级最高
3. 匹配路由度量最低

RoutingRoutingImg

图片


下一跳

路由的下一个点。如果路由器没有直接连接到目的网络,它会有一个提供下一跳路由的邻居路由器,用来传递数据到目的地。

IP路由表

路由器转发数据包的关键是路由表。每个路由器中都保存着一张路由表,表中每条路由表项都指明了数据包要到达某网络或某主机应通过路由器的哪个物理接口发送,以及可到达该路径的哪个下一跳路由器,或者不再经过别的路由器而直接可以到达目的地。
路由表中包含了下列关键项:
目的地址(Destination):用来标识IP数据包的目的地址或目的网络。
网络掩码(Mask):同样,在路由表中网络掩码也具有重要的意义。IP地址和网络掩码进行“逻辑与”便可得到相应的网段信息。如本例中:目的地址为8.0.0.0,掩码为255.0.0.0,相与后便可得到一个A类的网段信息(8.0.0.0/8)。网络掩码的另一个作用还表现在当路由表中有多条目的地址相同的路由信息时,路由器将选择其掩码最长的一项作为匹配项。
输出接口(Interface):指明IP数据包将从该路由器的哪个接口转发出去。
下一跳IP地址(NextHop):指明IP数据包所经由的下一跳路由器的接口地址。

IP-Route-Table

图片


最长匹配原则

路由器在转发数据时,需要选择路由表中的最优路由。当数据报文到达路由器时,路由器首先提取出报文的目的IP地址,然后查找路由表,将报文的目的IP地址与路由表中某表项的掩码字段做“与”操作,“与”操作后的结果跟路由表该表项的目的IP地址比较,相同则匹配上,否则就没有匹配上。当与所有的路由表项都进行匹配后,路由器会选择一个掩码最长的匹配项。 如图所示,路由表中有两个表项到达目的网段10.1.1.0,下一跳地址都是20.1.1.2。如果要将报文转发至网段10.1.1.1,则10.1.1.0/30符合最长匹配原则。

LongestMatching-Img

图片


路由优先级

路由器可以通过多种不同协议学习到去往同一目的网络的路由,当这些路由都符合最长匹配原则时,必须决定哪个路由优先。
每个路由协议都有一个协议优先级(取值越小优先级越高)。当有多个路由信息时,选择最高优先级的路由作为最佳路由。
如图所示,路由器通过两种路由协议学习到了网段10.1.1.0的路由。虽然RIP协议提供了一条看起来更加近的路线,但是由于OSPF具有更高的优先级,因而成为优选路由,并被加入路由表中。

RoutingPriority-img

图片


路由度量

如果路由器无法用优先级来判断最优路由,则使用度量值(metric)来决定需要加入路由表的路由。
一些常用的度量值有:跳数,带宽,时延,代价,负载,可靠性等。
跳数是指到达目的地所通过的路由器数目。
带宽是指链路的容量,高速链路开销(度量值)较小。
metric值越小,路由越优先;因此,图示中metric=1+1=2的路由是到达目的地的最优路由,其表项可以在路由表中找到。

RoutingMetrics-img

图片


路由器转发数据包

路由器收到一个数据包后,会检查其目的IP地址,然后查找路由表。查找到匹配的路由表项之后,路由器会根据该表项所指示的出接口信息和下一跳信息将数据包转发出去。

RouterForwardingPackets-img

图片


路由器基础命令(华为模拟器)
< Huawei > system-view ———— 开启系统权限
[ Huawei ] sysname RT1 ———— 修改名称
[ RT1 ] undo info-center enable ———— 关掉设备信息提示
[ RT1 ] interface GigabitEthernet0/0/1 ———— 进入G0/0/1端口(G为千兆端口,E为百兆端口)
[ RT1-GigabitEthernet0/0/1 ] ip address 192.168.1.1 24 ———— 为该端口配置网关地址为“192.168.1.1”,掩码为24
[ RT1-GigabitEthernet0/0/1 ] display  ip interface brief ———— 查看接口简要配置信息
[ RT1-GigabitEthernet0/0/1 ] quit ———— 退出当前端口
[ RT1 ] ip route-static 192.168.1.0 24 10.1.1.1 ———— 添加静态路由信息,“192.168.1.0”为目的网络,“24”为目的网络的掩码,“10.1.1.1”是下一跳
[ RT1 ] display ip routing-table ———— 查看路由表

RouterCommandLineDemonstration-img

图片来自华为模拟器截图



萤火小屋分享世界