Linux多网卡外网访问策略路由设置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux多网卡外网访问策略路由设置相关的知识,希望对你有一定的参考价值。

参考技术A 如果一个linux服务器有三个口接三个不同的网络,对应的网络信息是如下

传统情况下,如果是为了从内向外访问获得更好的速度,让访问电信走电信,访问网通走网通,那么配置是网关只能够配置一个。

比如以电信为主的,那么网关就只设置电信的1.1.1.254,而针对网通和教育网设置不同的路由,路由下一跳指向网通和教育网对应的 网关。

如果这样做的目的只是实现内部访问外面,那么是没问题了,但是如果是为了让外面的用户能够正常访问到服务器上的服务就会出问题。比如电信用户会无法访问网通和教育网的ip,网通用户会无法访问电信和教育网的ip。而且只有设置了默认路由的那个网络能被跨网络访问,其它两个网络只能被本子网的设备访问。

要解决这个问题,思路就是由哪个网口进来的流量希望全部就由哪个回去。用lartc里面提到的方法就是来源的口不同,走不同的路由表。在默认的路由表基础上再建立三个路由表。

用 ip route show 可以看到默认有local,main,default三个路由表,这三个路由表的名称命名来自 /etc/iproute2/rt_tables ,这里先在这个配置文件里面添加三个不同的路由表表名,

之后建立这三个路由表的内容,因为这三个路由表的只是用来响应来自不同接口的,而不是用来相应从哪个接口出去的,所以只需要每个路由表里面建立默认网关即可。

之后再加上三条规则,使来自不同的口的走不同的路由表

至此无论是电信还是网通还是教育网用户,访问三个ip的任意一个地址都能够连通了。即便是服务器上本身的默认路由都没有设置,也能够让外面的用户正常访问。三个网络的IP都能被跨网络访问了。

命令汇总:

Linux 设置双网卡通信,外网网卡和内网网卡

文章目录

Linux 设置双网卡通信,外网网卡和内网网卡


1、配置路由表


背景,Linux 主机已经安装了内网、外网 2 张网卡,目前外网网络已通,需要设置内网网卡转发通内网

route -net 10.xx.0.0 netmask 255.255.0.0 gw 10.xx.xx.xx dev enp1s0

10.xx.0.0 内网需要通信的设备的网段,如果 10.99.0.0 代表 10.99 网段的所有 IP
10.xx.xx.xx 表示 10.xx 网段走 10.xx.xx.xx 这个网关转发
enp1s0:内网网卡设备

示例

route -net 10.99.0.0 netmask 255.255.0.0 gw 10.99.40.254 dev enp1s0

2、设置启动自动生效


打开 /etc/sysconfig/static-routes 文件,如果没有则创建该文件,然后在文件内写入如下的内容

修改上面的语句 route -netany net 即可

any net 10.xx.0.0 netmask 255.255.0.0 gw 10.xx.xx.xx dev enp1s0

示例

any net 10.99.0.0 netmask 255.255.0.0 gw 10.99.40.254 dev enp1s0

以上是关于Linux多网卡外网访问策略路由设置的主要内容,如果未能解决你的问题,请参考以下文章

linux 能访问路由器,但不能访问外网。DNS都设置过了。还是不行。请问有啥原因?

Linux 设置双网卡通信,外网网卡和内网网卡

Linux 设置双网卡通信,外网网卡和内网网卡

Linux 设置双网卡通信,外网网卡和内网网卡

网络安全课程实验二-iptabls实现路由转发

linux双网卡配置