FERRA.RU РАМБЛЕР

Перейти к содержимому


Фотография

F.A.Q.: Теория TCP/IP (v.4)


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 29

#1 v_user

v_user

    Гуру

  • Гуру
  • PipPipPipPip
  • 5 382 сообщений

Отправлено 26 Ноябрь 2007 - 12:36

Часть 1. IP-адрес и маска.

При работе в сети по протоколу tcp/ip, каждый компьютер должен иметь свои уникальный (т.е. нигде больше не встречающийся) идентификатор. Этим идентификатором является ip-адрес. Он (ip-адрес) состоит из четырех частей, разделяемые точкой. Вот пример: 192.168.0.24. Каждый октет (или квадранта) может принимать значение от 0 до 255, итого 256 значений. Но почему максимальное число именно 255 а не больше? Это связано с тем, что компьютер на самом деле ip-адреса хранит в двоичном исчислении (а в понятное нам десятеричное преобразовывает при отображении). На каждый октет выделено 8 символов. А в двоичной системе при использовании 8 символов, максимальным получается число 11111111, которое в обычной десятеричной системе эквивалентно 255.

При задании параметров tcp/ip вам говорят, что помимо ip-адреса обязательно надо указать и маску. А зачем? Так уж сложилось, что когда люди придумывали протокол tcp/ip, они решили что просто наличие некого уникального идентификатора будет маловато. Они решили, что эти ip-адреса нужно объединять в некие группы, причем в обязательном порядке. Эти группы называются – ip-подсеть. Для этого объединения ввели дополнительный параметр, который назвали «маска».
Маска по своему формату записи аналогична ip-адресу. Но вот смысл этого адреса (как вы догадываетесь) совсем другой. Да и значения каждого октета хоть и находятся тоже в диапазоне от 0 до 255, но назначить произвольное число из этого диапазона нельзя. Это число надо высчитывать.
Так как все таки «работает» маска? Сначалу скажу – хоть и хитро, но достаточно просто.
Возьмем адрес 192.168.0.1 с маской 255.255.255.0 и переведем все это на компьютерный язык (т.е. в двоичную систему):
ip  address: 11000000.10101000.00000000.00000001
subnet mask: 11111111.11111111.11111111.00000000
Посмотрите на маску. Сперва идут единицы, потом нули. И это всегда именно так. Какое либо другое расположение нулей и единиц меж собой не допустимо. Я не случайно разместил маску под адресом. Я сделал это специально, что бы было наглядно понятно как определяется ip-подсеть. Адреса одной подсети – это те, у которых значения цифр в адресе «напротив соответствующих единиц в маске» совпадают. Для понимания приведу два адреса – первый входит в ip-подсеть указанного выше примера (192.168.0.1/255.255.255.0), второй уже не входит:
ip address1: 11000000.10101000.00000000.10000001
ip address2: 11000000.10101000.00000001.00000001
Т.к. маска, это набор всегда сперва только из единиц и потом только из нулей, то существует и другой метод записи маски. Который заключается в том, что указывается количество «единиц» в маске. Такая единица измерения называется «бит». В этом случае наш пример: 192.168.0.1/255.255.255.0 – можно записать по другому: 192.168.0.1/24. Такой формат записи часто встречается, например, в Линукс-системах.
Т.к. маска – это всегда сперва единицы а потом нули, то проведя исчисления вы поймете. Что значения октетов в маске в десятеричном исчислении могут принимать только такие значения: 255, 254, 252, 248, 240, 224, 192, 128, 0. Причем только один октет может иметь промежуточное значение, остальные предыдущие - только 255, остальные последующие – только 0. Пример корректной маски: 255.248.0.0, 255.255.128.0, 255.255.255.255. Пример некорректной маски: 255.248.128.0, 255.0.0.128.

Теперь. А зачем эти ip-подсети вообще создали? Просто чтоб жизнь малиной не казалась? Отвечу, причина есть. Кроется она уже в общении компов по tcp/ip меж собой. Если компьютеры в одной ip-подсети – то они общаются «на прямую». Когда компьютер хочет обратиться к другому, адрес которого входит в ту же ip-подсеть, то он просто отсылает ip-пакет на нужный адрес (под этим я и подразумеваю «на прямую»). А вот когда ip-адрес другого компа не входит в ip-подсеть первого – то тут уже все намного сложнее. Для работы таких двух компов должно быть дополнительное устройство – роутер (маршрутизатор). Ip-адрес этого роутера указывается в параметрах tcp/ip как параметр под названием «шлюз» (по англицки - «gateway»). В этом случае первый компьютер обращается к роутеру, что бы тот в свою очередь переслал ip-пакет на адрес другого компа. Более подробно вопрос маршрутизации планируется осветить во второй части.

Если с маской вы разобрались, то хочу огорчить – это еще не все. Те же создатели tcp/ip почему-то решили, что все это слишком просто, и надо бы все это дело усложнить. И усложнили, решив что давать пользователям назначать какие угодно маски (наборы из единиц и нулей) не надо. А надо бы это как-то ограничить тем же ip-адресом. И ввели такое понятие, как класс ip-адреса. Классов несколько – A, B, C, D, E. Может есть и дальше, но нам это без разницы. Т.к. в жизни мы будем работать только с первыми тремя классам: A, B, C.
Что бы понять, к какому классу относится ip-адрес, необходимо опять таки вернуться к его двоичной форме. Те адреса, которые начинаются на 0 – это адреса класса А. Если адрес начинается на 10 – то это адрес класса В. Если же адрес начинается на 110 – то это адрес класса С. Например адрес 192.168.0.1 принадлежит классу С, а адрес 10.0.0.1 принадлежит классу А.
А к чему собственно эти классы нам нужно знать? А дело в том, что класс ip-адреса определяет минимальную маску. Так, для адреса класса С маска может состоять как минимум из 24 единиц (или более). Т.е. минимально допустимая маска адреса класса С составляет 24 бит (255.255.255.0). Для адреса класса В – 16 бит (255.255.0.0). Для адреса класса А – 8 бит (255.0.0.0).
Пример корректных масок для адресов разных классов: 192.168.54.2/255.255.255.128, 172.17.0.48/255.255.192.0, 10.156.0.55/255.240.0.0.
Пример некорректных масок для разных классов адресов: 192.168.54.2/255.255.128.0, 172.17.0.48/255.192.0.0, 10.156.0.55/240.0.0.0.

