route命令走一波
1.写文章去了解某个命令完全是兴起,并没有下定决心去学哪一套课程,目前的状态仍然是犹豫中,废话不多说进入正文,九月二十七这天看到了route命令,发现对路由这个命令很陌生,陌生到根本不知道它是用来干什么的,更别说什么参数之类的,随即找了若干博客,可是看不太懂,他们或许自己明白了,言语表达能力不行,亦或是我的理解能力有问题?so,anyway!看到了老男孩在12年写的博客,写的很明白、很清晰,故写此博客。
2.先来三道题:
a.如何用命令行方式给linux机器添加一个默认网关,假设网关地址为10.0.0.254?
route add default gw 10.0.0.254
b.192.168.1.0网段, 192.168.1.1网关的某一服务器想连入172.16.1.0/24段,该如何添加路由?
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
c.如何添加一条主机路由?
route add -host 192.168.2.13 dev eth2
3.缺省网关路由,第一道题考的就是这个,在linux里缺省就是默认意思,英文名--迪佛特(default),默认网关就是数据包不匹配任何设定的路由规则(或者是匹配不到),最后流经的地址关口。
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.8.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth1
0.0.0.0 172.16.8.1 0.0.0.0 UG 0 0 0 eth1
第一行表示你所在的网段是172.16.8.0,若数据传送目标是在本局域网内通信,则可直接通过eth1转发数据包;
第四行表示数据传送目的是访问Internet,则由接口eth0,将数据包发送到网关172.16.8.1,route -n (-n 表示不解析名字,列出速度会比route 快),表示去任何地方(0.0.0.0),都发给10.0.0.254,因为是默认网关,所以放在了最后一条。路由也是有顺序的,如果不符合任何一条规则就交给默认网关处理;
route del default gw 172.16.8.1 ==>这个命令是删除默认的网关
route add default gw 172.16.8.1 ==>这个命令是添加默认的网关,也是a题的答案
route add default gw 172.16.8.1 就相当于route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.8.1
U Up表示此路由当前为启动状态;H Host,表示此网关为一主机;G Gateway,表示此网关为一路由器。
4.网络路由:即去往某一网络或网段的路由, 实际工作中会有需求,两个不同的内部网络之间互访,而不是出网访问,就是b题的情况。
[root@oldboy ~]# route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 SIOCADDRT: 网络不可达 #==>当连不通地址192.168.1.1时,无法添加路由。 [root@oldboy ~]# ifconfig eth0:0 192.168.1.1/24 up #==>添加一个IP别名用于临时测试,如果永久生效最好加双网卡或写入到配置文件。 [root@oldboy ~]# ifconfig eth0:0 #==>查看添加的IP别名(网络里把这种多IP的方式称为子接口) eth0:0 Link encap:Ethernet HWaddr 00:0C:29:65:A4:FD inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 再来添加去192.168.1.0的数据包,交给192.168.1.1处理。 [root@oldboy ~]# route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 [root@oldboy ~]# netstat -rn #==>和route -n很像。 Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 172.16.8.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 192.168.1.0 192.168.1.1 255.255.255.0 UG 0 0 0 eth1 #==>这就是网络路由
拓展:其他写法
[root@oldboy ~]# route add -net 192.168.1.0 netmask 255.255.255.0 dev eth1 #==>指定设备而不是地址。 [root@oldboy ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 172.16.8.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
总结: route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0 route add -net 192.168.1.0/24 dev eth0 route del -net 192.168.1.0/24 dev eth0
特别强调:以上配置在重启网络时都会失效,那么如何让它永久生效呢?
方法一: vi /etc/sysconfig/network-scripts/route-eth0 #默认不存在此文件 加入如下内容: 192.168.1.0/24 via 192.168.1.1 方法二: vi /etc/sysconfig/static-routes #默认不存在此文件 加入如下内容: any net 192.168.1.0/24 gw 192.168.1.1 方法三: vi /etc/rc.local 加入如下内容: route add -net 192.168.1.0/24 gw 192.168.1.1
提示:写到配置里,重启网络服务和重启系统都会生效! PS: 方法一推荐生产环境使用
提示:方法三写到/etc/rc.local里只在开机时加载,当手工重启网络后会失效,但是重启系统后会生效!
如果是配置默认路由网关可以在网卡配置里:
[root@Linkdood ~]# grep GATEWAY /etc/sysconfig/network-scripts/ifcfg-Auto_eth1
GATEWAY=172.16.8.1
5.主机路由:就是去往某个主机地址如何配置路由
/sbin/route add -host 192.168.2.13 dev eth1
/sbin/route add -host 202.81.11.91 dev eth1
例如:keepalived或heartbeat高可用服务器对之间的使用单独网卡接心跳线通信就会用到以上主机路由。
删除一条默认路由: route del default gw 10.0.0.254 删除一条静态路由: route del -net 目标网络 netmask 如:route del -net 192.168.1.0/24 或route del -net 192.168.1.0 netmask 255.225.255.0 删除一条主机路由: route del -host 192.168.1.10 dev eth0
route命令走一波的更多相关文章
- 路由知识之ip route 命令中的疑惑
1.基础知识 1.1 路由 (Routing) 1.1.1 路由策略 (使用 ip rule 命令操作路由策略数据库) 基于策略的路由比传统路由在功能上更强大,使用更灵活,它使网络管理员不仅能够根据目 ...
- linux route命令的使用详解 添加永久静态路由 tracert traceroute
linux route命令的使用详解 添加永久静态路由 tracert traceroute route -n Linuxroute print Windows traceroute ...
- CentOS里route命令详解
Route 功能简述:linux系统中的route命令能够用于IP路由表的显示和操作.它的主要作用是创建一个静态路由让指定一个主机或者一个网络通过一个网络接口,如eth0.当使用"add&q ...
- 每天一个linux命令(53):route命令
Linux系统的route命令用于显示和操作IP路由表(show / manipulate the IP routing table).要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或 ...
- Debian 8(Jessie) 安装pptp-linux (PPTP客户端), 以及route命令说明
命令, 这里定义这个pptp的连接名称为hcoffice #安装 sudo apt-get install pptp-linux #用户名和口令 sudo vim /etc/ppp/chap-secr ...
- 每天一个linux命令:route命令
Linux系统的route命令用于显示和操作IP路由表(show / manipulate the IP routing table).要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或 ...
- route命令
Linux系统的route 命令用于显示和操作IP路由表(show / manipulate the IP routing table).要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器, ...
- window route 命令
使用 Route 命令行工具查看并编辑计算机的 IP 路由表.Route 命令和语法如下所示: route [-f] [-p] [Command][Destination] [mask Netmask ...
- 每天一个linux命令(45):route命令
Linux系统的route 命令用于显示和操作IP路由表(show / manipulate the IP routing table).要实现两个不同的子网之间的通信,需 要一台连接两个网络的路由器 ...
随机推荐
- Flask——蓝图
蓝图介绍 一个项目中,有不同的模块,但是只有一个入口,程序入口可以随便取名,一般叫做,app.py或者manage.py.当我们写一个程序,当然可以在一个文件中写完,但是有一定规模的项目,我们肯定不会 ...
- 业务系统中最核心的状态设计,异常 case. (系统设计)
系统设计几方面 1. 具象: 几个角色 -- 用例 2. 具象: 边界模块 3. 具象: 实体模块 4. 抽象: 详细设计后,抽出公用的部分. 5. Status状态字段的设置和更改 系统设计中最核心 ...
- java第十次作业:oop的第6张图片到第11张图片
- cocos2d popSceneWithTransition()方法
要在CCDirector.h中增加如下方法: template <typename T> void popSceneWithTransition(float t) { CCASSERT(_ ...
- c++ 结构体,设置物品体积并输出物品属性
#include <iostream> using namespace std; struct box { char maker[40]; float height; float widt ...
- 几种常用库在CentOS下的编译
1操作环境 通过命令查看操作系统版本信息: [root@localhost ~]# cat /proc/version Linux version 3.10.0-327.el7.x86_64 (bui ...
- Python正则表达式与hashlib模块
菜鸟学python第十六天 1.re模块(正则表达式) 什么是正则表达式 正则表达式是一个由特殊字符组成的序列,他能帮助对字符串的某种对应模式进行查找. 在python中,re 模块使其拥有全部的正则 ...
- Python数据类型(简单入门)
数据类型(预了解) 1.数字类型 整型:int 即不带小数点的数,通常用来标识年龄,账号,身份证号,等级等整数. 浮点型:float 即带有小数点的数,通常用来标记身高,体重,科学计算等有小数点的数. ...
- django第四天(路由别名,django2.x新特性和自定义转换器)
django第四天 路由别名 1.路由别名: 给路由路径命名一个名字 url(r'^login/$',views.login,name = 'login') 2.为什么要用路由别名 ①当路由路径过长时 ...
- Python9-模块1-day19
在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict.namedtuple和Ord ...