挨踢茶馆

  • 首页
  • AWS
  • 网络技术
    • 思科语音
    • 路由交换
  • 给我留言
  • 关于我
挨踢茶馆
专注于网络技术、云计算的技术博客
  1. 首页
  2. AWS
  3. 正文

亚马逊云AWS搭建基于BGP动态路由的硬件VPN(Site to Site VPN)教程

2017 年 12 月 27 日 19247点热度 1人点赞 5条评论

  在挨踢小茶之前的文章亚马逊云AWS搭建基于静态路由的硬件VPN(Site to Site VPN)教程中讲解了如何使用pfsense来与VPC VGW (Virtual Private Gateway)建立基于静态路由的IPSec VPN,这次我将会讲解如何使用Cisco CSRv1000与VGW建立基于动态路由协议BGP的IPSec VPN。

  其实也可以用任何支持VPC VGW的硬件设备来完成这个实验(支持的设备列表看这里),但是鉴于手上并没有空闲的硬件,因此在韩国区域建立了一个Cisco CSRv1000的EC2实例来模拟实际的硬件路由器。刚开始的时候,挨踢小茶尝试多次在东京区域创建Cisco CSR路由器都会出现一些莫名其妙的问题,实例启动后可以ping得通,但是ssh (TCP 22)端口就是无法访问。Security Group和NACL都已经允许了相关流量,而且同一个配置的其他新实例(比如说普通的Amazon Linux AMI)均没有这个问题。不知道是否是Cisco CSR在某些区域的AMI有问题?这就不得而知了。

  可从下图看出,左边是韩国区域,建立了一个模拟路由器的实例,并且在区域中创建了一个VPC (172.31.0.0/16)以及相应的Public Subnet,连接Internet Gateway,保证能连接互联网。右边是悉尼区域,创建了一个VPC (10.0.0.0/16)以及相应的Private Subnet,不需要连接因特网。两端的VPC建立Site to Site VPN隧道,并且使用动态路由协议BGP进行路由交换。

Site to Site VPN using BGP

  如果站点很少,并且网段数量少的情况下,可以使用静态路由。但是如果站点比较多,或者要使用Cloudhub等架构的时候,动态路由协议会更灵活,方便。同时,如果有双线需要负载均衡或者热备的时候则最好使用带动路由协议。

韩国区域(模拟客户网络)创建VPC和实例

其实这次在韩国区域使用的是默认的VPC,但是还是稍微过一下创建VPC的流程吧

  1. 创建一个新的VPC,并且定义地址范围为172.31.0.0/16
  2. 创建一个新的网段,并且定义地址范围为172.31.0.0/20
  3. 创建Internet Gateway,因为创建新的VPC是不会自动创建Internet Gateway的,因此默认情况下你不能访问任何互联网上的资源。所以这里需要手动创建一个Internet Gateway
  4. 编辑路由表,添加一条目的地址为0.0.0.0/0的路由,下一跳指向刚刚创建的Internet Gateway。这样子子网内的主机才知道,如果访问非本地的内容,要先去Internet Gateway,然后出去因特网。
  5. 编辑子网,启用“Modify auto-assign IP settings”,这样新创建的主机才会自动分配公网地址。也可以不启用,在创建主机的时候手动更改IP配置选项。
  6. 创建一个EC2实例,在AWS市场中搜索“cisco byol”
    Cisco CSR from AWS Marketplace
  7. 按照指引完成EC2的创建,过程中需要选择网络为刚刚创建的VPC,并且保证Security Group允许了ICMP和SSH流量。

悉尼区域创建VPC,VGW和VPN连接

  1. 创建一个新的VPC,地址为10.0.0.0/16
  2. 创建这个VPC内的一个子网(私有网络),地址为10.0.0.0/24
  3. 创建一个VGW(Virtual Private Gateway),作为AWS VPC的VPN连接节点,这个VGW默认会包含两个公网地址作为Tunnel的连接节点
  4. 将这个VGW绑定到刚才创建的VPC中
  5. 启用子网的Route Propagation,这样子子网才会继承VGW上的所有动态/静态路由,因此才能从这个子网访问到VPC外的资源
    Enable Route Propagation on Route Tables
  6. 创建客户端网关CGW(Customer Gateway),这里输入的IP地址为在韩国区域创建的EC2的公网地址,本次实验选择的是动态路由的方式,BGP ASN可以用默认给的也可以使用自己的ASN
    Create CGW
  7. 创建一个VPN连接,自定义一个名字,然后选择刚才创建的VGW和CGW。路由方式选择动态
    Create VPN Connection
  8. 下载VPN配置文件,在这里可以选择不同的厂家和平台,这里我们选择厂家是Cisco,平台是Cisco CSRv AMI,软件版本默认即可
    Download VPN Configuration
  9. 基本上按照配置文件的内容(需要做一点点小更改),粘贴到之前创建的Cisco CSRv1000的实例里面,就可以很容易完成VPN的配置

