Appearance
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);