Я настроил простой маршрутизатор, который должен обеспечивать подключение по протоколу IPv6 к машинам, которые находятся за ним в локальной сети. Маршрутизатор имеет 2 сетевых интерфейса (eth0, eth1), машины имеют 1 (eth0).

На маршрутизаторе eth0 - доступ только к локальной сети, на eth1 - доступ к интернету. Я настроил все параметры ядра, все работает нормально.

IP роутера fd00::1 , я установил dhcpd на роутер и настроил диапазон fd00::100 - fd00::fffe .

Когда я запускаю какой-либо компьютер в этой сети, ему присваивается IP-адрес от dhcpd, например, fd00::fffa , но он не может получить доступ к Интернету по понятным причинам - ему не хватает маршрута.

Когда я добавляю маршрут вручную sudo route -6 add 2000::/3 gw fd00::1 машина начинает иметь доступ к Интернету, пока я не перезагружу его.

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

Основываясь на некоторых предложениях, я также установил radvd на маршрутизаторе и вставил эту опцию:

route 2000::/3 {};

Скорее всего, это неправильно, но я не смог найти документацию или примеры. Не работает Использование radvd вместо dhcpd для назначения адресов IPv6 не работает вообще, если я отключаю машины dhcpd, автоматически конфигурирую некоторые случайные адреса IPv6 и даже не вижу друг друга, они также не могут пропинговать маршрутизатор.

Как настроить мою локальную сеть для автоматической настройки IPv6 для всех машин на ней?

Примечание: мне не нужно ни того, ни другого, я хочу, чтобы у каждой машины был общедоступный IPv6, NAT - это нормально.

1 ответ1

0

Я сразу заметил две проблемы с вашей конфигурацией. Адреса RFC 4193 не являются глобально маршрутизируемыми. Это означает, что эти адреса не смогут общаться с внешним миром.

Конечно, вы можете использовать NAT, но известно, что NAT вызывает многочисленные проблемы. NAT - это обходной путь, предназначенный для временного решения проблемы нехватки IP-адресов. IPv6 решает эту проблему. Все другие проблемы, которые люди пытались решить с помощью NAT, имеют лучшее решение, которое не включает NAT.

Кроме того, ваш префикс явно не был сгенерирован в соответствии со спецификацией в RFC 4193. Соответствующая цитата:

Локально назначенные глобальные идентификаторы ДОЛЖНЫ быть созданы с помощью псевдослучайного алгоритма

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

Тем не менее, невозможно заставить клиентов общаться извне, используя адреса RFC 4193. Вот файл radvd.conf , который я кратко использовал в прошлом. С этой конфигурацией некоторые клиенты пытались установить внешнюю связь, используя назначенные им адреса RFC 4193.

interface wlan0 { 
        AdvSendAdvert on;
        MinRtrAdvInterval 3; 
        MaxRtrAdvInterval 10;
        prefix fdbd:5df9:dca3::/64 { 
                AdvOnLink on;
                AdvAutonomous on; 
                AdvRouterAddr on; 
        };
};

Эта конфигурация, однако, не работает со всеми клиентами. Я проверил это снова с клиентом под управлением Android. Телефон настроил адрес IPv6, но не пытался использовать IPv6 для внешней связи.

Затем я изменил префикс на 2001:db8:dca3::/64 , после чего телефон начал отправлять пакеты IPv6 на шлюз. Таким образом, Android является одним из примеров платформы, которая отказывается использовать адреса RFC 4193 таким образом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .