Linux路由配置实战,让你的网络不再混乱

2023-09-03 22:26:33

#Linux# #路由# #网卡# #无法上网#

想学习脚本,Linux、Python、Docker、K8S等技术感兴趣的朋友、或者想一起更新这个仓库以及对该脚本有建议的朋友都可以加入QQ讨论群:423468897一起讨论交流!

1、路由是什么

路由是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程。

2、为什么要配置路由

在使用了多个网卡的情况下,系统可能无法自动使用对应的网卡去访问对应的资源,例如:

一个服务器有两个网卡,一个是针对内网,一个是针对外网,理想的情况是访问内网环境的时候系统使用的是内网网卡,访问外网的时候,使用的是外网网卡,但是有时候就会出现访问内网的时候使用了外网网卡,访问外网的时候使用了内网网卡,最终导致访问失败!

3、如何设置路由

不同系统类型设置方法都可能不一样,在这里主要讲解如何在Linux(CentOS)系统上配置,默认情况下基本所有同期Linux系统方法都是一样的。

3.1、需要用到什么工具

配置路由的命令在这里我采用route工具进行配置和查看配置信息

yum install net-tools #安装route工具,进入单网卡模式下安装


进入单网卡模式安装

3.2、情景展现

现在我的主机IP地址分布如下:

hostname -I

系统IP地址

需求:在这个局域网中,还有一个网段(看下面),然后我的IP中只有1.1这个段是内网(虚拟机的仅主机模式),10.1这个是外网(虚拟机的NAT模式)。

子网地址

现在我不配置路由直接PING一下百度


PING失败

此时是无法PING通的,然后我断开一个内网连接:

使用单网卡连接

这时候就能够连通了,也就说明现在存在路由混乱的问题。

3.3、路由配置

3.3.1、查询当前网络信息

连接内网网卡后,执行命令:

routel

查询网关地址

记住对应的网关地址,然后继续查询当前路由表:

route -n

当前系统路由表

从查询结果可以看到,有两个0.0.0.0的访问条目,也就是说现在系统会任意使用其中一个网关去访问外网,这样的情况是不符合当前环境的,所以需要重新配置。

3.3.2、配置内网路由

首先我们先删除0.0.0.0的路由配置

route del -net 0.0.0.0 netmask 0.0.0.0 route del -net 0.0.0.0 netmask 0.0.0.0

删除0.0.0.0路由访问

然后剩下的就不管了,接着新增一个条目:

route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.1.1.2 ens33

-net #子网

netmask #子网掩码

gw #网关地址

ens33 #指定一个网络设备接口名

然后查询新的路由表:

新的路由表


接着PING一下百度:

然后网络就通了

所以在多网卡环境下,网络不通不一定是IP配置有问题,路由表也是一个不可忽视的影响因素,上面只是针对访问外网进行一个路由配置而已,在实际场景中可能还会遇到更复杂的网络环境,那么这个时候,路由表的规划就是非常重要的了。


当然,route工具算是比较老的工具了,现在也出了一些新的路由管理工具,有些工具比这个更简单,例如nmtui。


遇到这种情况你们一般使用哪种工具或者解决方案呢?