Linux 路由 静态路由

目录

注意:本文中使用;隔开的命令等价

一、临时生效,使用命令route

A、添加到主机的路由

route add -host IP dev eth0            # 默认Gateway指向0.0.0.0  Flags: UH
route add -host IP gw GWIP [dev eth0] # 指定Gateway指向的IP Flags: UGH
route add -host 192.168.1.100 dev eth0
route add -host 192.168.1.1 gw 10.0.0.100

B、添加到网络的路由

route add -net IP netmask MASK eth0 ; route add -net IP/24 eth0
route add -net IP netmask MASK gw IP ; route add -net IP/24 gw IP
route add -net 192.168.1.0/24 dev eth0        # 默认Gateway指向0.0.0.0  Flags: U
route add -net 192.168.1.0/24 gw 10.0.0.100 # 指定Gateway指向的IP Flags: UG

C、添加默认路由

route add default gw 10.0.0.10 ;
route add -net 0.0.0.0 gw 10.0.0.10 ;
route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.0.0.10

D、删除路由

route del -host 192.168.1.100
route del -net 192.168.1.0/24
route del default gw 10.0.0.10 ; route del -net 0.0.0.0 gw 10.0.0.10

E、查看所有路由信息

[root@centos7 ~]# route -n  # -n 显示数字地址,而不是尝试确定符号主机名
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0

二、临时生效,使用命令ip route

A、添加路由,和route比较

ip route add 192.168.1.100 dev eth0 ; route add -host 192.168.1.100 dev eth0

ip route add 192.168.1.1 via 10.0.0.100 ; route add -host 192.168.1.1 gw 10.0.0.100

ip route add 192.168.1.0/24 dev eth0 ; route add -net 192.168.1.0/24 dev eth0

ip route add 192.168.1.0/24 via 10.0.0.100 ;
route add -net 192.168.1.0/24 gw 10.0.0.100 ip route add default via 10.0.0.10 ; route add default gw 10.0.0.10 ;
ip route add 0.0.0.0 via 10.0.0.10 ; route add -net 0.0.0.0 gw 10.0.0.10 ;

B、改变路由,路由必须已存在

ip route chg 192.168.1.1 dev eth0
ip route chg 192.168.1.1 via 10.0.0.110
ip route chg 192.168.1.0/24 dev eth0
ip route chg 192.168.1.0/24 via 10.0.0.100
ip route chg default dev eth0
ip route chg default via 10.0.0.10
ip route chg 0.0.0.0 dev eth0
ip route chg 0.0.0.0 via 10.0.0.10

C、替换路由,路由不存在则添加

ip route replace 192.168.1.1 dev eth0
ip route replace 192.168.1.1 via 10.0.0.110
ip route replace 192.168.1.0/24 dev eth0
ip route replace 192.168.1.0/24 via 10.0.0.100
ip route replace default dev eth0
ip route replace default via 10.0.0.10
ip route replace 0.0.0.0 dev eth0
ip route replace 0.0.0.0 via 10.0.0.10

D、删除路由

ip route del 192.168.1.1
ip route del 192.168.1.0/24
ip route del default
ip route del 0.0.0.0

E、清空路由

ip route flush 192.168.1.1
ip route flush 192.168.1.0/24
ip route flush cache # 清除所有路由cache
ip route flush dev eth0 # 清空网卡的所有路由, 慎用!!

F、查看路由表

ip route show查看到的路由信息方便存入配置文件中

[root@centos7 ~]# ip route  # 查看main路由表
default via 10.0.0.2 dev eth0
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.202
169.254.0.0/16 dev eth0 scope link metric 1002
ip route ; ip route ls table main ; ip route ls table 254  # 查看指定路由表

G、查看单个路由

ip route show命令只是显示现有的路由,而ip route get命令在必要时会派生出新的路由

ip route get 10.0.0.2  # 获得单个路由

H、缩写

route、r
show、sh、s、list、lst、ls、l
add、a
change、chg、c
replace、repl、r
delete、del、d
flush、f
table、t
get、g

三、永久生效,写入配置文件/etc/sysconfig/network-scripts/route-ethX

其中ethX是网卡名称,内容为添加路由的格式:

[root@centos7 ~]# cat /etc/sysconfig/network-scripts/route-eth0
default via 10.0.0.10
192.168.1.0/24 via 10.0.0.100
192.168.1.100 dev eth0
192.168.1.1 via 10.0.0.100

四、故障报错

执行route add提示SIOCADDRT: Network is unreachable

添加静态路由规则的时候,需要保证gateway(gw)的IP和eth0(本机IP)在同一个网段内。

实验:实现三个路由器与两个主机互通(单臂静态路由)

拓扑图:

![img](Linux 路由 静态路由.assets/1769223-20200419121106862-1092428675.png)

路由表配置图:

实现原理:R1配置路由器,是A访问B的过程,A主机和R1路由器1接口为直连,然后从R1本机的2接口出去,在R1上添加相邻路由器R2的3接口Ip地址作为网关,同理,在R1上添加R2路由器3接口(IP地址作为网关)和B主机(172.18.0.0)的网段。

R2路由器同理,左侧出去的是3接口,在R2上添加相邻的R1路由器接口IP地址(2接口)就是网关,从右侧出去(4接口),在R2上添加R3路由器的5接口IP地址作为网关。

R3路由器同理,B主机与R3路由器的6接口直连,不需要网关,R3出去的5接口与10.100.0.0在同一个网段,不需要网关,R3的5接口出去,在R3上添加相邻的R2路由器4接口Ip地址作为网关;再将192.168.34.0网段添加网关(即为R2路由器4接口的IP地址),出口为R3的5接口。

![img](Linux 路由 静态路由.assets/1769223-20200419120959385-1666153048.png)

在A主机上配置IP地址和网关:

将主机A的网络与路由器R1的1接口在同一个物理网络上:

cat` `/etc/sysconfig/network-scripts/ifcfg-eth0` `DEVICE=eth0``BOOTPROTO=static``IPADDR=192.168.34.100``GATEWAY=192.168.34.200``PREFIX=24``DNS1=114.114.114.114

配置R1路由器

R1的1接口与A主机在一个物理网段

cat` `/etc/sysconfig/network-scripts/ifcfg-eth0` `DEVICE=eth0``BOOTPROTO=static``IPADDR=192.168.34.200 ``# IP地址改为A主机的网关地址``PREFIX=24``DNS1=114.114.114.114

配置R1的2接口IP地址,2接口和A主机不在一个物理网段,但是路由器工作在内核中,只要有一个接口可以通,另外的一个跨网段的接口也可以通。

cat` `/etc/sysconfig/network-scripts/ifcfg-eth1` `DEVICE=eth1``BOOTPROTO=static``IPADDR=10.0.0.1``PREFIX=8``DNS1=114.114.114.114

配置R2路由器

R2的3接口路由器要与R1的2接口路由器在同一个网段

cat` `/etc/sysconfig/network-scripts/ifcfg-eth0` `DEVICE=eth0``BOOTPROTO=static``IPADDR=10.0.0.1``PREFIX=8``DNS1=114.114.114.114

配置R2的4接口路由器

cat` `/etc/sysconfig/network-scripts/ifcfg-eth0` `DEVICE=eth0``BOOTPROTO=static``IPADDR=10.100.0.100``PREFIX=16``DNS1=114.114.114.114

配置R3路由器

配置R3的5接口,要与R2的4接口在一个网段

cat` `/etc/sysconfig/network-scripts/ifcfg-eth0` `DEVICE=eth0``BOOTPROTO=static``IPADDR=10.100.0.200``PREFIX=16``DNS1=114.114.114.114  

配置R3的6接口,IP地址为B主机的网关地址

cat` `/etc/sysconfig/network-scripts/ifcfg-eth1` `DEVICE=eth1``BOOTPROTO=static``IPADDR=172.18.0.200``# IP地址改为B主机的网关地址``PREFIX=16``DNS1=114.114.114.114

配置B主机IP和网关

cat` `/etc/sysconfig/network-scripts/ifcfg-eth0` `DEVICE=eth0``BOOTPROTO=static``IPADDR=172.18.0.100``GATEWAY=172.18.0.200``PREFIX=16``DNS1=114.114.114.114

在R1路由器上添加路由规则

# route add -net 10.100.0.0/16 gw 10.0.0.2``# route add -net 172.18.0.0/16 gw 10.0.0.2

在R2路由器上添加路由规则

# route add -net 192.168.34.0/24 gw 10.0.0.1``# route add -net 172.18.0.0/16 gw 10.100.0.200

在R3路由器上添加路由规则

# route add -net 10.0.0.0/8 gw 10.100.0.100``# route add -net 192.168.34.0/24 gw 10.100.0.100

在R1/R2/R3路由器上开启路由功能

# vim /etc/sysctl.conf   # 修改到配置文件中``net.ipv4.ip_forward=1` `# sysctl -p # 使路由配置生效

测试效果:

可以看到,此时A主机可以访问到B主机,B主机也可以访问A主机。

