The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Вычисление сетевой маски для подсети (subnet netmask broadcast)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: subnet, netmask, broadcast,  (найти похожие документы)
Date: Mon, 3 Jun 2002 12:13:38 +0000 (UTC) From: Ivan Pascal <pascal@tsu.ru> Newsgroups: fido7.ru.unix Subject: Вычисление сетевой маски для подсети > Чтобы оба адреса оказались в 160-й сети, нужно всего-то правильно указать > общий броадкаст. Вот оно что! А я никак не мог понять - откуда у вас такой энтузиазм по поводу манипуляциями с маской на одной из сторон. Оказывается "нужно всего-то правильно указать общий броадкаст". Вынужден вас огорчить, к реальному механизму IP это утверждение никакого отношения не имеет. То есть вы исходили из совершенно ложного положения. Да и подумайте сами - как ваша удаленная машина догадается, что на какой-то другой машине в результате неких манипуляций получился подобный броадкаст? Вы думаете, что она будет перебирать все возможные маски при отправке ответных пакетов? Или, что она отвечает по броадкастному адресу? Увы, ни то ни другое не есть правда. Посмотрите в доступной литературе - что делает хост в IP сети на "широковещательном" интерфейсе при отправке пакета. Вкратце... Все машины (IP) для него делятся на две категории - - те, которые находятся ни том же езернете - все остальные, связь с которыми возможна только через некий gateway (вообще говоря, "соседних" сетей и gateway'ев к ним может быть много, но для простоты будем считать, что связь со всеми остальными сетками идет через один gateway). Возникает небольшая техническая проблема - как хост по IP адресу получателя может догадаться - является ли он "соседом по езернету" или лежит за gateway'ем. Решается она в TCP/IP просто - все соседи должны находиться в той же IP подсети, что и сам хост. Или другими словами - только те, чьи адреса находятся в той же подсети, являются соседями, то есть доступными непосредственно. Идем дальше. Как наш хост определяет - лежит ли чужой IP в той же подсети? Для этого он использует собственную маску и собственный IP. Все IP одной подсети должны иметь одинаковую комбинацию битиков в "сетевой части адреса" (та, что в маске забита единицами) и могут иметь любую комбинацию в "хостовой части адреса" (то, что в маске забито нулями). Поэтому наш хост должен наложить свою (!) маску на свой IP и на IP получателя, убрав при этом все, что под ноликами, так как эти части имеют право (и должны) быть различными. И сравнивать только те части, которые оказались под единицами. Если они совпадут, то чужая машина лежит в той же IP подсети и следовательно является "соседом, к которому можно обратиться непосредственно". Таким же соседом должен быть и gateway. И поскольку ваша потерянная машина имеет маску 248 (и именно ее она и будет использовать при сравнении IP адресов), то и соседями она считает только IP в диапазоне 168-175. Адрес 7 в этот диапазон не входит и следовательно gateway'ем быть не может, так как для доступа к нему самому нужен еще один gateway. Где вы здесь видите использование broadcast IP? Нет его. Он в этой процедуре никак не фигурирует. Поэтому еще раз подчеркиваю - при ответе удаленная машина будет использовать только свою маску и никакие манупуляции с маской на другом конце ее не интересуют (может быть и интерсуют, но знать она о них не может). P.S. Я вообще не могу понять откуда вы могли взять утверждение, что "если броадкасты у двух машин сопадают, то они лежат в одной сетке". представьте себе все возможные подсетки (на 8, 16, 32, 64... адресов), которые заканчиваются на адресе 255 (ну то есть - 248-255, 240-255... 128-255, 0-255). Они все будут иметь один и тот же броадкаст - 255. Но машины из сетки 240-255 будут считать соседями только машины из 240-255 (основываясь на своей маске). Машины с адресами 1,2,3... из сетки 0-255 никак соседями считаться не могут, хотя броадкаст у них тот же самый. В общем, совпадения броадкастов можно считать _косвеным_ признаком принадлежности к одной сети, но с кучей дополнительных условий, типа "подстети не перекрываются", "маски консистентны" (что вы и нарушаете) и т.п. Или другими словами - совпадение масок является первичным признаком и только оно. А совпадение броадкастов - только в том случае, если броадкаст однозначно соответствует маске (и первому адресу в подсети). Как только оказывается, что две разные по маске подсетки ведут к одному и тому же броадкасту, оринтироваться на броадкаст уже нельзя. P.P.S. Вообще-то, теоретически IP адрес gateway'я не обязан лежать в той же подсетке, что и IP хоста. Хотя бы потому, что для хоста он как таковой не нужен. А нужен ему только MAC адрес gateway'я. Но это только в теории, а на практике я не помню, чтобы в каких-нибудь Юниксах (и уж тем более в FreeBSD) можно было отступать от этого правила. ----- Ivan Pascal | pascal@tsu.ru Administrator of | Tomsk State University. university network | Tomsk. Russia.

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, sirota (?), 14:13, 09/06/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В чем-то я согласен, но непонятно как вычисляется маска.
     
  • 1.3, Огтай (?), 14:55, 10/01/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как я могу узнать данный IP аддресс (например 192.168.10.44) из какого класса? (CLASS A,CLASS B, CLASS C )
     
     
  • 2.13, Денис (??), 17:33, 30/12/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Изначально адресация в сетях IP осуществлялась на основе классов, данный IP-адрес относится к классу Ц (Class C) ссылка на википедию: http://ru.wikipedia.org/wiki/йКЮЯЯНБЮЪ_ЮДПЕЯЮЖХЪ
    Ещё советую прочитать книгу Олифера, в 15-й главе хорошо расписано по классам.
     

  • 1.4, Edward (??), 19:12, 22/01/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    О классе говорит маска подсети. Где маска?
     
  • 1.5, Оксана (??), 21:11, 24/01/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
       как посчитать маску подсети по известным трем IP адресам таким, что 2 из них должны войти в подсеть, а один не должен?
     
  • 1.6, Донни (?), 15:07, 22/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    По первому октету определяется класс:
    A         1 - 126       255.0.0.0
    B         128 - 191     255.255.0.0
    C         192 - 254     255.255.255.0
    далее D, E- зарезервированные.

    Следовательно 192.168.10.44- класса С, маска по умолчанию 255.255.255.0 (/24)

     
  • 1.7, Vlad (??), 20:04, 30/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    IP: 72.14.204.83
     
  • 1.8, Ilisa (?), 15:18, 03/12/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Какая маска будет для 507 машин? Как вычислить?
     
     
  • 2.9, andy03 (ok), 08:13, 08/12/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > Какая маска будет для 507 машин? Как вычислить?

    сеть класса С имеет 256 адресов, и имеет префикс 192.168.0.х\24
    таким образом 512 (2^9) адресов - будет достаточно, а префикс будет х.х.х.х\23

    вот здесь описно http://ru.wikipedia.org/wiki/VLSM

    Олифера почитай или Таненбаума по сетям, там разжевано

     
  • 2.10, andy03 (ok), 08:25, 08/12/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > Какая маска будет для 507 машин? Как вычислить?

    как вычислить... маска имеет вид 255.255.252.0
    в двоичном представлении будет 11111111.11111111.11111100.00000000
    в маске 22 единицы, об этом и говорит префикс сети \22

    эта маска, например, говорит о том, что в сети 1024 (2^10) адреса,
    и могут присутствовать 1022 узла

    если этого количества недостаточно, от сетевой части маски подсети отбираем еще одну единицу
    11111111.11111111.11111000.00000000 - тогда префикс будет \21, а адресов будет 2048 (2^11), а узлов 2046

     
     
  • 3.11, Жека (??), 16:32, 09/02/2011 [^] [^^] [^^^] [ответить]  
  • +/
    самый разжеванный комментарий, спасибо
     

  • 1.12, андрей (??), 17:59, 01/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    46.247.244.40
     
  • 1.14, Денис (??), 02:32, 13/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Благодарю автора за эту фразу: "Все машины (IP) для него делятся на две категории..."
    Не задумывался... но очень важный момент...
    А Andy03 благодарю за короткое, но важное, обьяснение... Воистину: "краткость сестра таланта"
    Как раз изучаю маски...
     

    игнорирование участников | лог модерирования

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру