Учитывая список 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 для динамического набора уровни детализации.
Также возникла мысль, что, возможно, существуют алгоритмы обнаружения столкновений, которые могут решить эту проблему.
Любые подсказки или указатели в правильном направлении?