written by
Just4test

AWS认证 Advanced Networking Specialty 学习笔记

2 min read , October 6, 2019

刚通过考试,以下内容覆盖率相当高。

基础知识

OSI模型和TCP/IP模型对比 https://zh.wikipedia.org/wiki/TCP/IP协议族

AS 路径和AS 路径前置 https://www.noction.com/blog/as-path-and-as-path-prepending

词汇表

客户网关,Customer Gateway

建立Site-to-Site VPN时的用户侧设备。

虚拟私有网关, 虚拟专用网关,Virtual Private Gateway,VGW

单个VPC可以绑定一个VGW,以接受Site-to-Site VPN 连接或者 Direct Connect连接。

Direct Connect 连接,Direct Connect Connection

一条Direct Connect连接。

Direct Connect 位置,Direct Connect Location

一个承载了DX路由器的ISP机房。如果用户的数据中心也使用该机房,则可以通过楼内跳线连接到DX网关。否则,用户数据中心可能需要通过专线连接该机房,或寻求APN帮助。

Direct Connect 网关,Direct Connect Gateway

一个Global服务,帮助本Region的DX Connection 连接到其他Region。

中转网关,Transit Gateway

用于在单个Region的多个VPC、VPN、Direct Connect 中创建网状连接。

虚拟接口,Virtual Interface,VIF

附加到Direct Connect 连接以使用本Region的 VP

CloudHub

当用户有多个数据中心/办公地点并都通过VPN/DX连接到AWS时,可以用过CloudHub彼此连接。

PrivateLink

支持接口终端节点和终端节点服务的技术

VPC终端节点,VPC Endpoint

网关终端节点和接口终端节点的统称

网关终端节点,Gateway VPC Endpoint

允许在VPC内通过私网连接S3和DynamoDB。需要更改路由表,仅支持IPv4

接口终端节点,Interface VPC Endpoint

允许在VPC内直连大量具有公网IP的AWS服务。也用于连接其他用户或Marketplace提供的终端节点服务,仅支持IPv4

终端节点服务,VPC Endpoint Service

允许一个用户将其VPC内的服务打包,并允许其他用户通过接口终端节点访问,仅支持IPv4

VPC


NTP: 169.254.169.123
Matadata: 169.254.169.254

CIDR

每个VPC默认具有一个IPv4 CIDR,称为主CIDR。可以添加/16~/28的IPv4 CIDR,且有复杂的限制。VPC可以添加一个IPv6 CIDR。大小固定为/56。子网IPv6 CIDR固定为/64。

每个子网的前4个IP和最后一个IP由AWS预留。对于子网10.0.0.0/24:

  • 10.0.0.0 为网络地址
  • 10.0.0.1 为路由器
  • 10.0.0.2 为DNS预留,但只有VPC的主CIDR有Name Server,其他地址均空置。
  • 10.0.0.3 目前未使用,预留
  • 10.0.0.255 为默认广播地址,预留(VPC不支持广播)

路由表

一个子网绑定一个路由表。主路由表是VPC的默认路由表,当VPC中的子网没有明确关联路由表时,自动与主路由表关联。可以替换主路由表,无法删除主路由表。
如果当前VPC链接了虚拟私有网关,则在路由表上启用路由传播后,DX和Site-to-Site VPN的路由会自动添加到路由表。路由表中可以存在重叠路由,优先级如下:

  • 本地路由(VPC CIDR)永远优先于传播路由,无视最长前缀匹配。本地路由由AWS预置,无法新增、修改、删除。
  • 应用最长前缀匹配。
  • 静态路由优先于传播路由。

安全

安全组:有状态,控制实例出入站流量,只有允许规则。ACL无状态,控制子网出入站流量,有允许和禁止规则。单个连接受单向安全组规则及双向ACL规则影响。注意,两个ACL的端口不同。例如,一个EC2 instance打开了80端口供http访问。则一条公网http传入连接受以下规则影响:(从某公网IP的临时端口连接到EC2 instance的80端口)

  • 安全组上80端口的入站流量
  • ACL上80端口的入站流量
  • ACL上临时端口的出站流量

DNS

一个VPC绑定一个DHCP选项集。
Name Server位于 VPC主CIDR +2,比如10.0.0.0/16的VPC,NS在10.0.0.2。
Name Server不能穿过Direct Connect被客户数据中心访问。如果需要的话,在子网内放置DNS转发服务器或SimpleAD

弹性网络接口,Elastic Network Interface,ENI

ENI的主私有IP创建后无法变更。可以绑定多个辅助私有IP。辅助私有IP可以变更或移除。
只有EC2实例的主ENI的主私有IP可以自动分配公有IP;任何辅助私有IP以及用户创建的ENI的主私有IP只能关联弹性IP。
ENI属于单个子网。安全组绑定到ENI,也就是说ENI上的所有IP都受影响。
EC2可以绑定同VPC同AZ的ENI(可以位于其他子网)。绑定多个ENI不会增加实例带宽。EC2不能解绑主ENI。

