配置弹性网卡
根据您的实例使用的镜像不同,部分镜像需要配置弹性网卡,才能正常使用弹性网卡。
前提条件
您已经将弹性网卡绑定到BCC实例上。
准备工作
弹性网卡配置工具
-
将弹性网卡绑定到BCC/EBC实例、且实例内识别到弹性网卡后,根据镜像版本分别执行以下脚本配置ip和路由表。CentOS/CentOS Stream/RockyLinux/BaiduLinux/AlmaLinux 请使用CentOS 版本的脚本。
CentOS:bcc_elastic_net_centos_20241121.sh
- Windows系统需要手动配置。
配置工具会创建静态路由,重启网络或者实例后,无需再次进行路由的设置。
运行配置工具
- 进入创建的BCC服务器,并为配置工具添加可执行权限。
- 完成挂载弹性网卡操作后,执行配置工具。
- 对网卡进行修改IP,解绑及重新绑定等操作时,需要再次运行配置工具。
如下所示:
1----------------------------------
2 Disable NetworkManager.
3 Begin to config network...
4 create/recreate network config file [OK]
5 Begin to create route table...
6 add 192.168.32.212 to route table: rt_ens3 [OK]
7 add 192.168.32.228 to route table: rt_ens3 [OK]
8 add 192.168.32.209 to route table: rt_ens6 [OK]
9 add 192.168.32.210 to route table: rt_ens6 [OK]
10 add 192.168.32.211 to route table: rt_ens6 [OK]
11 add 192.168.32.226 to route table: rt_ens7 [OK]
12 add 192.168.32.227 to route table: rt_ens7 [OK]
13 add 192.168.32.229 to route table: rt_ens7 [OK]
14 Restart network... [OK]
15----------------------------------
配置完成后,可通过ip addr命令查看IP是否已启用(以Centos为例)
1[root@instance-h1q92lvr ~]# ip addr
21: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
3 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
4 inet 127.0.0.1/8 scope host lo
5 inet6 ::1/128 scope host
6 valid_lft forever preferred_lft forever
72: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc pfifo_fast state UP qlen 1000
8 link/ether fa:16:3e:7d:2d:ad brd ff:ff:ff:ff:ff:ff
9 inet 192.168.32.212/20 brd 192.168.47.255 scope global eth0
10 inet 192.168.32.228/20 brd 192.168.47.255 scope global secondary eth0:1
11 inet6 fe80::f816:3eff:fe7d:2dad/64 scope link
12 valid_lft forever preferred_lft forever
133: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc pfifo_fast state UP qlen 1000
14 link/ether fa:16:3e:a6:69:8f brd ff:ff:ff:ff:ff:ff
15 inet 192.168.32.209/20 brd 192.168.47.255 scope global eth1
16 inet 192.168.32.210/20 brd 192.168.47.255 scope global secondary eth1:1
17 inet 192.168.32.211/20 brd 192.168.47.255 scope global secondary eth1:2
18 inet6 fe80::f816:3eff:fea6:698f/64 scope link
19 valid_lft forever preferred_lft forever
204: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc pfifo_fast state UP qlen 1000
21 link/ether fa:16:3e:93:e5:44 brd ff:ff:ff:ff:ff:ff
22 inet 192.168.32.226/20 brd 192.168.47.255 scope global eth2
23 inet 192.168.32.227/20 brd 192.168.47.255 scope global secondary eth2:1
24 inet 192.168.32.229/20 brd 192.168.47.255 scope global secondary eth2:2
25 inet6 fe80::f816:3eff:fe93:e544/64 scope link
26 valid_lft forever preferred_lft forever
配置弹性网卡
根据BCC实例的操作系统,选择配置弹性网卡的方式:
Windows系统配置弹性网卡
准备工作
在给您的Windows系统实例配置弹性网卡前,需要先将弹性网卡绑定在实例上。您可以根据需求在一个弹性网卡上分配一个或多个辅助私网IP地址。通过使用多个私网IP地址,能提高Windows实例高利用率和实现负载故障时的流量转移。
配置方法
以Windows Server 2012R2为例说明Windows系统配置辅助IP的过程。
1.打开网络与共享中心,选择更改适配器设置。
2.在弹出的页面中选择一个网卡,右键属性。
3.选择TCP/IPV4,点击属性。
4.在弹出的对话框中选择“使用下面的ip地址”,这时需要填写ip地址,子网掩码,DNS服务器等信息,这些信息可以通过在命令行下输入命令 ipconfig /all 获取,输完命令或显示很多信息,记下其中的IPv4 Address (IPv4 地址)、Subnet Mask (子网掩码)、Default Gateway (默认网关) 和 DNS Servers (DNS 服务器)这些值。
5.接下来回到刚才弹出的对话框配置静态ip地址。依次填入获取到的IP地址,子网掩码,默认网关,DNS服务器地址等信息,如下图所示,点击确定,设置过程中会有间断数秒钟的断网,这个是正常现象。
6.配置好静态IP后,如果您在控制台添加了辅助ip,还需要继续添加辅助ip。
7.在刚才的“Internet协议版本 4 TCP/IP属性”对话框界面点击高级,在弹出的对话框中点击添加,进行添加IP的操作,将在控制台添加的辅助IP依次填写就完成了。
8.要验证辅助ip确实已添加至操作系统中,可以在命令行下输入ipconfig /all 查看刚才添加的ip是否已经存在。
CentOS系统配置弹性网卡
准备工作
-
为防止 cloud-init 重置您的自定义网络配置,请禁用cloud-init中的网络配置,编辑 /etc/cloud/cloud.cfg,添加以下内容。
network: {config: disabled}
- BCC实例中安装了NetworkManager,NetworkManager可能会修改路由设置,因此需要禁用 NetworkManager。
-
CentOS 7 禁用NetworkManager
Plain Text1 systemctl stop NetworkManager 2 systemctl disable NetworkManager
-
CentOS 6 禁用NetworkManager
Plain Text1 service NetworkManager stop 2 chkconfig NetworkManager off
配置网卡
- 获取网络接口名称(网卡名称)
-
BCC实例添加弹性网卡后,可通过以下命令获取弹性网卡的名称。
Plain Text1 ls /sys/class/net
-
输出结果(示例)
Plain Text1 eth0 eth1 eth2 lo
- BCC实例默认的主网卡名称为eth0或ens3(部分BCC实例主网卡名为ens3)。以上结果中,添加的弹性网卡为eth1,eth2。
-
为弹性网卡创建配置文件,以eth1为例。
Plain Text1vim /etc/sysconfig/network-scripts/ifcfg-eth1
添加以下内容:
1 DEVICE=eth1
2 BOOTPROTO=dhcp
3 ONBOOT=yes
4 TYPE=Ethernet
5 USERCTL=no
6 PEERDNS=no
7 IPV6INIT=no
8 PERSISTENT_DHCLIENT=yes
9 HWADDR=fa:16:3e:6a:14:b5
10 DEFROUTE=no
注意:
- 需要将弹性网卡的MAC地址写入到配置文件中。(可通过cat /sys/class/net/[网卡名称]/address查看弹性网卡的MAC地址)。
- 为了防止更改默认路由,需要在弹性网卡的配置文件中添加DEFROUTE=no选项。
如果网卡上有多个IP,需要将网卡上的辅助IP添加到配置文件中。
1 DEVICE=eth1
2 BOOTPROTO=dhcp
3 ONBOOT=yes
4 TYPE=Ethernet
5 USERCTL=no
6 PEERDNS=no
7 IPV6INIT=no
8 PERSISTENT_DHCLIENT=yes
9 HWADDR=fa:16:3e:6a:14:b5
10 DEFROUTE=no
11 IPADDR1=192.168.32.210
12 PREFIX1=24
13 IPADDR2=192.168.32.211
14 PREFIX2=24
-
重启网络
Plain Text1systemctl restart network / service network restart
配置路由
为了保证数据能够通过正确的网络接口(网卡),您必须为弹性网卡创建新的路由表及规则。
- 创建路由表
编辑 /etc/iproute2/rt_tables,分别为每一个弹性网卡创建一个路由表。
1 10 rt_eth1
2 20 rt_eth2
- 设置路由规则(以eth1为例)
在终端中运行以下命令:
1 ip route add default via 192.168.32.1 dev eth1 table rt_eth1
2
3 ip route add 192.168.32.209 dev eth1 table rt_eth1
4 ip route add 192.168.32.210 dev eth1 table rt_eth1
5 ip route add 192.168.32.211 dev eth1 table rt_eth1
6
7 ip rule add from 192.168.32.209 lookup rt_eth1
8 ip rule add from 192.168.32.210 lookup rt_eth1
9 ip rule add from 192.168.32.211 lookup rt_eth1
注:
- 192.168.32.209 / 210 / 211为弹性网卡的IP。
- 192.168.32.1为弹性网卡的默认网关。
设置完成后,可以通过 ip route show table rt_eth1 查看弹性网卡上每个 IP 的路由。
- 创建弹性网卡的静态路由文件(以eth1为例)
为弹性网卡创建静态路由和规则文件,当BCC实例启动或重启网络时都会保留路由和规则,无需再次手动添加。
创建 route-eth1 静态路由文件,vim /etc/sysconfig/network-scripts/route-eth1,添加以下内容:
1 default via 192.168.32.1 dev eth1 table rt_eth1
2
3 192.168.32.209 dev eth1 table rt_eth1
4 192.168.32.210 dev eth1 table rt_eth1
5 192.168.32.211 dev eth1 table rt_eth1
创建或编辑 rule-eth1 的规则文件,vim /etc/sysconfig/network-scripts/rule-eth1,添加以下内容:
1 from 192.168.32.209 lookup rt_eth1
2 from 192.168.32.210 lookup rt_eth1
3 from 192.168.32.211 lookup rt_eth1
Ubuntu/Debian系统配置弹性网卡
配置前准备工作
-
为防止 cloud-init 重置您的自定义网络配置,请禁用cloud-init中的网络配置,编辑 /etc/cloud/cloud.cfg ,添加以下内容:
Plain Text1network: {config: disabled}
- BCC实例中安装了NetworkManager,NetworkManager可能会修改路由设置,因此需要禁用 NetworkManager,并保证系统重启后,NetworkManager仍处于禁用状态。
-
Ubuntu14 需要卸载NetworkManager
Plain Text1 service network-manager stop 2 apt-get --purge remove -y network-manager
-
CentOS 6 禁用NetworkManager
Plain Text1 systemctl stop NetworkManager 2 systemctl disable NetworkManager
配置网卡
- 获取网络接口名称(网卡名称)
BCC实例添加弹性网卡后,可通过以下命令获取弹性网卡的名称。
1 ls /sys/class/net
输出结果(示例)
1 eth0 eth1 eht2 lo
BCC实例默认的主网卡名称为eth0或ens3(部分BCC实例主网卡名为ens3)。以上结果中,添加的弹性网卡为eth1,eth2。
- 编辑 /etc/network/interfaces
编辑/etc/network/interfaces网络接口文件,修改为以下内容:
1 auto lo
2 iface lo inet loopback
3 source /etc/network/interfaces.d/*
对于BCC Ubuntu16实例,编辑 /etc/network/interfaces.d/50-cloud-init.cfg,将其修改为以下内容:
1 auto ens3
2 iface ens3 inet dhcp
同时修改文件名为ens3.cfg
1 mv /etc/network/interfaces.d/50-cloud-init.cfg /etc/network/interfaces.d/ens3.cfg
对于BCC Ubuntu20实例,编辑 /etc/netplan/01-netcfg.yaml,将其修改为以下内容:
1 network:
2 version: 2
3 renderer: networkd
4 ethernets:
5 eth0:
6 dhcp4: yes
7 eth1:
8 dhcp4: yes
9 eth2:
10 dhcp4: yes
- 为弹性网卡创建配置文件,以eth1为例。
在/etc/network/interfaces.d/目录下新建eth1.cfg文件
1 vim /etc/network/interfaces.d/eth1.cfg
添加以下内容:
1 auto eth1
2 iface eth1 inet dhcp
3 hwaddress=fa:16:3e:6a:14:b5
4
注意:
- 需要将弹性网卡的MAC地址写入到配置文件中。(可通过cat /sys/class/net/[网卡名称]/address查看弹性网卡的MAC地址)。
如果网卡上有多个IP,需要将网卡上的辅助IP添加到配置文件中。
1 auto eth1
2 iface eth1 inet dhcp
3 hwaddress=fa:16:3e:6a:14:b5
4
5 iface eth1 inet static
6 address 192.168.32.210
7 netmask 255.255.240.0
8
9 iface eth1 inet static
10 address 192.168.32.211
11 netmask 255.255.240.0
- 创建 restrict-default-route 文件,以防止默认路由被覆盖。
vim /etc/dhcp/dhclient-enter-hooks.d/restrict-default-route,添加以下内容:
1 case ${interface} in
2 eth0) # ubuntu16/debian9为ens3
3 ;;
4 *)
5 unset new_routers
6 ;;
7 esac
- 重启网络。
-
Ubuntu14
Plain Text1 ifdown eth1 && ifup eth1
-
Ubuntu16
Plain Text1 systemctl restart networking
-
Ubuntu20
Plain Text1 netplan apply
配置路由
为了保证数据能够通过正确的网络接口(网卡),您必须为弹性网卡创建新的路由表及规则。
- 创建路由表
编辑 /etc/iproute2/rt_tables,分别为每一个弹性网卡创建一个路由表。
1 10 rt_eth1
2 20 rt_eth2
- 设置路由规则(以eth1为例)。
在终端中运行以下命令:
1 ip route add default via 192.168.32.1 dev eth1 table rt_eth1
2
3 ip route add 192.168.32.209 dev eth1 table rt_eth1
4 ip route add 192.168.32.210 dev eth1 table rt_eth1
5 ip route add 192.168.32.211 dev eth1 table rt_eth1
6
7 ip rule add from 192.168.32.209 lookup rt_eth1
8 ip rule add from 192.168.32.210 lookup rt_eth1
9 ip rule add from 192.168.32.211 lookup rt_eth1
注:
- 192.168.32.209 / 210 / 211为弹性网卡的IP
- 192.168.32.1为弹性网卡的默认网关
设置完成后,可以通过 ip route show table rt_eth1 查看弹性网卡上每个 IP 的路由。
- 创建弹性网卡的静态路由文件(以eth1为例)。
编辑/etc/network/interfaces.d/eth1.cfg
1 auto eth1
2 iface eth1 inet dhcp
3 hwaddress=fa:16:3e:6a:14:b5
4
5 iface eth1 inet static
6 address 192.168.32.210
7 netmask 255.255.240.0
8
9 iface eth1 inet static
10 address 192.168.32.211
11 netmask 255.255.240.0
12
13 # default gateway for eth1
14 up ip route add default via 192.168.32.1 dev eth1 table rt_eth0
15
16 # route for every IP
17 up ip route add 192.168.32.210 dev eth1 table rt_eth0
18 up ip route add 192.168.32.211 dev eth1 table rt_eth0
19
20 # policy rule for every IP
21 up ip rule add from 192.168.32.210 lookup rt_eth0
22 up ip rule add from 192.168.32.210 lookup rt_eth0