Рейтинг:1

Почему сообщение bgp OPEN получает Connect Socket: соединение сбрасывается одноранговым узлом, когда узел находится в другой подсети/шлюзе

флаг cn

Моя настройка сети:

Настройка сети Kubernetes

При такой настройке только узлы в одной подсети могут устанавливать соединение bgp. Другие узлы (которые выполняют полное трехстороннее рукопожатие tcp) отвечают на сообщение hte OPEN с помощью [FIN, ACK], а затем [RST], следовательно, соединение сбрасывается одноранговым сообщением в моем статус узла calicoctl <- находится на контроллере 3 (10.0.3.100)

    Статус IPv4 BGP
+--------------+-------------------+-------+------ ----+--------------------------------+
| АДРЕС УЧАСТНИКА | ТИП ОДИНАКОВ | СОСТОЯНИЕ | С | ИНФО |
+--------------+-------------------+-------+------ ----+--------------------------------+
| 10.0.1.100 | сетка между узлами | начать | 07:12:01 | Подключить сокет: Соединение |
| | | | | закрытый |
| 10.0.2.100 | сетка между узлами | начать | 07:12:01 | Подключить |
| 10.0.1.101 | сетка между узлами | начать | 07:12:01 | Подключить сокет: Соединение |
| | | | | сброс по пиру |
| 10.0.1.102 | сетка между узлами | начать | 07:12:01 | Подключить сокет: Соединение |
| | | | | сброс по пиру |
| 10.0.2.102 | сетка между узлами | начать | 07:12:01 | Подключить сокет: Соединение |
| | | | | сброс по пиру |
| 10.0.3.101 | сетка между узлами | вверх | 07:14:13 | Установлен |
| 10.0.3.102 | сетка между узлами | вверх | 07:12:02 | Установлен |
+--------------+-------------------+-------+------ ----+--------------------------------+

Мой дамп рукопожатия + сообщение OPEN от контроллера 3 (10.0.3.100) к node4 (10.0.2.102)

Трассировка Wireshark bgp между 10.0.3.100 и 10.0.2.102
Трассировка Wireshark bgp между 10.0.0.4(10.0.3.100) и 10.0.2.102
Может быть, проблема в том, что узел 4 видит данные, поступающие с 10.0.0.4, а не с 10.0.3.100?

Что работает

  1. Пинг со всех узлов на все узлы в порядке
  2. nc порт 179 для всех узлов успешно
  3. Wireshark показывает полное рукопожатие TCP от контроллера 3 до узла 4.

Настраивать

  1. Kubernetes 1.21.1 (устанавливается через kubespray)
  2. Calico 3.9 (по умолчанию в kubespray)
  3. Все шлюзы - pfSense 2.5.x, "главный" шлюз имеет статический маршруты для 10.0.1.0/24 через 10.0.0.2, 10.0.2.0/24 через 10.0.0.3 и 10.0.3.0/24 через 10.0.0.4.
  4. Брандмауэры отключены на маршрутизаторах центра обработки данных как в глобальной, так и в локальной сети. NAT не включен ни на одном из блоков pfSense. (NAT для ipsec vpn находится на wan-порту для главного шлюза)
  5. Насколько я могу судить, у меня есть полное IP-соединение между всеми узлами во всех подсетях.
moonkotte avatar
флаг in
Добро пожаловать в сообщество! Есть [похожая проблема] (https://github.com/kubernetes-sigs/kubespray/issues/6675), но вы говорите, что NAT не используется внутри и предоставляется полное подключение. Я предлагаю поднять этот вопрос напрямую [Calico] (https://github.com/projectcalico/calico).
флаг cn
Да, извините, я предположил, что NAT не было, когда я очистил правила в своих маршрутизаторах, кажется, мне пришлось отключить автоматический NAT (я предположил, что он был автоматическим только для IPsec passtrough, но это был NAT мой трафика.Отключил его точно и он начал работать., так что другой вопрос-решение моей проблемы
Рейтинг:0
флаг cn

Я ошибочно предположил, что pfSense Auto NAT предназначен только для транзитной передачи IPsec, когда я отключил создание всех исходящих правил NAT, он начал работать, как предполагалось. Моя вина в том, что я не понимаю настройки моих роутеров pfSense.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.