Учитывая список ACL с 10 миллиардами диапазонов IPv4 в уведомлении CIDR или между двумя IP-адресами:
x.x.x.x/y
x.x.x.x - y.y.y.y
Что такое эффективный алгоритм поиска / индексации для проверки того, что данный IP-адрес соответствует критерию одного или нескольких диапазонов ACL?
Предположим, что большинство определений диапазонов ACL охватывают большое количество блоков класса C.
Индексировать точки с помощью хеш-таблиц легко, но попробуйте, поскольку я не смог бы найти разумный метод для определения того, какие точки покрыты большим списком «линий».
Были некоторые мысли, такие как намеки на индексирование на определенном уровне детализации - скажем, предварительные вычисления на уровне класса C, каждый ACL, покрывающий эту точку, но таблица была бы слишком большой ... Или какое-то дерево KD для динамической установки уровни детализации.
Также думал, что, возможно, существуют алгоритмы обнаружения столкновений, которые могут решить эту проблему.
Есть ли намеки или указатели в правильном направлении?