Ограничительный брандмауэр ICMPv6: потеря соединения со временем

Эта проблема:

Потеря подключения IPv6 к удаленному IP по истечении определенного периода времени без установления соединения с удаленным IP.

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

Я использую сервер с ip6tables межсетевой экран, который фильтрует входящие пакеты ICMPv6. Я настроил этот брандмауэр в соответствии с RFC 4890 для трафика локальной конфигурации. Следующие ICMPv6 разрешены на INPUT цепь для eth0 интерфейс:

type 1 (destination unreachable)
type 2 (packet too big)
type 3 (time exceeded)
type 4 (parameter problem)
type 128 limit 100/sec limit-burst 500 (Echo)
type 129 (Echo reply)
type 133 (Router Solicitation)
type 134 (Router Advertisement)
type 135 (Neighbor Solicitation)
type 136 (Neighbor Advertisement)
type 141 (Inverse Neighbor Discovery Solicitation)
type 142 (Inverse Neighbor Discovery Advertisement)
type 148 (Certificate Path Solicitation)
type 149 (Certificate Path Advertisement
type 151 (Multicast Router Advertisement)
type 152 (Multicast Router Solicitation)
type 153 (Multicast Router Termination)

Любой другой тип отброшен. Все пакеты ICMPv6 разрешены в цепочке OUTPUT для eth0 интерфейс.

Что я попробовал:

После ip6tables правила включены, весь трафик IPv6 проходит гладко. Однако после ок. 1 день без подключения к удаленному IP-адресу он внезапно становится недоступным.

Бег tcpdump в удаленном местоположении показывает, что эхо ICMPv6 от сервера с межсетевым экраном успешно прибывает и ответ отправлен. Однако эхо-ответ не возвращается.

Если политика брандмауэра смягчена, чтобы пропустить все пакеты ICMPv6, соединение устанавливается, а затем перезапускается исходный брандмауэр - все продолжает работать.

Мой вопрос:

Как предотвратить потерю соединения?

Я предполагаю, что я должен отбрасывать какой-то тип пакета ICMPv6, важный для установления соединения.

1 ответ

Решение

Я пропустил правило, импортированное из брандмауэра IPv4, оно сидело выше в INPUT цепочка и блокировка всех многоадресных пакетов:

-t filter -A INPUT -m pkttype --pkt-type multicast

После удаления этого правила подключение было восстановлено.

Я обнаружил это, внимательно изучив трафик ICMPv6 на сервере с межсетевым экраном. Сервер получал пакеты запроса соседей, но не отправлял объявление соседа в ответ.

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

Извините за шум.

Другие вопросы по тегам