私は読んだ debianのネットワークインターフェースにIPv6/64ブロック全体を追加するAnyIP 機能を利用してIPv6/64サブネットブロック全体をウェブホスティングサーバーですが、Ubuntu 18.04を使用しているため、Netplanを使用しています
サイドノート:少数の専門家がAnyIPを使用してIPv6を構成しないようにアドバイスしているため、手動で少数のIPを構成するなどの代替ソリューションについても検討します。
私たちのデータセンターはすでに/ 64を単一のIPにルーティングしています。たとえば、
The range 2001:db8:1:10::0/64 is routed to the IP 2001:db8:1::1:10
The range 2001:db8:1:11::0/64 is routed to the IP 2001:db8:1::1:11
Netplanでは、この方法で単一のIPを構成できます
network:
version: 2
renderer: networkd
ethernets:
eth0:
accept-ra: no
addresses:
- '2001:db8:1::1:10/48'
- '2001:db8:1:10::0/64'
- '2001:db8:1:10::1/64'
gateway6: '2001:db8:1::1'
そして、これはうまくいきます。ただし、このサーバーで2001:db8:1:10::/64
の範囲全体を使用したいので、18446744073709551616行で構成したくありません。
このコマンドを実行すると、すべての/ 64 IPを外部からpingできます。
ip -6 route add local 2001:db8:1:10::/64 dev lo
補足:サーバーデーモンは、インターフェイスで明示的に構成されていないIPにバインドできるようにIP_FREEBIND
をサポートする必要があります。
私の質問は:各再起動後にip -6 route add local ..
を実行する代わりに、Netplan Yaml構成内で適切に構成したいと思います。
解決策を見つけましたが、誰かがより良い解決策を知っていますか?
cat <<EOF > /usr/lib/networkd-dispatcher/routable.d/50-ipv6-block
#!/bin/sh
ip -6 route add local 2001:db8:1:10::/64 dev lo
exit 0
EOF
chmod 755 /usr/lib/networkd-dispatcher/routable.d/50-ipv6-block
機能するかどうかを確認するには:
ip -6 route del local 2001:db8:1:10::/64
netplan apply
systemctl --no-pager status networkd-dispatcher.service
route -6 | grep 2001:db8:1:10::/64
ping6 -c2 2001:db8:1:10::1234
RTNETLINK answers: File exists
が表示された場合、これは以前のnetplan apply
のためにすでに存在していたルートが追加されたためです。