Вы думаете это все? А вот и нет.
Вы наверное уже знаете, что на компьютере нельзя выставлять ip-адрес 192.168.0.0, или 192.168.0.255. На это есть причины. При построении ip-подсети (а она определяется ip-адресом и его маской), первое значение и последнее значение зарезервированы под служебные нужды. Первое – под обозначение самой этой ip-подсети, последнее - для отправки так называемых «широковещательных» пакетов, т.е. пакетов сразу для всех компьютеров этой ip-подсети.
Так, возьмем некий хост. Хост – это некое устройство, которое имеет ip-адрес. Чаще всего это компьютер. Но есть еще много элементов, которые работают по сети, например сетевой принтер, управляемый хаб/свитч, различные роутеры, корпоративные файрволы, и т.д. Пусть этот хост имеет адрес с маской 10.0.45.17/255.255.248.0. Исходя из значения адрес/маска мы можем сказать , что хост находиться в ip-подсети 10.0.40.0/21 (или 10.0.40.0/255.255.248.0). 10.0.40.0 – это идентификатор подсети, а через дробь указанная маска показывает «ширину» этой подсети. «Ширина» подсети (что есть максимально возможное кол-во хостов в этой подсети) в 21 бит (255.255.248.0) составляет 2048 хостов (помним, первый и последний зарезервированы).
Тут есть правда один момент, который для меня пока остается не выясненным (если честно, то не особо-то и сильно я искал ответ). Вот наш пример ip-подсети: 10.0.40.0/21. Адреса 10.0.40.0 и 10.0.47.255 зарезервированы как первый и последний адреса в подсети. Но вот, например адреса: 10.0.40.255, 10.0.41.0, 10.0.41.255, 10.0.42.0, и т.д. – вполне могут быть реальными адресами реальных хостов согласно теории. Но с другой стороны все знают, что 0 и 255 на конце для хостов никем не используется. Так как правильно? Если у кого есть ссылка на ответ, просьба поделиться (для себя я решил голову не ломать – а просто не использую такие адреса).

Ну что ж, необходимый минимум по теории ip-адреса и маски наверное дан.
Теперь еще необходимые дополнительные сведения.
- В примере выше я взял хост – 10.0.45.17/21. Написал, что он входит в подсеть - 10.0.40.0/21. И написал, что адреса этой подсети в диапазоне 10.0.40.0 – 10.0.47.255 и всего их 2048. В уме такие цифры, мне думается, никому не удастся вычислить. Для таких целей существуют так называемые ip-калькуляторы. Вот первый попавшийся через поисковик онлайновый ip-calc: http://ipcalc.dewil.ru/. Вот еще ip-калькулятор в виде устанавливаемой программы: http://www.radmin.ru...pcalculator.php.
- Как все знают, Интернет как раз работает по протоколу tcp/ip. Ну а что бы в этом протоколе работать на компьютере, надо иметь как минимум один ip-адрес. Не трудно догадаться, что назначить себе какой угодно адрес и работать в Интернете не получиться. Хотя бы по тому, что мы не знаем, какие есть свободные адреса. По этому, в Интернете есть некие структуры, которые следят за ip-адресами что бы они не повторялись. Пользователю это не особо интересно, т.к. конечному пользователю ip-адрес выдает провайдер, а уж что он «уникальный» - это проблемы провайдера а не пользователя.
Если же вы решили у себя построить локальную автономную ip-сеть (т.е. не связанную с Интернет), то в принципе вы можете использовать какие угодно ip-адреса. Но тут есть «НО». Если вдруг вы решили подключить свою локальную сеть к Интернет, то может возникнуть конфликт ip-адресов. Такой случай предусмотрен, и решение для избежания названной ситуации есть. Существует глобальное соглашение, в котором некоторые ip-адреса зарезервированы для локальных сетей. Они существуют именно для локальных сетей и не могут существовать в Интернет. А выделено три диапазона адресов:
10.0.0.0 — 10.255.255.255 – адреса класса А.
172.16.0.0 — 172.31.255.255 – адреса класса В.
192.168.0.0 — 192.168.255.255 – адреса класса С.
- Отдельно хочу сказать об ip-адресах 127.х.х.х. Эти адреса зарезервированны под собственный нужды компьютера (хоста). Если программы компьютера захотят работать меж собой по tcp/ip внутри компьютера (не выходя в сеть), используются именно эти адреса. Обычно это один адрес (адрес внутренней обратной связи) - 127.0.0.1.
- Еще один момент, который возможно кому-то будет интересен. Выше я привел пример некорректного указания маски для ip-адреса, исходя из класса адреса. Тут исключений нет. Но само такое написание возможно (когда к адресу через дробь приписывается некорректная по классу маска). Некоторые программные продукты допускают такое написание когда вам надо указать просто произвольный диапазон ip-адресов. Например что бы не писать «с 192.168.0.1 по 192.168.255.254», некоторые ПО позволяет написать «192.168.0.0/16».

Сообщение отредактировал v_user: 17 Август 2011 - 06:27

Разве "Pentium M" - это мобильно? Вот "Тополь М" - это мобильно!

#2 v_user

v_user

    Гуру

  • Гуру
  • PipPipPipPip
  • 5 382 сообщений

Отправлено 27 Ноябрь 2007 - 03:00

Часть 2. DNS и Шлюз (маршрутизация).

DNS расшифровывается как Domain Name System. По русски – Система Доменных Имен.
Прочитав часть 1 можно понять, что идентификатор хоста – это определенный набор чисел, и использование букв не допустимо. Т.е. что бы подключится к сайту, надо указать его ip-адрес. Но вы можете возразить, когда я открываю сайт www.ferra.ru, я указываю нормальное человеческое название а не какой-то ip-адрес! Все верно. Создатели tcp/ip поняли, что запоминать эти ip-адреса для работы в сети для пользователя очень не удобно. И тогда они придумали систему, что ip-адресу можно сопоставить некое «дружественное» имя. Для этих целей выделены сервера (сервера DNS), которые хранят информацию какое «дружественное» имя соответствует какому ip-адресу. И адрес этого DNS сервера (или нескольких серверов) указывается в настройках tcp/ip.
Когда вы открываете браузер и набираете название сайта, происходит следующее. Компьютер для начала анализирует, что вы ввели. Если вы ввели ip-адрес, то он по нему подключается. Если это не ip-адрес, тогда он принимает запись как некое доменное (дружественное) имя. Компьютер отправляет это имя DNS серверу и просит его выдать ip-адрес, который соответствует этому имени. И по получении этого ip-адреса, подключается по нему.

В части1 было указано, что для того, чтобы два компьютера из разных ip-подсетей могли между собой общаться, между ними должен быть роутер (маршрутизатор). Не трудно догадаться из названия, что роутер занимается перенаправлением пакетов из одних подсетей в другие. А ip-адрес роутера указывается в параметрах tcp/ip как шлюз.
Но на самом деле такое представление положения вещей очень упрощенное, т.к. «шлюз» - это лишь один из моментов в сложной системе маршрутизации. На самом деле маршрутизацией занимаются не только роутеры, но и ваш собственный компьютер. Что бы в этом убедиться, то (для ОС Windows) откройте командную строку и введите команду: route print
C:\>route print
===========================================================================
Список интерфейсов
0x1 ........................... MS TCP Loopback interface
0x2 ...00 50 04 a9 cf 6d ...... 3Com EtherLink XL 10/100 PCI TX NIC (3C905B-TX)
 Miniport
===========================================================================
===========================================================================
Активные маршруты:
  Сетевой адрес         Маска сети      Адрес шлюза       Интерфейс  Метрика
          0.0.0.0          0.0.0.0         10.0.0.1       10.0.0.45       20
         10.0.0.0    255.255.255.0        10.0.0.45       10.0.0.45       20
        10.0.0.45  255.255.255.255        127.0.0.1       127.0.0.1       20
   10.255.255.255  255.255.255.255        10.0.0.45       10.0.0.45       20
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
        224.0.0.0        240.0.0.0        10.0.0.45       10.0.0.45       20
  255.255.255.255  255.255.255.255        10.0.0.45       10.0.0.45       1
