LINUX.ORG.RU
ФорумAdmin

IPv6 subnet - так чтобы работали все адреса сразу

 ,


0

1

Здравствуйте.

Зашел спросить, в результате задержался с чтением старых тем и попытками вернуться к заброшенным задачам, которые были на паузе.

VPS, lo + eth0, на eth0 стоит 1х IPv4 и 1х IPv6 (так настроено при установке). На самом деле дается /112 подсеть, то есть 65535 адресов. Как заставить все эти адреса работать одновременно?

Вариантов несколько. Первый это вручную добавлять на интерфейс все нужные адреса (понятно что 65535 не нужно, но десяток добавлять тоже мазохизм).

Сначала я поставил несколько адресов из своего /112 диапазона вручную: это были адреса .1 .4 и .10, убедился что по очереди на один установленный адрес пинг проходит, и с сервера IPv6 сайты доступны.

Нашел вариант https://serverfault.com/questions/590038/adding-a-whole-ipv6-64-block-to-an-network-interface-on-debian

auto eth0
iface eth0 inet static
        address my.ip.v4
        netmask 255.255.255.0
        network my.network.address.ip
        broadcast my.broadcast.address.ip
        gateway my.gateway.ip

iface eth0 inet6 static
        address 2001:41d0:2:ad64::fe
        netmask 64
        gateway 2001:41d0:2:adff:ff:ff:ff:ff
        up ip addr add 2001:41d0:2:ad64::/64 dev lo
        up ip route add local 2001:41d0:2:ad64::/64 dev eth0
        up sysctl net.ipv6.ip_nonlocal_bind=1
        down ip -6 addr del 2001:41d0:2:ad64::/64 dev lo
        down ip route del local 2001:41d0:2:ad64::/64 dev eth0
        down sysctl net.ipv6.ip_nonlocal_bind=0

Применил его. Сейчас прописан

address 2001:x:y:z:a:b:c::

и netmask 112. Перезапустил networking. Проверяю пинг снаружи через https://tools.keycdn.com/ipv6-ping (разные локации, чтобы исключить какие-то косяки). Те IP адреса которые я прописывал вручную на предыдущем шаге отвечают (да, все сразу!) но ни один из других адресов диапазона не отвечает. Ставлю ручками новый адрес, перезапускаю - он тоже начинает отвечать. Хотя на интерфейсе его нет. Дело было вечером.

Сегодня утром обнаруживаю что ни один адрес кроме .0 уже не отвечает. Я ничего не делал - оно как-то само (с). То есть все время отвечали только те адреса которые за последнее время (некоторое количество минут или часов) были явно прописаны. Все что не было прописано явно за этот временной интервал - не отвечало.

В общем как заставить все адреса /112 подсети отвечать сразу хотя бы на пинг? Поразвешивать разные сервисы (или разные сайты) каждый на свой IPv6, я думаю, как-то справлюсь если будет работать основа.

Прописанные адреса закешировались в ARP-кеше роутера, потом кеш истёк и они перестали работать. Настройками роутинга ты на arp никак не повлияешь. Можно ли добавить в arp сеть не знаю (всмсле не знаю можно ли в ядре, а так юзерспейсным arp-демоном конечно можно).

А вообще ipv6 ненужно.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 2)
Ответ на: комментарий от MagicMirror

Ну и? У ripe кончились, у меня не кончились. И ещё очень много у кого не кончились, с рынка не пропали. И не пропадут, т.к. рынок саморегулируется и назначает цену при которой предложение всегда будет. Не надо подменять факты.

firkax ★★★★★
()
Ответ на: комментарий от MagicMirror

Повторю, прекрати подменять понятия. Ни о каком заканчивании ipv4-адресов речи не идёт. Мне сложно поверить, что ты искреннее считаешь что указанная тобой новость означает что «адреса закончились» в глобальном плане.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Я не подменяю понятия, свободных адресов буквально нет. Все распределены и новых нет и не будет. То что текущие владельцы по доброй воле готовы сдать часть адресов тебе в аренду ситуации не меняет.

MagicMirror ★★
()
Ответ на: комментарий от MagicMirror

Свободные адреса и не нужны. Никого, кроме ip6-агитаторов, их наличие не волнует вообще нисколько. Есть адреса, которые можно купить (для своей AS), и будут всегда - вот это важно. А были ли они до покупки свободными или уже использовались - совершенно не важно. То что их не выдают бесплатно это наоборот хорошо - оплата хотя бы каких-то копеек за адрес несколько снижает вероятность того, что к нему будут относиться как к расходнику.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 3)
Ответ на: комментарий от firkax

Свободные адреса и не нужны.

У тебя всё не нужно.

