This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
протокол_carp [2013/09/24 10:01] val [Вариант использования 2] |
протокол_carp [2021/07/08 07:37] admin [Запуск] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Протокол CARP ====== | ====== Протокол CARP ====== | ||
- | ===== FreeBSD (user land) ===== | + | * [[https://ru.wikipedia.org/wiki/VRRP|VRRP]] |
+ | * [[https://ru.wikipedia.org/wiki/CARP|CARP]] | ||
+ | * [[Сервис NTP]] | ||
+ | ===== 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.N |
- | ucarp_src="192.168.X.1" | + | netmask 255.255.255.0 |
- | ucarp_addr="192.168.X.254" | + | |
- | # ucarp_advskew="50" | + | ucarp-vid 1 |
- | # 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:~# killall -USR1 ucarp | ||
+ | root@nodeN:~# grep carp /var/log/syslog | ||
+ | </code> | ||
+ | |||
+ | ==== Смена ролей узлов ==== | ||
+ | <code> | ||
+ | wincmd:\> arp -a | ||
+ | |||
+ | 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 100: | Line 166: | ||
</code> | </code> | ||
- | ==== Вариант использования 2 ==== | + | ==== FreeBSD (kernel land) ==== |
- | === Настройка === | + | * [[http://www.freebsd.org/doc/en/books/handbook/carp.html|Common Address Redundancy Protocol (CARP) (freebsd handbook)]] |
- | <code> | + | |
- | root@nodeN:~# less /usr/share/doc/ucarp/README.Debian | + | |
- | + | ||
- | 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:~# ifconfig eth0:ucarp | + | |
- | </code> | + | |
- | + | ||
- | === Остановка === | + | |
- | <code> | + | |
- | root@nodeN:~# ifdown eth0:ucarp | + | |
- | </code> | + | |
- | + | ||
- | ==== Дополнительные материалы ==== | + | |
- | + | ||
- | [[http://www.pytips.com/2010/3/16/ip-failover-with-ucarp-on-ubuntu]] | + | |
- | + | ||
- | [[http://serverfault.com/questions/179263/multiple-ucarp-vips-on-single-interface-with-debian-ubuntu]] | + | |
- | + | ||
- | === FreeBSD (kernel land) === | + | |
- | + | ||
- | [[http://www.freebsd.org/doc/en/books/handbook/carp.html]] | + | |
# man carp | # man carp | ||
- | [[Сборка ядра]] | + | [[Управление ядром и модулями в FreeBSD]] |
- | == Настройка == | + | === Настройка === |
<code> | <code> | ||
Line 190: | Line 198: | ||
</code> | </code> | ||
- | == Проверка == | + | === Проверка === |
<code> | <code> | ||
nodeN# ifconfig carp0 | nodeN# ifconfig carp0 |