VXLAN

题目:

appsrv

yum install -y bridge-utils net-tools

brctl addbr br-vxlan

ip link set br-vxlan up

ip link add vxlan100 type vxlan id 100 remote 192.168.100.200 dstport 4789 dev ens33

ip link set vxlan100 up

brctl addif br-vxlan vxlan100

ip link add link vxlan100 name vxlan100.1 type vlan id 100

ifconfig vxlan100.1 172.16.1.1/24 up

storagesrv

yum install -y bridge-utils net-tools

brctl addbr br-vxlan

ip link set br-vxlan up

ip link add vxlan100 type vxlan id 100 remote 192.168.100.100 dstport 4789 dev ens33

ip link set vxlan100 up

brctl addif br-vxlan vxlan100

ip link add link vxlan100 name vxlan100.1 type vlan id 100

ifconfig vxlan100.1 172.16.1.2/24 up

最后测试

查看可以不可以获取对方的mac地址

实现虚拟网卡之间的ping通

03-19
### VXLAN 网络虚拟化、封装协议及其工作原理 #### 1. VXLAN 的基本概念 VXLAN 是一种网络虚拟化技术,旨在解决 VLAN 数量有限的问题以及支持跨物理网络的二层通信。它通过引入 VNI(VXLAN Network Identifier)来区分不同的租户或业务流,从而实现了更大规模的网络分段能力[^3]。 #### 2. 封装协议的工作机制 VXLAN 使用 UDP 协议作为其封装的基础,在标准以太网帧的基础上增加了额外的头部信息。以下是具体的封装过程: - **封装阶段** 当源端设备(通常是 VTEP,即 VXLAN Tunnel End Point)接收到一个普通的以太网帧时,会对其进行如下操作: - 添加 VXLAN 头部:该头部包含了一个 24-bit 的 VNI 字段,用于标识特定的 VXLAN 隧道。 - 添加 UDP 和 IP 头部:UDP 目标端口固定为 4789(标准化定义),而源 IP 地址和目标 IP 地址分别对应于两个 VTEP 设备之间的连接地址[^4]。 最终形成的报文结构可以表示为: ```plaintext +-------------------+ | Outer Ethernet | +-------------------+ | Outer IPv4/IPv6 | +-------------------+ | UDP Header | (Destination Port: 4789) +-------------------+ | VXLAN Header | (Includes VNI Field) +-------------------+ | Original Frame | +-------------------+ ``` - **解封装阶段** 到达目的端后,目标 VTEP 对报文进行反向处理: - 去掉外层的 UDP/IP/VXLAN 头部; - 提取出原始的以太网帧并转发给相应的终端设备。 这种设计使得即使两台虚拟机位于不同子网甚至跨越多个数据中心的情况下仍能保持透明的 L2 连通性。 #### 3. 数据平面与控制平面的角色划分 在 VXLAN 架构中,功能被清晰地划分为数据平面和控制平面两大模块: - **数据平面** 主要职责在于完成上述提到的实际流量传输任务——包括但不限于对进出方向上的每一条链路实施精确无误地加壳拆壳动作;同时借助底层 IP 路由体系实现远距离传递效果。 - **控制平面** 虽然未直接参与具体比特位级别的搬运活动,但它却决定了整个系统的运作逻辑框架。例如如何建立初始映射关系表项以便后续快速查找匹配路径等等均属于此类范畴内的事务范围之内。 #### 4. 应用场景分析 由于具备良好的可扩展性和灵活性特点,因此特别适合应用于现代超大规模分布式计算环境中诸如 OpenStack 平台上所提供的 Neutron 插件形式便是一个典型实例说明了这一点[^5]。 --- ### 示例代码展示 VXLAN 报文构造流程 下面给出一段伪代码演示简单情况下创建一个带有指定参数值的新对象的过程: ```python class EthFrame: def __init__(self, src_mac, dst_mac, payload): self.src_mac = src_mac self.dst_mac = dst_mac self.payload = payload def encapsulate_vxlan(frame, vni, outer_src_ip, outer_dst_ip): vxlan_header = f"VXLAN Header with VNI={vni}" udp_header = "UDP Header" ip_header = f"Outer IP from {outer_src_ip} to {outer_dst_ip}" # Encapsulation process new_payload = "\n".join([vxlan_header, frame.payload]) full_packet = "\n".join([ip_header, udp_header, new_payload]) return full_packet # Example usage original_frame = EthFrame(src_mac="AA:BB:CC:DD:EE:FF", dst_mac="11:22:33:44:55:66", payload="Original Data Payload") encapsulated_packet = encapsulate_vxlan(original_frame, vni=1001, outer_src_ip="192.168.1.1", outer_dst_ip="192.168.2.1") print(encapsulated_packet) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值