Skip to content

musubi ​

musubi 按名字定义由 mayami 自建 TUN/TAP、对端地址范围和拨入方式组成的网。

yaml
musubi:
  office:
    tun: mesh0
    address: [10.7.0.1/24]
    mtu: 1400
    fwmark: 0x6d75
    peers:
      laptop:
        allowed_ips: [10.7.0.2/32]

dns:
  servers:
    default: {type: udp, address: 127.0.0.1:53}
  final: default

字段 ​

tun ​

  • 类型:接口名。
  • 必填:与 tap 二选一。
  • 行为:创建 L3 TUN,对端 allowed_ips 的路由指向它。

tap ​

  • 类型:接口名。
  • 必填:与 tun 二选一。
  • 行为:创建 L2 TAP,并按学到的 MAC 在自建交换机中转发。

address ​

  • 类型:CIDR 数组。
  • 默认:空。
  • 行为:TUN/TAP 本机地址。

mac ​

  • 类型:Ethernet 地址。
  • 必填:可选。
  • 限制:只与 tap 使用;不写时按 mesh 名、地址和本机身份稳定生成。

mtu ​

  • 类型:32 位无符号整数。
  • 默认:1400。
  • 范围:至少 576;承载 IPv6 时至少 1280,不超过 muxl3 最大包长。

fwmark ​

  • 类型:32 位无符号整数。
  • 默认:0x6d75。
  • 行为:mayami 自己的连接使用该 mark,并且不落入 mesh 默认路由。

peers ​

  • 类型:名字到对端的映射。
  • 必填:是。

peers.<name>.allowed_ips ​

  • 类型:CIDR 数组。
  • 默认:空。
  • 限制:TUN 对端至少一个;TAP 对端必须为空。
  • 行为:声明该对端可发送和可达的前缀;不同对端不能重复,不能是 mesh 自身地址;每个地址族最多一个对端拥有默认路由。

peers.<name>.dial ​

  • 类型:出站名或数组。
  • 默认:空。
  • 行为:每条出站为对端保持一条到 0.0.0.0:7 的流,断开后退避重连。
  • 限制:不能重复、不能与 endpoint 同用。

peers.<name>.endpoint ​

  • 类型:host:port。
  • 必填:可选。
  • 行为:以普通 TCP 直接拨 0.0.0.0:8 的对端;端口不能为 0。
  • 限制:不能与 dial 同用。

peers.<name>.ingress ​

  • 类型:入站名或数组。
  • 默认:空。
  • 行为:从这些入站拨入的流识别为该对端。
  • 限制:一个入站在所有 mesh 中最多属于一个对端;未写 ingress 的对端按用户名匹配。

说明 ​

仅 Linux

Musubi 依赖 Linux TUN/TAP、netlink 路由和策略规则。

默认路由通过独立路由表与 fwmark 规则接入,mayami 自己的拨号流量不落入 mesh。L2 模式没有 allowed_ips;L3 模式每个对端拥有自己的前缀。一个对端可同时有多条 dial 通道,也可等待 ingress/用户名从外部拨入。

相关 ​

页面历史

开发者设计、代码地图和验证记录保留在仓库 manual/。