路由协议简介
- IGP与EGP**:**
1**、IGP简介**
IGP(Interior Gateway Protocol, 内部节点) 是在一个自治网络内节点之间交换路由信息的协议。 该路由信息可用于 IP 协议或其他网络协议来说明如何传递路径。 互联网被划分为多个领域或自主系统。 一个领域是由一组主机及采用相同路由选择协议的所有路由器组成的集合,并由单一实体管理。
IGP协议包括RIP****、OSPF****、IS-IS****、IGRP****、EIGRP 。
igp****网关分类
内部网关协议可以划分为两类:距离矢量路由协议和链路状态路由协议。
Distance vector routing protocols operate on the principle that distance vectors represent routes based on distance and direction. Distance metrics such as hop count define these measures, with direction indicating the next hop router or output interface. The Bellman-Ford algorithm, commonly used in distance vector routing protocols, accumulates sufficient information to maintain an accurate database of reachable networks. Despite this, the Bellman-Ford algorithm accumulates sufficient information to maintain an accurate database of reachable networks. However, routers are limited in their understanding of the broader network topology due to their reliance on information received from neighboring routers alone.
距离矢量协议适用于以下情形:
-- 网络结构简单、扁平,不需要特殊的分层设计。
-- 管理员没有足够的知识来配置链路状态协议和排查故障。
-- 特定类型的网络拓扑结构,如集中星形(Hub-and-Spoke)网络。
-- 无需关注网络最差情况下的收敛时间。
采用链路状态路由协议的路由器能够收集所有相邻路由器的信息以构建网络的"全面拓扑结构"。在构建的拓扑模型中确定能够到达所有目标网络的最佳路线。(基于该协议会自动发起网络拓扑信息更新机制,在出现变动时会及时同步数据。)
链路状态协议适用于以下情形:
-- 网络进行了分层设计,大型网络通常如此。
-- 管理员对于网络中采用的链路状态路由协议非常熟悉。
-- 网络对收敛速度的要求极高。
2**、EGP简介**
EGP(Exterior Gateway Protocol)是一个在自主系统网络中相邻网关主机之间传递路线信息的关键协议体系。该体系常用于通过英特网实现两台主机间的通信连接,在这一过程中分享彼此拥有的最新的路线数据库以获取最新的网络拓扑学知识以维持最短或最优的通路选择策略其中包含一系列数据项:包括已知的路由器列表、可到达的目标地址以及与每条路径相关的成本度量这些数据项有助于确定最佳可通行路径每隔固定时间间隔(通常设置为120至480秒)每个 router 会向其相邻 router 发送一次更新后的 routing table EGPSeries 2 则是 EGP 系列中的最新版本
外部网关协议负责传输位于非核心相邻位置的网络节点之间的外部网络数据。每个非核心节点会记录与之直接相连的所有网络节点及其相关联设备的信息;然而这些节点并不包含互联网上其他所有节点的相关数据。对于绝大多数EGP,它们仅负责维护其服务所需的所有局域网络或广域网络内的相关信息。这种设计有助于减少过多路由数据在网络内部不必要的流动。为了确保系统的稳定性和高效性,在所有处于非核心位置的网络节点间必须进行定期的路由数据交换
由于GGP协议的核心网关采用了EGP作为非核心传输层协议(TE),而两者均应用于Internet上,在实际应用中必须要实现一种机制使得两种协议之间的数据能够实现互通)。互联网使得任何一个自主(非核心)网络的路由器向其他系统发送一个路由器可达性报告(reachability report)。这些报告至少会被发送至一个核心路由器(core router)。在一个较大的自主网络中,则通常会采用一个中间路由器(middle router)来处理这些到达性报告(reachability report)。
与GGP类似的是EGP(Enhanced Gateway Protocol),它采用了一个查询机制来确定相邻网关并持续地与其邻居交换路由信息以及运行状态数据包(RST)。EGP作为一种基于状态变化的操作协议,在其运作中主要依赖于一个反映当前网关运行状况的状态表,并根据该表中各项的变化执行相应的操作步骤。
3**、IGP与EGP的区别:**
互联网由一系列路由器相互连接构成网络系统。确保数据包能够准确抵达目标主机时,路由器需在其传输路径上进行正确的转发操作。将数据按照预设路径传输的过程称为路由控制或路由转发。通过其内部配置的路由控制表(Routing Table),路由器执行数据包转发任务。基于接收到的数据包中包含的目标主机IP地址与当前路由控制表的信息对比结果来确定下一步应传递给哪个路由器。因此,在此过程中,任何错误都会导致目标主机无法接收数据。
路由协议主要包含两大类:一类是外部接口控制网络(EGN),另一类是内部接口控制网络(IGI)。
IP地址划分为网络段和主机段。EGP与IGP之间的关系类似于IP地址的划分。EGP相当于IP的网络段,在区域间或ISP之间可进行路由决策;而IGP相当于IPv4的主机段,在区域内部或ISP内部则用于识别对应的主机。
由此可见,在网络路径协议中,路由协议被划分为EGP(扩展型广域网路径规划)和IGP(增强型广域网路径规划)两个层次。缺少EGP,则全球范围内各组织之间的通信就无法实现;同样地,在缺乏IGP机构内部支持的情况下,则无法展开正常的通信过程。
IGP中还可能使用RIP,RIP2,OSPF等众多协议 ,EGP使用的是BGP协议。
- AS**:**
Autonomous System (AS) represents a self-governing entity within the internet. A small autonomous system, or AS, is an entity capable of autonomously selecting routing protocols tailored to its needs. It typically comprises a single, well-defined network segment managed by a single administrative entity, such as a university, corporate, or individual organization.
该自治系统将负责分配一个全球独一无二的16位号码;通常将其称为自治系统号(ASN)。
- routed****命令
routed即为一个在POSIX计算机系统中使用UDP消息实现RIP协议并被广泛应用于各个领域的程序。该程序本质上是一个独立运行的软件,在运行于主机系统中时会调用icoctl()函数来获取最新的网络路由信息并及时更新本地路由表。
该程序可在指定选项下正常工作:当使用-s选项时,在服务器模式下运行;使用-q选项时,在静默模式下运行。
这两种运行方式均监听广播消息;然而仅当处于服务器角色时才会发布本机信息。
一般情况下,默认情况下会将多接口设备分配为服务提供者角色。
当未指定任何参数时,则配置方式如下:若只有一个网络接口,则采用静默模式;若有多于一个网络接口,则采用服务者角色运作。
该程序会将探测到的有效路径信息录入内核中的路由数据库。
为了确保系统稳定性和数据完整性,则建议每4分钟一次进行一次路由检查;若未能及时完成此操作则可能导致系统异常停止或数据丢失情况出现。
不过,在安装了route命令之后使用的静态路由情况下,routed也能了解已有的路由信息,也不会删除它们。 为了调试路由情况,routed -t这个选项能够让rout
ed处于前台运行状态,并将发送或接收的数据包都直接输出到屏幕上。 通常情况下,rout
ed能够动态地发现并收集路由信息,无需配置设置。然而,如果网络中存在连接到互联网或其他自治系统中的网关节点,则必须采取特别措施使
routed能够与这些链路协同工作。
如果只有一个出口网关的话,只需指定--global选项就能将该网关公告为全局默认路由,这与其在单机上设置默认路由的做法相似。
routed还配备了一个配置文件/etc/gateways。这个文件的主要作用是提供网关的静态信息,并将这些信息提前存储到routed的路由表中。
命令格式:
route --face -f --prefix -p Argument Destination mask Netmask Router Number Iface
命令功能:
该命令的作用在于操作内核IP路由表。其主要功能是建立静态路由路径供特定主机或网络通过指定的网络接口访问。例如,在以eth0接口为例时,请注意:当采用(add)或(del)参数时,则会更新该路由表的状态;若无相关参数,则会展示当前的路由表信息。
命令参数:
-c 显示更多信息
-n 不解析名字
-v 显示详细的处理信息
-F 显示发送信息
-C 显示路由缓存
-f 清除所有网关入口的路由表。
-p 与 add 命令一起使用时使路由具有永久性。
add:添加一条新路由。
del:删除一条路由。
-net:目标地址是一个网络。
-host:目标地址是一个主机。
netmask:当添加一个网络路由时,需要使用网络掩码。
gw:路由数据包通过网关。注意,你指定的网关必须能够达到。
metric:设置路由跳数。
例:
[xxx@xxxx XXX]$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric ref Use Iface
10.6.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond0
169.254.0.0 0.0.0.0 255.255.0.0 U 1006 0 0 bond0
0.0.0.0 10.6.0.1 0.0.0.0 UG 0 0 0 bond0
Flags标志说明:
U Up表示此路由当前为启动状态
H Host,表示此网关为一主机
G Gateway,表示此网关为一路由器
R Reinstate Route,使用动态路由重新初始化的路由
D Dynamically,此路由是动态性地写入
M Modified,此路由是由路由守护程序或导向器动态修改
! 表示此路由当前为关闭状态
- RIP****协议报文格式,字段含义
RIP消息:分为两种,一种是RIP请求消息,一种是RIP响应消息
RIP协议版本:目前2个协议版本,分别为RIP-1和RIP-2(RIP Version 2 ,RIPv2)
RIP-1报文格式如下:(一个RIP报文最多携带25条路由)