Linux 路由 静态路由的更多相关文章

  1. linux 添加静态路由

    Linux下静态路由修改命令方法一:添加路由route add -net 192.168.0.0/24 gw 192.168.0.1route add -host 192.168.1.1 dev 19 ...

  2. 配置Linux实现静态路由

    配置Linux实现静态路由 背景和原理 路由器的功能是实现一个网段到另一个网段之间的通信,路由分为静态路由.动态路由. 默认路由和直连路由.静态路由是手工指定的,使用静态路由的好处是网络安全保密性高. ...

  3. linux添加静态路由

    1.使用route命令,查看本机路由直接输入route回车即可.route 命令参数: add     增加路由 del     删除路由 -net    设置到某个网段的路由 -host   设置到 ...

  4. Linux服务器静态路由配置

    转载自:点击打开链接 静态路由是在路由器中设置的固定的路由表.除非网络管理员干预,否则静态路由不会发生变化.由于静态路由不能对网络的改变作出反映,一般用于网络规模不大.拓扑结构固定的网络中.静态路由的 ...

  5. 《Linux系统静态路由和火墙路由》

    本篇主要写的是关于静态路由表的添加,和如何让你不能上网的主机通过火墙路由表实现上网的功能. 静态路由表: 要是你的主机是2块网卡,并且做了网卡的绑定,依照我下面的方法是成功不了的,你可以去编辑: # ...

  6. vue路由--静态路由

    vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来.传统的页面应用,是用一些超链接来实现页面切换和跳转的.在vue-router单页面应用中,则是路径之间的切换,也就是 ...

  7. Linux 实现静态路由实验

    环境: 四台主机: A主机:eth0 NAT模式 R1主机:eth0 NAT模式,eth1 仅主机模式 R2主机:eth0 桥接模式,eth1仅主机模式 B主机:eth0 桥接模式 手动修改IP地址 ...

  8. Python编程系列---使用字典实现路由静态路由

    def index(): print('Index Page....') def bbs(): print('BBS Page....') def login(): print('Login Page ...

  9. CCNA 之 五 路由协议 一 静态路由

    静态路由 路由选择原理 什么是路由? 就如同去某一个地方,会有很多种路线,每一条路线经都可以称之为路由: 路由器中会维护一张路由表,每一个表项都是一条路由,也就是去往某个网络的路径,然后将对应的数据包 ...

随机推荐

  1. 第6.3节 Python动态执行之动态编译的compile函数

    Python支持动态代码主要三个函数,分别是compile.eval和exec.本节介绍compile函数的语法和相关使用.compile函数用来编译一段字符串的源码,将其编译为字节码或者AST(抽像 ...

  2. 第8.21节 Python中__lt__、__gt__等 “富比较”(“rich comparison”)方法用途探究

    一. 富比较方法 Python的基类object提供一系列可以用于实现同类对象进行"比较"的方法,可以用于同类对象的不同实例进行比较.他们也是实例方法,定义如下: object.l ...

  3. PHP代码审计分段讲解(14)

    30题利用提交数组绕过逻辑 本篇博客是PHP代码审计分段讲解系列题解的最后一篇,对于我这个懒癌患者来说,很多事情知易行难,坚持下去,继续学习和提高自己. 源码如下: <?php $role = ...

  4. buu学习记录(下)(做题是不可能做题的)

    目录: easy_calc 禁止套娃 EasyWeb Babysqli Easyweb easy_serialize_php 我有一个数据库 SSRFme 枯燥的抽奖 EasyPHP 题目解析: ea ...

  5. 定位方式 及CSS高级技巧

    定位 background-position 背景位置 浮动,在一个浮字上面,我们的定位,在一个位上.CSS离不开定位,特别是后面的JS特效,天天和定位打交道. 为什么要使用定位? 元素的定位属性 元 ...

  6. 半夜删你代码队 Day5冲刺

    一.每日站立式会议 1.站立式会议 成员 昨日完成工作 今日计划工作 遇到的困难 陈惠霖 跟进作业 完成注册界面 相关界面设计内容知识不充足 侯晓龙 开始双人合作 开始与数据库结合 无 周楚池 初步完 ...

  7. 彻底搞懂js this指向问题

    在这里必须要提一句的是,this指向是学习js必须要掌握的(必须),再开始之前先看底部的总结,然后回上面看例子便一目了然. 例子1: function a(){ var user = "Ta ...

  8. javascript:void(0)用法和常见问题

    javascript:void(0)的用法 下面的代码创建了一个超级链接,当用户以后不会发生任何事.当用户链接时,void(0) 计算为 0,但 Javascript 上没有任何效果. <a H ...

  9. bootstrap table 嵌入百分比进度条

  10. 【题解】「UVA1149」装箱 Bin Packing

    做法显然:贪心,但是怎么贪? 首先从大到小或从小到大排序,窝这次是从大到小排,这样更容易理解(从小到大更方变) 然后设置两个变量 front 和 after 作为前指针和后指针. 循环判断: 当前后两 ...