常见网络场景下的网络要求和配置方法
背景说明
主机迁移过程中,关于数据流向和网络要求是用户最关心和最常遇到的问题。华为云的SMS服务在迁移过程中主要涉及的流量分为两部分:控制流和数据流。
- 控制流:控制流是指源端主机与云服务管理面之间的通信。为确保迁移过程的顺利进行,需要检查源端主机出方向是否有限制,并确保源端主机能够访问迁移过程中依赖的云服务,包括SMS、IAM、ECS、EVS、VPC、IMS等服务的域名。
- 数据流:数据流涉及从源端到目的端的数据传输。为确保数据流的畅通,需要检查目的端服务器的安全组配置,确保目的端安全组对源端IP开放了指定的迁移端口。如果源端主机无法直接访问公网或与目的端直接通信,需要配置代理服务器。在这种情况下,需要额外考虑以下因素:
- 代理服务器的配置,确保它能够正确转发源端主机的流量。
- 代理服务器的安全组设置,确保对源端IP开放了代理端口。
源端可以访问公网,源端和目的端公网互通
- 在源端下载SMS-Agent并启动。
- 在设置目的端时选择公网迁移。
需要确保目的端安全组对源端公网IP开放指定迁移端口。安全组的配置方法请参考如何配置目的端服务器安全组规则?
源端可以访问公网,源端和目的端能直接内网互通
- 需要您自行确保源端和目的端内网能直接互通。
- 在源端下载SMS-Agent并启动。
- 在设置目的端时选择私网迁移。
需要确保目的端安全组对源端内网IP开放指定迁移端口。安全组的配置方法请参考如何配置目的端服务器安全组规则?
源端无法访问公网,源端和目的端能直接内网互通
- 准备一台能访问公网且与源端内网互通的代理服务器。代理机器的安全组要对源端内网IP开放代理端口。
- 在代理服务器安装代理软件(Linux推荐squid,Windows推荐wproxy)。
- 在源端下载SMS-Agent安装包,并修改SMS-Agent配置文件中的代理配置参数,然后启动SMS-Agent。详细操作介绍请参考配置代理服务器访问华为云。
- 在设置目的端时选择私网迁移。
需要确保目的端安全组对源端内网IP开放指定迁移端口。安全组的配置方法请参考如何配置目的端服务器安全组规则?
源端无法访问公网,源端和目的端不能直接互通
通过中转代理服务器转发管理面和数据面流量。要求该中转代理服务器能和源端服务器、华为云目的端服务器网络互通。
- 配置一台管理面代理服务器以访问云服务后端,方法请参考配置代理服务器访问华为云中的步骤1。
- 根据同时迁移的主机数量和数据量大小,创建至少一台数据流代理服务器并安装Nginx。可以执行如下命令进行安装:
yum install nginx -y
- 配置Nginx以转发数据流。以下操作以在CentOS 8上配置为例:
- 编辑/etc/ssh/sshd_config文件,找到 port 22这一行,去掉默认的#注释,并在下面新增一行Port 2222。
- 执行以下命令重启SSH服务,使配置生效:
systemctl restart sshd.service
- 执行以下命令添加防火墙规则:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -j ACCEPT
- 编辑/etc/ssh/sshd_config配置文件,找到 port 22这一行,重新加#恢复注释,然后执行以下命令重启sshd服务:
systemctl restart sshd.service
- 修改/etc/nginx/nginx.conf配置文件。
- Linux文件级迁移在文件末尾添加以下内容,要求和文件中的http{}同级。有多台主机迁移就添加多个映射,default backend1是映射本代理服务器不可缺少。
stream { map $remote_addr $backend { default backend1; 源端1号主机ip backend2; 源端2号主机ip backend3; } server { listen 22; proxy_pass $backend; } upstream backend1 { server 本代理主机ip:22; } upstream backend2 { server 目的端1号主机ip:22; } upstream backend3 { server 目的端2号主机ip:22; } }
- Windows迁移在文件末尾添加以下内容,要求和文件中的http{}同级。有多台主机迁移就添加多个upstream backend_x_xx和map映射,配置样例如下:
stream { # 1号机器 upstream backend_1_22 { server 目的端机器1号机器ip:22; } upstream backend_1_8899 { server 目的端机器1号机器ip:8899; } upstream backend_1_8900 { server 目的端机器1号机器ip:8900; } # 2号机器 upstream backend_2_22 { server 目的端机器2号机器ip:22; } upstream backend_2_8899 { server 目的端机器2号机器ip:8899; } upstream backend_2_8900 { server 目的端机器2号机器ip:8900; } map $remote_addr $backend_22 { 1号源端服务器ip "backend_1_22"; 2号源端服务器ip "backend_2_22"; default X:22; } map $remote_addr $backend_8899 { 1号源端服务器ip "backend_1_8899"; 2号源端服务器ip "backend_2_8899"; default X:8899; } map $remote_addr $backend_8900 { 1号源端服务器ip "backend_1_8900"; 2号源端服务器ip "backend_2_8900"; default X:8900; } server { listen 22; proxy_pass $backend_22; } server { listen 8899; proxy_pass $backend_8899; } server { listen 8900; proxy_pass $backend_8900; } }
- Linux文件级迁移在文件末尾添加以下内容,要求和文件中的http{}同级。有多台主机迁移就添加多个映射,default backend1是映射本代理服务器不可缺少。
- 执行以下命令检查Nginx配置文件是否更改正确:
nginx -t
当出现successful标识即代表成功。
- 配置文件检查无误后,启动Nginx服务:
nginx
- 使用以下命令来查看Nginx是否正在监听指定的端口:
netstat -ntpl
- 在源端下载SMS-Agent安装包,并修改SMS-Agent配置文件中的代理配置参数,然后启动SMS-Agent。详细操作介绍请参考配置代理服务器访问华为云中的步骤2。
- 在设置目的端时,将代理服务器的内网IP填写到专线中转IP配置。
需要确保中转代理服务器入方向端口对源端IP开放,目的端主机入方向端口对中转代理服务器IP开放。
图1 填写专线中转IP配置
MgC主机批量迁移网络场景
MgC当前不支持完全无公网的迁移场景。
- 在与源端互通的内网环境中安装迁移工具Edge。安装方法和要求请参考安装Windows版本的Edge。
- 参考MgC的线下主机迁移上云最佳实践,完成步骤二至步骤五的操作。
需要确保目的端安全组对源端服务器开放指定迁移端口。安全组的配置方法请参考如何配置目的端服务器安全组规则?
- 创建主机迁移工作流。
- 如果源端可以访问公网,在迁移网络配置选择公网迁移。
图2 公网迁移
- 如果源端无法访问公网,您需要准备一台可以访问公网的代理服务器并安装代理软件,方法可参考配置代理服务器访问华为云中的步骤1。对该代理服务器的网络要求如下:
- 该代理机器可以在源端内网,也可以在云上,只需和源端待迁移服务器内网互通即可。
- 需要确保代理服务器入方向代理端口对源端IP开放。
配置完代理服务器后,在迁移网络配置选择私网迁移,输入代理服务器的私网IP和代理软件指定的代理端口。图3 私网迁移
- 如果源端可以访问公网,在迁移网络配置选择公网迁移。