From: Sergey Matveev Date: Sat, 7 Mar 2026 10:04:02 +0000 (+0300) Subject: Выбор исходящего IPv6 адреса X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=1cdb46384d683a67f21d7d012c9d1a0ac2f63028;p=stargrave-blog.git Выбор исходящего 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. ---