运维百科

Ubuntu18下双网卡双IP双网关(N网关同样适用)策略路由配置

有这种需求的客户双出口,主要需求为:防止单线路或者单网络故障,无路由器、无交换机,纯依赖系统实现。

这里以 Ubuntu18配置为例。

Ubuntu 18.04 LTS 之后的版本都采用全新的 Netplan 来管理网络配置,所以如果我们需要修改 Ubuntu 18.04 LTS 的网络设置,需要配置 Netplan 并让其生效。本文详细讲解 Netplan 的配置流程,包括单网卡多 IP 地址、单网卡多网关、多网卡多 IP、静态 IP、DHCP 等的配置。

本文先讲解整个流程,之后着重介绍配置文件的修改。

一、Netplan 配置流程

1、查看配置文件

ls /etc/netplan/

就可以看到配置文件名称。

2、打开配置文件

vi /etc/netplan/*.yaml

此处*是文件名,要打开对应哪个文件就*写成对应的文件名,比如50-cloud-init.yaml

3、修改配置文件,修改方法见后面详细介绍。

4、测试配置文件

sudo netplan try

如果没问题,可以继续往下应用配置文件。

5、应用配置文件

sudo netplan apply

6、验证 IP 地址

ip a

二、Netplan 配置文件详解,修改netplan配置文件

在单网卡使用多个不同网段的 IP 地址:

network:
  version: 2
    eno1: 
      dhcp4: false
      addresses: [110.251.58.4/24]    //IP地址
      routes: 
          - to: 110.0.0.0/8
            via: 110.251.58.1    //网关地址
            metric: 100    //优先级较高
      nameservers: 
        addresses: [114.114.114.114,8.8.8.8]  //DNS服务器地址
      optional: true
    eno2:
      dhcp4: true
      optional: true
	eno3:
	  dhcp4: false
	  addresses: [192.168.100.10/24]
	  routes: 
	      - to: 0.0.0.0/0
	        via: 192.168.100.1
             metric: 50
	  optional: true
	eno4: 
	  dhcp4: true
	  optional: true
  version: 2

重要:以上方法配置不生效,未查出原因。

三、策略路由配置

1、两个网卡都配置好 IP 信息,只有走默认网关的一条线路是通的,所以要用到策略路由来配置另一条线路的路由

ip rule add from 110.251.58.4 table 100
ip rule add from 192.168.100.10 table 101

然后用 ip rule show 查看策略路由,是否添加成功

2、策略路由添加好后,为两条线路指定网关

ip route add default via 110.251.58.1 table 100
ip route add default via 192.168.100.1 table 101
这样两条线路的路由已设置好,都能通了。没问题后把这 4 段命令写到/etc/rc.local 文件里边,系统启动就会自动执行。

如果没写到这个文件里边系统重启后会失效,再次启动后要重新以上操作

[root@oralcedb ~]# vi /etc/rc.local
#!/bin/sh
ip rule add from 110.251.58.4 table 100
ip rule add from 192.168.100.10 table 101
ip route add default via 110.251.58.1 table 100
ip route add default via 192.168.100.1 table 101

ubuntu-18.04不能像先前版本一样通过编辑 rc.local 来设置开机启动脚本,通过下列简单设置后,可以使 rc.local 重新发挥作用。

打开 rc-local.service 文件

vim /etc/systemd/system/rc-local.service

将下列内容复制进 rc-local.service 文件(最下方)

[Install]   
WantedBy=multi-user.target   
Alias=rc-local.service
解析:
[Unit] 段: 启动顺序与依赖关系
[Service] 段: 启动行为,如何启动,启动类型
[Install] 段: 定义如何安装这个配置文件,即怎样做到开机启动

创建文件 rc.local 文件并写入(ubuntu-18.04 默认无 /etc/rc.local 文件,需自己创建)

vim /etc/rc.local (创建文件)

向文件 rc.local 写入

#!/bin/sh
ip rule add from 110.251.58.4 table 100
ip rule add from 192.168.100.10 table 101
ip route add default via 110.251.58.1 table 100
ip route add default via 192.168.100.1 table 101

给 rc.local 加上【可执行】权限 (默认不可执行,不加权限的话怎么改动 rc.local 都不会执行)

chmod +x /etc/rc.local ( 或者懒人式:chmod 777 /etc/rc.local )

启用服务

systemctl enable rc-local

启动服务

systemctl start rc-local.service
systemctl status rc-local.service 命令查看服务是否成功启动(查看服务是否成功启动)

可使用 

reboot
systemctl status rc-local.service

检查网络是否生效。

至此,成功,完成。


参考:

1、https://blog.csdn.net/weixin_34194379/article/details/92726037

2、http://www.xuexiyunwei.cn/2019/07/05/linux-%E5%8F%8C%E7%BD%91%E5%8D%A1%E5%8F%8C%E7%BD%91%E5%85%B3%E9%85%8D%E7%BD%AE/

3、https://zhuanlan.zhihu.com/p/63507762


本站部分资源收集于网络,纯个人收藏,无商业用途,如有侵权请及时告知!

2
分享到:

评论 0

取消
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址