将虚拟IP绑定至实例或者EIP
操作场景
- 将虚拟IP绑定至实例,根据您不同的业务需求,您可以任意组合虚拟IP和实例:
- 为一个实例同时绑定一个或者多个虚拟IP
- 将一个虚拟IP同时绑定至多个实例
- 将虚拟IP绑定至弹性公网IP,实现公网访问需求。
约束与限制
建议一个ECS绑定的虚拟IP数量不超过8个。如果一个ECS绑定多个虚拟IP,通常不同的虚拟IP承载不同业务,业务过多的情况下,不同业务可能会导致云服务器超负荷从而影响实际体验。
登录控制台为虚拟IP绑定弹性公网IP或实例
- 登录管理控制台。
- 在管理控制台左上角单击,选择区域和项目。
- 在页面左上角单击图标,打开服务列表,选择“网络 > 虚拟私有云”。
进入虚拟私有云列表页面。
- 在左侧导航栏中,选择“虚拟私有云 > 子网”。
- 在子网列表中,单击虚拟IP所属子网的名称。
- 在“IP地址管理”页签,执行以下操作,为虚拟IP绑定弹性公网IP。
- 在虚拟IP所在行的操作列下,单击“绑定弹性公网IP”。
弹出“绑定弹性公网IP”对话框。
- 在对话框中,选择弹性公网IP ,并单击“确定”。
返回虚拟IP列表中,可以看到已绑定的弹性公网IP。
- 在虚拟IP所在行的操作列下,单击“绑定弹性公网IP”。
- 在“IP地址管理”页签,执行以下操作,为虚拟IP绑定实例。
- 在虚拟IP所在行的操作列下,单击“绑定实例”。
- 在对话框中,选择实例 ,并单击“确定”。
- 当您为一个ECS绑定一个或者多个虚拟IP时,则在控制台上绑定完成后,还需要在弹性云服务器上手工配置虚拟IP地址才可以使用,具体请参见登录ECS配置虚拟IP地址。
- 当您将一个虚拟IP同时绑定至多个ECS,并且配合Keepalived搭建高可用集群时,则请参见使用虚拟IP和Keepalived搭建高可用Web集群。
登录ECS配置虚拟IP地址
当为一个ECS绑定一个虚拟IP或者多个虚拟IP时,在控制台执行完绑定虚拟IP的操作后,您还需要参考以下章节,登录弹性云服务器手工配置虚拟IP地址。
- Linux系统:CentOS 7.2 64bit、Ubuntu 22.04 server 64bit
- Windows系统:Windows Server
- 执行以下命令,查看并记录需要绑定虚拟IP的网卡及对应连接。
回显类似如下信息:
本示例的回显信息说明如下:
- DEVICE列的eth0为需要绑定虚拟IP的网卡。
- NAME列的Wired connection 1为网卡对应的连接。
- 执行以下命令,在目标网卡连接中添加虚拟IP。
nmcli connection modify "网卡对应的连接名称" +ipv4.addresses 虚拟IP地址
参数说明如下:
- 网卡对应的连接名称:为1中查到的网卡对应的连接,本示例中为Wired connection 1。
- 虚拟IP地址:待添加的虚拟IP地址,如果一次添加多个虚拟IP地址,多个虚拟IP地址之间用“,”隔开。
命令示例:- 添加单个虚拟IP:nmcli connection modify "Wired connection 1" +ipv4.addresses 172.16.0.125
- 添加多个虚拟IP:nmcli connection modify "Wired connection 1" +ipv4.addresses 172.16.0.125,172.16.0.126
- 执行以下命令,使2的配置生效。
nmcli connection up "网卡对应的连接名称"
命令示例:
nmcli connection up "Wired connection 1"
回显类似如下信息:
- 执行以下命令,检查虚拟IP配置是否成功。
回显类似如下信息,可以看到eth0网卡下存在虚拟IP地址,为172.16.0.125。
如果您需要删除已添加的虚拟IP,可以使用以下方法:
- 在目标网卡连接中删除虚拟IP。
nmcli connection modify "网卡对应的连接名称" -ipv4.addresses 虚拟IP地址
一次删除多个虚拟IP地址时,多个IP之间用“,”隔开,命令示例:- 删除单个虚拟IP:nmcli connection modify "Wired connection 1" -ipv4.addresses 172.16.0.125
- 删除多个虚拟IP:nmcli connection modify "Wired connection 1" -ipv4.addresses 172.16.0.125,172.16.0.126
- 参考3,使删除操作生效。
- 在目标网卡连接中删除虚拟IP。
- 执行以下命令,查看并记录需要绑定虚拟IP的网卡。
回显类似如下信息,本示例中绑定虚拟IP的网卡名称为eth0。
root@ecs-X-ubantu:~# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.16.0.210 netmask 255.255.255.0 broadcast 172.16.0.255 inet6 fe80::f816:3eff:fe01:f1c3 prefixlen 64 scopeid 0x20<link> ether fa:16:3e:01:f1:c3 txqueuelen 1000 (Ethernet) RX packets 43915 bytes 63606486 (63.6 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 3364 bytes 455617 (455.6 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ...
- 执行以下命令,进入“/etc/netplan”目录。
- 执行以下命令,为目标网卡添加虚拟IP地址。
- 执行以下命令,打开配置文件“01-netcfg.yaml”。
- 按i进入编辑模式。
- 在对应网卡配置区域内,添加虚拟IP地址。
addresses:
- 172.16.0.26/32
添加后文件内容如下:network: version: 2 renderer: NetworkManager ethernets: eth0: dhcp4: true addresses: - 172.16.0.26/32 eth1: dhcp4: true eth2: dhcp4: true eth3: dhcp4: true eth4: dhcp4: true
- 添加完成后,按“ESC”,并输入“:wq!”,保存后退出文件。
- 执行以下命令,使3的配置生效。
netplan apply
- 执行以下命令,检查虚拟IP配置是否成功。
回显类似如下信息,可以看到eth0网卡下存在虚拟IP地址,为172.16.0.26。
root@ecs-X-ubantu:/etc/netplan# ip a ... 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether fa:16:3e:01:f1:c3 brd ff:ff:ff:ff:ff:ff altname enp0s3 altname ens3 inet 172.16.0.26/32 scope global noprefixroute eth0 valid_lft forever preferred_lft forever inet 172.16.0.210/24 brd 172.16.0.255 scope global dynamic noprefixroute eth0 valid_lft 107999971sec preferred_lft 107999971sec inet6 fe80::f816:3eff:fe01:f1c3/64 scope link valid_lft forever preferred_lft forever
以下操作以“Windows Server”为例,供您参考。
- 在“控制面板 > 网络和共享中心”路径下,单击对应的本地连接。
- 在打开的本地连接页面中,单击“属性”。
- 在“网络”页签中选择“Internet 协议版本 4 (TCP/IPv4)”。
- 单击“属性”。
- 选择“使用下面的IP地址”,IP地址配置为弹性云服务器的私有IP地址,例如:10.0.0.101。
图1 配置私有IP地址
- 单击“高级”。
- 在“IP设置”页签内“IP地址”区域,单击“添加”。
图2 配置虚拟IP地址
- 单击“确定”,保存更改。
- 在“开始”菜单中打开Windows命令行窗口,执行以下命令确认是否配置了虚拟IP地址。
回显样例中IPv4 Address包含虚拟IP地址10.0.0.154,表示弹性云服务器内部网卡的虚拟IP地址配置正常。