验证VPN连接

  登陆到路由器上,可以看到已经建立了两个BGP的邻居,证明已经成功和VGW建立Tunnel并且成功交换路由条目。show ip bgp summary on Cisco CSR

  并且可以通过BGP从邻居学到了悉尼区域VPC的子网信息。

BGP Recvied Routes

  从AWS Console上可以看到VPN连接的状态,此时也可以看到两个Tunnel的状态都是UP,并且都已经能收到BGP的路由(条目数为1)。

Tunnel Details of VPN Connection

  这个时候,在悉尼区域创建了一台主机(地址为10.0.0.47),并且从路由器上ping这个主机发现已经可以通了。证明这个Site to Site的连接建立成功。

Ping from Cisco CSR to test server

总结

  在大部分情况下,能用动态路由协议的时候不要使用静态路由协议,并且在混合架构环境下(比如说双VPN或者VPN+DX线路)只有动态路由协议能控制线路的动态切换和负载均衡。AWS只能支持BGP这种动态路由协议,但是功能蛮强大的。如果存在多个用户站点和同一个VGW建立VPN连接,那么这两个用户站点之间是可以通过VGW做路由中转互访,这个也是AWS VPN CloudHub的特性,这个可以在以后的文章中详细介绍一下。

标签: AWS BGP VPC VPN
最后更新:2017 年 12 月 27 日

挨踢小茶

网络工程师/云计算架构师/云步道师/摄影爱好者

点赞
< 上一篇
下一篇 >

文章评论

  • 筑楼

    成本怎么样? 没有列个成本费用表?

    2017 年 12 月 27 日
    回复
    • 挨踢小茶

      @筑楼 AWS的计费非常复杂哈,大致上有VPN链接的0.5 USD/小时以及EC2实例的不到0.1 USD/小时,还有流量的费用等等……

      2017 年 12 月 27 日
      回复
      • 月小升

        @挨踢小茶 一直没敢用,总觉得有坑,博主用起来比阿里云便宜么

        2017 年 12 月 28 日
        回复
        • 挨踢小茶

          @月小升 阿里云会便宜一些哈,AWS最麻烦的就是收费条款很复杂,而且相对贵一些。不过AWS功能是在太强大了,阿里云在这点上还落后很多年吧。

          2017 年 12 月 28 日
          回复
  • razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
    取消回复

    挨踢小茶

    网络工程师/云计算架构师/云步道师/摄影爱好者

    最新 热点 随机
    最新 热点 随机
    李飞飞自传《我看见的世界》读后感 Web3 Social 2023 @深圳 AIGC Prompt 的艺术和模型调优 UWA Day 2022 - 如何通过云计算构架高性能、高可靠、智能化的游戏 一文看懂 Amazon EKS 中的网络规划 利用 Direct Connect Gateway 和 Transit Gateway 打造跨国企业网络环境 SD-WAN 和专线混合组网中的高可用设计 为了加速Wordpress网站我踩过了哪些坑?含泪告诉你 利用 SD-WAN 和专线混合组网,加速境内外企业 IDC 和多云数据中心 运行7年之后博客更新主题
    概念性透明移动搜索设备 天涯社区4000万用户信息泄漏 CUCM开启Display FAC in CDR VLSM和CIDR的区别 [译]如何坚持你的IT安全计划 查看思科设备序列号以及序列号的命名格式 Windows 8 可以让你用一张图片当密码 AWS Certified SysOps Administrator – Associate考试笔记 亚马逊云AWS搭建多站点的Cisco DMVPN架构 Cisco UCCX和Cisco Unity安装心得
    链接表
    • FROYO's Blog
    • Pop's blog
    • TC的博客
    • 今天毕业
    • 挨踢茶馆在线教程
    • 月与灯依旧
    • 月小升博客
    • 泪雪博客
    • 海纳百川
    • 筑楼
    • 网络茶馆
    • 蓝卡
    • 郑晓个人博客
    • 陆鉴鑫的博客

    COPYRIGHT © 2012-2023

    Theme Kratos Made By Seaton Jiang

    粤ICP备12007665号-1