VPC流日志,VPC Flow Log

可以收集单个VPC、单个子网、单个网络接口的日志。Name Server、NTP、Matadata的流量无法检测。该特性不能检测数据包。要检测数据包,建议使用Marketplace中的第三方解决方案。

连接到VPC

  • 软件VPN
  • AWS管理的VPN(全托管)
  • Direct Connect(性能稳定,传输价格便宜)
  • 通过Direct Connect的VPN,提供额外的安全机制。
  • Transit VPC,用于连通多个VPC和用户机房。是AWS于2016年推出的软件解决方案,基于Cisco Cloud Services Router(CSR)和Site-to-Site VPN。现建议迁移至Transit Gateway。
  • Transit Gateway,用于代替Transit VPC的全托管服务。支持最多5000个VPC,单个VPC最多50Gbps。

ELB

  • Classic Load Balancer:支持TCP、SSL/TLS、HTTP(S)协议。支持自定义安全策略。
  • Network Load Balancer:支持TCP、UDP、TLS。支持弹性IP。后端接收到原始IP。空闲连接超时时间固定为TCP 350秒,UDP 120秒。
  • Application Load Balancer:支持HTTP(S)。支持基于HTTP协议层面的路由。

连接链路

Site-to-Site VPN

Customer Gateway -> Virtual Private Gateway

Direct Connect

  • 连接AWS公网服务:
    DX Connect -> Public VIF
  • 直连VPC:
    DX Connect -> Private VIF -> 本Region Virtual Private Gateway
  • 连接其他Region VPC:
    DX Connect -> Private VIF -> DX Gateway -> 其他Region Virtual Private Gateway
  • 连接Transit Gateway:
    DX Connect-> Transit VIF -> Transit Gateway
    DX Connect-> Private VIF -> DX Gateway -> Transit Gateway
  • 通过DX的托管VPN:(不支持IPv6)
    Customer Gateway -> DX Connect -> Public VIF -> Virtual Private Gateway(可连接任意Rgion的托管VPN)

有状态防火墙导致的问题

当客户数据中心具有多条到AWS的连接,且分别部署了有状态防火墙时,可能出现以下情况:

  • 到AWS的流量在多条连接中平均分配。这导致同一个连接(TCP或UDP)的流入流出数据包随机通过不同连接
  • 由于客户数据中心和AWS对于多条连接的优先级理解不同,导致从客户中心发送的流量和从AWS发送的流量分别流经不同连接

有状态防火墙在建立连接后允许同一端口的响应流量。如上配置下,响应流量抵达另外一条连接的防火墙并被其丢弃。见官方样题第三题。
“多条连接”可以是VPN和Internet,或者两条为高可用部署的DX。

AWS Managed Site-to-Site VPN

基于IPSec。从Customer Gateway发起,到Virtual Private Gateway (VGW)终结。VGW具有公网IP。不支持IPv6。
只能从客户网关启动隧道。默认情况下,10s没有流量时,隧道即关闭。可以使用网络监控工具(如使用 IP SLA)来生成保持连接 Ping 信号。
如果客户网络处存在防火墙,确保打开了双向UDP 500(Internet 密钥交换,IKE)和IP 50(封装安全载荷,ESP)端口。

NAT-T

IPSec的校验包含IP和端口。当客户VPN网关位于NAT设备后时,发送到VPN网关的包的IP和端口号改变了,无法通过校验。NAT-T技术可以解决该问题。需要打开UDP 4500端口。

Direct Connect, DX

参考

通过专线直连服务与AWS一起 搭建混合架构

连接类型

  • 标准连接:AWS提供的 1G或10G连接。可以绑定多个VIF,多个VIF之间共享该连接的网速。
  • 托管连接,Hosted Connection:由APN提供的低于1G的连接,可以绑定1个VIF。
  • 托管VIF,Hosted Virtual Interface:由APN或其他AWS账户提供的VIF。与其所属的DX连接上的其他VIF共享网速。

虚拟接口(Virtual Interface, VIF)

必须创建虚拟接口才能从客户机房通过Direct Connect与AWS网络连接。速度低于1G的DX连接只支持一个VIF。

  • Public VIF:连接拥有任何属于AWS的公网IP(除中国外)。包含任何Region的公有服务、托管VPN,以及被其他用户使用的AWS公网IP。不支持巨型帧
  • Private VIF:连接本Region VPC,不包含VPC的DNS服务器,不包含endpoint网关。支持9001 MTU
  • Transit VIF:连接本Region中转网关。支持8500 MTU

BGP社区

