Я получил подсеть IPv6 / 64 от своего провайдера (vultr). Многие спрашивают, как назначить интерфейсу целую подсеть. Насколько я понимаю, самый простой вариант - это ip addr add 2001:4860:4860:abcd::/64 dev eth0
. Это отлично работает для входящих запросов на любой IP-адрес в подсети. Но как их использовать для исходящего запроса? С помощью этой команды мой исходящий IP-адрес - 2001: 4860: 4860: abcd ::, но я хочу использовать любой из диапазона, например 2001:4860:4860:abcd:c37:a324:40f3:98fd
. Это вообще возможно? Или это напрямую связано с программой, которая делает запросы?
Вам нужно будет выбрать «несколько» и добавить их в интерфейсы. Определение «несколько» зависит от вас.
Затем ваше клиентское программное обеспечение выберет исходящий адрес v6 (если он поддерживает это) для ротации между адресами.
Программное обеспечение Userland не может выбрать IPv6-адрес из воздуха и использовать его в качестве источника (то есть с использованием стандартных вызовов сокетов). Это, так сказать, выше «уровня оплаты» пользовательского программного обеспечения. Вы должны иметь адрес (а), назначенный вашей сетевой карте на уровне ОС / ядра.