Command: Response (2) #命令:1为RIP请求信息;2为RIP响应信息
Version: RIPv1 (1) #版本:使用RIPv1版本
地址家族:IP (2) #协议簇, 该字段占用4个字节。
依据TCP/IP 协议簇的标准, 该字段的取值规定为2.
IP Address: 192.168.0.0 #路由项的目的网络地址
Metric: 1 #跳数
RIPv2****报文格式如下:

【Route Tag】:用于标记外部路由或者路由引入到RIPv2协议中的路由。
【 Subnet Mask】:用来标识使用IPv4地址的网络和子网部分
【NextHop】:下一跳IP地址
- ICMP****重定向错误的处理流程
当路由器发现一台机器未采用优化路由时,它会向该主机发送一个ICMPredirect包,请求主机改变路由.路由器也会将初始数据包转发到其目的地.
虽然ICMP并非专门用于路由数据包传输的目的设计(Routenumbering),但也偶尔也能用来引导数据包前往正确的网络接口(destination)。该协议通过将响应返回给源计算机并将其标记为类型5、代码0的数据包(Routenumbers)来完成这一目标(见附图)。
重定向报文的处理
主机与路由器在处理重定向报文时采取了不同的策略。
通常情况下,路由器不会处理ICMPredirect报文。而当主机接收到此类报文时,则取决于其操作系统是否进行相关处理。以Windows为例,在收到网关返回的ICMPredirect信息后,默认情况下会将该主机加入路由表中的列表,并将所有后续的数据包直接转发至指定的路由器上。支持此类功能的还有许多Unix系统版本(如FreeBSD),这类系统在接收到ICMPredirect信息后通常会增加该主机到路由表中并进行转发操作。然而需要注意的是,默认修改默认网关并非明智之举。
另一方面,在某些操作系统中(如Sun公司的一些版本),即使接收到ICMPredirect信息也会选择性地丢弃这些数据包(尽管它们依然会被网络层重新发送出去)。此外还有一些特殊的主机配置(如FreeBSD某些版本及Win32系统)能够启用路由器功能,在这种情况下主机的行为会更加复杂:当接收到ICMPredirect信息时会根据特定条件决定是否对其进行处理。例如,在BSD系统中就规定了若要接收此类信息则必须满足"不能由自身作为网关"这一条件
ICMP****重定向的利与弊
ICMP****重定向的避免与消除
针对上述ICMP引致的问题, 我们可以通过采取一些措施来规避或缓解. 讨论的基础前提是不破坏网络架构.
关闭IPredirect功能
在路由器设置中移除ICMPredirect功能项。这样,在启动HSRP或VRRP服务时将不再发送ICMPredirect报文。
这相当于设置了一台备用路由器。
不再发送ICMPredirect报文。
启动时若配置了HSRP或VRRP服务,则会关闭该功能。
这个方案看似彻底解决问题,
但仅针对ICMPredirect报文,
保障了主机的安全性和负载平衡,
不会显著影响网络的整体流量水平。
不同掩码长度子网划分
使用子接口来改变ICMP重定向条件。
采用访问控制列表(ACL)进行网络流量管理,在输出接口上配置ACL规则以实现报文筛选功能。通过这种方式,在实际应用中能够有效减少不必要的网络流量传输量的同时保障系统设备的安全运行,并降低设备负载压力。然而需要注意的是这种配置会占用路由器的处理资源
代理ARP
采用代理 ARP 的方式较为简单直接。为了实现这一目的,在 RT1 上启动了代理 ARP 机制,并要求其将所有来自主机发送出去的 ARP 请求转发至 Net gateway RT2 端口处等待响应。当 RT1 接收到主机发送的 ARP 请求时(即生成包含目标 IP 地址及对应 MAC 地址的信息),该网络接口将返回对应的 MAC 地址信息给主机设备。这种方式实际上等同于更改了主设备的默认网关设置,并使所有经过的数据流量都将被转发至 RT2 端口处进行处理。这可能会对原有业务产生不利影响;因此这种方法并不推荐采用。
