云手机 最佳实践 文档版本 01 发布日期 2019-04-18 华为技术有限公司
版权所有 华为技术有限公司 2019 保留一切权利 非经本公司书面许可, 任何单位和个人不得擅自摘抄 复制本文档内容的部分或全部, 并不得以任何形式传播 商标声明 和其他华为商标均为华为技术有限公司的商标 本文档提及的其他所有商标或注册商标, 由各自的所有人拥有 注意 您购买的产品 服务或特性等应受华为公司商业合同和条款的约束, 本文档中描述的全部或部分产品 服务或特性可能不在您的购买或使用范围之内 除非合同另有约定, 华为公司对本文档内容不做任何明示或默示的声明或保证 由于产品版本升级或其他原因, 本文档内容会不定期进行更新 除非另有约定, 本文档仅作为使用指导, 本文档中的所有陈述 信息和建议不构成任何明示或暗示的担保 华为技术有限公司 地址 : 深圳市龙岗区坂田华为总部办公楼邮编 :518129 网址 : http://www.huawei.com 客户服务邮箱 : support@huawei.com 客户服务电话 : 4008302118 文档版本 01 (2019-04-18) 版权所有 华为技术有限公司 i
目录 目录...1 文档版本 01 (2019-04-18) 版权所有 华为技术有限公司 ii
场景 默认情况下, 在同一台云手机服务器上的所有云手机实例只能使用同一个 EIP 访问公网, 造成 IP 密度偏大 为满足对 IP 密度有较高需求的用户, 我们使用单台 ECS 作为代理, 通过 NAT 转换配合虚拟 IP 的方式, 提供给每台云手机实例单独的 EIP 访问公网 并且可以通过调用代理 ECS 的标准化接口更换云手机实例的 EIP 方案设计 该方案的架构如图 1-1 所示 架构核心 : 单虚拟机代理 +NAT 方案 云手机实例在云手机服务器内通过 NAT 将云手机私有 IP 转换为云手机服务器的 VIP, 再将流量通过 VPC 对等连接导入代理 ECS 所处 VPC, 通过 ECS 的 eth5 网卡作为接收端将流量引入代理 ECS 内部, 再根据策略路由找到每部云手机所对应 ECS_VIP 的网口, 并由与 ECS_VIP 绑定的 EIP 将云手机流量转发至公网 若您需要更换云手机实例的 EIP, 只需更换代理 ECS 的 EIP 即可 架构薄弱环节 : 单点 ECS 作为转发 如果 ECS 性能或稳定性出现故障, 则会影响整体业务, 对可靠性要求高的场景可通过 keepalived 的主备模式来提高可靠性 文档版本 01 (2019-04-18) 版权所有 华为技术有限公司 1
图 1-1 方案架构 预设条件 新建工单 您创建一台 ECS 和 6 张网卡 (eth0-eth5) 其中,eth0-eth4 分别配置 20 个 VIP(VIP 作为子接口需要配置在 eth 上 ), 每个 VIP 绑定一个 EIP,eth5 用来接收云手机的流量 确保 ECS 所处 VPC 与云手机服务器所处 VPC 的网段 (172.31.0.0/16) 不重叠, 或者 ECS 所处子网与云手机服务器所处子网网段不重叠 云手机服务器 bond0 网口上绑定 100 个 VIP 您申请到足够数量的 EIP 该方案需要云手机技术人员配合完成, 请您在开始操作前先新建工单, 请参考新建工单 1. 登录管理控制台 2. 在页面右上角, 选择 工单 > 新建工单 系统进入 新建工单 页面 图 1-2 新建工单 3. 单击 产品类问题 区域的 云手机 4. 单击 技术咨询 5. 单击 新建工单 6. 在 新建工单 页面, 填写相关参数 文档版本 01 (2019-04-18) 版权所有 华为技术有限公司 2
其中, 问题描述 项请填写 通过代理 ECS 让云手机实例使用单独的 EIP, 需云手机技术人员配合 7. 填写完毕后, 勾选协议并单击 提交 配置流程 步骤 1 关闭代理 ECS 所有网卡的 源 / 目的检查 ( 代理 ECS 需使用虚拟 IP 地址 ) 1. 登录管理控制台 2. 选择 计算 > 弹性云服务器 3. 在弹性云服务器列表中的右上角, 输入代理 ECS 的名称 IP 地址或 ID, 并进行搜索 4. 在弹性云服务器列表中, 单击代理 ECS 的名称 系统跳转至该代理 ECS 详情页面 5. 选择 网卡 页签, 查看代理 ECS 的所有网卡 图 1-3 查看 ECS 网卡 6. 逐一关闭所有网卡的 源 / 目的检查 图 1-4 关闭源 / 目的检查 步骤 2 配置 VPC 对等连接 ( 如图 1-1 所示, 假设云手机服务器所在 VPC 的名称为 VPC-A, 代理 ECS 所在 VPC 的名称为 VPC-B ) 1. 在服务列表中选择 计算 > 云手机 进入云手机页面 2. 在左侧导航栏, 选择 云手机 > 云手机服务器管理 3. 在云手机服务器实例列表, 展开任意一台服务器的详情, 记录下 项目 ID VPC ID 和 VPC 网段 的信息, 如图 1-5 所示 文档版本 01 (2019-04-18) 版权所有 华为技术有限公司 3
图 1-5 服务器详情 4. 在服务列表中选择 网络 > 虚拟私有云 进入虚拟私有云页面 5. 在左侧导航栏, 选择 对等连接 6. 单击 创建对等连接 7. 在弹出框中根据界面提示配置参数 其中 帐户 选择 其他帐户, 对端项目 ID 填写步骤 2.3 记录的 项目 ID, 对端 VPC ID 填写步骤 2.3 中记录的 VPC ID 图 1-6 创建对等连接 8. 单击 确定 等待 5 分钟左右, 等待对等连接状态为 已接受 9. 查看对等连接 ID 单击对等连接名称, 进入详情页面, ID 即 对等连接 ID 如图 1-7 所示 图 1-7 对等连接 ID 文档版本 01 (2019-04-18) 版权所有 华为技术有限公司 4
10. 在 VPC-A 内添加本端路由 以代理 ECS 所处子网网段作为目的地址, 下一跳地址为对等连接 ID 11. 在 VPC-B 内添加本端路由 以步骤 2.3 记录的 VPC 网段 作为目的地址 (172.31.0.0/16), 下一跳地址选择对等连接 ID 验证 : 在云手机服务器中 ping ECS 的私网 IP, 成功返回则证明 VPC 对等连接已连通 12. 本端路由添加路由规则, 将所有出网流量下一跳地址设为对等连接 ID 步骤 3 配置 VPC-B 的路由 在 VPC-B 添加自定义路由, 将从任何地址 ( 也可以自定义为云手机服务器所处子网网段 ) 访问该 VPC 的请求的下一跳地址设为代理 ECS 的 eth5 网卡对应的私有 IP 步骤 4 配置代理 ECS SNAT 策略路由及关闭 IP 地址过滤 1. 执行以下命令, 虚拟 IP 绑定虚拟网卡 ifconfig eth${n}:${m} ${ecs_vip_m} 说明 n 对应第几张网卡,m 对应该 VIP 的 24-32 位相对应的十进制数 e.g. ifconfig eth0:100 192.168.50.100 文档版本 01 (2019-04-18) 版权所有 华为技术有限公司 5
图 1-8 查看生效 2. 执行以下命令, 添加路由表 ( 分为出方向表和入方向表 ) ip rule add from ${bms_vip_n} table ${n} e.g. ip rule add from 172.31.244.100 table 100( 出方向表 ) ip rule add to ${bms_ip 网段 } table ${n} e.g. ip rule add to 172.31.244.0/24 table 500( 入方向表 ) 3. 执行以下命令, 配置策略路由 ( 分为出方向策略和入方向策略 ) ip route add default via ${ecs_ 网关 } dev eth${n}:${m} table ${k} e.g. ip route add default via 192.168.150.1 dev eth0:100 table 100 ip route add default via ${ecs_ 网关 } dev eth5 table 500 e.g. ip route add default via 192.168.150.1 dev eth5 table 500 4. 执行以下命令, 查看网口绑定 ifconfig ${eth_n}:${m} 5. 查看 VIP 与虚拟网口绑定是否生效 6. 执行以下命令, 将云手机服务器发来的报文源地址通过 SNAT 转变为虚拟 IP iptables -t nat -A POSTROUTING -s ${bms_vip_n} -j SNAT --to ${ecs_vip_n} e.g. iptables -t nat -A POSTROUTING -s 172.31.244.100 -j SNAT --to 192.168.150.100 7. 执行以下命令, 查看是否生效 iptables -nvl -t nat grep SNAT 8. 执行以下命令, 关闭 eth0-eth5 网卡 IP 过滤 sysctl -w net.ipv4.conf.all.arp_filter=0 sysctl -w net.ipv4.conf.all.rp_filter=0 net.ipv4.conf.default.arp_filter=0 net.ipv4.conf.default.rp_filter=0 9. 执行以下命令, 查看是否生效 sysctl -a grep filter 文档版本 01 (2019-04-18) 版权所有 华为技术有限公司 6
---- 结束 验证 通过云手机访问某台您可以登录的服务器, 在服务器进行抓包, 通过报文判断源地址是否为该手机对应的 EIP 文档版本 01 (2019-04-18) 版权所有 华为技术有限公司 7