- 最新动态
- 功能总览
- 产品介绍
- 快速入门
- 用户指南
- 最佳实践
-
API参考
- 使用前必读
- API概览
- 如何调用API
- API
- API V3
- API(OpenStack Neutron V2.0 原生)
- 应用示例
-
权限和授权项
- 策略及授权项说明
- VPC
- 子网
- 端口
- 对等连接
- VPC路由
- 路由表
- 配额
- 私有IP
- 安全组
- 安全组规则
- VPC标签
- 子网标签
- VPC流日志
- 端口(Openstack Neutron API)
- 网络(Openstack Neutron API)
- 子网(Openstack Neutron API)
- 路由器(Openstack Neutron API)
- 网络ACL(Openstack Neutron API)
- 安全组(Openstack Neutron API)
- VPC(API V3)
- 安全组(API V3)
- 安全组规则(API V3)
- IP地址组(API V3)
- 辅助弹性网卡(API V3)
- 流量镜像会话(API V3)
- 流量镜像筛选条件(API V3)
- 流量镜像筛选规则(API V3)
- 网络ACL(API V3)
- 网络ACL标签(API V3)
- 端口(API V3)
- API授权项注意事项
- 常见问题
- 历史API
- 附录
- SDK参考
-
常见问题
- 计费类
- 虚拟私有云与子网类
- 弹性公网IP类
- 对等连接类
- 虚拟IP类
- 带宽类
-
网络连接类
- VPN支持将两个VPC互连吗?
- ECS有多个网卡时,为何无法通过域名访问公网网站及云中的内部域名?
- 同时拥有自定义路由和EIP的ECS访问外网的优先级是什么?
- 本地主机访问使用弹性云服务器搭建的网站出现间歇性中断怎么办?
- 同一个子网下的弹性云服务器只能通过内网IP地址单向通信怎么办?
- 同一个VPC内的两台弹性云服务器无法互通或者出现丢包等现象时,如何排查?
- Cloud-init连接出现问题时,如何排查?
- EIP连接出现问题时,如何排查?
- 二三层通信出现问题时,如何排查?
- 裸机网络出现问题时,如何排查?
- 弹性云服务器IP获取不到时,如何排查?
- VPN及专线网络连接出现问题时,如何排查?
- 外网能访问服务器,但是服务器无法访问外网时,如何排查?
- 配置了IPv6双栈,为什么无法访问IPv6网站?
- 弹性云服务器防火墙配置完成后,为什么网络不通?
- 路由类
- 安全类
- 视频帮助
- 产品术语
-
更多文档
- 用户指南(阿布扎比区域)
-
API参考
- 使用前必读
- API概览
- 如何调用API
- 快速入门
- API V1/V2
- API V3
- API(OpenStack Neutron V2.0 原生)
-
权限和授权项
- 策略及授权项说明
- VPC
- 子网
- 端口
- 对等连接
- VPC路由
- 路由表
- 配额
- 私有IP
- 安全组
- 安全组规则
- VPC标签
- 子网标签
- 端口(Openstack Neutron API)
- 网络(Openstack Neutron API)
- 子网(Openstack Neutron API)
- 路由器(Openstack Neutron API)
- 网络ACL(Openstack Neutron API)
- 安全组(Openstack Neutron API)
- VPC(API V3)
- 安全组(API V3)
- 安全组规则(API V3)
- IP地址组(API V3)
- 辅助弹性网卡(API V3)
- 网络ACL(API V3)
- 网络ACL标签(API V3)
- API授权项注意事项
- 历史API
- 附录
- 文档修订记录
-
用户指南(巴黎区域)
- 产品介绍
- 快速入门
- 虚拟私有云和子网
- 访问控制
- 弹性IP
- 共享带宽
- 路由表
- 对等连接
- VPC流日志
- 虚拟IP
- 审计
- 监控
-
常见问题
- 通用类
- 计费类
- 虚拟私有云与子网类
- 弹性IP类
- 对等连接类
- 虚拟IP类
- 带宽类
-
网络连接类
- VPN支持将两个VPC互连吗?
- 弹性云服务器有多个网卡时,为何无法通过域名访问公网网站及云中的内部域名?
- 同时拥有自定义路由和弹性IP的访问外网的优先级是什么?
- 本地主机访问使用弹性云服务器搭建的网站出现间歇性中断怎么办?
- 同一个子网下的弹性云服务器只能通过内网IP地址单向通信怎么办?
- 同一个VPC内的两台弹性云服务器无法互通或者出现丢包等现象时,如何排查?
- Cloud-init连接出现问题时,如何排查?
- EIP连接出现问题时,如何排查?
- 弹性云服务器IP获取不到时,如何排查?
- VPN及专线网络连接出现问题时,如何排查?
- 外网能访问服务器,但是服务器无法访问外网时,如何排查?
- 配置了IPv6双栈,为什么无法访问IPv6网站?
- 弹性云服务器防火墙配置完成后,为什么网络不通?
- 路由类
- 安全类
- 修订记录
- API参考 (巴黎区域)
- 用户指南(吉隆坡区域)
- API参考(吉隆坡区域)
- 用户指南(安卡拉区域)
- API参考(安卡拉区域)
- 通用参考
链接复制成功!
基于华为云弹性云服务器自建容器并实现通信
操作场景
在不使用华为云容器产品的情况下,支持用户在华为云弹性云服务器中部署容器,并实现同一个子网中不同弹性云服务器内的容器相互通信。
方案优势
- 云服务器内部署容器,容器地址非VPC网络地址,通过VPC路由方式转发。
- 只需简单配置路由表,就可实现容器网络的互通,灵活方便。
典型拓扑
此场景下对网络拓扑有如下要求:
- 弹性云服务器在同一子网内。如图中VPC子网网段为192.168.0.0/24,弹性云服务器的IP地址为192.168.0.2和192.168.0.3。
- 容器网段与VPC子网不在一个网段,同一台弹性云服务器内的容器在同一个网段,不同弹性云服务器内容器的网段不同。如图中ECS1中容器网段为10.0.2.0/24,ECS2中容器网段为10.0.3.0/24。
- 发送给容器的数据包下一跳为容器所在弹性云服务器。如图中发送给10.0.2.0/24网段的数据包下一跳为192.168.0.2,发送给10.0.3.0/24网段的数据包下一跳为192.168.0.3。

