使用 networkd 管理 HE.net TunnelBroker

Posted on Mon 26 January 2015 in misc

systemd-networkd 是一个很科学的网络管理工具。支持 sit 隧道,可以拿来管理 HE.net 的 TunnelBroker。

进入 TunnelBroker 的隧道 -> Example Configuration 页面,在下拉菜单中选择 Debian/Ubuntu。

例如:

auto he-ipv6
iface he-ipv6 inet6 v4tunnel
    address 2001:db8:12:34::2
    netmask 64
    endpoint 172.16.12.19
    local 192.168.24.17
    ttl 255
    gateway 2001:db8:12:34::1

然后创建以下文件: /etc/systemd/he-tunnel.netdev

[Match]

[NetDev]
Description=HE.net Tunnelbroker sit device
Name=he-ipv6
Kind=sit
MTUBytes=1480

[Tunnel]
Local=192.168.24.17  # 上面的 "local" 字段
Remote=172.16.12.19  # 上面的 "endpoint" 字段
TTL=255

/etc/systemd/he-tunnel.network

[Match]
Name=he-ipv6

[Network]
Address=2001:db8:12:34::2/64  # "address"/"netmask"
Gateway=2001:db8:12:34::1     # "gateway"
DNS=2001:4860:4860::8888      # 建议按照 IPv6 Tunnel 页上 Available DNS Resolvers 一节进行设置
DNS=2001:4860:4860::8844

在样例配置中,Linux-net-tools 方案和 Linux-iproute2 方案都不需要指定 IPv6 的网关地址,我也不知道怎么让 networkd 实现同样效果…

最后在主接口的.network文件的[Network]一节里加入如下内容:

Tunnel=he-ipv6

这样就能让隧道随主接口自动建立。