LoginSignup
1
1

More than 5 years have passed since last update.

DS-Lite for systemd-networkd

Last updated at Posted at 2018-09-13

自分のマシンだけIPv4パケットをカプセル化してトンネルに送りたい人向け。
ルータにしたい人はこれ書いた時に参照した参考資料を読むと良いです。

TL;DR

例えば接続先がtransixだったら、以下の3つのファイルをつくるべし

/etc/systemd/network/LAN.network
[Match]
Name=en*

[Network]
DHCP=ipv6
Tunnel=dslite0
IPForward=ipv4

/etc/systemd/network/transix.netdev
[NetDev]
Description=IPv4 Internet Link via DS-Lite(RFC6333) gateway provided by transix
Name=dslite0
Kind=ip6tnl
MTUBytes=1500

[Tunnel]
Mode=ipip6
Local=<YOUR IPV6 ADDRESS>
Remote=<てくろぐを参照orあのURLをdigとかで引く>
DiscoverPathMTU=true
/etc/systemd/network/transix.network
[Match]
Name=dslite0

[Route]
Destination=0.0.0.0/0

詳説

まずお使いのネットワークファイルに、Tunnel=デバイス名IPForward=ipv4を書き足します。この時のデバイス名は先述の参考資料で違う名前を使っていることからわかる通り、英数字なら大概なんでもいいと思います。
次にnetdevファイルを作ります。私はファイル名をトンネル事業者名にしていますが、これもなんでもいいです。抑える必要があるのは、ネットワークファイルで挙げたデバイス名とこのファイルに書くNameが一致していることです。なお、Localに指定するIPアドレスを変動に耐えられるようにするのは私にはできませんでした。
最後に、トンネルのネットワークファイルを書きます。これはルーティング用のものらしく、Destinationがゼロになっていることはデフォルトルートを意味するようです。

で、なんで動かないの?

いや、Archな人とかはこれで普通に動くはずです。
手元のGentoo環境では、これでip addrip linkip -4 routeした限りは完璧ですが実際にIPv4ノードにpingしてみるとパケットが闇に呑まれてしまいます。
原因は明らかにカーネルコンフィグの必要な項目が有効になっていないことだろうと思っているのですが、私にはそれがどれなのかわからず途方に暮れたままです。
いや、せっかくGentooJPの相談用リポジトリ作って頂いてるんだからそこにIssue作ればいいんですが、ちょーっとGithubの私のアカウントはとっちらかってしまっていて……片付いたら尋ねに行くつもりです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1