私は成功せずにnetworkdを介して以下のipコマンドと同等のものを達成しようとしています。
ip route add default via fe80::1 dev eth0
私のnetworkd構成は以下のようになり、デフォルトのipv6ルーティングとは別にネットワークを正常に起動します。 GatewayOnLink = yesの追加と削除を試みましたが、成功しませんでした。起動後に上記のコマンドを実行するとipv6接続が起動しますが、networkd構成を介してこれを実行したいと思います。
/etc/systemd/network/00-eth0.network
----
[Match]
Name=eth0
[Network]
DHCP=no
DNS=8.8.8.8
[Address]
Label=static-ipv4
Address=X.X.X.X/32
Peer=Y.Y.Y.Y
[Address]
Label=static-ipv6
Address=X:X:X:X::1/64
[Route]
Gateway=fe80::1
Gateway=Y.Y.Y.Y
GatewayOnlink=yes
これはHetznerクラウドサーバー用であり、他のIPV6対応マシンで、セットアップに関する特定のことを除外することはできません。 Systemdは、coreosで実行されているバージョン238です。
1つの[Route]
ブロックに2つのGateway
ディレクティブを含めることはできません。
参照元: https://systemd.network/systemd.network.html#%5BRoute%5D%20Section%20Options
複数の「
[Route]
」セクションを指定して、複数のルートを構成します。
これは私にとってうまくいくものです:
[Route]
Gateway=fe80::1
GatewayOnLink=yes
[Route]
Gateway=Y.Y.Y.Y
GatewayOnLink=yes
このように、最初のブロックはデフォルトのIPv6ルーティングエントリを追加します。
ip -6 route add default via fe80::1 proto static
何らかの理由でproto static
部分が不要な場合は、Proto=boot
をnetworkd構成に追加します(これはiproute2のデフォルトです)。
Networkdの外部の設定が関係しているので、受け入れたいと思っている答えではありませんが、IPv6ルーティングを確実に起動します。
~ $ cat /etc/systemd/system/ipv6-routing.service
[Unit]
Description=Setup ipv6 routing
After=network-online.target
Requires=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/bin/ip route add default via fe80::1 dev eth0
RemainAfterExit=true
[Install]
WantedBy=multi-user.target