#bsd #ipv6
Выбор исходящего IPv6 адреса
https://man.freebsd.org/cgi/man.cgi?query=ip6addrctl
https://datatracker.ietf.org/doc/html/rfc3484
Поразительно сколько лет я вожусь с сетями дома, но только сегодня
задался вопросом как выбрать предпочтительный исходящий IP адрес.
Похоже, что всегда когда это было важно: в прикладном софте имелись
настройки для подобного (типа outgoing-interface в nsd.conf). Но тут
есть программка, где подобного нет. И она подключается не с того адреса
который бы я хотел: с внутреннего адреса для WG туннеля. В принципе то
не проблема, но некрасиво.
Узнал про существование ip6addrctl команды, а также RFC 3484, где
как-раз прям предложены полные алгоритмы выборы предпочитаемых адресов.
ip6addrctl буквально повторяет таблицы из этой RFC. Причём ip6addrctl я
ведь видел уйму раз: выставляю ip6addrctl_policy=ipv6_prefer в /etc/rc.conf
чтобы IPv6 был в предпочтении. Но не задавался вопросом как именно это
делалось. Именно через эту предложенную RFC таблицу.
Пример с :aaaa: и :bbbb: сетями из RFC тоже сработал. Но так как часть
адресов, которые мне нужны, висят не на конкретном сетевом интерфейсе, а
на loopback, то пришлось сделать:
ifconfig wg_tb inet6 ... deprecated
чтобы он не выбирался для исходящего трафика. Однако далее в
предпочтении выбирался тот самый (0efa2602941eb7a46ad5f0c6fb3d5d8b4944386e)
особый адрес для почты, что тоже не годилось. Исправил это:
ifconfig lo0 inet6 ... prefer_source
Все эти prefer и deprecated термины тоже берутся из RFC.
[оставить комментарий]
- комментарий 0:
From: Sergey Matveev
Date: 2026-03-07 16:28:38Z
https://datatracker.ietf.org/doc/html/rfc5220
https://datatracker.ietf.org/doc/html/rfc6724
- комментарий 1:
From: Sergey Matveev
Date: 2026-03-07 16:55:36Z
https://www.rfc-editor.org/rfc/rfc8043.html