使用DX连接AWS公有服务时,可以选择AWS将用户公有IP传播多远(范围 BGP 社区)

  • 7224:9100 — 本地 AWS 区域
  • 7224:9200 — 一个大陆的所有 AWS 区域(例如,北美范围内)
  • 7224:9300 — 全球(所有公有 AWS 区域)

当拥有多个同一地区的DX Connection时,可以在使用专用虚拟接口和中转虚拟接口时,使用BGP社区标签控制虚拟接口优先级。BGP社区标签优先级高于AS_PATH。

  • 7224:7100 – 低优先级
  • 7224:7200 – 中优先级
  • 7224:7300 – 高优先级

VPN over DX

对于AWS托管VPN来说,由于流量需要终结于具有公网IP的VGW,因此需要Public VIF。
如果是Customer VPN,则流量终结于VPC内的EC2实例,应使用Private VIF。

高可用

使用冗余连接提供高可用。冗余连接可以是第二条DX或者Site-to-Site VPN。如果用户有多个相连的数据中心,为了更加完全的高可用,建议不同的连接起始于不同的数据中心(如果客户只有一个数据中心,则建议使用两个硬件网关);如果使用多条DX,则建议终结于不同的DX Location。所有连接需要连接到同一个虚拟专用网关Virtual Private Gateway。
Active/Active DX connect
建议使用更具体路由的方式传递路线偏好。
Active/Passive DX connect
建议将两条路线的路由设置为相同,设置不同的AS-Path长度以确定哪个连接为主动连接。
DX with Backup VPN
为VPN和DX创建相同的路由前缀。AWS将首选DX,无论AS-Path设置。

ELB

空闲连接超时

ALB和CLB:默认60秒,1-4000可配置
NLB:TCP为350秒,UDP为120秒,不可配置。

访问日志

ALB和NLB:5分钟
CLB:默认60分钟(15分钟延迟),可更改为5分钟

启用高性能网络

增强联网

某些机型支持single root I/O virtualization (SR-IOV,单根I/O虚拟化) 提供高性能网络。增强联网需要HVM虚拟化,操作系统也需要配置相应驱动程序。
早期机型(C4、M4等)使用Virtual Function (VF) interface技术,最多10Gbps。新机型(C5、M5、T3等)使用Elastic Network Adapter (ENA)技术,最多100Gbps。ENA可以通过cli禁用。

集群置放群组

可以将多个EC2实例在单个集群置放群组中启动(这些实例必须处于同一AZ),以获得这些实例互相通讯时单个流10Gbps、单机100Gbps的网络性能。只有能够启用增强联网的实例类型可以放入集群置放群组,同时建议在实例上启用增强联网。
由于集群置放群组尝试在单个机柜中启动实例,所以可能发生容量不足错误。尝试在已有实例的集群置放群组中添加实例,或者放置不同类型的实例都会增加容量不足的可能性。因此,建议使用相同实例类型,并一次启动所有需要数量的实例。

巨型帧(9001MTU)

启用巨型帧(Jumbo Frames)可以减少网络流量中控制数据的大小,从而提升网络性能。巨型帧需要从OS层面配置;某些驱动程序不支持巨型帧。
单个VPC内部支持巨型帧;Direct Connect可以配置为支持巨型帧;经典网络、AWS到Internet、VPC对等不支持巨型帧。
C1、CC1、T1 和 M1实例不支持巨型帧。

Route53

白标签Name Server

通过CLI、SDK或API创建可重用委托集 create-reusable-delegation-set

别名,ALIAS

指向ELB时应该使用别名。别名解析不付费,CNAME付费。

WorkSpaces

需要部署在两个可用区中。建议部署在两个具有NAT的私有子网中。
客户端:通过443/TCP、4172/UDP&TCP 连接WorkSpaces主机。
Web浏览器:通过53、80、443连接,同时将启用一个高位端口用于传输视频流。默认不允许从Web浏览器登陆,需要管理员启用。浏览器不能连接到Linux。

IP访问控制组

单个目录可以与最多25个IP访问控制组关联。以作为虚拟防火墙控制允许访问WorkSpace的IP地址。每个IP控制组可以与多个目录关联,最多创建100个IP控制组。

其他

  • Redshift默认通过Internet传送流量。启用增强型VPC路由Enhanced VPC Routing以通过VPC传送数据,并使用安全组、ACL、终端节点、Internet网关等特性
  • S3存储桶启用了网站托管后可以从网站终端节点访问。这是一个额外的域名,仅支持HTTP。该存储桶仍可以从Rest API终端节点访问。
  • CloudFront的源设置为S3桶时,则源协议策略不可配置且固定为匹配查看器。可以手动输入S3桶网站终端节点的域名,此时源协议策略可配置,但仅应配置为“仅HTTP”
  • 使用RADIUS服务器为Microsoft AD、WorkSpace 等服务启用多因素认证
  • 使用BFD(双向转发侦测路由协议)快速检测DX中的故障