Попытка понять взаимодействие между двумя разными подсетями в одной сети
У меня есть 10.0.0.0/8
Сеть разделена на две части. DHCP-сервер раздает адреса 10.0.0.10
в 10.0.0.150
с маской класса А (255.0.0.0
). Это моя "гостевая" часть сети.
Авторизованные пользователи сети имеют резервирование на DHCP-сервере с адресами в 10.100.0.10
в 10.100.0.250
Диапазон с маской класса А.
Файловый сервер в сети имеет IP-адрес 10.100.0.1
и маска класса B (255.255.0.0
).
- Устройства как в "гостевой" сети, так и в "авторизованной" сети могут видеть друг друга.
- "Авторизованная" сеть может видеть файловый сервер.
- "Гостевая" сеть не может видеть файловый сервер.
До сих пор это получалось довольно хорошо, но мой классный инструктор клянется, что не должно. Я читал в нескольких местах, что ПК с разными масками подсети не должны иметь возможность общаться друг с другом.
Может кто-нибудь помочь мне понять, почему "авторизованные" сетевые ПК могут нормально обращаться к файловому серверу, несмотря на разные маски подсети?
3 ответа
Теория маски подсети заключается в том, что она определяет, какая часть IP-адреса является сетевым адресом, а какая часть IP-адреса является адресом хоста:
10.100.0.1
- Айпи адрес;
255.0.0.0
- Маска подсети;
10
- сетевой адрес, 100.0.1
- адрес хоста.
Хосты в одной подсети могут общаться напрямую друг с другом. Это означает, что если хост A и B находятся в одной подсети и A хочет установить связь с B, то A отправит свой трафик непосредственно на B. Если хост A хочет установить связь с хостом C, который находится в другой подсети, у A будет направить этот трафик на шлюз, который знает (надеюсь), как добраться до другой сети. Итак, хост должен определить, куда отправлять трафик:
- Непосредственно к хосту (второй хост находится в той же подсети)
- К шлюзу (второй хост принадлежит другой подсети)
Что происходит в вашем случае, так это то, что ваши "авторизованные" клиенты имеют IP-адреса 10.100.0.10 - 10.100.0.250
(Я предполагаю, что маска подсети 255.0.0.0
). На сервере есть IP-адрес 10.100.0.1
, Для хоста из диапазона "Авторизованный" этот сервер находится в той же подсети.
Если хозяин 10.100.0.10
из "Авторизованного" диапазона хочет общаться с сервером - он сначала проверяет, находится ли этот сервер в той же подсети или нет. Для хозяина 10.100.0.10
с маской подсети 255.0.0.0
одна и та же подсеть будет все хосты в диапазоне 10.0.0.1 - 10.255.255.254
, IP-адрес сервера находится в этом диапазоне. По этой причине хост из "Авторизованного" диапазона пытается напрямую связаться с сервером и (при условии, что они находятся в одной сети уровня 2) эта попытка завершается успешно.
В этом случае, хотя сервер имеет другую маску подсети - он находится в большей подсети (которая также является подсетью для "авторизованных" клиентов). Если ваш сервер будет иметь другой второй байт в IP-адресе (10.150.0.1
например) он не сможет отвечать на хост из диапазона "Авторизованный", поскольку с точки зрения сервера диапазон "Авторизованный" будет выглядеть как другая подсеть, и серверу потребуется отправлять трафик на маршрутизатор. Если бы не было маршрутизатора - тогда не было бы связи.
Если вы хотите разделить свою сеть на части "Гости" и "Авторизованные", то вам нужно, чтобы они были расположены в разных подсетях, которые не перекрываются.
Например:
- "Гости" -
10.10.0.1
, маска подсети255.255.0.0
- "Уполномоченный" -
10.20.0.1
, маска подсети255.255.0.0
Сервер будет находиться в "авторизованной" части сети, имеющей IP-адрес 10.20.0.100
, маска подсети 255.255.0.0
,
При такой настройке эти подсети будут эффективно отделены друг от друга, так как части IP-адресов, представляющих их подсеть, будут отличаться:
10.10
для гостей10.20
для авторизованных
На этом этапе связь между этими подсетями будет возможна только через маршрутизатор, который имеет интерфейсы в обеих подсетях.
Кроме того, стоит отметить, что хотя все ваши компьютеры совместно используют одну и ту же сеть уровня 2, ничто не помешает гостям вручную назначать себе IP-адреса из диапазона "Авторизованные". Это эффективно сделает их частью Авторизованной сети.
Все "Авторизованные" и "Гостевые" машины находятся в одной подсети, поэтому неудивительно, что все они могут общаться друг с другом.
Ограниченная маска подсети сервера заставляет думать, что только "Авторизованные" компьютеры находятся в одной подсети, поэтому он ARP для них напрямую и может связаться с ними.
Сервер считает, что "гостевые" компьютеры находятся в другой подсети, поэтому он пытается отправить свои пакеты на свой шлюз по умолчанию (то есть на уровне Ethernet он направляет их на MAC-адрес шлюза по умолчанию; они все еще адресованы "Гостевые" компьютеры на уровне IP). Если на сервере не определен шлюз по умолчанию или если его шлюз по умолчанию недоступен или неправильно настроен, эти пакеты не смогут получить доступ к "гостевым" компьютерам.
Поскольку пакеты находятся за пределами диапазона локальной сети, они отправляют пакеты на маршрутизатор по умолчанию. Маршрутизатор по умолчанию перенаправляет их к месту назначения и отправляет ICMP-перенаправление источнику. Работает ли перенаправление ICMP, трафик все еще туда попадает.
Вы определенно не должны делать вещи таким образом.