Jump to content
Калькуляторы

Проблема: CARP over LAGG или балансировка шейперов.

Доброго дня всем.

Есть задача: построить отказоустойчивое решение на писюках с автоматическим резервированием.

На серваках крутится шейпер(дамминет) + нетфлов + НАТ (пф).

Файловер сделан с помощью CARP + pfsync. Доступ - ИпоЕ.

 

Вкратце, все это сделано, но с одной поправкой.

Серваки достаточно мощные, что бы в такой софтовой набивки протянуть без потерь макс 1300/700 (ин/оут) трафа, 270к нат сессий и 370кппс. Ось - Фря 7.3 STABLE.

Тоесть, чтобы прогнать через ифейс больше гига трафа, я обычно собираю их в lagg с LACP.

Также сделал и на этот раз. Собрал линки в лагг, прилепил карп и получил облом (((

 

Гугление выдает два варианта:

1. карп поверх лагг - да, работает (фря 7.2), но в связке лагг - влан - карп.

2. карп поверх лагг работает, но лагг только в режиме файловер (( (это мне не подходит)

 

1й вариант самый подходящий, но - у меня (на 7.3) не заработал (((

 

В связи с этим вопрос:

Делал ли кто нибуть РАБОЧИЙ вариант CARP поверх LAGG ??

Интересуют рабочие примеры (ось + часть конфига).

 

п.с. Да, я понимаю, этот вариант на редкость извратный.

Чем привлек CARP+pfsync - НЕ разрываются соединения в момент отключения любого из серваков (проверено)

Если есть более работающие/менее извратные варианты - с радостью послушаю.

 

п.п.с. Докупить внешних ипов ПОКА не предлагать.

 

На текущий момент в данной реализации любой из серваков (шейперы) имеет только ДВА гиговых сетевых ифейса, так как с lagg пока заставить работать не удалось. Соответственно, больше (имхо) 900 МБт трафа на каждом не пролетит ((

Share this post


Link to post
Share on other sites

8:26 yakuzzza@backup1 /home/yakuzzza> ifconfig em0

em0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500

options=219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC>

ether 00:30:48:d2:12:8a

media: Ethernet autoselect

status: no carrier

8:27 yakuzzza@backup1 /home/yakuzzza> ifconfig em1

em1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500

options=219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC>

ether 00:30:48:d2:12:8a

media: Ethernet autoselect (1000baseT <full-duplex>)

status: active

8:27 yakuzzza@backup1 /home/yakuzzza> ifconfig carp0

carp0: flags=49<UP,LOOPBACK,RUNNING> metric 0 mtu 1500

inet 10.4.100.132 netmask 0xffffff00

carp: MASTER vhid 1 advbase 1 advskew 100

8:27 yakuzzza@backup1 /home/yakuzzza> ifconfig lagg0

lagg0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500

options=219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC>

ether 00:30:48:d2:12:8a

inet 10.4.100.240 netmask 0xffffff00 broadcast 10.4.100.255

media: Ethernet autoselect

status: active

laggproto failover

laggport: em1 flags=4<ACTIVE>

laggport: em0 flags=1<MASTER>

 

Щас 1 линк откинут.

 

По поводу carp+lagg+vlan - посмотрите на HWTAGGING на сетевухе.

Share this post


Link to post
Share on other sites

Он же написал:

2. карп поверх лагг работает, но лагг только в режиме файловер (( (это мне не подходит)

Share this post


Link to post
Share on other sites

К сожалению, вопрос не решил ((

 

Хоть тема и очень интересная (имхо) - работа БЕЗ разрыва сессий, можно менять серваки "на горячую", балансировка нагрузки итд.

Работа карп ТОЛЬКО (как я понял) на физ. ифейсе меня совсем не устраивает.

 

Поэтому пока временно сделал, как и все - нат на отдельную машинку (благо, 2 Гбт натится ин+оут), шейпер - на отдельную.

Позже буду ТОЖЕ делать, как и большинство - на отдельный таз свой шейпер+нат, на него заворачивать часть внутренних сеток.

 

"Випендриться" не получилось ((((

 

Share this post


Link to post
Share on other sites

А можно вопрос, зачем LAGG при применении CARP?

Share this post


Link to post
Share on other sites
10G сетевухи брать не хотят, а гига мало.

Именно (

Share this post


Link to post
Share on other sites

Ну так и не парьтесь, решение много nat'ов + шейпер (-ы) вполне себе имеет право на жизнь. Совсем недавно коллега с бывшего места работы рассказывал, что у него порядка 10Гбит/сек трафика nat'ится на 13 линуксовых NAT-серверах (и шейпится на парочке Cisco 650x).

Share this post


Link to post
Share on other sites

Ну так и не парьтесь, решение много nat'ов + шейпер (-ы) вполне себе имеет право на жизнь. Совсем недавно коллега с бывшего места работы рассказывал, что у него порядка 10Гбит/сек трафика nat'ится на 13 линуксовых NAT-серверах (и шейпится на парочке Cisco 650x).

а можно подробнее о шейпе на 6500?

Share this post


Link to post
Share on other sites
Ну так и не парьтесь, решение много nat'ов + шейпер (-ы) вполне себе имеет право на жизнь. Совсем недавно коллега с бывшего места работы рассказывал, что у него порядка 10Гбит/сек трафика nat'ится на 13 линуксовых NAT-серверах (и шейпится на парочке Cisco 650x).

Уже не парюсь ))

Сделал 2 шейпера + 2 ната.

Пока работает ))

Share this post


Link to post
Share on other sites

порядка 10Гбит/сек трафика nat'ится на 13 линуксовых NAT-серверах

А зачем. Неужели с IP-адресами такая напряженка?

Share this post


Link to post
Share on other sites
а можно подробнее о шейпе на 6500?
А чего о нём говорить? Шейпит себе :) Могу коллегу спросить, который всё это держит.

 

порядка 10Гбит/сек трафика nat'ится на 13 линуксовых NAT-серверах
<br />А зачем. Неужели с IP-адресами такая напряженка?
Даже затрудняюсь вот так сходу сказать. В принципе можно ответить, что всех и так устраивает :)

Share this post


Link to post
Share on other sites

адреса сейчас получить целое приключение

Share this post


Link to post
Share on other sites
а можно подробнее о шейпе на 6500?
А чего о нём говорить? Шейпит себе :) Могу коллегу спросить, который всё это держит.

 

можно пример конфига и версию супа?

Share this post


Link to post
Share on other sites

А как себя ведет шейпинг вместе с CARP?

Нет ли такого что один пакет шейпиться на одном сервере, а другой - на другом?

 

Share this post


Link to post
Share on other sites
А как себя ведет шейпинг вместе с CARP?

Нет ли такого что один пакет шейпиться на одном сервере, а другой - на другом?

если в режиме резервирования то или одна работает или если сдохла то автоматически всё на другой работает
Edited by Lynx10

Share this post


Link to post
Share on other sites

Зачем здесь CARP? Круто, конечно, что у пользователей соединения не рвутся при отказе одного из шейперов, но зачем провайдеру создавать себе проблемы ради такой мелочи? LACP вполне может обеспечить load balancing и failover на Layer 2, и этого вполне достаточно.

Edited by photon

Share this post


Link to post
Share on other sites

LACP вполне может обеспечить load balancing и failover на Layer 2, и этого вполне достаточно.

можно подробнее?

Share this post


Link to post
Share on other sites

Не понял как туда вписать два разных сервера для failover, и чем LAGG хуже/лучше CARP?

Share this post


Link to post
Share on other sites

Вписывать серверы и не надо, т.к. LACP работает с сетевыми интерфейсами, а не с IP-протоколом. CARP не хуже и не лучше, это просто другое решение, обеспечивающее load balancing и failover на третьем (сетевом) уровне. LACP работает на втором (канальном) уровне. Ну разорвется у пользователя соединение, невелика потеря.

Edited by photon

Share this post


Link to post
Share on other sites

Если использовать реальные адреса, то с pfsync ну или линуксовым conntrackd соединения рваться не будут, это понятно.

 

Но почему соединения не порвет если использовать еще и нат? Ведь сервера будут натить на разные блоки адресов и при падении одного из них, клиент автоматически попадет на другой и, соответственно, получит на нате другой адрес, так?

 

Или есть способ заставить все сервера использовать для ната общий блок адресов, не поясните?

 

Share this post


Link to post
Share on other sites
a_andry pfом можно натить в IP с carp интерфейса. соответственно он тоже переедет на второй сервер. в большинстве случаев сессия не рвется.

Share this post


Link to post
Share on other sites

Плюс к этому pfsync синхронизирует все сессии клиента, в том числе и NAT, так что и при использовании пула адресов изменения сессий не происходит.

Отличная штука CARP, только крайне своеобразная при работе:

Нельзя указать pfsync'у синхронизироваться пакетами не по 56 байт, которыми он крайне бодро фигачит, а хоть чуть-чуть поднакопить в буфере и отправить большим пакетом.

Quagga не умеет работать поверх carp-интерфейса (тупо не видит его ip-адреса), что порождает нехилый баттхэд при задаче включить два сервера с carp'ом в динамическую маршрутизацию.

Из мелочей, которые также раздражали, отмечу отсутствие показа "виртуального" mac-адреса carp-интерфейса.

 

Edited by Dyr

Share this post


Link to post
Share on other sites

Спасибо.

 

Имхо, все же это это лишнее.

Сильно усложняется конфигурация. Когда 2-3 сервера, еще терпимо, а когда их с десяток, то будет совсем тяжко. Расписывать резервирование придется так, что-бы нагрузка более и менее равномерно размазалась по оставшимся живым серверам. Если к этому добавить глюки с ПО (у меня linux с vrrp, там свои приколы, периодически два instance на нескольких серверах мастерами поднимаются одновременно), то ну его ...

Сервера и так подать не должны, но если раз в пятилетку упадет - два дисконекта не сильно большая проблема.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this