Так что я немного больше поиграюсь с IPv6 в своей домашней сети, и я делаю что-то немного старомодное - настраиваю статические адреса и тому подобное. Это означает, что я действительно не хочу и не забочусь обо всей автоматической настройке, встроенной в IPv6 через различные сообщения ICMPv6. Но при запуске wirehark и перехвата только трафика IPv6 две из моих систем IPv6 под управлением Linux оказались мелочами. Они постоянно обмениваются пакетами Neighbor Solicitation, Neighbor Advertisement и ICMPv6 Multicast Listener Report. Они делают это как на статически назначенном ULA-адресе, который я установил для каждой машины, так и на автоматически настраиваемом локальном адресе канала. .
У меня вопрос, как я могу отключить их в Linux? Я нашел несколько руководств для Windows с помощью команды 'netsh' (что меня удивило - Windows кажется НАМНОГО более настраиваемой в этом аспекте, чем Linux). Пока что, похоже, мой единственный выбор в Linux - это использовать ip6tables для блокировки определенных типов сообщений ICMPv6. Однако, глядя на RFC4890, они подразумевают, что эти сообщения не должны блокироваться, если хост IPv6 должен успешно участвовать в сети IPv6.
Мое прочтение протокола IPv6 предполагает, что на него сильно повлияли проблемы, с которыми сталкиваются в больших корпоративных сетях. Инженеры протокола, похоже, не особо интересовались небольшими частными сетями. Это замечательно, если вы являетесь системным администратором крупной корпоративной или другой корпоративной сети, но немного раздражает, если вы просто «какой-то парень», пытающийся поиграть с протоколом в домашней сети, чтобы изучить его. Мой метод обучения означает создание чего-то вроде моей сети IPv4 в качестве основы, а затем включение функций по мере необходимости.
Поэтому я спрашиваю экспертов, следует ли мне отключить эти три типа сообщений на моих хостах Linux и Windows? Если я это сделаю, это сильно нарушит мою внутреннюю настройку IPv6? Как это повлияет на внешний IPv6, когда я достигну этого этапа (мой интернет-провайдер еще не выделил IPv6-адреса для клиентов, поэтому пока нет внешней маршрутизации IPv6 и нет туннелей с 6 на 4)? Является ли ip6tables моим единственным вариантом в Linux?
Я также предполагаю, что застрял на локальных адресах ссылок, верно? От них невозможно избавиться? Их невозможно запомнить ... (может, в этом он и заключается?)
Отключение ICMP для IPv6 может полностью сломать его. Он используется для много в версии 6 больше, чем в версии 4. Он используется для отчетов об ошибках, обнаружения соседей (как вы уже выяснили) и многого другого.
Блокируя ICMPv6 на любом уровне, вы можете серьезно помешать IPv6 выполнять свою работу. Есть (краткий) Википедия, статья об этом вместе с нормальным очень подробный RFC.
Для получения глобального адреса вы можете использовать 6to4; вы получите перевод вашего глобального адреса v4 в адрес v6. Обратной стороной является то, что вам нужно будет пройти через туннельный узел 6to4; они варьируются от «медленных» до «мучительно медленных» в зависимости от того, насколько близко вы находитесь к узлу (пингуйте 192.88.99.1, чтобы узнать; это адрес anycast, который должен быть вашей ближайшей конечной точкой). Достаточно хорошо, чтобы получить живую ссылку для тестирования и обучения ... но это все.
Что касается ICMPv6, Марк уже хорошо его рассмотрел. Я добавлю следующее: не беспокойтесь об этом. Подумайте обо всей болтовне, от которой вы в настоящее время привыкли отключаться - ARP, DHCP; если у вас есть системы Windows, то netbios, компьютерный браузер и teredo; многоадресный мусор, например SSDP / DNLA / UPnP. Вы не привыкли к этим сообщениям ICMP, но они являются важной частью того, как работает IPv6… именно поэтому вы настраиваете его, чтобы учиться!