Основной шлюз:          10.0.0.1
===========================================================================
Постоянные маршруты:
  Отсутствует
Это команда выведет таблицу маршрутизации вашего компьютера. На примере таблица для компьютера 10.0.0.45/255.255.255.0. Тут нам интересны строки 1 и 2. Вторая строка говорит об отправки пакетов для компьютеров этой же подсети непосредственно с самого компьютера. Первая строка говорит, что «по умолчанию» для адресов других подсетей использовать роутер с адресом 10.0.0.1. Если вас заинтересовали другие строки, то предлагается их изучение произвести самостоятельно (т.к. описать эти моменты кратко не получиться).
В примере мы видим еще и параметр «метрика». Метрика – это приоритет маршрута. Чем метрика меньше, тем приоритет выше.

Теперь, для большего понимания маршрутизации возьмем пример, приведенный на рисунке 1. Есть два компьютера из одной подсети (192.168.0.0/24), два компьютера из второй подсети(192.168.1.0/24). Обе подсети имеют маску 24 бит (255.255.255.0), и они соединены Роутером. В первой подсети (192.168.0.0/24) есть еще и Firewall, который дает выход в Интернет. На компьютерах, Firewall, Роутере прописаны только ip-адреса/маски. Роутер имеет несколько ip-адресов, по одному адресу из каждой подсети, в нашем случае два (кстати Firewall тоже является роутером, только между локальной сетью и Интернетом). «Шлюзы» нигде не прописаны и маршрутизация не настраивалась – этим мы сейчас как раз и хотим заняться.

При таком положении вещей, компьютера 1 и 2 видят друг друга, и компьютера 3 и 4 видят друг друга. Компы из разных подсетей друг друга не увидят, Интернет у них не работает.
Что бы начать настройку маршрутизации, нам надо сначала поставить цель – а что мы хотим получить в итоге?

Задача 1. Мы ходим, что бы все компьютеры видели друг друга, а Интернет нас не интересует (Сервер Firewall мы выключим и выбросим за ненадобностью).
а) Решение 1, самое простое и чаще всего использующееся. На компьютерах просто прописывается в «шлюз» адрес Роутера. Для компьютеров 1 и 2 шлюзом будет адрес 192.168.0.100. Для компьютеров 3 и 4 шлюзом будет адрес 192.168.1.100.
б) Решение 2. «Шлюзы» в настройках tcp/ip не прописываются, а добавляется строка в таблицы маршрутизации компьютеров. Привожу строки для каждого из компьютеров:
      Сетевой адрес      Маска сети    Адрес шлюза      Интерфейс  
Комп1:   192.168.1.0   255.255.255.0  192.168.0.100   192.168.0.11  
Комп2:   192.168.1.0   255.255.255.0  192.168.0.100   192.168.0.12  
Комп3:   192.168.0.0   255.255.255.0  192.168.1.100   192.168.1.13  
Комп4:   192.168.0.0   255.255.255.0  192.168.1.100   192.168.1.14  
Строка указывает компьютеру, что для работы с другой подсетью нужно использовать наш Роутер.

Задача 2. Все компьютеры должны выходить в Интернет, а связь меж собой этих компьютеров нам не нужна.
- Для того, что бы компьютеры 1 и 2 увидели Интернет, надо на них надо прописать «шлюз» - который есть адрес нашего Firewall, т.е. 192.168.0.1.
- Для того, что бы компьютеры 3 и 4 увидели Интернет , надо:
а) На самих компьютерах прописать «Шлюз», который есть адрес Роутера в их сети, т.е. 192.168.1.100.
б) На Роутере на интерфейсе 192.168.0.100 прописать «шлюз», который есть адрес Firewall, т.е. 192.168.0.1.
с) На сервере Firewall нужно добавить строку в таблице маршрутизации - путь к подсети 192.168.1.0/24.
Сетевой адрес      Маска сети    Адрес шлюза      Интерфейс  
   192.168.1.0   255.255.255.0  192.168.0.100    192.168.0.1  
Ведь если Firewall не будет знать где находиться эта подсеть, он не сможет отправлять ответные пакеты. И как следствие, Интернет на компьютерах 3 и 4 работать не будет.

Задача 3. Все компьютеры должны выходить в Интернет, все компьютеры должны общаться меж собой.
Да, сложная задачка. Вот если бы у нас Роутер и Firewall были одним устройством – то это просто, решение в такой ситуации описано в Задаче 1. В нашем же случае, предлагается такое решение.
а) Для начала «обеспечиваем» все компьютеры Интернетом по алгоритму, описанному в решении задачи 2.
б) После выполнение подпункта «а», мы получаем интернет на все компьютеры, плюс, изначально, комп 1 и 2 видят друг друга, и компьютеры 3, 4 видят друг друга. Осталось заставить компьютеры двух разных подсетей видеть друг друга.
Проанализировав полученную ситуацию, можно сделать вывод, что на самом деле компьютеры 1,2 и 3,4 уже могут друг с другом общаться. Поскольку на компьютерах 3 и 4 указан «шлюз» на Роутер, а Роутер имеет выход в подсеть 192.168.0.0, то компы 3 и 4 могут отправлять информацию компьютерам 1 и 2. Но вот ответ пойдет не обычно. Т.к. наши компы 1 и 2 не знают где находится подсеть 192.168.1.0, а шлюз у них по умолчанию – Firewall, то ответные пакеты пойдут к Firewall. Т.к. Firewall-у мы уже указали путь до комов 3 и 4, то он ответные пакеты и отправит куда надо. И в результате маршрут пакетов в одну сторону и в другую получается разный. Такое положение вещей в локальной сети («разномаршрутный туды-сюды») вероятней всего не прокатит (проверить бы). Если все-таки не прокатило, предлагается решение, заключающийся в изменении таблицы маршрутизации на компьютерах 1 и 2.

     Сетевой адрес      Маска сети    Адрес шлюза      Интерфейс  
Комп1:   192.168.1.0   255.255.255.0  192.168.0.100   192.168.0.11  
Комп2:   192.168.1.0   255.255.255.0  192.168.0.100   192.168.0.12  

- Приведенные решения базируются только на настройке маршрутизации. Подобного рода задачи можно решать смешанно, с использованием маршрутизации и трансляции адресов. Но это уже более серьезный разговор. Трансляции адресов будет посвящен отдельный раздел.
- Организация схемы сети по рис.1 взята для показа примеров настройки маршрутизации. Такая схема в жизни может существовать. Например, есть у вас с соседом своя локальная сеть с неким центральным firewall (например ADSL-модем с маршрутизатором). А еще у вас есть карточка WiFi (вторая сетевая карта), по которой вы соединяетесь с друзьями из соседнего дома. Вот и получается схема как на рис.1 , где в качестве Роутера выступает ваш собственный компьютер.
Но я, например, не считаю такую организацию сети оптимальной (из-за не простой настройки маршрутизации). Лучше ее реорганизовать в структуру как на рисунках 2 или 3. А еще лучше постараться уйди от использования нескольких ip-подсетей (если какой-либо принципиальной надобности в этом нет).

Прикрепленные файлы

  • Прикрепленный файл  faq_ip_ch2.jpg   82,77К   1849 Количество загрузок:

