【编者按】亚马逊AWS采用私有的解决方案,但是却缺少对AWS VPC中的Packet forwarding机制的相关说明,Chiradeep Vittal通过一系列测试,分析了AWC VPC包转发模型的相关细节,同时发现该模型采用的是multi-VRF机制。
VMware NSX和Hyper-V对网络虚拟化中Packet forwarding的行为作出了详细文档描述,但是亚马逊没有任何相关文档来说明AWS VPC中的Packet forwarding机制,尽管亚马逊采用的是私有的解决方案(深度定制的Xen Hypervisor和自行定制的虚拟交换机),但是通过分析AWS的网络特征和用户文档搞清楚它的一些细节也不是一件很困难的事情。
订阅“AWS中文技术社区”微信公众号,实时掌握AWS技术及产品消息!
AWS中文技术社区为广大开发者提供了一个Amazon Web Service技术交流平台,推送AWS最新资讯、技术视频、技术文档、精彩技术博文等相关精彩内容,更有AWS社区专家与您直接沟通交流!快加入AWS中文技术社区,更快更好的了解AWS云计算技术。
Chiradeep Vittal通过运行一系列测试写了一篇博客来分享他的心得,总结如下:
1. 亚马逊VPC的虚拟交换机只做L3 unicast IPV4 forwarding(类似于最新的Hyper-V网络形态),所有的非IPv4流量和IPv4多播和广播会被drop掉。
2. 在Hypervisor层虚拟交换机中L3的转发并不减TTL,看起来就像所有的虚拟机都处于同一个子网中。(猜测:毫无疑问,此功能需要有类似避免回路出现的功能辅助,否则网络可能会被阻塞。)
3. Hypervisor代理了所有的ARP请求并且回复目标虚拟机的MAC地址或第一跳的网关地址(早期的AWS VPC实现使用相同的目的MAC地址回复所有的ARP请求)
4. 虚拟交换机实现了类似路由的功能,例如,如果ping的是默认网关会响应,如果ping的是其它子网的网关,数据包会被drop掉。
这种实现看起来平淡无奇, 但是,慢着,这还不是全部,Amazon VPC转发模型绝妙的地方在于,他是multi-VRF(multiple routing tables)机制,用户可以在VPC中创建multiple routing tables并把他们当中的某个分配给其中一个子网。
你可以,举例来说,使用默认路由来路由internet发起的请求,并把这些请求路由到web server所在的子网,把访问数据库的请求路由到你自己的数据中心,对应用服务器之间的网络请求(本地链接)使用非默认路由等等,如果你是一个MPLS/VPN geek用这一特性来分拆路由表这是一个很cool的特性,但是,同时对于那些想要把已经存在的L2网络migrate到云中的用户来说也是一个挑战。
原文链接: Amazon VPC包转发机制分析
如您需要了解AWS最新资讯或是技术文档可访问AWS中文技术社区;如您有更多的疑问请在AWS技术论坛提出,稍后会有专家为您进行答疑。