route -n 详解

 

一、route介绍

 

Linux系统的route命令用于显示和操作IP路由表, 要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。

 

二、路由添加方式

 

#-n 表示不解析名字,列出速度会比route 快

 

#destination:目的地,终点,就是我们要去访问的目的IP

 

测试1:添加UGH的flags

 

route add -host 0.0.0.0 gw 192.168.124.254 #添加

 

route del -host 0.0.0.0 gw 192.168.124.254 #回退

 

 

 

测试2:添加UG的flags

 

route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.124.254 #添加

例如:

route add -net 172.168.0.0/24 gw 172.168.0.1 dev eth0

 

或者 route add -net 0.0.0.0.0/32 gw 192.168.124.254

 

 

 

route del -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.124.254 #回退

 

或者 route del -net 0.0.0.0.0/32 gw 192.168.124.254

 

 

 

测试3:添加路由表配置文件(注:写配置文件为永久,命令重启网络失效)

 

#vim

 

==>any net 0.0.0.0/32 gw 192.168.124.254 #添加路由表UG,常用

 

==>any host 0.0.0.0 gw 192.168.124.1 #添加路由表UGH

 

# systemctl restart network

 

注:在它显示的信息中,如果标志是U,则说明是可达路由(活动的);如果是G,则说明这个网络接口连接的是网关,H则说明目标是一个主机。

在每块网卡上每配置一个IP就会生成一条记录(一个网卡上可以配置多个IP)。表示去往这两个网段的数据包,直接由网卡接口ens33=eth0发送出去。

三、路由表解释

linux route命令 iptables_IP

 

 

#route add -net 192.168.1.0/24 gw 192.168.124.254#图第2行添加命令

#route add -net 192.168.2.0/24 gw 192.168.124.253#图第3行添加命令


1、第一行的意思就是去往所有目标地址数据包由网关192.168.124.1通过网卡eth0来转发Flags那一列中有G时才会使用Gateway

2、行:表示去往节点1eth0的数据由网关192.168.124.254通过本机的eth0来转发

3、第三行:同样是去往节点2eth0的数据由网关192.168.1244.253通过本机的eth0来转发

4、行:意思就是去往192.168.122.0地址的数据包通过virbr0网桥设备来转发

5、第五行:就是说去往192.168.124.0 地址中的数据要通过eth0网卡来转发


其中:

add : 添加一条路由规则

del : 删除一条路由规则

-net : 目的地址是一个网络

-host : 目的地址是一个主机

target : 目的网络或主机

netmask : 目的地址的网络掩码

gw : 路由数据包通过的网关

dev : 为路由指定的网络接口

 

 

四、查看当前系统是否支持路由转发功能

 

方式1:

 

# sysctl net.ipv4.ip_forward#查看

 

#sysctl -w net.ipv4.ip_forward=1 #立即生效,重启网络失效

 

# vi /etc/sysctl.conf  

 

==>net.ipv4.ip_forward = 1  #1为开启,0为关闭

 

#systemctl restart network#重启网络生效,永久

 


 

方式2:

 

#vim /etc/sysconfig/network

 

==>FORWARD_IPV4=YES #添加

 

#systemctl restart network#重启网络生效,永久