阿里云云企业网(CEN)构建实例

公司的跨国业务尝试使用了AlibabaCloud的云企业网(后简写为CEN)加速,记录一下搭建实例的整个过程,以供拾遗。

构建CEN加速前,已存在私有云暴露的https互联网访问入口,也就是需要进行跨国访问加速的IP,记为:p_cloud_IP。

当前存在英国用户通过互联网直连搭建在武汉的私有云的链路,示意图如下:

阿里云云企业网(CEN)构建实例_第1张图片

在AlibabaCloud官网上,首先创建两个VPC实例,一个在上海(阿里云没有武汉节点),一个在英国伦敦。

  • 注意创建VPC时要用不同的网段,否则会造成阿里云的内网IP冲突,这里我一个使用了192.168.x.x网段,一个使用了172.16.x.x网段。

创建CEN实例,把刚刚创建的两个VPC实例都加入此CEN。如下图所示:

阿里云云企业网(CEN)构建实例_第2张图片

购买宽带包,设置中国内地到欧洲,如下图所示:

阿里云云企业网(CEN)构建实例_第3张图片

分配带宽,如下图所示:

阿里云云企业网(CEN)构建实例_第4张图片

至此,CEN的管道已经构建完毕了。

之后在上海的VPC和伦敦的VPC上,分别购买一台ECS。伦敦的ECS作为访问入口,需要开通外网权限;上海的ECS作为访问中继,为了SSH连接方便,也推荐开通外网权限。

两台ECS搭建完毕,如下图所示:

阿里云云企业网(CEN)构建实例_第5张图片

为了后续记录方便,记伦敦ECS为ld_ECS,其外网IP为ld_outer_IP,阿里内网IP为ld_inner_IP;记上海ECS为sh_ECS,其外网IP为sh_outer_IP,阿里内网IP为sh_inner_IP;

为了测试CEN的连通性,SSH连接ld_ECS,尝试ping一下sh_inner_IP,如果能ping通,就证明CEN连通,如下图所示:

阿里云云企业网(CEN)构建实例_第6张图片

同时可以ping一下sh_outer_IP,对比两者的加速效果,如下图所示:

阿里云云企业网(CEN)构建实例_第7张图片

直观感受上加速效果没有想象中的明显,阿里云的工作人员称传输速率只是CEN加速的一个优点,另一个优点是丢包率几乎趋零。丢包率的测试留到后续工作中进行。

接下来配置ld_ECS和sh_ECS的nginx,作为两层转发。示意图如下:

阿里云云企业网(CEN)构建实例_第8张图片

首先SSH连接sh_ECS,安装nginx。

在https://nginx.org/download/下载nginx1.18版本的编译安装包,放到sh_ECS上后解压到/xxx/nginx-1.18.0。

按照如下步骤,编译安装:

cd /xxx/nginx-1.18.0
./configure --prefix=/usr/local/nginx --with-http_ssl_module #需要安装ssl module
make
make install

之后查看nginx是否安装成功:

cd /usr/local/nginx/sbin
./nginx -V

输出如下所示,记为安装成功:

接着进行配置,写好的配置nginx.conf文件,节选重要的部分,如下所示:

upstream p_cloud{
        server p_cloud_ip;#私有云暴露在公网上的ip
    } 

    server {
        listen       443 default ssl;
        server_name  localhost;
        #ssl on;
        ssl_certificate server.crt;
        ssl_certificate_key server.key;
        ssl_session_timeout 5m;
        ssl_protocols SSLv2 SSLv3 TLSv1;
        ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers on;
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass https://p_cloud;
            proxy_set_header Host $host;
            proxy_set_header X-Real_IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

新建SSL个人证书,步骤如下:

openssl genrsa -des3 -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl req -new -x509 -key server.key -out ca.crt -days 3650
openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt

把生成好的server.crt和server.key放到/usr/local/nginx/conf下面。

启动nginx,步骤如下:

cd /usr/local/sbin/
./nginx -t #测试配置文件是否异常
./nginx

这时可以访问https://sh_outer_IP,测试上海ECS到私有云的网络是否通畅了。

没问题以后,SSH连接ld_ECS,同样安装nginx。

安装过程一样,不再赘述,写好的配置nginx.conf文件,节选重要的部分,如下所示:

upstream sh_ip{
        server sh_inner_ip;# 上海ECS内网IP
    } 

    server {
        listen       443 default ssl;
        server_name  localhost;
        #ssl on;
        ssl_certificate server.crt;
        ssl_certificate_key server.key;
        ssl_session_timeout 5m;
        ssl_protocols SSLv2 SSLv3 TLSv1;
        ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers on;
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass https://sh_ip;
            proxy_set_header Host $host;
            proxy_set_header X-Real_IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

把刚刚在sh_ECS上生成的server.crt和server.key放到ld_ECS的/usr/local/nginx/conf下面,启动nginx:

cd /usr/local/sbin/
./nginx -t #测试配置文件是否异常
./nginx

访问https://ld_outer_ip,如果没有差错的话,就可以通过阿里云内网加速访问到私有云上的内容了。

至此,整套CEN网络实例部署完毕。 

最后再进行丢包测试,SSH登录ld_ECS,分别ping sh_inner_ip,sh_outer_ip各一个小时:

在输出的文档中即可统计丢包率。在针对sh_inner_ip的ping记录中中可以看到丢包率为0,sh_outer_ip的ping记录中由于存在网络波动,丢包率可能会不为0。

你可能感兴趣的:(阿里云)