Сравнение адресов IP-сетей

Dependences: IPv4 , Адресация IP

Остановимся на понятии побитового сравнения адресов сетей. Адреса нельзя обычным образом сравнить на равенство. Сейчас разберем почему. Маска сети показывает количество бит, которое занимает адрес сети. Значение записывается в виде четырех восьмибитных чисел или значением от 0 до 32. В первом случае нужно записать подряд двоичные представления всех четырех чисел и посчитать количество единиц. Во втором случае мы уже имеем количество бит. Используя маску, мы получаем адрес сети с IP - адреса. Но для любой сети, кроме 0.0.0.0/0, можно найти другую сеть с меньшей маской, которая будет ее содержать. То есть сеть 10.0.0.0/24 содержит подсети 10.0.0.0/25 и 10.0.0.128/25, четыре сети с маской 26 и так далее. Операцию объединения нескольких подсетей в одну сеть называют суммаризацией. Она выполняется маршрутизатором в том случае, когда все объединенные подсети доступны через него. А объединенные маршруты, анонсируемые этим маршрутизатором по протоколам маршрутизации, называются суммарными. Так что для любой сети можно выбирать не только четкое соответствие в таблице маршрутизации, но и суммарные маршруты. В этом и заключается проблема простой проверки адресов на равенство. Причем нужно выбирать наиболее точное совпадение при сравнении. Например, если таблица маршрутизации содержит маршруты на сети 10.0.0.0/8 и 10.45.0.0/16, а нам нужно выбрать маршрут для сети 10.45.64.0/24, то нужно взять маршрут 10.45.0.0/16. То есть нужно выбрать маршурт, в адреса сети которого больше бит совпадают с сетью, для которой выбирается маршрут. Но еще должно выполняться условие, что сеть маршрута является надсетью для проверяемой.

ip table compare

На схемах выделены совпадения. Но на последней схеме 24-й бит отличается, поэтому мы отвергаем этот маршрут.
Благодарим за статью: Дмитрия Подгорного

Войти