Pull to refresh

Comments 22

Как-то неэффективно используются адреса, даже на вашей картинке это видно. Если вместо 127.0.0.80/29 и 127.0.0.104/29 использовать 127.0.0.8/29 и 127.0.0.16/29, а вместо 127.0.0.160/27 — 127.0.0.32/27, то у вас освободится 127.0.0.128/25 и 127.0.0.64/26.

На первый взгляд, для подобных задач должно хорошо подойди нечто типа SLAB аллокатора, на 5 арен для этой картинки (/28, /27, /26, /25, /24). Допустим, надо выделить блок /28, тогда алгоритм примерно такой:
1. Смотрим, есть ли в арене /28 свободные блоки. Если есть — берём один блок и помечаем его как занятый.
2. Если нету — то идём в арену /27 и берём оттуда свободный блок. Если есть — то изымаем его из этой арены, а в арену /28 помещаем две его половинки. Если нету — то рекурсивно идём наверх. Если в самой крупной арене (/24, в данном случае) ничего нету, то извиняемся перед клиентом.

При освобождении блока возвращаем его в арену соответствующего размера. Если есть 2 блока, которые можно склеить и вернуть в вышестоящую арену — делаем это рекурсивно.

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

Плюс данной схемы с в том, что она старается размещать блоки как можно компактнее. Минус в том, что фрагментация всё равно будет. С учётом того, что вам надо /32 адреса клиентам выдавать, придётся делать арены вплоть до /31.
А если использовать VLAN per user и /32 адреса, то можно не заморачиваться с подсетками.
И реконфигурировать все вланы по пути от клиента до роутера, где они будут терминированы? :) Кроме того, я, честно говоря, не знаю, красивой и стандартной реализации терминации тысяч вланов без растраты кучи IP.
Так это как раз нестандартная реализация, так как у каждого вендора оно сугубо собственное.
А у нас вот такие экселевские таблички. По листу на каждую /24.
Скрытый текст

До сих пор не знаю кто это придумал, но по-моему гениально по своей простоте.
excel начинает ломаться, когда подразделения, редактирующие файл, разнесены территориально(
все правильно. мы так тоже делали.
это самый удачный способ представления подсетей на бумаге.
Вопрос, а вы не пробовали выдавать не подсети, а отдельные IPшники?
Как делает 1&1 немецкий. Каждый сервер получает конкретный IP, при этом роутер всегда 10.0.0.1
нет лишних потерь вообще, жесткий роутинг, выделять можно по сколько угодно IP за раз кому угодно.
У нас так сделано в Технодоме. В Селектеле этот принцип не используется, иначе придется запретить «миграцию» адресов между серверами, так как при выделении одного адреса он биндится на MAC сервера.
а в чем проблема перебиндивать его?
Ни в чем, но на это требуется время и ручное вмешательство. А это сделает невозможным реализацию многих техник HA с плавающими (виртуальными) IP-адресами.
Ну не знаю. Если IP разрешен для активности на 4х маках (например), в чем проблема?
После того как с мака пришел пакет от этого IP — он перевесился.
По сути ведь то же самое что и сейчас — только обновлять таблицу сооветствий с проверкой допустимости.
И дальше рутинг по чему? По mac?
Знаю Hetzner так делает.
Это еще и самый экономичный способ. Так как выдавать сеть /29 только из-за того что абоненту требуется два IP адреса уже непозволительная роскошь.
а еще можно воспользоваться готовым софтом: racktables.org/
опенсурс. очень удобно.
можно даже прибить IP не к клиенту, а к железу в стойке и влану.
Есть еще продукт попроще iptrack.sourceforge.net — автоматом можно экспортировать из него данные, создавать записи для обратной зоны DNS
Мы используем Netdot — замечательный инструмент для ведения документации сети, в том числе и управления адресным пространством.
Я писал обзорную статью про него здесь на хабре.
На практике многие до сих транжирят IP-шники.
У меня кабельный провайдер делает совсем смешно: всем кто хочет получить один (!) постоянный IP-адрес, выделяется /30.
Sign up to leave a comment.