Linux-Networking
使用 Netplan 將整個 IPv6 /64 塊添加到伺服器
我已閱讀將整個 IPv6 /64 塊添加到 debian 上的網路介面 我們想利用AnyIP功能將整個 IPv6 /64 子網塊添加到 Web 託管伺服器但使用Netplan,因為我們在 Ubuntu 18.04
旁注:一些專家建議不要使用 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 行中配置它。執行此命令使我能夠從外部 ping 所有 /64 IP:
ip -6 route add local 2001:db8:1:10::/64 dev lo
旁注:伺服器守護程序需要支持
IP_FREEBIND
能夠綁定到未在介面上明確配置的 IP。**我的問題是:**我不想在每次重啟後都執行,而是
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