Сообщение отредактировал v_user: 02 Сентябрь 2009 - 06:35

Разве "Pentium M" - это мобильно? Вот "Тополь М" - это мобильно!

#3 v_user

v_user

    Гуру

  • Гуру
  • PipPipPipPip
  • 5 382 сообщений

Отправлено 27 Ноябрь 2007 - 03:14

Часть 3. Фильтрация (или принцип работы firewall)

Сама фильтрация не представляет ничего сложного, в основе – указания чего можно пропускать, а чего нет (что следует уже из названия). Сложность только в том, что без понимания организации работы программ по протоколу tcp/ip эту фильтрацию не настроить.
А для организации фильтрации о протоколе tcp/ip надо знать следующее. TCP/IP – не является чем-то единым целом. Этот протокол является набором (стеком) из 255 IP-протоколов. Т.е., выражаясь образно, это не одна труба, по которой передается информация, а набор многих маленьких труб, связанных вместе. На этом и основана фильтрация. IP-пакет, помимо адреса источника и адреса назначения, имеет еще и третий параметр – номер ip-протокола из стека tcp/ip, который этот пакет использует. По этим параметрам вы и можете настроить фильтрацию. Т.е. пропускать пакеты 1) только с такого адреса источника 2) только на такой адрес назначения 3) только по такому-то номеру ip-протокола.

Но это еще далеко не все. Хотя бы потому, что нигде не прозвучало слово «порты», про которые вам все уши «прожужжали». Наиболее часто используемы ip-протоколы в стеке tcp/ip являются протоколы №№ 1, 6 и 17. Они имеют собственные названия, соответственно ICMP, TCP, UDP. Эти ip-протоколы не просты, они имеют свои особенности.

ICMP. Этот протокол предназначен не для передачи информации, а для служебного пользования. По нему хосты передают друг другу различную служебную или управляющую информацию, связанную с работой протокола tcp/ip в целом. Пакеты ICMP внутри имеют дополнительную градацию по типам (это как tcp/ip состоит из набора ip-протоколов, так и icmp тоже состоит из типов icmp). Этим типам присвоены номера. И за каждым таким типом icmp-пакета закреплено конкретное служебное/управляющее назначение.
Думаю, многим известна такая утилита, как ”ping”. С ее помощью мы можем протестировать доступность какого-либо хоста в сети (в обиходе - пропинговать). Если ответы пришли – значит хост (компьютер, сервер, и т.п.) доступен в сети. Это утилита работает так. По протоколу icmp, тип 8, отправляется запрос на удаленный хост. В ответ, хост, отправляет ответы по протоколу icmp, тип 0. Если вы захотите разрешить пользователям «пинговать», но при этом все остальные возможности icmp ограничить – то вам надо разрешить на выход пакеты тип 8 и на вход пакеты тип 0. Но чаще всего, в файрволах есть возможность более простого разрешения «пингования». Чаще всего это выглядит как в определенном параметре вводиться слово ”ping”, и в этом случае файрволл автоматом разрешает оба типа (8 и 0) icmp-пакетов.
При работе в сети (в Интернет), время от времени возникает потребность просмотра маршрута движения (трассировка) пакетов от вас к какому-нибудь хосту (см. Часть 2. DNS и Маршрутизация). Для этого есть утилиты (для ОС Windows это ”tracert”). Трассировка для ОС Windows тоже работает по icmp протоколу. При этом используется тип пакетов icmp №11. (В линукс-подобных ОС трасировка задействует udp-протокол.)

TCP и UDP. Эти два ip-протокола очень похожи. Они внутри себя тоже имею дополнительное разделение на типы. Это разделение и называется «порты». Но, в отличии от icmp – это разделение иное. Во первых – портов в tcp/udp значительно больше чем типов в icmp. Их номера (номера портов) находятся в диапазоне от 0 до 65535. Во вторых – за ними не закреплено никаких четких назначений (могут использовать какие угодно). И в третьих – при отправке пакета порт источника и порт получателя может быть разный (точнее так практически всегда). Т.е., для примера, пакет по протоколу tcp от вас выходит с порта 22345 и приходит к серверу на порт 80.
Если в плане портов tcp и udp одинаковы, то вот в методе передачи информации они отличаются. TCP – это «гарантированный» протокол. Если ваш компьютер отправил информацию по tcp, то в обязательном порядке к нему придет подтверждение, что информация получена. В случае же с udp, компьютер отправляет информацию и «забывает» об этом, т.е. дальнейшая судьба отправленных пакетов его абсолютно не интересует.

Вернемся к фильтрации. Так для фильтрации протоколов tcp и udp, параметров для фильтрации пакетов стало больше: 1- адрес источника, 2 – адрес назначения, 3 – собственно сам протокол (tcp или udp), 4 – порт источника, 5 – порт назначения.
Если «порт назначения» величина известная и фиксированная (ведь не зная порта подключения, подключится мы не сможем), то вот «порт источника» - величина чаще всего случайная (ОС сама неким случайным образом его назначает). Как следствие – очень часто параметр «порт источника» не указывается (или указывается все, 0-65535), а в некоторых файрволлах такой параметр вообще не предусмотрен.

Для примера. Допустим у нас есть в локальной сети компьютер с адресом 192.168.0.15, и ему надо дать возможность работы в Интернет. Но не любую работу разрешить, а только просмотр web-страниц и переписка по ICQ. Так уж сложилось, что большинство WEB серверов для своей работы используют протокол tcp, порт 80 (http). А для «защищенных» соединений – порт 443 (https). Сервер ICQ для работы использует протокол tcp, порт 5190. Для реализации этого примера нам нужно написать разрешающее правило фильтрации (а может быть три, если файрволл не позволяет в одном правиле указать несколько конкретных портов), которое будет содержать:
Адрес источника  - 192.168.0.15
Адрес назначения	- любой
Протокол  - tcp (или ip №6)
Порт источника	- любой (или диапазон 0-65535)
Порт назначения	- 80 (http), 443 (https), 5190 (icq)
Приведу пример, который в жизни не редко случается. Я запускаю свой браузер, набираю адрес сервера и вижу его страницы. Но когда я «пингую» его – то ответа нет (сервер отсутствует). Как такое может быть? Это результат работы файрволла, который стоит на том сервере (или где-то еще между вами, в т.ч. это может быть и файрволл на вашем компьютере). И этот файрволл настроен, например, так, что он разрешает проходит пакетам по протоколу tcp (по которым работают web-сервера), а вот пакеты по протоколу iсmp (по которым работает ping) он блокирует. Может быть и обратная ситуация, когда сервер «пингуется», а подключиться к нему не получается.

Ко всему выше написанному могу добавить следующее. Для организации выхода в Интернет нескольких компьютеров (компьютеров локальной сети), одних разрешающих правил фильтрации в файрволле недостаточно. Необходимо еще организовать трансляцию адресов (включить NAT). В следующей части как раз планируется осветить этот вопрос. Это относится к так называемым «корпоративным» файрволлам (к коим можно отнести, например, ADSL-модем с функцией маршрутизации, обслуживающего несколько компьютеров). К персональным файрволлам это не относиться.
Кстати, раз зашла речь о «корпоративных» файрволлах, добавлю. В правилах написания фильтрации у них, помимо адресов источника и назначения, протокола, портов источника и назначения (для tcp и udp), добавляются еще два параметра – входящий сетевой интерфейс и исходящий сетевой интерфейс.

