Skip to content

网段总览 ​

networks 是按名字声明的 Linux 网桥。mayami 可建桥、配地址、接成员,并在桥上提供 DHCP、RA、DNS 和 capture 路由入口。

yaml
networks:
  lab:
    id: 10
    address: [10.10.0.1/24]
    domain: lab.internal
    mtu: 1500
    uplink: nat
    capture: true
    dhcp:
      range: 10.10.0.100-10.10.0.199
      lease: 12h

inbounds:
  router:
    type: capture
    wan: [eth0]

outbounds:
  direct:
    type: direct

route:
  final: direct

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

字段 ​

id ​

  • 类型:u16。
  • 必填:可选。
  • 范围:1..=4094。
  • 默认:首次分配并持久保存;改名不会改变已有记录。
  • 行为:网段的稳定身份,用于接口编号、租约、邻居和服务名。

interface ​

  • 类型:Linux 接口名。
  • 默认:映射键。
  • 范围:1 到 15 字节,不能为空、.、..,不能含空白、/、: 或 NUL。

address ​

  • 类型:CIDR 数组。
  • 必填:是。
  • 范围:至少一个;每个地址族最多一个。
  • 行为:网桥地址,也是客人网关和自动 DNS 地址。
  • 限制:普通网段前缀不能重叠;不同且显式命名的租户可以重叠。

domain ​

  • 类型:DNS 域名。
  • 必填:可选。
  • 行为:为该网段安装权威正向/反向名字范围,并向 DHCP/RA 通告搜索域。
  • 限制:规范化后不能和其他网段重复。

tenant ​

  • 类型:租户名。
  • 必填:可选。
  • 范围:合法 VRF 接口名,1 到 15 字节。
  • 限制:不能与 external: true 或 uplink: routed 同用。

mtu ​

  • 类型:32 位无符号整数。
  • 默认:1500。
  • 行为:桥、DHCP 和 RA 通告使用的 MTU。
  • 类型:字符串枚举。
  • 默认:nat。
  • 取值:nat、routed、none。
  • 行为:nat 做 masquerade,routed 要求上游回程路由,none 只允许本机/网段内。

capture ​

  • 类型:布尔值。
  • 默认:true。
  • 行为:网桥认领成功后自动进入 capture LAN 集合。
  • 限制:capture: true 需要配置一个 capture 入站。

isolate ​

  • 类型:布尔值。
  • 默认:false。
  • 行为:成员二层隔离,并挡住经网关返回同一桥的三层绕行;访问网桥本机服务不受影响。

members ​

  • 类型:接口名或 {trunk: 接口名} 的数组。
  • 默认:空。
  • 行为:整口直接入桥,或按网段 ID 创建 VLAN 子口。

external ​

  • 类型:布尔值。
  • 默认:false。
  • 行为:桥归别人所有,mayami 只核对地址并提供 DHCP/RA/DNS。
  • 限制:不能配置成员或隔离,也不能选择非默认 uplink。

dhcp ​

  • 类型:映射。
  • 必填:可选。
  • 行为:启用 IPv4 DHCP。

ipv6 ​

  • 类型:字符串枚举。
  • 必填:可选。
  • 取值:slaac、dhcp、none。
  • 默认:有 IPv6 地址时为 slaac,否则 none。

说明 ​

仅 Linux

网段功能依赖 Linux bridge、netlink、nftables、DHCP/RA 与内核转发。

宿主机会被改什么

mayami 会创建或认领网桥,设置地址、MTU、成员/VLAN 和隔离口,提供 DHCP/RA/DNS,并在需要时打开 IPv4/IPv6 转发、调整 RA sysctl、写入 mayami_net 的 NAT/flowtable 规则。自动分配的转发开关和现有接口 accept_ra=2 不会被退出流程改回。

删网段时,桥上仍有成员则保留桥;没有成员时才删除。地址和网段自身服务随之撤掉。

相关 ​

页面历史

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