Skip to content
网络工具 / vndbind

vndbind

南京翼辉网络部 · SylixOS 虚拟网卡绑定工具

···Armory 获取
VND虚拟网卡
CLI工具类型
多对一绑定模式
SylixOS目标平台

简介

vndbind 用于创建一个「附生」在物理网卡上的 SylixOS VND(虚拟网卡),借助物理网卡链路完成网络通信。多个虚拟网卡可同时绑定同一物理网卡。

MAC 地址过滤

虚拟网卡的 MAC 地址与物理网卡不同,工具提供两种过滤机制:

  • 默认:尝试配置物理网卡的 MAC 地址过滤,失败时自动回退为混杂模式
  • 强制混杂:设置环境变量 VNDBIND_ALWAYS_PROMISC=1,直接使用混杂模式

默认的 MAC 地址过滤需要物理网卡驱动支持 rxmode。

使用方法

创建并绑定

bash
vndbind add <vnd id> <netdev ifname>

# 示例:创建 id=0 的虚拟网卡,绑定物理网卡 en1
vndbind add 0 en1

# 强制混杂模式
VNDBIND_ALWAYS_PROMISC=1 vndbind add 0 en1

删除绑定

bash
vndbind del <vnd ifname>

# 示例:删除 vn3
vndbind del vn3

修改绑定的物理网卡

bash
vndbind chg <vnd ifname> <new netdev ifname>

# 示例:将 vn3 从 en2 改绑到 en1
vndbind chg vn3 en1

查看所有绑定

bash
vndbind list

输出示例:

==============================================
VNDBIND INFO
==============================================
[en1] bind vnd list:
    vn3: 28:fb:dd:ed:07:a0
[en2] bind vnd list:
    vn4: 28:ff:f8:5d:b6:b2
    vn5: 28:ff:f8:5d:b6:b2

开发 API

c
/* 创建绑定对 */
int vndbind_create_pair(int id, struct netdev *netdev);

/* 删除绑定对 */
int vndbind_delete_pair(struct netdev *vnd_netdev);

/* 修改绑定的物理网卡 */
int vndbind_change_pair(struct netdev *vnd_netdev, struct netdev *new_netdev);

/* 列出所有绑定对 */
int vndbind_list_pairs(void);

翼辉信息 · 网络技术部