將 netplan 與 ucarp 一起使用

將 netplan 與 ucarp 一起使用

我們知道新版本的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 的網路介面。

相關內容