我們知道新版本的Ubuntu完全支援Netplan。所以我想問如何透過ucarp協定(應用程式)使用這個功能。我如何將 Netplan 與 ucarp 整合。感謝您的關注。
答案1
可以使 UCARP 與 Netplan 一起工作:
首先,您應該編輯 /usr/share/ucarp/vip-up 和 vip-down:
----- up -----
#!/bin/sh
exec 2>/dev/null
/sbin/ip address add "$2"/32 dev "$1"
------- down -------
#!/bin/sh
exec 2>/dev/null
/sbin/ip address del "$2"/32 dev "$1"
下一步是配置 ucarp:
/usr/sbin/ucarp --interface=ens160 --pass=YourPassw00rd --srcip=10.0.215.26 --vhid=1 --addr=10.0.215.46 --shutdown --preempt --advskew=0 --upscript=/usr/share/ucarp/vip-up --downscript=/usr/share/ucarp/vip-down
您可以更改 --pass 以使用帶有 --passfile 的檔案。 Srcip - 您機器的 ip,addr - 叢集的虛擬 ip。
我剛剛嘗試過這個,一切都很好。我在主節點上禁用了以太網,並且在 2 毫秒後發生了切換。
但有一個問題 - UCARP 不是一項服務,因此您應該為其建立一個單元。
nano /etc/systemd/system/ucarp.service
並填充它
[Unit]
#Unit description. You can see this message when use "service ucarp status"
Description=Start UCARP as service
# Start after this:
After=syslog.target
After=network.target
[Service]
# Set type of service. Only oneshot works with exec lines with so much values. Look for Man page for instructions.
Type=oneshot
# Execute on start.
ExecStart=/usr/sbin/ucarp --interface=ens160 --pass=SuperPa$$w0rd --srcip=10.0.215.26 --vhid=1 --addr=10.0.215.46 --shutdown --preempt --advskew=0 --upscript=/usr/share/ucarp/vip-up --downscript=/usr/share/ucarp/vip-down -B
# Execute on stop.
KillMode=control-group
# Execute on reboot.
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
並添加到自啟動
sudo systemctl enable ucarp
答案2
ucarp 軟體包包括 ifupdown 的集成,但不包括 netplan 的集成。它位於需要更新的軟體包清單中,如下所述https://bugs.launchpad.net/ubuntu/+source/ucarp/+bug/1718227。
如果您使用網路後端,您可以在本地自行實現掛鉤,如 中所述networkd-dispatcher(8)
。否則,您始終可以選擇使用 ifupdown 而不是 netplan 來設定需要執行 ucarp 的網路介面。