亚马逊AWS官方博客
通过 AWS Lambda 和 AutoScaling 实现高可用的企业全球一张网(二)
本文为通过 AWS Lambda 和 AutoScaling 实现高可用的企业全球一张网系列文章:
- 通过 AWS Lambda 和 AutoScaling 实现高可用的企业全球一张网(一)
- 通过 AWS Lambda 和 AutoScaling 实现高可用的企业全球一张网(二)
- 通过 AWS Lambda 和 AutoScaling 实现高可用的企业全球一张网(三)
本文为系列文章的第二篇。
1. 概述
随着企业全球拓展或企业并购,需要实现企业在云上多个区域的全球组网,同时由于早期缺乏规划或并购可能出现IP地址冲突,本文提供一种组网方案,利用动态路由及NAT解决全网互联互通需求。本文是方案的第二部分,重点介绍了新加坡/弗吉尼亚/法兰克福区域中如何通过Vyos与俄勒冈的TGW建立VPN通道,实现BGP动态路由并通过NAT解决IP地址重叠的问题。
1.1. 拓扑图
2. 创建Vyos Instance
有关创建EC2 instance可参考如下链接:
https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/EC2_GetStarted.html
如您已熟悉EC2相关内容,请直接跳过本节,进入下一节。
2.1. 创建Vyos Instance
在搜索框内输入vyos,会有Marketplace和community 两个选项,marketplace内为官方组织提供的景象,需要付费使用。Community为社区发布版本。商业使用建议使用marketplace版本,此处实验选用community版本。
社区版本具有多个版本,建议选择1.1.7以上版本,1.2版本支持ENA网卡,可提供更高的网络吞吐量。本实验选择1.1.7
Network选择创建的VPC,subnet选择一个public子网,点击next
第5步add Tag,建议增加tag方便识别及以后利用Tag执行更多操作。
第6步配置安全组,默认会放开所有地址到22端口的访问,建议只放开需要对vyos进行管理的ip地址。第7步review,点击Launch。弹出对话要求选择key pair或新建keypair。注意:keypair只有在第一次创建时能够下载,请妥善保存。本region内后续创建的instance可选择相同的key pair。点击launch instances。
2.2. 禁用Source/Destination 检查
2.3. 修改路由表,增加到远端路由
增加到远端路由,指向Vyos。
重复以上步骤,在法兰克福和弗吉尼亚各创建一台vyos instance。
佛吉尼亚 路由表
法兰克福 路由表
俄勒冈 路由表(相关路由指向TGW)
2.4. 申请EIP并关联Vyos
有关EIP内容可参考如下链接:
https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html
如您已熟悉EIP相关内容,请跳过本节,直接进入第5节。
重复以上步骤,为法兰克福和弗吉尼亚Vyos申请EIP并关联。
3. 配置Vyos instance建立VPN连接并解决IP地址重叠
本文第一部分的我们已经介绍了如何创建TGW并配置VPN连接,默认情况下TGW或VGW会创建2个tunnel,提供高可用,下载的配置文件中包含配置VPN及BGP的相关信息及命令。配置文件中有部分命令需要修改,并增加几条命令。下文配置过程中会列出。
3.1. SSH登录vyos
Vyos的默认用户名为vyos。进入配置模式,并修改主机名
修改完成后需要commit提交生效,并save使配置永久生效。
3.2. Singapore Vyos配置
3.2.1. Singapore VPN配置
直接从下载的配置文件中copy所有的配置命令,在vyos上配置模式下执行前,需要修改配置文件中如下命令
set vpn ipsec site-to-site peer x.x.x.x local-address ‘此处应修改为vyos instace的private ip’,配置文件中直接给的是public ip。
注意,两个Tunnel中均需要修改此处配置。Singapore VPN还需要增加如下配置:
set vpn ipsec ike-group AWS ikev2-reauth ‘no’
set vpn ipsec ike-group AWS key-exchange ‘ikev1’
如上两条命令执行一次即可。
set vpn ipsec site-to-site peer x.x.x.x connection-type ‘initiate’
set vpn ipsec site-to-site peer x.x.x.x ikev2-reauth ‘inherit’
这两条命令每个Tunnel中均需要增加
3.2.2. Singapore配置NAT解决IP地址重叠
(此处配置的是网段的1:1 映射)
设置目的地址转换,当远端访问10.0.1.0/24网段时,将目的地址转换为Singapore本地的172.88.88.0/24网段。注意需要在两个Tunnel的端口上均设置转换,具体命令如下:
设置源地址转换,当Singapore本地172.88.88.0/24网段访问远端时,将源地址转换为10.0.1.0/24网段。
3.2.3. Singapore配置BGP动态路由
VPN配置文件中不会自动宣告路由,需要手动宣告本地网络路由,BGP宣告的路由需要在本地路由表中存在。
添加本地路由
宣告BGP路由
在法兰克福和佛吉尼亚根据下载的对应VPN配置文件,重复以上除NAT和路由配置。
3.3. Frankfurt Vyos配置
3.4. Virginia Vyos配置
3.4.1. Virginia NAT配置
3.4.2. Virginia 路由配置
3.5. 配置vyos security group
完成以上配置后需要修改vyos对应的security group,以Singapore vyos为例
在EC2或VPC 服务console左侧功能栏中找到Security Groups,在右侧窗口选中创建vyos instance过程创建的security group,在底部窗口选择Inbound 标签,点击Edit,
测试阶段,建议放开ICMP流量。
在法兰克福和佛吉尼亚Vyos 的Security Group重复以上步骤。VPN Tunnel 对段Public IP可以通过下载的VPN配置文件中获得。
4. VPN网络联通性及BGP路由检查
4.1. VPN状态检查
4.2. BGP检查
输入命令后,可以通过按tab健查看后续可用命令参数。
至此,我们已经实现了云上多个区域间的网络VPN连通,并通过NAT技术解决了新加坡和弗吉尼亚之间的IP地址重叠。