В настоящее время моей организации доступны два активных диапазона IPv6, и мы переключаемся с одного на другой. Я бы хотел, чтобы они работали одновременно, но похоже, что Linux не поддерживает маршрутизацию политик для IPv6. Наш маршрутизатор на базе Linux работает под управлением 2.6.26-2-686 на Debian Lenny.
Вот что бы я хотел сделать:
# ip -6 rule add from 2001:388:7094:4080::/58 lookup oldv6
(политика направляет старый диапазон v6 с помощью таблицы oldv6)
# ip -6 route add throw 2001:388:7094:4080::/58 table oldv6
(возврат к основной таблице маршрутизации для локальной маршрутизации)
# ip -6 route add default via 2001:388:7094:1::1 dev eth1
(в противном случае используйте «старый» маршрутизатор по умолчанию)
Однако вторая строка не работает: RTNETLINK answers: No such device
Прочитав доступную документацию, выяснилось, что Linux не поддерживает маршрутизацию реальной политики для IPv6 ([2] - см. раздел 9.2, [3]), и подделывает только при добавлении таблиц. Конечно, в Linux эти документы не обновлялись более пяти лет, поэтому мне интересно, есть ли у кого-нибудь блестящие идеи - есть ли параметр или документация, которые я пропустил? Есть Тема 2007 года, предполагающая, что это не работает но я хотел бы услышать иное.
На основании экспериментов ответ кажется «да, маршрутизация политики IPv6 поддерживается в Linux». Я до сих пор не уверен, почему вышеперечисленные строки терпят неудачу, но пока я обошел это стороной.