# cni-overlay **Repository Path**: syswu/cni-hybird-rs ## Basic Information - **Project Name**: cni-overlay - **Description**: 基于ebpf的三层CNI插件。请联系宋鹏磊,邮箱地址:songpenglei@otcaix.iscas.ac.cn - **Primary Language**: Rust - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-01-24 - **Last Updated**: 2025-09-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # cni-hybird-rs #### 介绍 cni-hybird-rs 是利用 rust 实现的三层网络 CNI 插件。 #### 测试与开发 ##### 项目构建 1. 配置 Rust 运行环境(rust version >= 1.80) 2. 下载代码 3. 运行 `cargo build` ##### 测试过程 1. 安装 [cnitool](https://www.cni.dev/docs/cnitool/),`go install github.com/containernetworking/cni/cnitool@latest`。 2. 添加配置文件到 `/etc/cni/net.d/`,样式如 `examples/10-mynet.conf` 3. 添加 netns,使用 `sudo ip netns add testing` 4. 创建容器网络,`sudo CNI_PATH=./target/debug ~/go/bin/cnitool add mynet /var/run/netns/testing` 5. 删除容器网络, `sudo CNI_PATH=./target/debug ~/go/bin/cnitool del mynet /var/run/netns/testing` > [!important] > > 运行 `cargo build`: CNI_PATH 为 `./target/debug` > > 运行 `cargo build --release`: CNI_PATH 为 `./target/release` #### 限制 1. 不支持 Unix-based 系统,如 MacOS 2. 3. 配置文件中,不支持多个子网范围解析 4. 由于创建 veth pair 网卡时,首先创建在主机一侧,为了使得创建成功,主机物理网卡名不能为 eth0,避免因为网卡名冲突导致,虚拟网卡创建失败。 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request