Компьютер имеет следующую таблицу маршрутизации:
[root@server]# netstat -arn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
127.0.0.0 127.0.0.1 255.0.0.0 UG 0 0 0 lo
0.0.0.0 192.168.2.1 0.0.0.0 UG 0 0 0 br0
Какому компьютеру будет направлен пакет с исходящим адресом 192.168.2.3?
Доброго дня. Похоже, я не совсем понимаю тему. 192.168.2.0 — это сеть, верно? В сети у нас 255 адресов. 192.168.2.1 соответствует сети 192.168.2.1. Получается, что будет пакет отправлен этому компьютеру? В чем я ошиблась? Но меня смущает еще то, что на мой взгляд подходит и 192.168.2.3.
Добрый день, Олеся.
Для ответа на этот вопрос вас следует рассуждать следующим образом:
Пакет будет отправлен по наиболее подходящему маршруту из таблицы. У нас всего три возможных маршрута:
127.0.0.0
— это локальная петля. Т.е. отослать самому себе. Нужен этот адрес, преимущественно, для корректной работы приложений, требующих сетевого взаимодействия даже на тех компьютерах на которых нет сетевого адаптера.
0.0.0.0
через маршрутизатор 192.168.2.1
. Сюда будут отсылаться все пакеты, которые не подошли ни под одно из правил.
192.168.0.0/24
прямо в сетевой интерфейс br0. Это правило говорит нам о том, что пакеты, направляющиеся в сеть из 254 компьютеров от 192.168.0.1
до 192.168.0.254
будут отсылаться непосредственно в сетевой интерфейс.
Алгоритм отсылающий пакет выберет третье правило в этом списке. Значит, этот пакет будет отослан непосредственно в сетевой интерфейс. Через коммутатор/концентратор он сразу попадёт к адресату.
Значит, получит этот пакет компьютер с адресом 192.168.2.3
.
С уважением,
Станислав Лахтин
Станислав Лахтин, спасибо за столь развернутый овет. Но мне немного опять непонятно . Мы рассматриваем первую колонку - Destination (адрес сети-назначения?). Верно? Где видим 192.168.2.0 , 127.0.0.0 , 0.0.0.0 . На счет локальной сети я поняла. На счет адреса 0.0.0.0 то же понятно. Это default gateway. Не могу понять откуда мы берем 192.168.0.0/24? И 254 компьютера - это мы видим по адресу шлюза? Хочется просто до конца в этом вопросе разобраться. С уважением.
Добрый день, Олеся.
Мы это видим по адресу назначения/маске сети
. Логика простая: когда адресацию IP придумали, никто не мог предположить, что 4 байта так быстро не хватит для адресации всех узлов в интернет. Поэтому быстро придумали маску, она определяет в рамках сети какая часть адреса относится к сети, а какая к компьютеру в этой сети.
Когда описывается маршрут, то описывается и адрес сети и маска. Например, у нас описывается адрес 192.168.0.0
и маска 255.255.255.0
. Если их поставить друг под другом:
.. | .. | .. | .. | .. |
---|---|---|---|---|
байты адреса | 192 | 168 | 0 | 0 |
маска | 255 | 255 | 255 | 0 |
маска в битах | 11111111 | 11111111 | 11111111 | 00000000 |
Видно, что маска как бы отрезает последний байт адреса. Получается, что при такой маске первых 24
бита это маска, поэтому такой адрес/маска может быть записан как 192.168.0.0/24
или даже короче — 192.168.0/24
. При такой записи имеется в виду, что первых 24 бита адреса это адрес сети, а остальные 8
бит адреса это адреса компьютеров в сети.
Теперь почему их 254. Всего в 1 байте информации (последнем байте в адресе, в нашем случае, при указанной маске) их может быть 256. Однако как ясно из спецификации, мы не можем использовать адрес 192.168.0.0
, по очевидной причине того, что это адрес сети, и 192.168.0.255
, по причине того, что этот адрес зарезервирован в сети класса C как широковещательный адрес.
Итого получается, что у нас в распоряжении 256-1-1=
254 свободных адреса для адресации устройств в сети 192.168.0.0/24
.
Хорошего вам дня!
С уважением,
Станислав Лахтин
Огромное спасибо!