配置步骤
- 创建VPC及VPC网段。
具体操作请参见创建虚拟私有云和子网。
- 创建弹性云服务器。
具体方法请参见自定义购买ECS。
创建完成后在弹性云服务器网卡上取消源地址校验,如图2所示。
- 在弹性云服务器上部署容器。
您可以使用Docker CE完成容器的部署,详细操作步骤,请参考第三方软件的帮助文档,本文不做详细说明。
说明:
同一台ECS内的容器需要在同一个网段,且不同ECS内容器网段不能重叠。
- 添加VPC路由表信息。
在VPC路由表中添加路由信息。让发送给10.0.2.0/24网段的数据包下一跳为192.168.0.2,发送给10.0.3.0/24网段的数据包下一跳为192.168.0.3,也就是让发送给容器的数据包下一跳都为容器所在ECS。
说明:
- 单个VPC中内默认支持50个不同网段的容器部署,如需扩大,请申请扩大VPC路由表数目。
- 容器迁移到其他弹性云服务器后,需要在VPC路由表中添加新的路由信息。
- 添加安全组规则。
为了能够通过traceroute命令和ping命令测试容器网络是否连通,为弹性云服务器的安全组添加如表1所示规则,开放ICMP和UDP规则。
具体操作请参见添加安全组规则。
配置验证
分别在两台弹性云服务器上部署容器,通过ping来测试容器网络是否能连通。
以使用Docker部署容器为例,在ECS1上先创建一个网络连接my-net并指定容器网段为10.0.2.0/24,然后创建容器并指定使用my-net。
$ docker network create --subnet 10.0.2.0/24 my-net $ docker run -d --name nginx --net my-net -p 8080:80 nginx:alpine
在ECS2上同样创建网络连接和容器,容器网段为10.0.3.0/24。
$ docker network create --subnet 10.0.3.0/24 my-net $ docker run -d --name nginx --net my-net -p 8080:80 nginx:alpine
将弹性云服务器上iptables里面filter表的FORWARD链的默认策略设置为ACCEPT。
此处设置是因为Docker为安全性将iptables里面filter表的FORWARD链默认策略设置成了drop,因此需要修改。
$ iptables -P FORWARD ACCEPT
进入10.0.2.2这个容器,尝试ping和traceroute 10.0.3.2,可以看到能够ping通,且traceroute路由路径为10.0.2.2 -> 10.0.2.1 -> 192.168.0.3 -> 10.0.3.2,与前面设置的路由转发规则一致。
[root@ecs1 ~]# docker exec -it nginx /bin/sh / # traceroute -d 10.0.3.2 traceroute to 10.0.3.2 (10.0.3.2), 30 hops max, 46 byte packets 1 10.0.2.1 (10.0.2.1) 0.007 ms 0.004 ms 0.007 ms 2 192.168.0.3 (192.168.0.3) 0.232 ms 0.165 ms 0.248 ms 3 10.0.3.2 (10.0.3.2) 0.366 ms 0.308 ms 0.158 ms / # ping 10.0.3.2 PING 10.0.3.2 (10.0.3.2): 56 data bytes 64 bytes from 10.0.3.2: seq=0 ttl=62 time=0.570 ms 64 bytes from 10.0.3.2: seq=1 ttl=62 time=0.343 ms 64 bytes from 10.0.3.2: seq=2 ttl=62 time=0.304 ms 64 bytes from 10.0.3.2: seq=3 ttl=62 time=0.319 ms