Назад | Перейти на главную страницу

pfsense только с карповыми адресами

В настоящее время у меня есть две коробки pfsense со стандартной настройкой карпа согласно документации, она отлично работает.

Вопрос из двух частей:

  1. как вообще что-нибудь работает? Мой опыт случайного подключения двух IP-адресов к одной сети мне не понравился. Итак, как же так гармонично сосуществовать IP-адрес карпа и физический IP-адрес?

что кормит реальный вопрос

  1. если в полях pfsense есть только адреса карпа для wan & lan и все коммуникации / маршрутизация / все, что происходит по настоящий sync ip-адрес и ник?

то есть: я предлагаю wan и lan нет IPS, только sync у nic есть ip, будет ip wan carp и ip lan carp

Как это вообще работает

carp - это протокол, очень похожий на VRRP, разделяющий IP-адреса между несколькими хостами.

Если бы вы запускали tcpdump на интерфейсе, на котором был настроен ваш карп, вы могли бы видеть такие сообщения, как:

# tcpdump -vvni vlan1000 proto carp
tcpdump: listening on vlan1000, link-type EN10MB
19:34:59.688730 carp 1.2.3.4 > 224.0.0.18: CARPv2-advertise 36: vhid=1 advbase=10 advskew=5 demote=0 [tos 0x4] (ttl 255, id 25329, len 56)

 tcpdump -vvni vlan42 proto carp   
 tcpdump: listening on vlan42, link-type EN10MB
  19:35:56.610612 carp 10.42.42.5 > 224.0.0.18: CARPv2-advertise 36: vhid=42 advbase=10 advskew=5 demote=0 (DF) [tos 0x10] (ttl 255, id 13021, len 56)

Члены Carp отправляли сообщения на многоадресный адрес, сообщая друг другу о своем присутствии. Только один член будет избран хозяином в данной группе карпов.

В случае сценариев «активный-активный» у вас все еще может быть два или более хоста, обслуживающих один и тот же адрес карпа, при условии, что состояния pf являются общими (pfsync) среди членов карпа.

Адреса карпа будут преобразованы в предсказывающие аппаратные адреса на основе вашего карпа VHID:

# arp -na|grep 'carp.*permanent'
10.42.40.1                           00:00:5e:00:01:0b carp11 permanent  l
10.42.41.1                           00:00:5e:00:01:08  carp8 permanent  l
10.42.42.1                           00:00:5e:00:01:2a carp42 permanent  l
10.42.43.1                           00:00:5e:00:01:07  carp7 permanent  l
10.42.44.1                           00:00:5e:00:01:04  carp4 permanent  l
10.42.45.1                           00:00:5e:00:01:03  carp3 permanent  l
10.42.46.1                           00:00:5e:00:01:0a carp10 permanent  l
10.42.242.1                          00:00:5e:00:01:02  carp2 permanent  l
10.42.252.1                          00:00:5e:00:01:64 carp100 permanent  l
10.42.253.1                          00:00:5e:00:01:05  carp5 permanent  l
10.42.254.1                          00:00:5e:00:01:06  carp6 permanent  l
1.2.3.4                              00:00:5e:00:01:01  carp1 permanent  l
192.168.10.254                       00:00:5e:00:01:0c carp12 permanent  l

Для VHID 1 мой адрес карпа будет иметь Mac, установленный на 00:00:5e:00:01:01, для VHID 2 00:00:5e:00:01:02, ... и так далее. Следовательно: независимо от того, кто является вашим хозяином карпа, клиентам в этой сети не нужно обновлять свой кеш ARP, они всегда будут связываться с одним и тем же адресом оборудования.

Причина, по которой наличие двух хостов с одним и тем же IP-адресом в целом «неприятно», состоит в том, что, во-первых, у них нет одного и того же Mac. В зависимости от того, кто ответил на ваш последний запрос arp, вы можете неожиданно переключиться с одного на другой. Кроме того, оба ваших pfSense имеют одинаковую конфигурацию, обеспечивающую одинаковые функции в вашей сети. Хотя при ошибочном повторном присвоении IP-адреса у вас обычно две совершенно разные машины.

Если у участников CARP также есть физические IP-адреса

Это зависит. В большинстве случаев: нет. Я обычно устанавливаю его для управления или общедоступных интерфейсов, чтобы убедиться, что я все еще могу подключиться к резервному хосту (например, для мониторинга, устранения некоторых проблем с подключением, ...) или просто настраивая pfSync.

Во FreeBSD вы также можете использовать hastd + ctld + ifstated для совместного использования устройств HA LUN. Затем я бы также установил физический IP-адрес на главном интерфейсе, так как независимо от того, кто является хозяином, мне нужно будет синхронизировать мои устройства.