路由相关
-
- [1. 路由(Routing)](#1. 路由(Routing))
-
- [1.1 直连路由](#1.1 直连路由)
- [1.2 静态路由](#1.2 静态路由)
- [1.3 默认路由](#1.3 默认路由)
- [1.4 动态路由](#1.4 动态路由)
- [2. 路由器(AR)](#2. 路由器(AR))
-
- [2.1 路由器的工作原理](#2.1 路由器的工作原理)
- [2.1 路由器转发数据包的过程](#2.1 路由器转发数据包的过程)
- [3. linux中的路由相关操作](#3. linux中的路由相关操作)
-
- [3.1 route](#3.1 route)
-
- [1. 查看路由表](#1. 查看路由表)
- [2. 三种路由类型说明](#2. 三种路由类型说明)
- [3. 配置路由route的命令](#3. 配置路由route的命令)
- [4. 设置包转发](#4. 设置包转发)
- [3.2 ip route](#3.2 ip route)
1. 路由(Routing)
- 路由 :路由是网络层的功能,负责将数据包从源地址传输到目的地址。这一过程涉及在OSI参考模型的第三层上工作,即网络层。路由器根据数据包中的网络层地址(如IP地址)和路由器内部维护的路由表,决定数据包转发的路径。
-
路由的工作原理
:路由器通过动态维护路由表来反映当前的网络拓扑,并与网络上的其他路由器交换路由和链路信息以维护这个路由表。当数据包到达路由器时,路由器会查看数据包的目的地地址,并与路由表中的条目进行匹配,以决定下一步的转发动作。 -
路由的应用场景
:路由器能够连接不同类型的网络,如以太网、ATM网、FDDI网、令牌环网等,并能够在不同网络之间进行帧格式转换。此外,路由器还负责在网络中执行路由协议,如OSPF(开放最短路径优先)和BGP(边界网关协议),以找到数据包从源到目的地的最优路径。
-
路由是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程。路由通常与桥接来对比,在粗心的人看来,它们似乎完成的是同样的事。它们的主要区别在于桥接发生在OSI参考模型的第二层(数据链路层),而路由发生在第三层(网络层)。这一区别使二者在传递信息的过程中使用不同的信息,从而以不同的方式来完成其任务。
- 路由表(routing table)或称路由择域信息库(RIB, Routing Information Base),是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库。路由表存储着指向特定网络地址的路径(在有些情况下,还记录有路径的路由度量值)。路由表中含有网络周边的拓扑信息。路由表建立的主要目标是为了实现路由协议和静态路由选择。
- 路由器:能够将数据包转发到正确的目的地,并在转发过程中选择最佳路径的设备
- 直连路由:路由器接口所连接的子网的路由方式称为直连路由;直连路由是由链路层协议发现的,一般指去往路由器的接口地址所在网段的路径,该路径信息不需要网络管理员维护,也不需要路由器通过某种算法进行计算获得,只要该接口处于活动状态(Active),路由器就会把通向该网段的路由信息填写到路由表中去,直连路由无法使路由器获取与其不直接相连的路由信息。
- 非直连路由 :通过路由协议从别的路由器学到的路由称为非直连路由;分为静态路由和动态路由;
静态路由
(英语:Static routing)是一种路由的方式,路由项(routing entry)由手动配置,而非动态决定。与动态路由不同,静态路由是固定的,不会改变,即使网络状况已经改变或是重新被组态。一般来说,静态路由是由网络管理员逐项加入路由表。静态路由是由网络规划者根据网络拓扑,使用命令在路由器上配置的路由信息,这些静态路由信息指导报文发送,静态路由方式也不需要路由器进行计算,但是它完全依赖于网络规划者,当网络规模较大或网络拓扑经常发生改变时,网络管理员需要做的工作将会非常复杂并且容易产生错误。- 浮动静态路由:路由表中存在相同目标网络的路由条目时,根据路由条目优先级的高低,将请求转发到相应端口;链路冗余的作用;
动态路由
(Dynamic routing)是指路由器能够自动地建立自己的路由表,并且能够根据实际情况的变化适时地进行调整。动态路由的方式使路由器能够按照特定的算法自动计算新的路由信息,适应网络拓扑结构的变化。如我们经常用于自治系统(AS:Autonomous System)内部网关协议有开放式最短路径优先(OSPF:Open Shortest Path First)协议和寻路信息协议(RIP:Routing Information Protocol)。
- 默认路由(Default route),是对IP数据包中的目的地址找不到存在的其他路由时,路由器所选择的路由。目的地不在路由器的路由表里的所有数据包都会使用默认路由。这条路由一般会连去另一个路由器,而这个路由器也同样处理数据包: 如果知道应该怎么路由这个数据包,则数据包会被转发到已知的路由;否则,数据包会被转发到默认路由,从而到达另一个路由器。每次转发,路由都增加了一跳的距离。
1.1 直连路由
直连经常用在一个三层交换机连接几个VLAN时,通过设置直连VLAN间就能够直接通信而不需要设置其他路由方式了。如:一个三层交换机划分两个VLAN,VLAN1中有以PC1,地址为192.168.1.11/24,VLAN2有PC2,地址为192.168.2.12/24;假如它们两个不同VLAN间想通信,因为VLAN1,VLAN2都是与三层交换机直连,所以它们之间可以直接通信,而不需要设置其他路由协议。
例如,我们在公司访问不同网段的服务器,可以直接访问,一般情况下,不需要设置路由
三层交换机就是具有部分路由器功能的交换机,工作在OSI网络标准模型的第三层:网络层。三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。对于数据包转发等规律性的过程由硬件高速实现,而像路由信息更新、路由表维护、路由计算、路由确定等功能,由软件实现。
三层交换机和二层交换机的主要区别在于它们在OSI网络模型中的工作层次不同。以下是三层交换机和二层交换机的区别:
- 工作层次不同。二层交换机主要工作在OSI模型的第二层,即数据链路层,它根据数据包的目的MAC地址进行转发;三层交换机工作在OSI模型的第三层,即网络层,它不仅可以根据MAC地址转发数据包,还能根据IP地址进行路由选择。
- 路由功能不同。二层交换机不具备路由功能,它只能进行同一VLAN内的数据转发;三层交换机具备路由功能,可以实现不同VLAN间的数据互通。
- 应用场景不同。二层交换机通常用于网络的接入层和汇聚层,主要用于提高局域网内的数据传输效率;三层交换机通常用于网络的核心层,主要负责不同网络段之间的数据路由。
1.2 静态路由
图中,路由器R1
和R2
通过接口0
和1
所配置的IP地址和子网掩码,可自动得到每个接口所在的网络。同时,接口与网络直连,属于直接交付。R1,R2最基本的路由表如下表所示。
R1的路由表 | - | - |
---|---|---|
目的网络 | 下一跳 | 类型 |
192.168.1.0/24 | 接口0 | 直连 |
10.0.0.0/30 | 接口1 | 直连 |
R2的路由表 | - | - |
---|---|---|
目的网络 | 下一跳 | 类型 |
10.0.0.0/30 | 接口0 | 直连 |
192.168.2.0/24 | 接口1 | 直连 |
假设网络子网1
中的主机A 向子网3
中的主机B发送数据报,从图中可以看出,数据报的转发顺序为:
主机A -> R1接口0 -> R1接口1 -> R2接口0 -> R2接口1 -> 主机B。
可是R1 现有的路由表中并没有关于子网3的路由条目,即R1并不知道目的网络的存在。
因此,我们可以给路由器R1
添加一条到达子网3
的路由条目,如下表所示。
R1的路由表 | - | - |
---|---|---|
目的网络 | 下一跳 | 类型 |
192.168.1.0/24 | 接口0 | 直连 |
10.0.0.0/30 | 接口1 | 直连 |
192.168.2.0/24 | 10.0.0.2 | 静态 |
这样,子网1中的主机就可以将数据报发送至子网3的主机。 同理,若想子网3中的主机能向子网1中的主机发送数据报,则路由器R2的路由表应配置为如下所示。
R2的路由表 | - | - |
---|---|---|
目的网络 | 下一跳 | 类型 |
10.0.0.0/30 | 接口0 | 直连 |
192.168.2.254/24 | 接口1 | 直连 |
192.168.1.0/24 | 10.0.0.1 | 静态 |
本案例简单讲解了静态路由的基本使用,但在实际的使用环境中,网络错综复杂,如果仅仅依靠人工给路由器添加针对这些网络的每一条路由条目,一方面不符合实际需求,另一方面会使得路由器的路由表非常庞大,降低查表转发速度,因此我们引入了默认路由的概念。
1.3 默认路由
在前面示例的基础上,让路由器R2接入因特网,如下图所示。
假设子网1中的主机A向因特网发送数据报,从图中可以看出,数据报的转发顺序为:
主机A -> R1接口0 -> R1接口1 -> R2接口0 -> R2接口3 -> 因特网的某个主机
正如案例1中总结,如果我们在路由器R1中逐个添加通往因特网的路由条目,一方面不符合实际需求,另一方面会使得路由器的路由表非常庞大,降低查表转发速度,因此我们可以通过添加默认路由解决这一问题。
默认路由条目 用于替代具有相同下一跳的不同目的网络 的路由条目,默认路由条目的目的网络为0.0.0.0
,地址掩码为0.0.0.0
,因此R1的路由表可配置为如下所示。
R1的路由表 | - | - |
---|---|---|
目的网络 | 下一跳 | 类型 |
192.168.1.0/24 | 接口0 | 直连 |
10.0.0.0/30 | 接口1 | 直连 |
192.168.2.0/24 | 10.0.0.2 | 静态 |
0.0.0.0/0 | 10.0.0.2 | 静态 |
我们可以发现如果我们从子网1发送数据报到子网3,数据报既可以走目的网络为192.168.2.0/24的路由条目,也可以走目的网络为0.0.0.0/0的默认路由条目,那数据报到底会走哪一条路由条目呢?
由于192.168.2.0/24的网络前缀更长,所以路由也就更具体。而默认路由的网络前缀较短,路由也就更模糊, 因此当路由器查表转发IP数据报时,若有多条路由条目可选,通常会采用最长前缀匹配原则,选择目的网络前缀最长的那条路由条目进行转发 。所以如果子网1的主机向子网3的主机发送数据报,会走192.168.2.0/24这一路由条目。
1.4 动态路由
参考 https://cloud.tencent.com/developer/article/2233363,写的很好很详细
- 动态路由的工作原理
- 路由器的接口接收或者发送路由消息
- 路由消息通过动态路由协议发送到其他路由器
- 发消息的路由器与其他路由器共享路由消息
- 拓扑变化时,该路由协议会成为路由器与路由器之间通信的桥梁
在动态路由中,路由条目是由路由算法自动生成的,路由表会定期更新,因此,如果发生任何变化,新的路由表将根据它们形成。
2. 路由器(AR)
参考 https://blog.csdn.net/liu_xueyin/article/details/133887479
路由器是什么?
-
路由器:路由器是工作在网路层的设备(准确的说是三层路由器),主要作用就是根据查路由表选择最佳路径转发数据包
-
网关:网关的作用就是转发,是一个具体的地址,是网段中距离路由器最近的接口,是处在网络设备上的,网关的地址一般是网段中的第一个或者是最后一个地址,只是大家习惯这么设置。
路由表的形成
- 直连网段:路由器各个接口在配置ip地址的时候,路由器会自动将接口的网段加入路由表;
- 非直连网段:没有连接到路由器的网段称为非直连网段,对此:
- 手动配置:静态路由,人工维护路由表,配置时只能单向配置,如果要实现ping通信需要双向配置,不灵活,需要直到所有的网段才可以;
- 动态路由:路由器将直连网段记录在路由表中,然后把路由表以报文的形式传输给其他相连接的路由器,路由器会相互学习,最终能够获取整个网络中的路由表
AR路由器,意味着具备高级路由功能的路由器。"AR"是"Advanced Routing"(高级路由)的缩写。"AR路由器"相比普通路由器,提供了更强大的处理能力、更高的带宽容量、更复杂的路由算法和策略,以及更灵活的配置选项。常用于大型企业网络、数据中心、互联网服务提供商等对网络性能和可靠性要求较高的环境中。
2.1 路由器的工作原理
路由器的工作原理就是根据查询路由表,选择最佳路径,正确转发数据包
- pc1想要给pc2发送消息,通过pc1的子网掩码与pc2的ip地址相与,发现pc1与pc2不在同一网段,那么只能通过网关,所以pc1会发送ARP广播请求获取网关的mac地址,然后封装成数据帧发送给路由器AR1;(目标ip地址与源子网掩码相与判断是否在一个网段!)
- 路由器AR1接收到数据帧会进行拆包,发现这个是给到pc2的数据包,查找路由表发现到pc2的网段接口是C,所以封装数据帧,从C转发给到路由器AR2;(拆包---查路由表---封装转发)
- 路由器AR2收到数据帧后再次进行拆包,发现这是给pc2的数据,查询路由表,可以直接通过接口E转发给pc2
如果是没有找到目标ip地址,那么会从默认路由转发,或者发送一个出错ICMP报文反馈给pc1,表明目标地址不可达(也就是TYPE 3,CODE 1)
2.1 路由器转发数据包的过程
路由器转发数据包的过程主要涉及以下几个步骤:
- 接收数据包。路由器首先接收到数据包,这通常发生在数据包从源主机传输到目标主机的路径上。
- 解析数据包。路由器解释并处理数据包的链路层协议报头,进行数据的完整性验证,如CRC校验和帧长度检查。
- 查找路由表。路由器查看数据包的目标IP地址,并在路由表中查找匹配的条目。路由表包含目的网络地址和到达这些网络的最佳路径(下一跳路由器的地址)。
- 转发数据包。路由器根据路由表中的信息,将数据包从相应的端口转发出去。如果目标地址不在本网段,数据包会被转发到下一跳路由器。
- ARP解析。在数据包转发过程中,如果需要了解下一跳路由器的MAC地址,路由器会进行ARP广播来解析。
- 封装数据包。路由器在转发数据包时,会封装上相应的链路层包头。
- TTL递减和校验和计算。IP数据包头的TTL(Time To Live,生存时间)域开始减数,并重新计算校验和。
这个过程涉及多个路由器之间的协作,每个路由器都根据其路由表中的信息将数据包转发到下一个路由器,直到数据包到达目的地网络。
比如:
3. linux中的路由相关操作
3.1 route
route命令用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由,但需要注意,大部分命令添加或修改的路由都是临时的。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。
注意centos中默认未安装该工具,需要手动安装
net-tools
,而ubuntu中默认已安装
bash
yum install -y net-tools
bash
NAME
route - show / manipulate the IP routing table
SYNOPSIS
route [-CFvnNee] [-A family |-4|-6]
route [-v] [-A family |-4|-6] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I] [reject] [mod] [dyn] [reinstate] [[dev] If]
route [-v] [-A family |-4|-6] del [-net|-host] target [gw Gw] [netmask Nm] [metric N] [[dev] If]
route [-V] [--version] [-h] [--help]
NOTE
This program is obsolete. For replacement check ip route.
1. 查看路由表
查看linux内核路由表
route -n
-n :不要使用通讯协定或主机名称,直接使用 IP 或 port number;
-ee :使用更详细的资讯来显示
bash
[root@k8s-node-01 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.81.1 0.0.0.0 UG 100 0 0 ens33
0.0.0.0 192.168.17.1 0.0.0.0 UG 101 0 0 ens34
192.168.17.0 0.0.0.0 255.255.255.0 U 101 0 0 ens34
192.168.81.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface MSS Window irtt
0.0.0.0 192.168.81.1 0.0.0.0 UG 100 0 0 ens33 0 0 0
0.0.0.0 192.168.17.1 0.0.0.0 UG 101 0 0 ens34 0 0 0
192.168.17.0 0.0.0.0 255.255.255.0 U 101 0 0 ens34 0 0 0
192.168.81.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33 0 0 0
route命令输出的路由表字段含义如下:
字段 | 含义 |
---|---|
Destination | 目标网络或目标主机(本机的数据要发送的目的地:子网或主机),与Genmask组成一个网段。 |
Gateway | 网关(如果是默认网关,网关的地址必须和自己的主机上的其中一块网卡在同一子网)即网关地址。如果没有就显示星号,表示目标网关是本机所属网络,不需要路由 |
Genmask | 网络掩码,如果目标网络的的子网掩码为255.255.255.255,说明目标是一台主机;如果子网掩码为'0.0.0.0' 说明该路由是默认路由。 |
Flags (旗标) | U (route is up):该路由是启动的; H (target is a host):目标是一部主机 (IP) 而非网段; G (use gateway):路由指向网关,需要透过外部的主机 (gateway) 来转递封包(该行有gw); R (reinstate route for dynamic routing):使用动态路由时,恢复路由资讯的旗标; D (dynamically installed by daemon or redirect):已经由服务或转 port 功能设定为动态路由 M (modified from routing daemon or redirect):路由已经被修改; ! (reject route):这个路由将不会被接受(用来抵挡不安全的网域!) A (installed by addrconf) C (cache entry) |
Metric | 距离、跳数。暂无用。与目标的"距离"(通常以跳数计算)。它不被最近的内核使用,但可能需要路由守护进程。 |
Ref | 对这条路线的引用次数(Linux内核已不再使用)。 |
Use | 该路由被使用的次数,可以粗略估计通向指定网络地址的网络流量。 路线查询次数。根据-F和-C的使用,这将是路由高速缓存丢失(-F)或命中(-C)。 |
Iface 接口 | 即eth0,eth1等网络接口名,为此路由发送数据包的接口。 |
由上面的路由排列顺序,依序是由小网域------逐渐到大网域------最后则是预设路由 (0.0.0.0/0.0.0.0)。当要判断某个网路封包应该如何传送的时候,该封包会经由这个路由的过程来判断
2. 三种路由类型说明
- 主机路由
主机路由是路由选择表中指向单个IP地址或主机名的路由记录 。主机路由的Flags
字段为H
。例如,在下面的示例中,本地主机通过网关192.168.1.1
的路由器到达IP地址为10.0.0.10
的主机。
bash
Destination Gateway Genmask Flags Metric Ref Use Iface
----------- ------- ------- ----- ------ --- --- -----
10.0.0.10 192.168.1.1 255.255.255.255 UH 0 0 0 eth0
- 网络路由
网络路由是代表主机可以到达的网络 。网络路由的Flags
字段为N
。例如,在下面的示例中,本地主机将发送到网络192.19.12
的数据包转发到IP地址为192.168.1.1
的路由器。
bash
Destination Gateway Genmask Flags Metric Ref Use Iface
----------- ------- ------- ----- ----- --- --- -----
192.19.12 192.168.1.1 255.255.255.0 UN 0 0 0 eth0
这里帮助文档里并没有字段N
,很奇怪哦
bash
Flags Possible flags include
U (route is up)
H (target is a host)
G (use gateway)
R (reinstate route for dynamic routing)
D (dynamically installed by daemon or redirect)
M (modified from routing daemon or redirect)
A (installed by addrconf)
C (cache entry)
! (reject route)
- 默认路由
当主机不能在路由表中查找到目标主机的IP地址或网络路由时,数据包就被发送到默认路由(默认网关)上 。默认路由的Flags
字段为G
。例如,在下面的示例中,默认路由是IP地址为192.168.1.1的路由器
bash
Destination Gateway Genmask Flags Metric Ref Use Iface
----------- ------- ------- ----- ------ --- --- -----
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
3. 配置路由route的命令
设置和查看路由表都可以用 route 命令,设置内核路由表的命令格式是:
bash
route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
参数 | 说明 |
---|---|
add | 添加一条路由规则 |
del | 删除一条路由规则 |
-net | 目的地址是一个网络 |
-host | 目的地址是一个主机 |
target | 目的网络或主机 |
netmask | 目的地址的网络掩码 |
gw | 路由数据包通过的网关 |
dev | 为路由指定的网络接口 |
- 添加到主机的路由
bash
route add -host 192.168.1.2 dev eth0:0
route add -host 10.20.30.148 gw 10.20.30.40
要永久生效的话要这样做
bash
echo "any host 192.168.2.2 gw 192.168.2.254 " >>/etc/sysconfig/static-routes
注:Linux 默认没有这个文件 ,得手动创建一个
- 添加到网络的路由
bash
#增加一条到达10.20.30.40的路由,子网掩码255.255.255.248划分子网最小的掩网,
#表示你只在一个网址的网段内可参见子网的划分,下一跳地址10.20.30.41。
route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
route add -net 10.20.30.40 netmask 255.255.255.248 eth0
route add -net 192.168.1.0/24 eth1
要永久生效的话要这样做
bash
echo "any net 192.168.2.0/24 gw 192.168.2.254" >>/etc/sysconfig/static-routes
- 添加默认路由
bash
route add default gw 192.168.1.1 //默认只在内存中生效
开机自启动可以追加到`/etc/rc.local`文件里
bash
echo "route add default gw 10.0.0.1" >>/etc/rc.local
- 删除路由
bash
route del -host 192.168.1.2 dev eth0:0
route del -host 10.20.30.148 gw 10.20.30.40
route del -net 10.20.30.40 netmask 255.255.255.248 eth0
route del -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
route del -net 192.168.1.0/24 eth1
route del default gw 192.168.1.1 //route del default 删除所有的默认路由
- 屏蔽一条路由
增加一条屏蔽的路由,目的地址为224.x.x.x将被拒绝。
bash
route add -net 224.0.0.0 netmask 240.0.0.0 reject
4. 设置包转发
在Linux中默认的内核配置已经包含了路由功能,但 出于安全考虑,Linux系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将数据包发往本机另一块网卡,该网卡根据路由表继续发送数据包。这通常是路由器所要实现的功能。
开启Linux的路由功能可以通过调整内核的网络参数来实现,方法如下:
bash
#临时开启路由功能:
echo 1 > /proc/sys/net/ipv4/ip_forward
#或者
sysctl -w net.ipv4.ip_forward=1
#永久开启路由功能
tail -1 /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
配置很多软件需要设置该参数,例如docker,nginx等等
3.2 ip route
route
和ip route
虽然都能设置路由,但是他们分属于不同的命令簇,可参考
linux 网络工具(一)
linux 网络工具(二)
- 添加静态路由到路由表的语法如下:
bash
ip route { add | del | change | append | replace } ROUTE
- 查询,无参数
bash
[root@k8s-node-01 ~]# ip route
default via 192.168.17.1 dev ens34
default via 192.168.81.1 dev ens33 proto static metric 100
default via 192.168.17.1 dev ens34 proto static metric 101
192.168.2.0/24 dev ens33 scope link
192.168.17.0/24 dev ens34 proto kernel scope link src 192.168.17.240 metric 101
192.168.17.200 dev ens34 scope link
192.168.81.0/24 dev ens33 proto kernel scope link src 192.168.81.240 metric 100
unreachable 224.0.0.0/3 scope host
显示路由表做简要说明如下:
路由第一部分是一个IP或者IPv6地址,也可以跟着一个斜杠和掩码长度(如:192.168.0.0/24)。如果没有掩码长度,ip命令就假定是一个单一ip 地址。
关键字 | 说明 |
---|---|
via 【[ FAMILY ] ADDRESS】 | 其后面是下一跳路由器的地址。其实就是网关IP。 |
dev 【NAME】 | 关键字,其后面是向外转发报文的设备名称,网卡的名字 |
weight 【NUMBER】 | 反映其相对带宽或质量的多径路由的该元素的权重。 |
proto 【RTPROTO】 | 其后面是IP地址设置的方式,如:static、dhcp,比较特殊的是kernel。该路由的路由协议标识符。RTPROTO可以是来自文件/etc/iproute2/rt_protos 的数字或字符串。如果没有给出路由协议ID,IP将假设协议启动(即,它假设路由是由不了解他们在做什么的人添加的)。 |
scope 【SCOPE_VAL】 | 路由前缀所覆盖的目的地址的范围。SCOPE_VAL 可以是文件/etc/iproute2/rt_scopes 中的数字或字符串。如果省略此参数,则IP将为所有选通单播路由假定全局范围,为直连单播和广播路由假定链路范围,为本地路由假定主机范围。 |
src 【ADDRESS】 | 其后面跟一个IP地址,在向目的发送数据包时,选择的源地址。 |
metric 【NUMBER】 | 其后面跟一个数字,定义路由的优先值。Metric的值越小,优先级越高,没有则为0。 |
protocol 几个协议值。即:
bash
root@dbc-db-server-2:~# cat /etc/iproute2/rt_protos
#
# Reserved protocols.
#
0 unspec
1 redirect
2 kernel
3 boot
4 static
8 gated
9 ra
10 mrt
11 zebra
12 bird
13 dnrouted
14 xorp
15 ntk
16 dhcp
42 babel
#
# Used by me for gated
#
254 gated/aggr
253 gated/bgp
252 gated/ospf
251 gated/ospfase
250 gated/rip
249 gated/static
248 gated/conn
247 gated/inet
246 gated/default
其中部分解释:
参数 | 说明 |
---|---|
redirect | 路由是由于ICMP重定向而生成的。 |
kernel | 路由是由内核在自动配置期间生成的。 |
boot | 路由是在引导序列期间生成的。如果路由守护程序启动,它将清除所有这些守护程序。 |
static | 管理员配置的路由,以覆盖动态路由。路由守护进程将尊重它们,甚至可能将它们通告给它的对等方。 |
ra | 路由是通过路由器发现(Router Discovery)协议安装的。 |
scope
bash
root@dbc-db-server-2:~# cat /etc/iproute2/rt_scopes
#
# reserved values
#
0 global
255 nowhere
254 host
253 link
#
# pseudo-reserved
#
200 site
整个命令簇内容实在太多了,参考帮助文档或 linux 网络工具(二)使用吧,这里不详细介绍了