一. Overlay技术
overlay(又叫叠加网络、覆盖网络)简单理解就是把一个逻辑业务网络
underlay(物理网络)低层基础网络
overlay种类:
1.网络overlay:主要针对物理服务器/交换机作为边缘设备。(物理交换机为VTEP节点)
2.主机overlay:针对虚拟化,vSwitch作为网络边缘设备。(vSwitch为VTEP节点)
3.混合overlay:上面两种的结合。
主流overlay技术:
1.VXLAN:由cisco和vmware支持,L2 over UDP ,会增加50个字节的IP包头。
2.NVGRE:由微软支持,L2 over GRE ,会增加42字节的包头长度。(缺点是需要网络设备支持GRE)
3.STT:由VMware(Nicira)支持,L2 over TCP,会增加58+76字节。(需要修改TCP)
二. VxLAN术语介绍
VTEP:用于建立VxLAN隧道的端点设备称为VTEP,封装和解封装在VTEP节点上进行。
VTEPs:表示一个VXLAN网络内的所有VTEP。
VNI:VXLAN网络标识符,占用VXLAN报头的24位
Overlay转发机制
1、报文封装格式:UDP端口使用目的4798
2、组播协议转播MAC地址:
VXLAN网络中,每个VTEP需知道自己下连所有终端的MAC地址,同时需要知道其他所有VTEP成员下所有终端的MAC地址表,其他终端MAC地址表是通过底层物理网络组播进行传播,一个VXLAN网络一个组播地址。VXLAN最多可以有16M个网络。
通常在SDN架构下有一个控制器,所有的VTEP把MAC地址都转发给他,他再进行分发给需要的VTEP成员,所以在请求时只需要单播发送报文给控制器。同样,VXLAN也有学习的功能,收到一个报文时,会检查自己有没有相关信息,如果没有就会记录源VNI、源外层VTEP的IP、源内层MAC地址。
3、VXLAN三层互通:
在VXLAN网络下的终端和其他VXLAN进行通信或者和远端访问时,VXLAN网关会对VXLAN报文剥离,重新封装为传统的IP数据包送入网络。
4、VXLAN二层互通:
在一些特定情况下,需要VXLAN网络和传统网络在同一个二层网络中时,VXLAN网络用二层网关和传统二层互通。当数据包到达VXLAN二层网关时,剥离VXLAN报文,重新打上目的网络对应的VLAN 802.1Q 标记后送入目的网络。反之,VXLAN通过VLAN编号获取VXLAN编号,再根据MAC地址确定目的VTEP的IP。然后进行转发。
注意:如果VTEP收到的来自VXLAN报文中带有VLAN ID的会给予丢弃,因为VLAN ID只是一个本地信息,转发了没有意义。所以连接VTEP的交换机端口需要设置成access模式,而不是TRUNK模式。
三. ARP请求流程
VM1——VTEP1——物理交换机——VTEP2——VM2
1、VM1使用广播发送ARP请求查找VM2的MAC地址。
2、VTEP1收到VM1的广播后,查找自己的MAC地址表,如果下联终端没有将封装报文为VXLAN,内层VNI为100,外层目的地址为VXLAN组播地址,外层源IP为VTEP1地址。
3、通过多播组VTEP2接受到VTEP1的报文,解封装后。记录报文的内层VNI、外层源VTEP1的IP、内层MAC地址。
4、VTEP2通过广播将数据包广播到自己连接的终端下面。
5、VM2接受到ARP请求后,做出回应。
6、VTEP2接受到VM2的回应后,查找流表,发现需要发送给VTEP1,重新把数据包进行封装为VXLAN并以单播的形式发送给VTEP1.
7、VTEP1收到回应后,记录内层VNI、外层源VTEP2的IP、内层VM2的MAC地址。
8、VTEP1解封装后转发给VM1。至此VM1收到了VM2的MAC地址。
数据传输流程:
VM1——VTEP1——物理交换机——VTEP2——VM2
1、VM1给VM2发送了一个TCP报文。
2、VTEP1收到报文后检查VM1和VM2是否属于一个VNI,(如果不属于将转发给VXLAN网关)检查后属于一个VNI,需要转发给VTEP2。
3、VTEP1封装VXLAN报文以单播的形式发送给VTEP2。
4、VTEP2收到报文后解封装,查找流表。VM2是自己下联终端。
5、VTEP2单播的形式发送给VM2,至此一个报文发送完毕。
什么是VRF以及RD、RT
VRF
BGP/MPLS VPN的安全举措之一就是路由隔离和信息隔离,它是通过VPN路由转发(VPN Routing
Forwarding:VRF)表和MPLS中的LSP来实现的。在PE路由器上,存在有多个VRF表,这些VRF表是和PE路由器上的一个或多个子接口相对应的,用于存放这些子接口所属VPN的路由信息。通常情况下,VRF表中只包含一个VPN的路由信息,但是当子接口属于多个VPN时,其所对应的VRF表中就包含了子接口所属的所有VPN的路由信息。
对于每一个VRF表,都具有路由区分符(Route Distinguisher:RD)和路由目标(Route Target:RT)两大属性。
RD
VPN中站点域或客户域可能会有IP地址重叠现象。地址重叠的后果之一就是BGP无法区分来自不同VPN的重叠路由,从而导致某个站点不可达。
为了解决这个问题,BGP/MPLS VPN除了采用在PE路由器上使用多个VRF表的方法,还引入了RD的概念。RD具有全局唯一性,通过将8个字节的RD作为IPv4地址前缀的扩展,使不唯一的IPv4地址转化为唯一的VPN-IPv4地址。VPN-IPv4地址对客户端设备来说是不可见的,它只用于骨干网络上路由信息的分发。
RD和VRF表之间建立了一一对应的关系。通常为每一个VPN分配一个唯一的RD。但是对于重叠VPN,即某个站点属于多个VPN的情况,由于PE路由器上的某个子接口属于多个VPN,此时,该子接口所对应的VRF表只能被分配一个RD,从而多个VPN共享一个RD。
RT
RT的作用类似于BGP中扩展团体属性,用于路由信息的分发。它分成Import RT和Export
RT,分别用于路由信息的导入、导出策略。当从VRF表中导出VPN路由时,要用Export
RT对VPN路由进行标记;在往VRF表中导入VPN路由时,只有所带RT标记与VRF表中任意一个Import RT相符的路由才会被导入到VRF表中。RT使得PE路由器只包含和其直接相连的VPN的路由,而不是全网所有VPN的路由,从而节省了PE路由器的资源,提高了网络拓展性。
RT具有全局唯一性,并且只能被一个VPN使用。通过对Import RT和Export RT的合理配置,运营商可以构建不同拓扑类型的VPN,如重叠式VPN和Hub-and-spoke VPN。
Export Target: 发出的路由打的标记
Import Target:接受什么标记的路由
BGP路由
用于AS间传递路由的协议,基于TCP179端口
AS号:1-64511 公有需申请 64512-65535 私有使用
peers = neighbors:1.EBGP:外部AS连接 2.IBGP:内部AS连接
基本理论