自分のマシンだけIPv4パケットをカプセル化してトンネルに送りたい人向け。
ルータにしたい人はこれ書いた時に参照した参考資料を読むと良いです。
TL;DR
例えば接続先がtransixだったら、以下の3つのファイルをつくるべし
[Match]
Name=en*
[Network]
DHCP=ipv6
Tunnel=dslite0
IPForward=ipv4
[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
[Match]
Name=dslite0
[Route]
Destination=0.0.0.0/0
詳説
まずお使いのネットワークファイルに、Tunnel=デバイス名
とIPForward=ipv4
を書き足します。この時のデバイス名は先述の参考資料で違う名前を使っていることからわかる通り、英数字なら大概なんでもいいと思います。
次にnetdevファイルを作ります。私はファイル名をトンネル事業者名にしていますが、これもなんでもいいです。抑える必要があるのは、ネットワークファイルで挙げたデバイス名とこのファイルに書くName
が一致していることです。なお、Local
に指定するIPアドレスを変動に耐えられるようにするのは私にはできませんでした。
最後に、トンネルのネットワークファイルを書きます。これはルーティング用のものらしく、Destination
がゼロになっていることはデフォルトルートを意味するようです。
で、なんで動かないの?
いや、Archな人とかはこれで普通に動くはずです。
手元のGentoo環境では、これでip addr
やip link
、ip -4 route
した限りは完璧ですが実際にIPv4ノードにpingしてみるとパケットが闇に呑まれてしまいます。
原因は明らかにカーネルコンフィグの必要な項目が有効になっていないことだろうと思っているのですが、私にはそれがどれなのかわからず途方に暮れたままです。
いや、せっかくGentooJPの相談用リポジトリ作って頂いてるんだからそこにIssue作ればいいんですが、ちょーっとGithubの私のアカウントはとっちらかってしまっていて……片付いたら尋ねに行くつもりです。