Сообщение отредактировал v_user: 19 Март 2010 - 07:27

Разве "Pentium M" - это мобильно? Вот "Тополь М" - это мобильно!

#4 v_user

v_user

    Гуру

  • Гуру
  • PipPipPipPip
  • 5 382 сообщений

Отправлено 05 Декабрь 2007 - 02:54

Часть 4. Трансляция адресов (NAT)

NAT (от англ. Network Address Translation — «преобразование сетевых адресов») — это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных пакетов. ©ru.wikipedia.org

А собственно, а оно нам это надо?
Начнем «издалека». Возьмем ситуацию, когда у нас предполагается десяток, другой компьютеров, которые будут объединены в сеть с выходом в Интернет. Мы знаем, что бы работать в Инете, надо иметь ip-адрес, который выдается провайдером. Но у нас много компьютеров и один адрес им не назначишь, получается надо у провайдера просить столько адресов, сколько имеем компьютеров. Добавились компьютеры – значит опять к провайдеру выпрашивать адреса. Бредовая ситуация, не правда ли? Хотя бы потому, что ip-адресов в Интернете и так уже нехватка. И если бы все просили такие количества адресов, то развитие Интернета уже давно бы стояло, т.к. адреса бы уже давно закончились. Но ведь это еще не произошло, верно?
Да и к тому же мы знаем, что мы создаем свои локальные сети со «своими» ip-адресами, а потом подключаем свою сеть к Интернет, причем имея всего один «интернетовский» ip-адрес. Как это возможно?

Все это объясняется использованием NAT (трансляцией адресов). Что бы объяснить это понятие я дам другое определение. NAT – это замена в ip-пакете одного из ip-адресов (адреса источника или адреса назначения) на некий другой.
Возьмем рисунок 4. На рисунке мы имеем локальную сеть с адресами 192.168.0.х. В ней есть файрволл, к которому подключен Интернет с выделенным провайдером «интернетовским» адресом 195.195.195.1. И еще, для примера, приведен некий WEB-сервер в интернете, у которого ip-адрес 1.1.1.1.
Что бы это схема работала (т.е. компьютеры 1,2 выходили в Инет), на Firewall на интерфейсе 195.195.195.1 включена трансляция адресов со своего ip-адреса.
Включить трансляцию адресов со своего адреса на сетевом интерфейсе – это означает, что пакеты, которые выходят с этого сетевого интерфейса, преобразуются. Преобразование заключается в замене в пакете ip-адреса-источника на свой адрес (т.е. на адрес, который прописан на этом сетевом интерфейсе).

Распишу подробней. Вы захотели на компьютере 1 получить информация с WEB-сервера. В этом случае, комп 1 отсылает пакет с запросом информации. Характеристики этого пакета таковы: Адрес источника – 192.168.0.11, Адрес назначения – 1.1.1.1. Это пакет добежал до Firewall, прошел сквозь него, и побежал дальше в Инет. Но, когда он выходил с Firewall (выходил с сетевого интерфейса 195.195.195.1), он преобразовался, и теперь его характеристики таковы: Адрес источника – 195.195.195.1, Адрес назначения – 1.1.1.1. Вот наш пакет успешно добежал до WEB-сервера. WEB-сервер его принял, прочитал. А прочитал он, что некий компьютер с адресом 195.195.195.1 хочет информации. Этот сервер добрым оказался, собрал нужную информацию, и послал ее в ответном пакете обратно компьютеру 195.195.195.1.
А вот если бы трансляцию (nat) на Firewall забыли включить, то к WEB-серверу запрос пришел бы от компьютера 192.168.0.11. И этот сервер конечно сильно бы разозлился, но ответ возможно и послал бы. Только вот смысла в ответе нет, т.к. всемирная сеть такие адреса отправки не признает, никуда не направляет.
Но вернемся к нашему ответному пакету. Вот он вернулся к Firewall. Подходя к Firewall, ответный пакет имеет параметры: Адрес источника – 1.1.1.1, Адрес назначения – 195.195.195.1. Firewall, умница, увидел, что это ответ на запрос, инициатором которого был Комп 1. И на входе (при входе пакета на сетевой интерфейс 195.195.195.1), сделал обратное преобразование адреса, т.е. вернул на место 192.168.0.11 вместо 195.195.195.1. Т.е. на выходе от Firewall и на подходе к компьютеру 1, наш ответный пакет имеет параметры: Адрес источника – 1.1.1.1, Адрес назначения – 192.168.0.11.

Вот и весь алгоритм трансляции адреса (надеюсь, вы поняли). Хочу обратить внимание на 2 момента.
1) Трансляция адреса для компьютеров локальной сети прозрачна. Т.е. наш компьютер 1 отправляет пакеты с 192.168.0.11 на 1.1.1.1, и в ответ получает пакеты с адреса 1.1.1.1 на адрес 192.168.0.11. А то, что где-то происходит подмена адреса, он (компьютер) даже и не в курсе.
2) Наш Firewall со своей трансляцией маскирует нашу сеть. C какого бы компьютера нашей локальной сети мы не работали, для Web-сервера это всегда один компьютер – 195.195.195.1. И о том, что на самом деле работает много компьютеров – ему не понять.

Мы рассмотрели трансляцию адреса источника. Теперь рассмотрим другой вариант. Допустим, на компьютере 1 мы организовали свой Web-сервер. И теперь хотим, что бы из Интернета люди могли к нему подключаться. Как это сделать? Ведь адрес 192.168.0.11 из Инета не виден, а если набрать адрес 195.195.195.1, то наш Firewall решит, что кто-то именно к нему хочет подключиться. А т.к. на нем никаких web-серверов нет, то даст отбой.
Решение просто – надо использовать всю туже трансляцию адресов. Но по иной схеме, чем было описано выше. Нужно в настройках Firewall ему сказать, что если к тебе на интерфейс 195.195.195.1 придет запрос на подключение по порту 80 протокола tcp (по этому протоколу/порту работают web-сервера), то транслируй адрес-назначение на ip 192.168.0.11.
В этом случае, некий пользователь Интернета для подключения набирает адрес 195.195.195.1. Firewall получает пакет запроса информации, и, согласно нашим указаниям, вместо адреса назначения 195.195.195.1 в пакет подставляет адрес 192.168.0.11. И далее этот пакет, согласно правилам маршрутизации уходит к компьютеру 1. Компьютер 1 собрал нужную информацию и отправил ответный пакет. Адрес источника этого пакета – 192.168.0.11. Пакет прошел через Firewall, и уже на выходе из него (на выходном интерфейсе), адрес источника подменился обратно на адрес 195.195.195.1
Но, не забудьте! Правила трансляции не дают разрешения на прохождение через Firewall. Необходимо еще в правилах фильтрации разрешить подключение любого компьютера из Инета к компьютеру 192.168.0.11 (хотя в некоторых файрволлах правила фильтрации и трансляции объединены).

