Назначить всю подсеть IPV6 локальному хосту
У меня есть подсеть, как 2001:face:feed:beef::/64. Я хочу назначить их все на мой сервер, не назначая вручную каждый адрес, например 2001:face:feed:beef::[123456789abcdef]...
В ipv4 мы можем использовать DNAT для этого, но у него нет концепции NAT в ipv6, поэтому я хочу знать, работоспособно ли это и есть ли обходные пути.
2 ответа
Вы не можете (с обычным стеком IP). IP-адресация не предназначена для такой работы. Вы почти наверняка не сможете даже назначить столько адресов интерфейсу (используя скрипт или аналогичный); где-то в структурах данных будут жестко заданные ограничения, чтобы такие вещи не происходили.
Короче, вам нужно три вещи:
- Статический маршрут к вашей машине (он не будет отвечать NDP)
- Внутренний маршрут, поэтому машина знает, что должна обрабатывать трафик
- Если вы хотите прослушивать любой из этих адресов, вы также должны установить sysctl
net.ipv6.ip_nonlocal_bind=1
(Ядро Linux>= 4.3)