2.VXLAN_从GRE开始
从GRE VPN 开始
为什么讲VXLAN要从GRE VPN开始呢?
因为VXLAN的工作原理与GRE VPN有很多相似之处,学习GRE VPN有助于后续帮助我们理解VXLAN.
GRE VPN
前言
VXLAN本身是一个比较复杂的知识点,想要理解VXLAN并不容易,我们会从GRE VPN + 单臂路由开始讲起,然后深入分析其工作原理和优缺点,能够深入的理解GRE VPN 是理解VXLAN非常好的入口;
配置
思路:
- underlay
- GRE Tunnel
- 下联接口
- 让PC和PC3通过GRE VPN能够通信
通信流程
- PC1主机构建ARP报文询问网关MAC:
- “与运算”判断对方跟自己是否在一个网段,发现对方跟自己并不在一个网段;
- PC1发送ARP广播报文获取网关的MAC地址(此时的报文格式)
- 接入层交换机处理ARP报文:
- 会将其打TAG-10
- 并从TRUNK接口带着TAG继续发出给防火墙的单臂网关接口
- FW1处理ARP报文:
- 网关所在G1/0/5.10的子接口因为做和DOT1Q,所以是可以识别VLAN10的;FW1的G1/0/5.10不仅可以识别TAG VLAN-10,还要拆掉VLAN-10漏出当中的ARP报文
- 防火墙的内核会将其交给ARP模块进行处理。接下来,FW1接口回复PC1 ARP报文,注意,也是带着VLAN-10的,ARP的回复报文最终到达PC1;
- PC1主机构建ICMP报文
- PC1主机得到网关的MAC地址之后,开始封装 ICMP报文交给FW1的G1/0/5.10的子接口,即网关;
- FW1根据报文的目标地址进行路由,交给隧道接口,外面包裹上GRE和新的IP首部,再次路由之后发出。
- 沿途路由器根据目标IP地址进行转发
- FW3对ICMP的处理:
- FW3拆掉外层IP,漏出GRE首部
- FW3交给GRE进程进行处理GRE进程拆掉GRE首部,漏出内层IP首部
- 交给路由模块进行处理,路由模块根据目标地址进行路由;
- FW3发现目标IP是本地直连的,在MAC表当中查找对应的MAC,如果没有,要通过ARP广播询问(此时第一次PING可能会因超时而会丢包)
- FW3得到了PC3的MAC地址之后,把PC1的ICMP报文重新封装交给PC3。
- PC3收到之后构建ICMP的回复报文进行回复;
GRE VPN的问题
见上一节
设计一种新的协议!
最终的设计目标
使得不同区域的虚拟机在迁移之后可以平滑使用;
进一步
也就意味着两边得变成一个大二层网络才可以,只有变成了二层之后,一方的广播才有可能到达另一方,同时虚拟机迁移之后还是处于同一个网络之下;
问题更具体了:
怎样让两边的网络成为一个大二层网络?
既然是大二层,那得把三层网关取消吧!
取消网关带来了新的问题!
取消网关之后,FW3在就无法路由了,就不知道该把流量给哪个接口了,怎么办?引入ID标识不就行了;
由此为思路诞生了两个新的协议:
- NVGRE
- VXLAN
- ……
# FW1
bridge-domin <NAME>
vxlan vni 10
interface g1/0/5.10 l2
vlan-type dot1q 10
bridge-domin <NAME>
interface nve1
source 1.1.1.1
vni 10 peer-list head-end 3.3.3.3

浙公网安备 33010602011771号