Редактирование: это почти всё. Очевидно, что что-то упущено, сейчас пытаюсь пройтись по своим заметкам и понять, что именно я пропустил в настройке eth0 (то есть автозапуск dhcpv6-клиента).
Привет! Я давно хотел поэкспериментировать с нативным IPv6, вместо использования туннеля HE.NET, и сегодня решил немного покопаться.
На данный момент могу сказать, что IPv6 отлично работает через USG. Настраивается это дело немного замороченно, и в логах сервера контроллера (если мониторить) начнут появляться сообщения об ошибках.
Придётся работать через CLI, чтобы всё поднять. Кроме того, я не совсем уверен, перезаписываются ли некоторые конфигурационные файлы при повторном применении настроек, но собираюсь это проверить скоро, если не получу ответа от ребят из UBNT.
Используя любой ssh-клиент, подключитесь к USG с логином/паролем, который указан в настройках сайта вашего контроллера.
Для начала пара настроек sysctl:
echo 'net.ipv6.conf.all.forwarding=1' >> /etc/sysctl.conf
echo 'net.ipv6.conf.eth0.accept_ra=2' >> /etc/sysctl.conf
Теперь нужно настроить dhcpv6-клиента:
Откройте любой редактор от имени sudo и отредактируйте файл /etc/wide-dhcpv6/dhcp6c.conf:
# Comcast IPv6 PD
interface eth0 {
send rapid-commit;
send ia-pd 1;
send ia-na 1;
# request domain-name-servers; ## (можете раскомментировать, у меня свои DNS)
# request domain-name; ## (тоже можно раскомментировать, но ничего не получите)
script "/etc/wide-dhcpv6/dhcp6c-script";
};
id-assoc pd 1 {
prefix ::/60 infinity; ## (даёт гибкость для собственных подсетей, либо используйте /64)
prefix-interface eth1.{vlanid} { ## У меня несколько VLAN, так что можно раздать делегирование для каждого.
sla-len 4;
sla-id 3;
}; ## Если у вас одна VLAN или подсеть, просто используйте eth1, а sla-len и sla-id поставьте 0.
prefix-interface eth1.{vlanid} {
sla-len 4;
sla-id 2;
};
prefix-interface eth1 {
sla-len 4;
sla-id 1;
};
};
id-assoc na 1 {
};
Далее надо настроить объявления маршрутизатора (router advertisement). Тут начинается самое интересное — я немного подзадолбался и настроил radvd.conf вручную.
Убедитесь, что вы в режиме "configure", и применяйте эти команды для каждого vlan/interface, который хотите настроить. Обратите внимание: eth1.XX не поддерживается, нужно использовать eth1 vif XX:
set interfaces ethernet eth1 vif XX ipv6 router-advert send-advert true
set interfaces ethernet eth1 vif XX ipv6 router-advert prefix ::/64
Не забудьте выгрузить обновлённую конфигурацию:
mca-ctrl -t dump-cfg > /tmp/config.json
scp /tmp/config.json username@otherserver:config.json
Потом либо скопируйте этот файл на контроллер, либо извлеките из него только изменения, связанные с IPv6, чтобы продолжать использовать UI контроллера для остальных настроек.
Так вы дадите возможность трафику с вашей локалки выходить в IPv6-интернет, но при этом заблокируете попытки напрямую достучаться до устройств внутри фаервола, если не разрешите конкретно что-то изнутри.