Linux route路由讲解
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 /etc/sysconfig/static-routes
==>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发送出去。
三、路由表解释
#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、第二行:表示去往节点1的eth0的数据由网关192.168.124.254通过本机的eth0来转发
3、第三行:同样是去往节点2的eth0的数据由网关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#重启网络生效,永久