Трансляция адреса-назначения очень часто называется словосочетанием «Публикация серверов». И здесь тоже хочу обратить внимание на один момент.
Такой тип трансляции опять-таки маскирует нашу сеть (наши сервера). Ведь некий пользователь Инета отправляет запросы на адрес 195.195.195.1, и с него же получает ответы. Он в полной уверенности, что 195.195.195.1 и есть сервер, с которым он работает.

Теперь давайте вернемся назад, к части 2. Там есть задачка №2, где согласно рис.1 надо обеспечить все компьютеры Интернетом. Только решим эту задачку уже с применением трансляции адресов. В это случае решение задачки будет таким:
- Как и в части 2, компам 1,2 прописываем шлюз на Firewall
- Для компов 3,4
а) Как и в части 2, прописываем компам шлюз на Роутер.
б) Как и в части 2, прописываем Роутеру шлюз на Firewall.
в) А вот в этом пункте мы уже действуем по другому. На Роутере, на интерфейсе 192.168.0.100 мы включаем трансляцию адресов со своего ip-адреса. Т.е. включаем подмену в исходящих пакетах адреса-источника (а они будут 192.168.1.х) на 192.168.0.100. При этом, как вы понимаете, никакие таблицы маршрутов на Firewall менять не надо.

Дополнительные сведения.
Хочу сказать пару слов о таких понятиях, как «Серый адрес» и «Белый адрес». Белый адрес – это настоящий «интернетовский» ip-адрес. Серый адрес – это адрес в локальной сети. Компьютер, имеющий «серый» адрес, выходит в Интернет через NAT, где его пакетам присваивается «белый» адрес.
NAT "именно выход" в Интернет не ограничивает. А вот возможность подключения к вам из Интернет – блокирует. С одной стороны это ограничивает ваши возможности работы в Инете, но с другой стороны он дает 100% защиту, что к вам «непосредственно из-вне» никто не подключиться (но вот от того, что запущенный у вас некий вирус сам от вас выйдет Инет и по этому соединению притащит/утащит все что ему нужно, конечно защиты нет). Если подключение к вам все-таки необходимо, то надо организовать еще одну трансляцию адресов. А именно «Публикацию вашего компьютера» по необходимым вам портам (ну или по всем портам).

Прикрепленные файлы

  • Прикрепленный файл  faq_ip_ch4.jpg   36,37К   1127 Количество загрузок:

Сообщение отредактировал v_user: 05 Март 2008 - 02:43

Разве "Pentium M" - это мобильно? Вот "Тополь М" - это мобильно!

#5 sgh

sgh

    Активный пользователь

  • Продвинутый пользователь
  • PipPipPip
  • 1 912 сообщений
  • Город:Ташкент

Отправлено 05 Декабрь 2007 - 06:54

Вот готова и 3-я часть. Осталась последняя, 4-я.

Ваши мнения? Может замечания?

<{POST_SNAPBACK}>

Ты пока пиши четвертую. А мы как все осилим, тогда и покритикуем.

А так, молодчик!
Изображение

#6 v_user

v_user

    Гуру

  • Гуру
  • PipPipPipPip
  • 5 382 сообщений

Отправлено 06 Декабрь 2007 - 02:15

Вот вроде и все. Думаю, что либо еще будет откровенно лишним.

Ваше предложения и замечания?
Разве "Pentium M" - это мобильно? Вот "Тополь М" - это мобильно!

#7 FreeZe_

FreeZe_

    Новичок

  • Пользователи
  • Pip
  • 11 сообщений

Отправлено 08 Декабрь 2007 - 01:55

Задача 3. Все компьютеры должны выходить в Интернет, все компьютеры должны общаться меж собой.
Да, сложная задачка. Вот если бы у нас Роутер и Firewall были одним устройством – то это просто, решение в такой ситуации описано в Задаче 1. В нашем же случае,  предлагается такое решение.
а) Для начала «обеспечиваем» все компьютеры Интернетом по алгоритму, описанному в решении задачи 2.
б) После выполнение подпункта «а», мы получаем интернет на все компьютеры, плюс, изначально, комп 1 и 2 видят друг друга, и компьютеры 3, 4 видят друг друга. Осталось заставить компьютеры двух разных подсетей видеть друг друга.
Проанализировав полученную ситуацию, можно сделать вывод, что на самом деле компьютеры 1,2 и 3,4 уже могут друг с другом общаться. Поскольку на компьютерах 3 и 4 указан «шлюз» на Роутер, а Роутер имеет выход в подсеть 192.168.0.0, то компы 3 и 4 могут отправлять информацию компьютерам 1 и 2. Но вот ответ пойдет не обычно. Т.к. наши компы 1 и 2 не знают где находится подсеть 192.168.1.0, а шлюз у них по умолчанию – Firewall, то ответные пакеты пойдут к Firewall. Т.к. Firewall-у мы уже указали путь до комов 3 и 4, то он ответные пакеты и отправит куда надо. И в результате маршрут пакетов в одну сторону и в другую получается разный. Такое положение вещей в локальной сети («разномаршрутный туды-сюды») вероятней всего не прокатит (проверить бы). Если все-таки не прокатило, предлагается решение, заключающийся в изменении таблицы маршрутизации на компьютерах 1 и 2.

     Сетевой адрес      Маска сети    Адрес шлюза      Интерфейс  
Комп1:   192.168.1.0   255.255.255.0  192.168.0.100   192.168.0.11  
Комп2:   192.168.1.0   255.255.255.0  192.168.0.100   192.168.0.12  

Я, признаться, не силён в этом (это должно быть понятно из того что я читаю FAQ =)), но чисто логически, пакеты от 3 и 4, посланные 1 и/или 2, роутером будут перенаправляться на Firewall, т.к.

б) На Роутере на интерфейсе 192.168.0.100 прописать «шлюз», который есть адрес Firewall, т.е. 192.168.0.1.

Разве не так?

#8 v_user

v_user

    Гуру

  • Гуру
  • PipPipPipPip
  • 5 382 сообщений

Отправлено 09 Декабрь 2007 - 08:53

Нет. Когда прописывались адреса на Роутере, то система автоматом прописала маршрут для сети 192.168.0.0/24 на шлюз 192.168.0.100.
Когда мы "прописали шлюз", это значит что система прописала "Шлюз по умолчанию", т.е. для сети 0.0.0.0 msk 0.0.0.0 на шлюз 192.168.0.1.
При одинаковых метках (или тем более если у 1-го маршрута приоритет выше), пакеты для адресов 192.168.0.х отроботаются по 1-му маршруту.

сделай у себя route print. Увидишь как раз такую картину. (Хотя можешь и не делать, пример такой приведен и как раз про эти две строчки под ним и говориться)

Сообщение отредактировал v_user: 09 Декабрь 2007 - 08:59

Разве "Pentium M" - это мобильно? Вот "Тополь М" - это мобильно!

#9 Jenia Bodiul

Jenia Bodiul

    Новичок

  • Пользователи
  • Pip
  • 35 сообщений

Отправлено 07 Март 2008 - 04:59

Задача №3 пожоже на мою.
У меня вопос если рутер, модем, файрвол, одно устройство обязательно ли IP соседних компьютеров прописывать как шлюз или IP модема(рутера) вполне достаточно?

#10 v_user

v_user

    Гуру

  • Гуру
  • PipPipPipPip
  • 5 382 сообщений

