vxlan 动态三层通信_方式1_通过 BGP EVPN Type 5 Prefix Route

一、拓扑:

在这里插入图片描述

二、配置过程:

-----------------------vxlan二层配置过程-----------------------

1、ISP IGP 互通

2、两个 PE 之间建立 BGP EVPN 对等体关系,并通告 vxlan 路由

peer x.x.x.x advertise encap-type vxlan	#中间没有mpls,就要开启使用 vxlan 类型的路由

3、PE 创建 EVI,使用 BD-mode,配置 RD、RT

evpn vpn-instance 1 bd-mode

4、PE 创建 BD,并绑定 EVI

bridge-domin 100
vxlan vni 5000 spit-horizon-mode #防环
evpn binding vpn-instance #只有创建的bd模式的evpn实例,才能绑定到BD中

5、配置 nve,并配置源、vni、和路由传递途径

6、PE接入VAP,配置二层接入端口

--------------------vxlan三层配置过程---------------------------

1、做 ip 实例,配置 RT(加 evpn 格式)、配置三层 vni

2、配置 vbdif,绑定 ip 实例、配置网关 IP

3、在 BGP 下,ip实例下,通告租户实例的网关路由(第一种方式,通过prefix通告Type 5 prefix路由,这里是网段路由),并且开启通告 evpn 路由

advertise l2vpn evpn
dis ip routing-table vpn-instance 1	#CE进入实例1后,查实例路由表,出口是 vxlan,通过三层的租户实例路由传到对端,进行通信
<
VXLAN (Virtual eXtensible Local Area Network) 是一种用于构建虚拟网络的技术,它通过封装二层网络流量并在第三层 IP 网络上进行传输,实现了数据中心内的跨物理网络连接。在三层通信中,VXLAN 使用隧道技术来实现在两个网络设备间的数据传输。以下是实现 VXLAN 三层通信的基本步骤和涉及的关键代码片段(假设使用 Linux 开发环境): 1. 创建 VNI(Virtual Network Identifier):这是 VXLAN 隧道的独特标识符,用于区分不同的虚拟网络。在 Linux 中,可以使用 `ip link` 或 `vconfig` 命令创建并配置 VXLAN 接口。 ```bash sudo ip link add name vxlan0 type vxlan id <VNI> ``` 2. 设置路由转发:为了允许数据包通过 VXLAN 隧道,需要启用 IP 路由表对 VXLAN 地址段进行转发。这通常通过修改 `sysctl.conf` 文件或设置 net.ipv4.ip_forward 的值为 1 来实现。 3. 数据包封装与解封装:应用程序或协议栈在发送数据前会将二层帧封装到一个带有 VNI 的 UDP 包中,接收端再解封装回原始二层报文。在用户空间(如 QEMU),你可以使用 libnl 或其他库来处理这个过程。 ```c #include <linux/if_packet.h> struct sk_buff *skb = ...; // 获取原始二层帧 struct ethhdr eth; memcpy(&eth, skb->data, ETH_ALEN); struct vxlan_vni_header vni; vni.vni = <VNI>; // 封装到新的 UDP 包 struct udphdr udp; udp.src = <UDP_SRC>; udp.dst = <UDP_DST>; udp.check = htons(cksum(udp, sizeof(udp))); ... ``` 4. 发送和接收:在应用层面,你需要使用 socket API 来发送和监听封装后的 UDP 报文。 ```c int sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); sendto(sock, ...); // 发送 UDP 包 struct sockaddr_in addr; recvfrom(sock, ..., &addr, ...); // 接收 UDP 包 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值