如何在华为云上为Ubuntu Linux双网卡配置流量分割

0 前言
此为危险操作,配置不当会无法进入系统,尤其对于远程SSH登陆用户,一定要先做好备份或镜像!
Linux中的双网卡有多种不同的运行模式。这里讲的是流量分割, 所有的response数据都会从request来的那块网卡原路返回。通俗一点地说,双网卡并行运行,互不干扰,各自监听自己的服务并与外界反馈,系统本身发起的外出流量从默认网关流出。
以下配置在Ubuntu Bionic/Disco中验证通过。

1 添加网卡
这一步很简单,按照如下步骤即可:
控制台 ➡ 弹性云服务器 ➡ 你的实例 ➡ 网卡标签 ➡ 添加网卡,
安全组按照自己需求设定一个,如果需要把这个网卡添加到一个独立的子网中,可以在虚拟私有云VPC中操作。私有ip建议手工设定。

2 解除云平台的部分网络配置能力,由实例接管
echo 'network: {config: disabled}' > /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

3 路由表设置
以sudo权限编辑/etc/iproute2/rt_tables,文件末尾加入两行如下:


#
# reserved values
#
255	local
254	main
253	default
0	unspec
#
# local
#
#1	inr.ruhep
22	rt1st

其中22表示权重,rt1st表示路由表。在这里添加路由表是因为接下来的配置要用到策略路由。

4 Ubuntu中网卡配置
以sudo权限在/etc/netplan下新建一个配置文件,比如50-cloud-init.yaml,其中50表示读取该文件的优先级,取决于你的系统中有没有其他配置文件以及你拟定的加载优先级。文件名中间随便,但一定要以yaml结尾,否则netplan无法识别。配置文件如下:


network:
    version: 2
    renderer: networkd
    ethernets:
        ens11:
            dhcp4: no
            match:
                macaddress: fa:16:3e:97:83:54
            addresses: [172.16.1.2/24]
            nameservers:
                addresses: [1.1.1.1, 100.125.135.29]
            gateway4: 172.16.1.1
        ens3:
            dhcp4: no
            match:
                macaddress: fa:16:3e:e8:d2:6d
            addresses: [172.16.0.2/24]
            nameservers:
                addresses: [1.1.1.1, 100.125.135.29]
            routes:
                - to: 0.0.0.0/0
                  via: 172.16.0.1
                  metric: 22
                  table: 22
            routing-policy:
                - from: 172.16.0.2/32
                  table: 22

配置文件仅供参考,千万不要照抄。macaddress在控制台的网卡标签中可以找到。
有且只有一个网卡能用到gateway4指令,表示外出流量默认流出网卡。
table指令后跟的是权重,不是路由表的名称。

5 保存配置文件后记得sudo权限给出如下命令:
$ sudo netplan apply
当然,你也可以简单粗暴地重启系统.

为您推荐

发表评论

电子邮件地址不会被公开。