私は成功せず、ネットワークを介して以下のipコマンドと同等のものを達成しようとしました。
ip route add default via fe80::1 dev eth0
私のネットワーク設定は次のとおりです。デフォルトのipv6ルーティングに加えて、ネットワークが正常に起動しました。 GatewayOnLink = yesを追加して削除しようとしましたが、成功しませんでした。起動後に上記のコマンドを実行するとipv6接続が確立されますが、私はネットワーク設定を介してこれを行うことを好みます。
/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
1ブロックには2つのGateway
命令を含めることはできません[Route]
。
参照から: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
ネットワーク設定に追加してください(これはiproute2のデフォルト設定です)。
答え2
これはネットワーク外部設定に関連しているため、私が受け入れると予想した答えではありませんが、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