Есть адреса, которые можно купить (для своей AS), и будут всегда.

Подумаешь, всего то в очередь встать и отвалить x10-100-1000 за циферки. Интернет меньше не становится, напоминаю.

снижает вероятность что к нему будут относиться как к расходнику.

Что-то не помогает.

MagicMirror ★★
()
Ответ на: комментарий от MagicMirror

Что-то не помогает.

Потому что цены до сих пор меньше чем надо, а адресов соответственно больше чем надо.

за циферки

Это не циферки, это PoS того, что с тобой стоит иметь дело в инете. Пока что - недостаточный, и в итоге адреса есть у любого хулигана за символическую цену.

firkax ★★★★★
()
Ответ на: комментарий от firkax

PoS того, что с тобой стоит иметь дело в инете.

Инторнет он для сурьёзного бузинеса, под конролем сурьёзных дядь в сурьёзных ведомствах, а ну брысь в загон в приложение обратно, быдло пользователь.

MagicMirror ★★
()
Ответ на: комментарий от firkax

А вообще ipv6 ненужно.

Это был вброс 80 уровня, судя по последующей дискуссии. Нужно или нет это личное дело каждого, но об отказе от IPv4 сейчас речи нет (это невозможно, те же VPS без IPv4 - так называемые NAT VPS в лучшем случае с пачкой IPv6 адресов считаются признаком отсутствия денег) но IPv6 во многих ситуациях нужен, а иногда и достаточен.

Dima_228
() автор топика
Ответ на: комментарий от firkax

Я вообще не до конца понимаю что она делает, RFC надо читать или изучать исходники. Она не создавала при установке никаких конфигов в /etc/ чтоб что-то настраивать, если она анонсирует адреса то должна по идее брать их из интерфейса…

Dima_228
() автор топика
Ответ на: комментарий от Dima_228

ndppd предназначен для связывания двух физических сегментов в одну сеть. Соответственно, в его конфиге надо указать upstream-интерфейс и адрес сети, а также downstream-интерфейс.

Шлюз провайдера получает из вне пакет с адресом из твоей сетки. Он знает, на каком своём физическом интерфейсе висит эта сеть. Через этот интерфейс он отправляет мультикаст-запрос: кто имеет этот адрес? ndppd получает этот запрос и от себя отправляет такой же запрос через свой downstream-интерфейс. Если он получает ответ, то отвечает шлюзу и прописывает маршрут на хосте. Теперь шлюз знает, что машина с этим адресом есть в сети, а твой хост - куда переправлять пакеты с таким адресом.

В дебиане старый ndppd, который не умеет автоматически прописывать маршрут, поэтому так работать не будет. Но для тебя, возможно, это и плюс. Вроде бы, у него была настройка - сразу отвечать шлюзу. Тогда можно попробовать создать фиктивный downstream-интерфейс и шлюз будет всегда отправлять пакеты на твой хост. Не уверен, что твой хост сможет обработать пакеты так, как ты хочешь, но это уже другая история.

Посмотри tcpdump’ом, может быть, там и без всякого ndppd с твоими настройками всё так, как ты хочешь: пакеты с адресами из твоей сетки сыпятся тебе на интерфейс. Просто надо их правильно обрабатывать. Тогда, наверное, нужно смотреть в сторону policy routing.

anonymous
()
Ответ на: комментарий от Dima_228

но IPv6 во многих ситуациях нужен, а иногда и достаточен.

Поддерживаю. У меня есть удаленный сервер с белым только ipv6. И у него есть домен, и у домена сертификат.

hbars ★★★★★
()

Попробуй добавить локальный маршрут к «своим» адресам:

ip route add local 2001:2002:2003:2004:2005:2006:2007::/112 dev lo

И включить Proxy NDP на интерфейсе eth0:

sysctl net.ipv6.conf.eth0.proxy_ndp=1

Тогда твой хост станет отвечать на входящие на интерфейс eth0 NDP запросы по адресам, к которым у хоста есть маршрут через другой интерфейс (в данном случае есть маршрут к 2001:2002:2003:2004:2005:2006:2007::/112 через интерфейс lo).

А зачем использовать все адреса из /112, если не секрет? Или это из разряда «за что уплочено должно быть проглочено»?

iliyap ★★★★★
()
Последнее исправление: iliyap (всего исправлений: 1)
Ответ на: комментарий от iliyap

за что уплочено должно быть проглочено

Почти. Ну не все, хорошо, 65536 это перебор. Но десяток разных адресов под разные сервисы, потом какой-то диапазон на 1000 адресов подряд для какого-то парсера, что-то еще - все равно не добавлять же это все вручную. Пока не нашел решения проблемы добавил вручну 5 штук.

Dima_228
() автор топика