Написал хак для ipv6: полу-мост, полу-маршрутизатор.
Основной сценарий использования: компьютер получает IPv6 по Router Advertisings на одном интерфейсе, но хочется подключить ещё один хост к этой же сети на другом.
По-нормальному для этого используется мост (brctl
), но это может быть проблемным: во-первых, на Wi-Fi с ограниченными драйверами мост может не работать - можем посылать пакеты только с нашего MAC-адреса, во-вторых поднятие моста сбрасывает всякие настройки, маршруты и т.д.
Для IPv4 обычно можно просто включить NAT. Но тянуть NAT в IPv6 не хочется, а если пытаться «дробить» /64
дальше, то stateless autoconfiguration не будеть работать...
Программа ipv6proxy делает 3 вещи:
- Слушает и перенаправляет ICMPv6;
- Добавляет маршруты (
/128
) на найденные в другой сети узлы; - Настраивает интерфейс при запуске (ipv6.forwarding=1, ipv6.accept_ra=2, allmulticast=true)
--
Проект на Github: https://github.com/vi/ipv6proxy