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
протокол_carp [2016/04/15 10:40]
val [Вариант использования 2]
протокол_carp [2021/07/08 08:04] (current)
admin [Смена ролей узлов]
Line 1: Line 1:
 ====== Протокол CARP ====== ====== Протокол CARP ======
  
 +  * [[https://​ru.wikipedia.org/​wiki/​VRRP|VRRP]]
 +  * [[https://​ru.wikipedia.org/​wiki/​CARP|CARP]]
   * [[Сервис NTP]]   * [[Сервис NTP]]
-===== FreeBSD (user land) ===== 
  
 +===== 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>​
-[nodeN:~pkg_add -r ucarp+root@nodeN:​~# ​apt install ​ucarp
 </​code>​ </​code>​
  
 ==== Настройка ==== ==== Настройка ====
 <​code>​ <​code>​
-[node1:~cat /etc/rc.conf+root@nodeN:~# less /​usr/​share/​doc/​ucarp/​README.Debian 
 + 
 +root@nodeN:​~#​ less /etc/network/​if-up.d/ucarp 
 + 
 +root@nodeN:​~#​ cat /​etc/​network/​interfaces
 </​code><​code>​ </​code><​code>​
 ... ...
-ucarp_enable="​YES"​ +auto eth0 
-ucarp_vhid="​1"​ +iface eth0 inet static 
-ucarp_if="​em0"​ +        ​address ​192.168.X.
-ucarp_src="​192.168.X.1" +        netmask 255.255.255.0 
-ucarp_addr="​192.168.X.254" + 
-# ucarp_advskew="​50"​ +        ucarp-vid ​
-# ucarp_preempt="​YES"​ # For always use master with lover advskew +        ​ucarp-vip ​192.168.X.254 
-ucarp_pass="​secret"​ +        ​ucarp-password secret 
-ucarp_upscript="/​usr/​local/​etc/​vip-up.sh" + 
-ucarp_downscript="/​usr/​local/​etc/​vip-down.sh"+iface eth0:ucarp inet static 
 +        ​address 192.168.X.254 
 +        ​netmask 255.255.255.255 
 +...
 </​code><​code>​ </​code><​code>​
-[node2:~] # cat /​etc/​rc.conf+root@nodeN:​~#​ less /​usr/​share/​ucarp/​vip-up 
 +</​code><​code>​ 
 +#!/bin/sh 
 + 
 +/sbin/ifup $1:ucarp 
 +</​code><​code>​ 
 +root@nodeN:​~#​ less /​usr/​share/​ucarp/​vip-down 
 +</​code><​code>​ 
 +#!/bin/sh 
 + 
 +/​sbin/​ifdown $1:ucarp 
 +</​code>​ 
 + 
 +==== Запуск ==== 
 +<​code>​ 
 +root@nodeN:​~#​ ifdown --force eth0 
 + 
 +root@nodeN:​~#​ ifup eth0 
 +</​code>​ 
 + 
 +==== Проверка ==== 
 + 
 +  * [[Сигналы#​Отправка сигнала]] 
 + 
 +<​code>​ 
 +root@nodeN:​~#​ ps ax | grep carp 
 + 
 +root@nodeN:​~#​ ifconfig eth0:​ucarp 
 + 
 +root@nodeN:​~#​ pkill -USR1 ucarp 
 + 
 +root@nodeN:​~#​ killall -USR1 ucarp 
 + 
 +root@nodeN:​~#​ grep carp /​var/​log/​syslog 
 +</​code>​ 
 + 
 +==== Смена ролей узлов ==== 
 +<​code>​ 
 +wincmd:​\>​ arp -a 
 + 
 +masternode# pkill -USR2 ucarp 
 + 
 +masternode# killall -USR2 ucarp 
 + 
 +wincmd:​\>​ arp -a 
 +</​code>​ 
 + 
 + 
 +===== FreeBSD (user land) ===== 
 + 
 +==== Установка ==== 
 +<​code>​ 
 +[nodeN:~] # pkg install ucarp 
 +</​code>​ 
 + 
 +==== Настройка ==== 
 +<​code>​ 
 +[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.2"​ 
 ucarp_addr="​192.168.X.254"​ ucarp_addr="​192.168.X.254"​
-# ucarp_advskew="​100"​ 
-# ucarp_preempt="​YES"​ 
 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>​
-[nodeN:~] # cat /usr/local/etc/vip-up.sh+[nodeN:~] # cat /usr/local/sbin/ucarp-up
 </​code><​code>​ </​code><​code>​
 #!/bin/sh #!/bin/sh
-ifconfig em0 inet 192.168.X.254/32 alias+... 
 +/sbin/​ifconfig "​$1" ​alias "​$2"​ netmask 255.255.255.255
 </​code><​code>​ </​code><​code>​
-[nodeN:~] # chmod +x /​usr/​local/​etc/​vip-up.sh +[nodeN:~] # cat /usr/local/sbin/ucarp-down
-</​code><​code>​ +
-[nodeN:~] # cat /usr/local/etc/vip-down.sh+
 </​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-down.sh +[nodeN:~] # service ​ucarp start
-</​code><​code>​ +
-[nodeN:~] # /​usr/​local/​etc/​rc.d/​ucarp start+
 </​code>​ </​code>​
  
-===== Ubuntu ​=====+===== Дополнительные материалы ​=====
  
-==== Установка ​====+  * [[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>​ <​code>​
 root@nodeN:​~#​ apt-get install ucarp root@nodeN:​~#​ apt-get install ucarp
 </​code>​ </​code>​
- 
-==== Вариант использования 1 (устаревший) ==== 
  
 === Настройка === === Настройка ===
Line 101: Line 171:
 </​code>​ </​code>​
  
-==== Вариант использования 2 ==== +==== FreeBSD (kernel land) ====
- +
-=== Настройка === +
-<​code>​ +
-root@nodeN:​~#​ less /​usr/​share/​doc/​ucarp/​README.Debian +
- +
-root@nodeN:​~#​ less /​etc/​network/​if-up.d/​ucarp +
- +
-root@nodeN:​~#​ ifdown eth0 +
- +
-root@nodeN:​~#​ cat /​etc/​network/​interfaces +
-</​code><​code>​ +
-... +
-auto eth0 +
-iface eth0 inet static +
-        address 192.168.X.N +
-        netmask 255.255.255.0 +
-        ucarp-vid 1 +
-        ucarp-vip 192.168.X.254 +
-        ucarp-password secret +
- +
-iface eth0:ucarp inet static +
-        address 192.168.X.254 +
-        netmask 255.255.255.255 +
-... +
-</​code><​code>​ +
-root@nodeN:​~#​ cat /​usr/​share/​ucarp/​vip-up +
-</​code><​code>​ +
-#!/bin/sh +
- +
-/sbin/ifup $1:ucarp +
-</​code><​code>​ +
-root@nodeN:​~#​ cat /​usr/​share/​ucarp/​vip-down +
-</​code><​code>​ +
-#!/bin/sh +
- +
-/​sbin/​ifdown $1:ucarp +
-</​code>​ +
- +
-=== Запуск === +
-<​code>​ +
-root@nodeN:​~#​ ifup eth0 +
-</​code>​ +
- +
-=== Проверка === +
-<​code>​ +
-root@nodeN:​~#​ ps ax | grep carp +
- +
-root@nodeN:​~#​ ifconfig eth0:​ucarp +
-</​code>​ +
- +
-=== Остановка === +
-<​code>​ +
-root@nodeN:​~#​ ifdown eth0:​ucarp +
-</​code>​ +
- +
-==== Дополнительные материалы ==== +
- +
-  * [[http://​serverfault.com/​questions/​179263/​multiple-ucarp-vips-on-single-interface-with-debian-ubuntu|Multiple UCARP VIPs on single Interface with Debian/​Ubuntu]] +
- +
-=== 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 169: Line 179:
 [[Управление ядром и модулями в FreeBSD]] [[Управление ядром и модулями в FreeBSD]]
  
-== Настройка ==+=== Настройка ​===
  
 <​code>​ <​code>​
Line 193: Line 203:
 </​code>​ </​code>​
  
-== Проверка ==+=== Проверка ​===
 <​code>​ <​code>​
 nodeN# ifconfig carp0 nodeN# ifconfig carp0
протокол_carp.1460706047.txt.gz · Last modified: 2016/04/15 10:40 by val