User Tools

Site Tools


протокол_carp

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
протокол_carp [2016/04/15 10:44]
val
протокол_carp [2021/07/08 08:04]
admin [Проверка]
Line 1: Line 1:
 ====== Протокол CARP ====== ====== Протокол CARP ======
  
 +  * [[https://​ru.wikipedia.org/​wiki/​VRRP|VRRP]]
 +  * [[https://​ru.wikipedia.org/​wiki/​CARP|CARP]]
   * [[Сервис NTP]]   * [[Сервис NTP]]
  
-===== Ubuntu =====+===== Debian/Ubuntu =====
  
 +  * [[https://​serverfault.com/​questions/​298776/​ucarp-promote-slave-to-master|ucarp:​ promote slave to master]]
 +  * [[https://​askubuntu.com/​questions/​1149275/​using-netplan-with-ucarp|Using netplan with ucarp]] + systemd
 ==== Установка ==== ==== Установка ====
 <​code>​ <​code>​
-root@nodeN:​~#​ apt-get install ucarp+root@nodeN:​~#​ apt install ucarp
 </​code>​ </​code>​
  
Line 15: Line 19:
  
 root@nodeN:​~#​ less /​etc/​network/​if-up.d/​ucarp root@nodeN:​~#​ less /​etc/​network/​if-up.d/​ucarp
- 
-root@nodeN:​~#​ ifdown eth0 
  
 root@nodeN:​~#​ cat /​etc/​network/​interfaces root@nodeN:​~#​ cat /​etc/​network/​interfaces
Line 25: Line 27:
         address 192.168.X.N         address 192.168.X.N
         netmask 255.255.255.0         netmask 255.255.255.0
 +
         ucarp-vid 1         ucarp-vid 1
         ucarp-vip 192.168.X.254         ucarp-vip 192.168.X.254
Line 34: Line 37:
 ... ...
 </​code><​code>​ </​code><​code>​
-root@nodeN:​~# ​cat /​usr/​share/​ucarp/​vip-up+root@nodeN:​~# ​less /​usr/​share/​ucarp/​vip-up
 </​code><​code>​ </​code><​code>​
 #!/bin/sh #!/bin/sh
Line 40: Line 43:
 /sbin/ifup $1:ucarp /sbin/ifup $1:ucarp
 </​code><​code>​ </​code><​code>​
-root@nodeN:​~# ​cat /​usr/​share/​ucarp/​vip-down+root@nodeN:​~# ​less /​usr/​share/​ucarp/​vip-down
 </​code><​code>​ </​code><​code>​
 #!/bin/sh #!/bin/sh
Line 49: Line 52:
 ==== Запуск ==== ==== Запуск ====
 <​code>​ <​code>​
 +root@nodeN:​~#​ ifdown --force eth0
 +
 root@nodeN:​~#​ ifup eth0 root@nodeN:​~#​ ifup eth0
 </​code>​ </​code>​
  
 ==== Проверка ==== ==== Проверка ====
 +
 +  * [[Сигналы#​Отправка сигнала]]
 +
 <​code>​ <​code>​
 root@nodeN:​~#​ ps ax | grep carp root@nodeN:​~#​ ps ax | grep carp
  
 root@nodeN:​~#​ ifconfig eth0:ucarp root@nodeN:​~#​ ifconfig eth0:ucarp
 +
 +root@nodeN:​~#​ pkill -USR1 ucarp
 +
 +root@nodeN:​~#​ killall -USR1 ucarp
 +
 +root@nodeN:​~#​ grep carp /​var/​log/​syslog
 </​code>​ </​code>​
  
-=== Остановка ===+==== Смена ролей узлов ====
 <​code>​ <​code>​
-root@nodeN:~ifdown eth0:ucarp+wincmd:\> arp -a 
 + 
 +masternodekillall -USR2 ucarp 
 + 
 +wincmd:​\>​ arp -a
 </​code>​ </​code>​
 +
  
 ===== FreeBSD (user land) ===== ===== FreeBSD (user land) =====
Line 68: Line 87:
 ==== Установка ==== ==== Установка ====
 <​code>​ <​code>​
-[nodeN:~] # pkg_add -r ucarp+[nodeN:~] # pkg install ​ucarp
 </​code>​ </​code>​
  
 ==== Настройка ==== ==== Настройка ====
 <​code>​ <​code>​
-[node1:~] # cat /​etc/​rc.conf+[nodeN:~] # less /​usr/​local/​etc/​rc.d/​ucarp 
 + 
 +[nodeN:~] # cat /​etc/​rc.conf
 </​code><​code>​ </​code><​code>​
 ... ...
 +ucarp_src="​192.168.X.N"​
 ucarp_enable="​YES"​ ucarp_enable="​YES"​
 ucarp_vhid="​1"​ ucarp_vhid="​1"​
 ucarp_if="​em0"​ ucarp_if="​em0"​
-ucarp_src="​192.168.X.1"​ 
 ucarp_addr="​192.168.X.254"​ ucarp_addr="​192.168.X.254"​
-# ucarp_advskew="​50"​ 
-# ucarp_preempt="​YES"​ # For always use master with lover advskew 
 ucarp_pass="​secret"​ ucarp_pass="​secret"​
-ucarp_upscript="/​usr/​local/​etc/vip-up.sh+ucarp_upscript="/​usr/​local/​sbin/ucarp-up" 
-ucarp_downscript="/​usr/​local/​etc/vip-down.sh"+ucarp_downscript="/​usr/​local/​sbin/ucarp-down"
 </​code><​code>​ </​code><​code>​
-[node2:~] # cat /etc/rc.conf+[nodeN:~] # cat /usr/local/​sbin/​ucarp-up
 </​code><​code>​ </​code><​code>​
 +#!/bin/sh
 ... ...
-ucarp_enable="​YES"​ +/​sbin/​ifconfig ​"$1" ​alias "$2" ​netmask 255.255.255.255
-ucarp_vhid="​1"​ +
-ucarp_if="em0" +
-ucarp_src="​192.168.X.2" +
-ucarp_addr="​192.168.X.254" +
-# ucarp_advskew="​100"​ +
-# ucarp_preempt="​YES"​ +
-ucarp_pass="​secret"​ +
-ucarp_upscript="/​usr/​local/​etc/​vip-up.sh"​ +
-ucarp_downscript="/​usr/​local/​etc/​vip-down.sh"​+
 </​code><​code>​ </​code><​code>​
-[nodeN:~] # cat /usr/local/etc/vip-up.sh+[nodeN:~] # cat /usr/local/sbin/ucarp-down
 </​code><​code>​ </​code><​code>​
 #!/bin/sh #!/bin/sh
-ifconfig em0 inet 192.168.X.254/32 alias+... 
 +/sbin/​ifconfig "​$1"​ -alias "​$2"​ 
 +...
 </​code><​code>​ </​code><​code>​
-[nodeN:~] # chmod +x /usr/local/etc/vip-up.sh +[nodeN:~] # service ucarp start 
-</​code><​code>​ +</code> 
-[nodeN:~# cat /usr/local/etc/vip-down.sh+ 
 +===== Дополнительные материалы ===== 
 + 
 +  * [[http://serverfault.com/questions/​179263/​multiple-ucarp-vips-on-single-interface-with-debian-ubuntu|Multiple UCARP VIPs on single Interface with Debian/​Ubuntu]] 
 + 
 +==== Ubuntu вариант запуска процесса вручную ==== 
 + 
 +=== Установка === 
 +<​code>​ 
 +root@nodeN:​~#​ apt-get install ucarp 
 +</​code>​ 
 + 
 +=== Настройка === 
 +<​code>​ 
 +root@nodeN:~# cat /etc/vip-up.sh
 </​code><​code>​ </​code><​code>​
 #!/bin/sh #!/bin/sh
-ifconfig em0 inet 192.168.X.254/​32 ​-alias+/sbin/ip addr add 192.168.X.254/​32 ​dev "​$1"​
 </​code><​code>​ </​code><​code>​
-[nodeN:~chmod +x /usr/local/​etc/​vip-down.sh+root@nodeN:​~# ​cat /​etc/​vip-down.sh
 </​code><​code>​ </​code><​code>​
-[nodeN:~# /usr/local/etc/rc.d/ucarp start+#!/bin/sh 
 +/sbin/ip addr del 192.168.X.254/​32 dev "​$1"​ 
 +</​code><​code>​ 
 +root@nodeN:​~# ​chmod +x /etc/vip-up.sh ​/etc/vip-down.sh
 </​code>​ </​code>​
  
-==== Дополнительные материалы ====+=== Запуск (можно прописать в /​etc/​rc.local) ​=== 
 +<​code>​ 
 +root@node1:​~#​ ucarp -i eth0 -s 192.168.X.1 -v 1 -p secret -a 192.168.X.254 -u /​etc/​vip-up.sh -d /​etc/​vip-down.sh -z -B
  
-  * [[http://serverfault.com/questions/179263/​multiple-ucarp-vips-on-single-interface-with-debian-ubuntu|Multiple UCARP VIPs on single Interface with Debian/Ubuntu]]+root@node2:~# ucarp -i eth0 -s 192.168.X.2 -v 1 -p secret -a 192.168.X.254 -u /etc/vip-up.sh -d /etc/vip-down.sh ​--
 +</​code>​ 
 +Примечания:​ 
 + 
 +  * Не смотря на ОБЯЗАТЕЛЬНОЕ наличие ключа ​-a 192.168.X.254 адрес повторно приходится присваивать/​удалять в скриптах 
 +  * If you want a "​preferred"​ master to immediately become a master even if another host is already the master: a) add the --preempt (or -P) switch to *all* hosts b)use a lower skew (-k) or a lower base for the "​preferred"​ one. 
 + 
 +=== Проверка === 
 +<​code>​ 
 +root@nodeN:​~#​ ip addr show dev eth0 
 +</​code>​ 
 + 
 +=== Остановка === 
 +<​code>​ 
 +root@nodeN:​~#​ killall ucarp 
 +</code>
  
-=== FreeBSD (kernel land) ===+==== FreeBSD (kernel land) ====
  
   * [[http://​www.freebsd.org/​doc/​en/​books/​handbook/​carp.html|Common Address Redundancy Protocol (CARP) (freebsd handbook)]]   * [[http://​www.freebsd.org/​doc/​en/​books/​handbook/​carp.html|Common Address Redundancy Protocol (CARP) (freebsd handbook)]]
Line 130: Line 177:
 [[Управление ядром и модулями в FreeBSD]] [[Управление ядром и модулями в FreeBSD]]
  
-== Настройка ==+=== Настройка ​===
  
 <​code>​ <​code>​
Line 154: Line 201:
 </​code>​ </​code>​
  
-== Проверка ==+=== Проверка ​===
 <​code>​ <​code>​
 nodeN# ifconfig carp0 nodeN# ifconfig carp0
протокол_carp.txt · Last modified: 2021/07/08 08:04 by admin