Отправлено 11 Март 2008 - 07:21

Задача №3 пожоже на мою.
У меня вопос если рутер, модем, файрвол, одно устройство обязательно ли IP соседних компьютеров прописывать как  шлюз или IP модема(рутера) вполне достаточно?

<{POST_SNAPBACK}>

Задача три - это для рис. 1. А ваш случай - это рис. 3. И решение аналогично задачке 1. Все шлюзы компьютеров настраиваются на модем-роутер.

Сообщение отредактировал v_user: 11 Март 2008 - 07:24

Разве "Pentium M" - это мобильно? Вот "Тополь М" - это мобильно!

#11 XenonTomb

XenonTomb

    Активный пользователь

  • Продвинутый пользователь
  • PipPipPip
  • 1 794 сообщений
  • Пол:Мужчина
  • Город:г.Николаев, Украина

Отправлено 29 Май 2008 - 01:42

Вот такую интересную инфу нашел, может кому-то пригодится.

Почему долго обновляется сетевое окружение?
Ответ: Кратко: Так и будет, пока все пользователи не настроят правильно свои компьютеры.
Подробно: Проблемы обновления "Сетевого окружения" происходят из принципов его работы:
В "сетевом окружении" видны машины с установленной "Службой доступа к файлам и принтерам". Список формируется и хранится на одной из этих машин. На хранителе списка запускается специальный компонент "Службы доступа к файлам и принтерам" - "Обозреватель сети" (Master Browser). Машина - хранитель списка выбирается путем "голосования" из первых 20 отозвавшихся. Вероятность выбора конкретной машины зависит от "весового коэффициента" установленной на ней ОС. Win9х имеет более низкий приоритет чем WinNT/2000/XP, которая в свою очередь имеет более низкий приоритет чем WinNT/2000/XP Server и т д. В Unix-подобных системах "весовой коэффициент" регулируется. В идеале, все должно работать так: со временем, машина, дольше всего (постоянно) находящаяся в сети становиться ее "обозревателем". Каждый новый компьютер, при входе в сеть посылает широковещательный запрос, "кто здесь Обозреватель", и, получив ответ, регистрирует свое имя на этой машине. При выходе из сети компьютер посылает извещение "обозревателю" об исключении себя из списка. В случае же неожиданного зависания, такое извещение не посылается, и в "сетевом окружении" образуется фантом. Если же неожиданно исчезает "обозреватель", то назначаются перевыборы, которые могут длиться до нескольких минут. Самое неприятное - это когда машина с "обозревателем" не исчезает, а подвисает - в этом случае "сетевое окружение" замораживается вместе с ней. Кроме того, в протяженных сетях, вновь вошедшая машина может не дождаться за установленный интервал времени отзыва от существующего "обозревателя" и форсировать перевыборы, это может привести к появлению 2х "обозревателей", повторным перевыборам, и так далее. В течение всего этого времени "сетевое окружение" будет недоступно.
Единственный способ повысить четкость работы "сетевого окружения" - запретить ВСЕМ машинам пользователей (которые произвольно включаются и выключаются) становиться "обозревателями сети". Тогда "Обозревателем" всегда будет одна из машин Компании, а они работают круглосуточно и отличаются стабильностью.
Для Windows 9х/ME надо у "Службы доступа к файлами принтерам"-"Координатор сети"-"Откл"
В Windows 2000/XP необходимо изменить пару значений реестра в соответствии с этим дампом:

REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser\Parameters]
"MaintainServerList"="no"
"IsDomainMaster"="no"

Сообщение отредактировал XenonTomb: 29 Май 2008 - 01:44

AMD Athlon II X4 620 (Propus) 2,6 ГГц // кулер Noctua NH-U9B
Gigabyte GA-M720-US3 (nForce 720D, АМ2+)
DDR2-800 CL5 Kingston 2x2 Gb
Palit GeForce 9600GT 512 Мб GDDR3
HDD Samsung SP2004C, Samsung HD642JJ, WD WD10EADS (M2B) // DVD-RW Sony Optiarc AD7240S // CR Gigabyte 15-in-1
Корпус Chieftec Smart SH-01 // БП Chieftec CFT-500-A12S // ИБП Powercom KIN 525A
Моник Samsung SyncMaster 2032 MW (с ТВ) // Звук Genius SP-HF 1250X 2.0
Wi-Fi роутер TP-Link TL-WR642G
---------------------------------------
Нетбук MSI Wind U90X-056UA (8.9" LED/Intel Atom N270/i945GSE+ICH7M/RAM 1,5 GB/HDD 2,5" 120GB/LAN/Wi-Fi/BT/Cam 0,3 Mp/CR 4in1)

#12 v_user

v_user

    Гуру

  • Гуру
  • PipPipPipPip
  • 5 382 сообщений

Отправлено 30 Май 2008 - 06:08

Да, XenonTomb, это интересная инфа. Только это не для этого f.a.q.

На самом деле нужно создать иную чавошку. Про работу Клиента Сети Макрософт, про эту Службу доступа к папкам и принтерам, Службу Обзора компьютеров, да и вообще как расшарить и увидеть общие папки/принтеры.
Этот вопрос ведь не про tcp/ip. Все эти службы не привязаны к контретному протоколу. И очень часто мы видим как люди путают проблемы работы tcp/ip и проблемы работы Сети Майкрософт.

У меня давно сидит мысль написать ЧАВОшку на это тему, но то времени нет, то не знаю как подступиться к написанию.
Разве "Pentium M" - это мобильно? Вот "Тополь М" - это мобильно!

#13 XenonTomb

XenonTomb

    Активный пользователь

  • Продвинутый пользователь
  • PipPipPip
  • 1 794 сообщений
  • Пол:Мужчина
  • Город:г.Николаев, Украина

Отправлено 30 Май 2008 - 06:59

Угу, фак надо бы про сети мелкософта отдельный. Я просто не знал куда притулить :)
AMD Athlon II X4 620 (Propus) 2,6 ГГц // кулер Noctua NH-U9B
Gigabyte GA-M720-US3 (nForce 720D, АМ2+)
DDR2-800 CL5 Kingston 2x2 Gb
Palit GeForce 9600GT 512 Мб GDDR3
HDD Samsung SP2004C, Samsung HD642JJ, WD WD10EADS (M2B) // DVD-RW Sony Optiarc AD7240S // CR Gigabyte 15-in-1
Корпус Chieftec Smart SH-01 // БП Chieftec CFT-500-A12S // ИБП Powercom KIN 525A
Моник Samsung SyncMaster 2032 MW (с ТВ) // Звук Genius SP-HF 1250X 2.0
Wi-Fi роутер TP-Link TL-WR642G
---------------------------------------
Нетбук MSI Wind U90X-056UA (8.9" LED/Intel Atom N270/i945GSE+ICH7M/RAM 1,5 GB/HDD 2,5" 120GB/LAN/Wi-Fi/BT/Cam 0,3 Mp/CR 4in1)

#14 icegreg

icegreg

    Активный пользователь

  • Продвинутый пользователь
  • PipPipPip
  • 855 сообщений
  • Пол:Мужчина
  • Город:Москва, ул.Колодезная (где-TO здесь), Малая Остроумовская

Отправлено 31 Май 2008 - 02:28

Доку стоит написать.

