使用下面的 route 命令可以查看 Linux 内核路由表。netstat -nr
# routeDestination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 * 255.255.255.0 U 0 0 0 eth0 169.254.0.0 * 255.255.0.0 U 0 0 0 eth0 default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
route 命令的输出项说明
输出项 说明 Destination 目标网段或者主机 Gateway 网关地址,”*” 表示目标是本主机所属的网络,不需要路由 Genmask 网络掩码 Flags 标记。一些可能的标记如下: U — 路由是活动的 H — 目标是一个主机 G — 路由指向网关 R — 恢复动态路由产生的表项 D — 由路由的后台程序动态地安装 M — 由路由的后台程序修改 ! — 拒绝路由 Metric 路由距离,到达指定网络所需的中转数(linux 内核中没有使用) Ref 路由项引用次数(linux 内核中没有使用) Use 此路由项被路由软件查找的次数 Iface 该路由表项对应的输出接口
主机路由
主机路由是路由选择表中指向单个IP地址或主机名的路由记录。主机路由的Flags字段为H。例如,在下面的示例中,本地主机通过IP地址192.168.1.1的路由器到达IP地址为10.0.0.10的主机。
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的路由器。
Destination Gateway Genmask Flags Metric Ref Use Iface ----------- ------- ------- ----- ----- --- --- ----- 192.19.12 192.168.1.1 255.255.255.0 UN 0 0 0 eth0
默认路由
当主机不能在路由表中查找到目标主机的IP地址或网络路由时,数据包就被发送到默认路由(默认网关)上。默认路由的Flags字段为G。例如,在下面的示例中,默认路由是IP地址为192.168.1.1的路由器。
Destination Gateway Genmask Flags Metric Ref Use Iface ----------- ------- ------- ----- ------ --- --- ----- default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
关于路由表的说明
对于一个给定的路由器,可以打印出五种不同的标志( f l a g):
U 该路由可以使用。
G 该路由是到一个网关(路由器)。如果没有设置该标志,说明目的地是直接相连的。
H 该路由是到一个主机,也就是说,目的地址是一个完整的主机地址。如果没有设置该
标志,说明该路由是到一个网络,而目的地址是一个网络地址:一个网络号,或者网
络号与子网号的组合。
D 该路由是由重定向报文创建的( 9 . 5节)。
M 该路由已被重定向报文修改( 9 . 5节)。
路由表的搜索
1) 搜索匹配的主机地址;
2) 搜索匹配的网络地址;
3) 搜索默认表项(默认表项一般在路由表中被指定为一个网络表项,其网络号为0)。
匹配主机地址步骤始终发生在匹配网络地址步骤之前。
关键的说明,需要仔细理解,可以多看几遍
标志G是非常重要的,因为由它区分了间接路由和直接路由(对于直接路由来说是不设置标志G的)。其区别在于,发往直接路由的分组中不但具有指明目的端的I P地址,还具有其链路层地址(见图3 - 3)。当分组被发往一个间接路由时, I P地址指明的是最终的目的地,但是链路层地址指明的是网关(即下一站路由器)。我们在图3 - 4已看到这样的例子。在这个路由表例子中,有一个间接路由(设置了标志G),因此采用这一项路由的分组其I P地址是最终的目的地(1 4 0 . 2 5 2 . 1 3 . 6 5),但是其链路层地址必须对应于路由器1 4 0 . 2 5 2 . 1 3 . 3 5。
理解G和H标志之间的区别是很重要的。G标志区分了直接路由和间接路由,如上所述。但是H标志表明,目的地址( n e t s t a t命令输出第一行)是一个完整的主机地址。没有设置H标志说明目的地址是一个网络地址(主机号部分为0)。当为某个目的I P地址搜索路由表时,主机地址项必须与目的地址完全匹配,而网络地址项只需要匹配目的地址的网络号和子网号就可以了。另外,大多数版本的n e t s t a t命令首先打印出所有的主机路由表项,然后才是网络路由表项。
配置静态路由
route 命令
设置和查看路由表都可以用 route 命令,设置内核路由表的命令格式是:
# route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]其中:
add : 添加一条路由规则 del : 删除一条路由规则 -net : 目的地址是一个网络 -host : 目的地址是一个主机 target : 目的网络或主机 netmask : 目的地址的网络掩码 gw : 路由数据包通过的网关 dev : 为路由指定的网络接口route 命令使用举例
添加到主机的路由
# route add -host 192.168.1.2 dev eth0:0 # route add -host 10.20.30.148 gw 10.20.30.40添加到网络的路由
# route add -net 10.20.30.40 netmask 255.255.255.248 eth0 # route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41 # route add -net 192.168.1.0/24 eth1添加默认路由
# route add default gw 192.168.1.1删除路由
# 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设置包转发
在 CentOS 中默认的内核配置已经包含了路由功能,但默认并没有在系统启动时启用此功能。开启 Linux 的路由功能可以通过调整内核的网络参数来实现。要配置和调整内核参数可以使用 sysctl 命令。例如:要开启 Linux 内核的数据包转发功能可以使用如下的命令。
# sysctl -w net.ipv4.ip_forward=1这样设置之后,当前系统就能实现包转发,但下次启动计算机时将失效。为了使在下次启动计算机时仍然有效,需要将下面的行写入配置文件/etc/sysctl.conf。
# vi /etc/sysctl.confnet.ipv4.ip_forward = 1用户还可以使用如下的命令查看当前系统是否支持包转发。
# sysctl net.ipv4.ip_forward
相关推荐
本文主要讲解如何在Linux环境下,特别是Red Hat系列发行版中,通过`ifconfig`和`route`命令来添加和管理路由,以及一些相关的网络诊断工具。 首先,`ifconfig`命令用于配置和查看网络接口的状态。例如,在描述中,`...
总结来说,Linux下的路由管理是一个关键的网络配置任务,可以通过`route`命令临时添加路由,而要实现路由设置的持久化,可以编辑系统启动脚本或配置文件。理解并掌握这些操作对Linux系统管理员来说至关重要,因为...
Linux策略路由设置,关于linux服务器设置的一些文档。
Linux 策略路由的分析及其应用 Linux 策略路由是指基于策略的路由选择机制,它允许管理员根据 IP 包的源地址、目的地址或其他信息来选择路由。Linux 作为一个开源的操作系统,具有强大的功能,包括策略路由功能。 ...
此外,对于长期有效的静态路由,通常会在 `/etc/sysconfig/network-scripts/` 目录下的相应接口配置文件(如`ifcfg-eth0`)中设置,或者使用`ip`命令的`route`子命令来添加。 总之,Linux路由配置涉及对路由表的...
3. **设置路由**:使用`setsockopt()`函数添加或修改静态路由。这需要一个路由消息结构,如`struct rtmsg`,包含目的网络、掩码、下一跳等信息。同时,还需要附加的路由键值,如`struct rtattr`,来提供更详细的信息...
文章中提到的案例分析细节可能包括如何设置多条网络接口并配置相应的路由策略,以确保数据包可以根据网络状况和流量分布被适当地分配到不同的接口上。具体实现时,可以根据数据包的权重、目的地或者协议类型等信息来...
在Linux操作系统中,静态路由是...综上所述,了解并正确配置Linux下的静态路由对于管理和维护网络基础设施至关重要。通过理解静态路由的概念、命令语法以及Metric值的重要性,网络管理员能够更好地控制和优化网络流量。
Zebra 的配置文件存放在 /usr/local/etc/zebra 目录下,用户可以根据需要编辑配置文件以实现不同的路由选择协议。Zebra 的守护进程包括 ripd、ospfd、bgpd 和 zebra 等,各个守护进程负责不同的路由选择协议。 ...
Linux下路由配置命令 1. 添加主机路由 route add -host 192.168.1.11 dev eth0 route add -host 192.168.1.12 gw 192.168.1.1 2. 添加网络路由 route add -net 192.168.1.11 netmask 255.255.255.0 eth0 route add...
本文档将详细介绍如何在Linux环境下进行静态路由配置,包括临时配置与永久配置的方法。 #### 二、临时配置静态路由 ##### 2.1 开启路由转发功能 首先,需要确保系统已经开启了IPv4的路由转发功能。这可以通过修改...
为了确保所有未匹配特定路由规则的数据包都能被转发至其下一跳路由器或网关,需要设置一个缺省路由。假设下一跳网关的地址为 `172.16.1.100`,则命令如下: - 命令:`# route add default gw 172.16.1.100 eth0` #...
总的来说,这个实验涵盖了计算机网络中的基本路由概念,特别是Linux系统下的静态路由配置和管理。通过实践,学习者不仅可以掌握静态路由的原理,还能提升Linux命令行操作技能,加深对网络通信过程的理解。这将为后续...
Linux Radvd路由广播配置文件解析
4. **设置路由规则**:通过`ip rule add`命令设置路由规则。规则可以基于多种条件,如`from`、`to`、`fwmark`、`iif`、`oif`等。例如,我们可以设置一个规则,将来自特定IP的数据包路由到新的表中:`ip rule add ...
Linux 操作系统下修改 IP、DNS 和路由配置是非常重要的网络管理任务。熟悉使用 ifconfig 命令会非常方便。在本文中,我们将详细介绍如何在 Linux 操作系统下修改 IP、DNS 和路由配置。 一、修改 IP 地址 修改 IP ...
linux双网卡 路由配置 访问特定ip网段走指定网卡,命令已实测
在Linux系统中,可以通过修改系统内核参数ip_forward的方式实现路由功能,系统使用sysctl命令配置与显示在/proc/sys目录中的内核参数。首先在命令行输入:cat /proc/sys/net/ipv4/ip_forward,检查Linux内核是否开启...
本主题将深入探讨“Linux静态路由”和“Linux远程连接”这两个关键概念,结合提供的实验配置和抓图,我们可以更直观地理解并实践这些技术。 **一、Linux静态路由** 静态路由是指在Linux系统中手动配置的路由规则,...