Linux route
一、简介
Linux系统的route命令用于显示和操作IP路由表(show / manipulate the IP routing table)。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的IP地址设置为Linux机器的默认路由。要注意的是,直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了;可以在/etc/rc.local中添加route命令来保证该路由设置永久有效。
二、路由知识
1)静态路由
静态路由是手动设置的路由。
如ip route 192.168.1.1 255.255.255.255 192.168.1.254,这条静态路由的含义是把目的地为192.168.1.1的IP的数据全部转发至192.168.1.254
2)默认路由
默认路由是其他路由规则都没有匹配到时,才会选择使用的路由。
如:ip route 0.0.0.0 0.0.0.0 192.168.1.1,这条默认路由的含义是如果其他路由规则不匹配,就把数据转发至192.168.1.1
3)静态默认路由
一般的默认路由都是静态的。
4)动态默认路由
这个和静态的默认路由又有什么区别呢?比如有一个星形拓扑,R1为核心路由器,而剩下的R2,R3为分支,想要让R1告诉分支路由器,当找不到路径到达一个远程网络时候,全部通过核心路由器来转发数据到远程网络。但是当有新的路由器加入到这个网络拓扑的时候,这个路由器也能通过核心路由器发现核心路由器上的默认路由,这时候的默认路由则是动态的(例如:只要是能够动态得到核心路由器的网络的所有的路由器都能有这么一条默认路由,如EIGRP 用D*来表示)
三、实例
1)查看当前路由
route –n
2)添加/屏蔽/删除一条路由
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
route add -net 224.0.0.0 netmask 240.0.0.0 reject
route del -net 224.0.0.0 netmask 240.0.0.0
3) 添加/删除设置默认网关
route add default gw 192.168.0.1
route del default gw 192.168.0.1
四、输出详解
route命令输出的路由表字段含义如下:
Destination 目标
The destination network or destination host. 目标网络或目标主机。 Gateway 网关
The gateway address or '*' if none set. 网关地址,如果没有就显示星号。 Genmask 网络掩码
The netmask for the destination net; '255.255.255.255' for a
host destination and '0.0.0.0' for the default route. Flags:总共有多个旗标,代表的意义如下: o U (route is up):该路由是启动的; o H (target is a host):目标是一部主机 (IP) 而非网域; o G (use gateway):需要透过外部的主机 (gateway) 来转递封包; o R (reinstate route for dynamic routing):使用动态路由时,恢复路由资讯的旗标; o D (dynamically installed by daemon or redirect):已经由服务或转 port 功能设定为动态路由 o M (modified from routing daemon or redirect):路由已经被修改了; o ! (reject route):这个路由将不会被接受(用来抵挡不安全的网域!) o A (installed by addrconf) o C (cache entry) Metric 距离、跳数。暂无用。
The 'distance' to the target (usually counted in hops). It is
not used by recent kernels, but may be needed by routing dae-
mons. Ref 不用管,恒为0。
Number of references to this route. (Not used in the Linux ker-nel.) Use 该路由被使用的次数,可以粗略估计通向指定网络地址的网络流量。
Count of lookups for the route. Depending on the use of -F and
-C this will be either route cache misses (-F) or hits (-C). Iface 接口,即eth0,eth0等网络接口名
Interface to which packets for this route will be sent.
五、常见错误
1)route: netmask doesn't match route address
linux-rd4x:/ # route add -net 8.8.8.8 netmask 255.255.255.0 dev eth0
route: netmask doesn't match route address
提示:
随意添加一条路由信息时,报错,经过尝试,Destination IP必须和掩码相对应,
即IP:8.8.8.8 & 255.255.255.0(逻辑与操作) 才是真正的DestinationIP,否则会报错。
2)SIOCADDRT: 没有那个进程(No Such Process)
route add -net 192.168.1.0 netmask 255.255.255.0
SIOCADDRT: 没有那个设备
提示:
在添加一个新的网段时,它的出口地址应该是当前ip routing table表中的当前有的地址,否则会出现这个错误:SIOCADDRT: 没有那个进程。
Linux route的更多相关文章
- linux route命令的使用详解
route命令用于显示和操作IP路由表.要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现.在Linux系统中,设置路由通常是 为了解决以下问题:该Linu ...
- linux route命令的使用详解 添加永久静态路由 tracert traceroute
linux route命令的使用详解 添加永久静态路由 tracert traceroute route -n Linuxroute print Windows traceroute ...
- (转)linux route命令深入浅出与实战案例精讲
linux route命令深入浅出与实战案例精讲 http://blog.51cto.com/oldboy/1119453 深入浅出之-route命令实战使用指南 http://blog.51cto. ...
- (转)linux route命令详解
linux route命令详解 原文:https://www.cnblogs.com/lpfuture/p/5857738.html && http://blog.csdn.n ...
- linux route命令的使用详解(转)
route命令用于显示和操作IP路由表.要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现.在Linux系统中,设置路由通常是 为了解决以下问题:该Linu ...
- linux route详细解读
route命令用于显示和操作IP路由表.要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现.在Linux系统中,设置路由通常是 为了解决以下问题:该Linu ...
- linux route命令的使用详解-(转自小C爱学习)
route命令用于显示和操作IP路由表.要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现.在Linux系统中,设置路由通常是 为了解决以下问题:该Linu ...
- Linux route命令详解和使用示例(查看和操作IP路由表)
Linux系统的route命令用于显示和操作IP路由表(show / manipulate the IP routing table).要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或 ...
- linux route命令学习
route命令用于显示和操作IP路由表. 没有增加路由之前,route命令的结果如下, sh-# route Kernel IP routing table Destination Gatew ...
- Linux - route & traceroute & ip
route route - show / manipulate the IP routing table route 命令常用命令示例 #显示路由 route route -n # 不解析名字,快速显 ...
随机推荐
- GOF23设计模式之访问者模式(visitor)
一.访问者模式概述 (1)模式动机 对于存储在一个集合中的对象,他们可能具有不同的类型(即使有一个公共的接口),对于该集合中的对象,可以接受一类称为访问者的对象来访问,不同的访问者其访问方式也有所 ...
- Apache的下载安装(主要说的 64位)及问题
本文转载自:http://blog.csdn.net/qq_15096707/article/details/47319545 今天重装完win10系统,就重新下载安装 Apache.虽说之前有安装过 ...
- (转)win7+iis7.5+asp.net下 CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files 解决方案
本文转载自:http://www.cnblogs.com/finesite/archive/2011/01/28/1946940.html 网上搜的解决方案但在我的环境下仍旧没有解决,我的方法如下: ...
- eclipse安装freemarker插件【转】
今天在Eclipse上安装Freemarker的插件,一开始装官方网站上的推荐插件,装上后发现除了Freemarker代码高亮显示其他什么效果都没有,郁闷.在javaeye论坛上请教了下,据说官网上的 ...
- xss 攻击 sql 注入
XSS测试 "/><script>alert(document.cookie)</script><!-- <script>alert(docu ...
- java代码---数据类型的强制转换----不懂啊
总结:看写的测试代码 字符到整型必须进行强制转换 package com.a.b; //byte→int 可以 int范围大,不必转换 B.short→long //C.float→double 这个 ...
- mysql字符集和校对规则(Mysql校对集)
字符集的概念大家都清楚,校对规则很多人不了解,一般数据库开发中也用不到这个概念,mysql在这方便貌似很先进,大概介绍一下简要说明 字符集和校对规则 字符集是一套符号和编码.校对规则是在字符集内用于比 ...
- kotlin学习二:初步认识kotlin
1. 函数 kotlin中支持顶级函数(文件内直接定义函数),对比JAVA来说,JAVA的程序入口是main方法,kotlin也一样,入口为main函数 首先看下kotlin中main函数的定义. f ...
- 使用GET方式提交的表单遇到的问题
经常使用表单,一直使用的都是POST方式,POST将数据封装到请求体中,相对于GET安全一点:而POST处理中文编码问题也比GET简单(GET需要将URL编码,后台接受到后还需要解码).今天我想要使用 ...
- OD 实验(一) - 修改程序标题
需要修改的程序 把 I love fishc.com 修改为 hello world sch01ar 用 OD 打开程序 在程序入口处开始一直按 F8 运行程序,看看在哪里弹出对话框 运行到该地址的时 ...