linux路由表的查看和含义
1.关于路由表的一个例子解析
查看命令:netstat -rn
先执行带-r选项的netstat命令,列出路由表,然后以-n选项再次执行该命令,以数字格式打印出ip地址(我们这样做是因为路由表中的一些表项是网络地址,而不是主机地址。如果没有- n选项,netstat命令将搜索文件/etc/networks并列出其中的网络名.。这样会与另一种形式的名字—网络名加主机名相混淆)。
查看结果含义举例
[root@localhost ~]# netstat -rn
Kernel IP routing table
Destination Gateway Flags Refcnt Iface
140.252.13.65 14.252.13.35 UGH 0 emd0
127.0.0.1 127.0.0.1 UH 1 lo0
default 140.252.13.33 UG 0 emd0
140.252.13.32 140.252.13.34 U 4 emd0
对于一个给定的路由器,可以打印出五种不同的标志:
U 该路由可以使用。
G 该路由是到一个网关(路由器)。如果没有设置该标志,说明目的地是直接相连的。标志G是非常重要的,因为由它区分了间接路由和直接路由(对于直接路由来说是不设置标志G的)。其区别在于,发往直接路由的分组中不但具有指明目的端的I P地址,还具有其链路层地址。当分组被发往一个间接路由时,ip地址指明的是最终的目的地,但是链路层地址指明的是网关(即下一站路由器)。在这个路由表例子中,有一个间接路由(设置了标志G),因此采用这一项路由的分组其ip地址是最终的目的地(140.252.13.65),但是其链路层地址必须对应于路由器140.252.13.35。
H 该路由是到一个主机,也就是说,目的地址是一个完整的主机地址。没有设置H标志说明目的地址是一个网络地址
(主机号部分为0)。当为某个目的IP地址搜索路由表时,主机地址项必须与目的地址完全匹配,而网络地址项只需要匹
配目的地址的网络号和子网号就可以了。
D 该路由是由重定向报文创建的。
M 该路由已被重定向报文修改。
输出的第2行是环回接口,它的名字始终为lo0。没有设置G标志,因为该路由不是一个网关。H标志说明目的地址(127.0.0.1)是一个主机地址,而不是一个网络地址。由于没有设置G标志,说明这是一个直接路由,网关列给出的是外出ip地址。
输出的第3行是默认路由。每个主机都有一个或多个默认路由。这一项表明,如果在表中没有找到特定的路由,就把分组发送到路由器140.252.13.33(sun主机)。这说明当前主机sdb利用这一个路由表项就可以通过internet经路由器sun(及其SLIP链路)访问其他的系统。建立默认路由是一个功能很强的概念。该路由标志( U G)表明它是一个网关,这是我们所期望的。
2.路由表查看举例
$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.10.0 * 255.255.255.0 U 0 0 0 eth0
192.168.56.0 * 255.255.255.0 U 0 0 0 eth1
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 192.168.10.1 0.0.0.0 UG 0 0 0 eth0
这台主机有两个网络接口,一个网络接口连到192.168.10.0/24网络,另一个网络 接口连到192.168.56.0/24网络。路由表的 Destination是目的网络地址,Genmask是子网掩码,Gateway是下一跳地址,Iface是发送接口,Flags中的U标志表示此条目有效(可以禁用某些条目),G标志表示此条目的下一跳地址是某个路由器的地址,没有G标志的条目表示目的网络地址是与本机 接口直接相连的网络,不必经路由 器转发,因此下一跳地址处记为*号。
如果要发送的数据包的目的地址是192.168.56.3,跟第一行的子网掩码做与运算得到 192.168.56.0,与第一行的目的网络地址不符,再跟第二行的子网掩码做与运算得到192.168.56.0,正是第二行的目的网络地址,因此从 eth1接口发送出去,由于192.168.56.0/24正是与eth1接口直接相连的网络,因此可以直接发到目的主机,不需要经路由器转发。
如果要发送的数据包的目的地址是202.10.1.2,跟前三行路由表条目都不匹配,那么就要按缺省路由条目,从eth0接口发出去,首先发往192.168.10.1路由器,再让路由器根据它的路由表决定下一跳地址。
3.route 命令添加静态路由
设置和查看路由表都可以用 route 命令,设置内核路由表的命令格式是:
# route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
其中:
add : 添加一条路由规则 del : 删除一条路由规则
-net : 目的地址是一个网络 -host : 目的地址是一个主机
target : 目的网络或主机 netmask : 目的地址的网络掩码
gw : 路由数据包通过的网关 dev : 为路由指定的网络接口
3种路由类型
1)主机路由
主机路由是路由选择表中指向单个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
添加到主机的路由
# route add -host 192.168.1.2 dev eth0
# route add -host 10.20.30.148 gw 10.20.30.40 #添加到10.20.30.148的网关10.20.30.40
2)网络路由
网络路由是代表主机可以到达的网络。网络路由的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
添加到网络的路由
# route add -net 10.20.30.40 netmask 255.255.255.248 dev eth0 #添加10.20.30.40的网络
举例, 添加一条路由(发往192.168.62这个网段的全部要经过网关192.168.1.1)
# route add -net 192.168.62.0 netmask 255.255.255.0 gw 192.168.1.1
# route add -net 192.168.1.0/24 eth1
3)默认路由
当主机不能在路由表中查找到目标主机的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
添加默认路由
# route add default gw 192.168.1.1
linux路由表的查看和含义相关推荐
- linux路由表命令
转自此大神http://www.cnblogs.com/gunl/archive/2010/09/14/1826234.html 留在好查阅 linux 路由表维护 查看 Linux 内核路由表 使用 ...
- linux 路由表 的一些相关资料
=============================================================================== linux 路由表维护 查看 Linux ...
- (转载)netstat -r查看路由表时Flags的含义
参考于: netstat -r查看路由表时Flags的含义 对于一条给定路由, 有五种不同的Flag: Flag Content U 该路由可以使用 G 该路由是到一个网关(路由器). 若没有此标志, ...
- 【博客611】linux路由表机制
linux路由表机制 场景: linux是支持多路由表的我们可以通过创建不同的路由规则,在路由规则来挂载带有不同路由条目的路由表来定制化路由的匹配过程.并且路由规则的匹配条件可以由我们自由来决定,比如 ...
- Linux服务器性能查看分析调优
一 linux服务器性能查看 1.1 cpu性能查看 1.查看物理cpu个数: cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc ...
- Linux服务器性能查看分析
一 linux服务器性能查看 1.1 cpu性能查看 1.查看物理cpu个数: cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc ...
- linux查看设备内存代码,Linux下内存查看命令(示例代码)
在Linux下面,我们常用top命令来查看系统进程,top也能显示系统内存.我们常用的Linux下查看内容的专用工具是free命令. Linux下内存查看命令free详解: 在Linux下查看内存我们 ...
- linux top命令查看内存及多核CPU的使用讲述 [转]
2019独角兽企业重金招聘Python工程师标准>>> linux top命令查看内存及多核CPU的使用讲述 [转] FROM: http://www.lvtao.net/html/ ...
- linux top命令查看内存及多核CPU的使用讲述【转】
转载一下top使用后详细的参数,之前做的笔记找不见了,转载一下,作为以后的使用参考: 原文地址:http://blog.csdn.net/linghao00/article/details/80592 ...
- linux内核 默认路由表,[Linux] linux路由表-Go语言中文社区
路由表用于决定数据包从哪个网口发出,其主要判断依据是目标IP地址 Linux路由表其实有2个主要概念:按顺序走路由策略,在路由策略对应的路由表中匹配规则 路由策略(rule) 路由表(table) 查 ...
最新文章
- magicbook大学计算机系,大学生不知道买什么电脑?来看看荣耀MagicBook 14锐龙版!...
- MDA模型定义及扩展
- 【设计模式】—— 命令模式Commond
- python删除所有core文件_python – 从pandas.core.series.Series中删除前导零
- 计算机系统基础:数字的机器表示
- 前端学习(1560):ng-class颜色切换
- Java8-初识Lambda
- listen()函数中的SOMAXCONN含义
- shiro执行多个过滤器_shiro教程5(整合SSM项目-认证)
- 正则表达式那些事儿(一)
- nginx配置中文域名解析
- 桌面计算机恢复出厂设置,windows7电脑怎么恢复出厂设置
- too few variables specified 怎么解决
- 支付宝相关服务申请入口
- Phaser3 点击事件
- 世界树(worldtree)
- MatplotlibTutorial——Matplotlib的基本使用【Jupiter Notebook代码】
- 哔哩哔哩(B 站)刚刚崩了
- Cobbler实现系统自动安装和cobbler的web管理实现
- 51Nod 1278 相离的圆(好题)