vxlan概述

vxlan协议概述?
     vxlan是UDP封装L2报文的一种隧道协议,支持Tunnel ID比vlan的4094多很多,24-bit ID多达16million个segment。报文的封装格式以及占用UDP的端口如下图,可以在RFC7348中获得知识。这个协议更多的用在data senter中。

部署环境?
     以下这幅图是真实data senter中使用vxlan协议做跨越L3网络建立的L2网络。其中sw vtep就是类似于OVS中vtepd脚本的vxlan网关,在这两个网关架设了vxlan隧道,使得红色的VM与蓝色的VM各自成为一个L2网络。

EndPointIP使用单播地址时候的拓扑?
     如下图,在vxlan配置end point IP时候,可以将这个IP配置成单播IP,所以也就是远端vxlan网关声是单播IP。每个vxlan网关中会持有一份<local MAC, Tunnel ID, End Point IP>这样的表,其中local MAC是vxlan网关所在局域网内部机器的IP地址(OVS的vtepd中使用学习的方式获得)。Tunnel ID是网关配置的、给某些local MAC分配的Tunnel ID,这个配置在OVSDB中,是通过配置L2 logical switch时候下发到OVSDB中。End Point IP也是在OVSDB中配置的。具体配置可以看后面章节,或者自己启动一个NSX网关查看下发的配置。

End Point IP使用多播地址?
     如果多于两个vxlan网关,那么使用单播IP会出现配置指数级的增长,于是在上图的IP network中,可以启用多播组的方式,也就是将上述三元组中End Point IP换成多播地址。具体与多播协议相同。

一个完整的ARP过程?
     如下图,隧道的特点就是对上层透明,所以图中除了蓝色三元组表需要手动配置下发之外,其他过程与ARP+Tunnel过程一样。

OVSDB中vxlan相关的配置如何理解?
      http://blog.csdn.net/batmancn/article/details/40298299这篇文章详细说明,这里说其中比较关键的概念。
     Physical Switch,这个可以理解为vxlan网关,因为这个在OVS中其实就是一个bridge。其中ports、tunnel_ips等比较重要,其中ports存储了上述三元组中的local MAC与tunnel ID,tunnel_ips存储了endpoint IP。
     Logical Swich,这个是指vxlan所建立的跨越L3网络的L2网络,其中的tunnel key存储了tunnel ID。看vtepd,应该是先建立logical switch,然后通过这个配置给上述的physical switch进行配置。
     Unicast_Macs_Local,这个是本地mac地址与tunnel ID的映射,这个表在NSX控制器中,是通过下发的带learn动作的flow实现的自动学习,具体可以看vtep代码。
     Unicast_Macs_Remote,这个是远端mac地址与tunnel ID的映射,即跨越网络的远端vxlan网络中相同logical switch下的机器的mac地址。这张表也是学习所得,与上一张表一样,其通过flow实现的学习功能。其实抛开tunnel不考虑,这两张表就是ARP学习来的两张表。
     Physical_locater,这个主要用于配置vxlan网关之间如何联通,例如封装方式、封装所需的key(vxlan中就是end point IP),也就是组合payload报文所需的资料。
     ARP_Sources_Local,这张表是为了logical router而是用,暂时没有研究。

OVS中的vtepd如何工作?

某款芯片、某个路由平台如何开发vxlan功能?

猜你喜欢

转载自blog.csdn.net/batmancn/article/details/51417614