#15 GAMovER Mgn

GAMovER Mgn

    Новичок

  • Пользователи
  • Pip
  • 3 сообщений

Отправлено 05 Ноябрь 2008 - 07:15

Хмм.. Интересная информация, но, тем не менее, если ещё не забросили тему, нужна конкретная помощь :unsure:
Хотим играть нормально (с батлланом и хамачи проблемы) по сети в игры, увы, разные подсети и игры не видят друг друга:( Не все встаивают в свои игры коннект по ip :angry:
Возможно ли настроить маршрутизацию, или что там, чтобы компьютеры видели друг друга как в одной подсети?
Если проложить друг к другу маршруты, поможет? :mellow:
Например.
у меня ip 10.145.2.247, шлюз 10.145.2.1
У человека с которым хотим сыграть ip 10.144.20.230, шлюз 10.144.0.1

Если мы введём соответственно
route add -p 10.0.0.0 mask 255.0.0.0 10.144.0.1

и route add -p 10.0.0.0 mask 255.0.0.0 10.145.2.1
это поможет?
Подскажите, пожалуйста :blush:

#16 red13

red13

    Новичок

  • Пользователи
  • Pip
  • 26 сообщений

Отправлено 05 Ноябрь 2008 - 10:23

Хмм.. Интересная информация, но, тем не менее, если ещё не забросили тему, нужна конкретная помощь :unsure:
Хотим играть нормально (с батлланом и хамачи проблемы) по сети в игры, увы, разные подсети и игры не видят друг друга:( Не все встаивают в свои игры коннект по ip :angry:
Возможно ли настроить маршрутизацию, или что там, чтобы компьютеры видели друг друга как в одной подсети?
Если проложить друг к другу маршруты, поможет? :mellow:
Например.
у меня ip 10.145.2.247, шлюз 10.145.2.1
У человека с которым хотим сыграть ip 10.144.20.230, шлюз 10.144.0.1

Если мы введём соответственно
route add -p 10.0.0.0 mask 255.0.0.0 10.144.0.1

и route add -p 10.0.0.0 mask 255.0.0.0 10.145.2.1
это поможет?
Подскажите, пожалуйста :blush:

<{POST_SNAPBACK}>

Хммм... а какая у тебя маска сети и у человека? читай внимательнее!

#17 v_user

v_user

    Гуру

  • Гуру
  • PipPipPipPip
  • 5 382 сообщений

Отправлено 05 Ноябрь 2008 - 01:11

GAMovER Mgn
Здесь обсуждается написанная выше ЧАВОшка.

Твой вопрос не относиться к этой теме. Создай новую, отдельную тему.
Разве "Pentium M" - это мобильно? Вот "Тополь М" - это мобильно!

#18 nizachto

nizachto

    Активный пользователь

  • Гуру
  • PipPipPip
  • 1 080 сообщений
  • Пол:Мужчина
  • Город:Столица Православия

Отправлено 25 Август 2009 - 11:57

<span style='font-size:14pt;line-height:100%'>Часть 1. IP-адрес и маска.</span>


Тут есть правда один момент, который для меня пока остается не выясненным (если честно, то не особо-то и сильно я искал ответ). Вот наш пример ip-подсети: 10.0.40.0/21. Адреса 10.0.40.0 и 10.0.47.255 зарезервированы как первый и последний адреса в подсети. Но вот, например адреса: 10.0.40.255, 10.0.41.0, 10.0.41.255, 10.0.42.0, и т.д. – вполне могут быть реальными адресами реальных хостов согласно теории. Но с другой стороны все знают, что 0 и 255 на конце для хостов никем не используется. Так как правильно? Если у кого есть ссылка на ответ, просьба поделиться (для себя я решил голову не ломать – а просто не использую такие адреса).


это нормальные рабочие адреса допустим в двоичном коде для этой подсети широковещательная : 10.0. 00110{}111.11111111 {}-указал разграничитель адреса сети и хоста для префикса 21
это и есть адрес 10.0.47.255

теперь рассмортим для адреса 10.0.40.255 : 10.0.00110{}000.11111111,
для широковещательной рассылки внутри подсети нужен адрес такой, чтобы все значения адреса хоста были единицы, а здесь не так
потому вполне рабочий адрес.
тоже самое и для случая адреса сети где все значения-0

существуют и более "продвинутые широковещательные адреса" скажем при поиске хостом DHCP- сервера , он отсылает запрос с адресом 255.255.255.255.

Сообщение отредактировал nizachto: 26 Август 2009 - 09:02

Intel E7200 2.53Ggz, 266FSB,@400FSBx9.5, 3.8Ggz
cpu voltage 1.45V.
CoolerMaster Gemin IIS
Gigabyte EP35 DS3
2xDIMM Corsair 1024Mb 400FSB 6400
PCI-E 512 ATI palit 4850
Thermaltake 500W

#19 barada5

barada5

    Новичок

  • Пользователи
  • Pip
  • 28 сообщений

Отправлено 01 Сентябрь 2009 - 03:44

Недавно надоело тупо играть в игрушки, думал почитать что-нибудь нужное на компьютерную тематику и поразбираться. Факов для новечков в стеке протоколов tcp\ip хватает, и я прочитал примерно с десяток, но этот, я вам скажу, прямо в точку. Всё понятно, кратко и по делу,написано понятным языком.
Это конечно далеко не вся информация по этой теме, пишут же профессора учебники по 300 страниц замудрённого текста. но туда нубам лучше не соваться, а сначала прочитать вашу информацию. Спасибо афтАру за проделанную работу !

#20 Vijit

Vijit

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений
  • Пол:Мужчина

Отправлено 07 Октябрь 2009 - 06:08

Не сразу понял, что к чему.. Особенно фраза

Адреса одной подсети – это те, у которых значения цифр в адресе «напротив соответствующих единиц в маске» совпадают

повергла в ступор :blink: . Но тем не менее когда дошло - как озарение прям :) За объяснение записи маски через слеш - отдельное спасибо :thumbup2:
Здесь мне кажется, ошибка

Часть 1. IP-адрес и маска.
...
- В примере выше я взял хост – 10.0.45.17/21. Написал, что он входит в подсеть - 10.0.45.0/21. И написал, что адреса этой подсети в диапазоне 10.0.45.0 – 10.0.47.255 и всего их 2048

Диапазон адресов - 10.0.40.0 – 10.0.47.255. Т.е. подсеть начала диапазона - 40, а не 45, как у вас сказано. И в примере на самом деле вы написали, что "он входит в сеть 10.0.40.0/21". Вот такие неувязочки с числами при первом прочтении сбивают с толку :)

По части 4. NAT возник вопрос:
Допустим комп 1 отправил запрос на веб-сервер (рис.4). NAT преобразовал пакет, подписался своим IP, отправил дальше. Пока веб-сервер собирал инфу, комп 2 тоже послал на него запрос. NAT опять подписал пакет своим IP и отправил дальше. Но вот теперь когда пойдут назад ответы, как NAT определит, для какого компа пришел текущий ответ? Веб-сервер может ответить компу 2 раньше, чем компу 1. Какая-то маркировка в пакете?

Сообщение отредактировал Vijit: 07 Октябрь 2009 - 06:57





Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей

Rambler's Top100