Основы компьютерных сетей. Тема №1. Основные сетевые термины и сетевые модели / Habr
Всем привет. На днях возникла идея написать статьи про основы компьютерных сетей, разобрать работу самых важных протоколов и как строятся сети простым языком. Заинтересовавшихся приглашаю под кат.Немного оффтопа: Приблизительно месяц назад сдал экзамен CCNA (на 980/1000 баллов) и осталось много материала за год моей подготовки и обучения. Учился я сначала в академии Cisco около 7 месяцев, а оставшееся время вел конспекты по всем темам, которые были мною изучены. Также консультировал многих ребят в области сетевых технологий и заметил, что многие наступают на одни и те же грабли, в виде пробелов по каким-то ключевым темам. На днях пару ребят попросили меня объяснить, что такое сети и как с ними работать. В связи с этим решил максимально подробно и простым языком описать самые ключевые и важные вещи. Статьи будут полезны новичкам, которые только встали на путь изучения. Но, возможно, и бывалые сисадмины подчеркнут из этого что-то полезное. Так как я буду идти по программе CCNA, это будет очень полезно тем людям, которые готовятся к сдаче. Можете держать статьи в виде шпаргалок и периодически их просматривать. Я во время обучения делал конспекты по книгам и периодически читал их, чтобы освежать знания.
Итак, начнем с основных сетевых терминов.
Что такое сеть? Это совокупность устройств и систем, которые подключены друг к другу (логически или физически) и общающихся между собой. Сюда можно отнести сервера, компьютеры, телефоны, маршрутизаторы и так далее. Размер этой сети может достигать размера Интернета, а может состоять всего из двух устройств, соединенных между собой кабелем. Чтобы не было каши, разделим компоненты сети на группы:
1) Оконечные узлы: Устройства, которые передают и/или принимают какие-либо данные. Это могут быть компьютеры, телефоны, сервера, какие-то терминалы или тонкие клиенты, телевизоры.
2) Промежуточные устройства: Это устройства, которые соединяют оконечные узлы между собой. Сюда можно отнести коммутаторы, концентраторы, модемы, маршрутизаторы, точки доступа Wi-Fi.
3) Сетевые среды: Это те среды, в которых происходит непосредственная передача данных. Сюда относятся кабели, сетевые карточки, различного рода коннекторы, воздушная среда передачи. Если это медный кабель, то передача данных осуществляется при помощи электрических сигналов. У оптоволоконных кабелей, при помощи световых импульсов. Ну и у беспроводных устройств, при помощи радиоволн.
Посмотрим все это на картинке:
На данный момент надо просто понимать отличие. Детальные отличия будут разобраны позже.
Теперь, на мой взгляд, главный вопрос: Для чего мы используем сети? Ответов на этот вопрос много, но я освещу самые популярные, которые используются в повседневной жизни:
1) Приложения: При помощи приложений отправляем разные данные между устройствами, открываем доступ к общим ресурсам. Это могут быть как консольные приложения, так и приложения с графическим интерфейсом.
2) Сетевые ресурсы: Это сетевые принтеры, которыми, к примеру, пользуются в офисе или сетевые камеры, которые просматривает охрана, находясь в удаленной местности.
3) Хранилище: Используя сервер или рабочую станцию, подключенную к сети, создается хранилище доступное для других. Многие люди выкладывают туда свои файлы, видео, картинки и открывают общий доступ к ним для других пользователей. Пример, который на ходу приходит в голову, — это google диск, яндекс диск и тому подобные сервисы.
4) Резервное копирование: Часто, в крупных компаниях, используют центральный сервер, куда все компьютеры копируют важные файлы для резервной копии. Это нужно для последующего восстановления данных, если оригинал удалился или повредился. Методов копирования огромное количество: с предварительным сжатием, кодированием и так далее.
5) VoIP: Телефония, работающая по протоколу IP. Применяется она сейчас повсеместно, так как проще, дешевле традиционной телефонии и с каждым годом вытесняет ее.
Из всего списка, чаще всего многие работали именно с приложениями. Поэтому разберем их более подробно. Я старательно буду выбирать только те приложения, которые как-то связаны с сетью. Поэтому приложения типа калькулятора или блокнота, во внимание не беру.
1) Загрузчики. Это файловые менеджеры, работающие по протоколу FTP, TFTP. Банальный пример — это скачивание фильма, музыки, картинок с файлообменников или иных источников. К этой категории еще можно отнести резервное копирование, которое автоматически делает сервер каждую ночь. То есть это встроенные или сторонние программы и утилиты, которые выполняют копирование и скачивание. Данный вид приложений не требует прямого человеческого вмешательства. Достаточно указать место, куда сохранить и скачивание само начнется и закончится.
Скорость скачивания зависит от пропускной способности. Для данного типа приложений это не совсем критично. Если, например, файл будет скачиваться не минуту, а 10, то тут только вопрос времени, и на целостности файла это никак не скажется. Сложности могут возникнуть только когда нам надо за пару часов сделать резервную копию системы, а из-за плохого канала и, соответственно, низкой пропускной способности, это занимает несколько дней. Ниже приведены описания самых популярных протоколов данной группы:
FTP- это стандартный протокол передачи данных с установлением соединения. Работает по протоколу TCP (этот протокол в дальнейшем будет подробно рассмотрен). Стандартный номер порта 21. Чаще всего используется для загрузки сайта на веб-хостинг и выгрузки его. Самым популярным приложением, работающим по этому протоколу — это Filezilla. Вот так выглядит само приложение:
TFTP- это упрощенная версия протокола FTP, которая работает без установления соединения, по протоколу UDP. Применяется для загрузки образа бездисковыми рабочими станциями. Особенно широко используется устройствами Cisco для той же загрузки образа и резервных копий.
Интерактивные приложения. Приложения, позволяющие осуществить интерактивный обмен. Например, модель «человек-человек». Когда два человека, при помощи интерактивных приложений, общаются между собой или ведут общую работу. Сюда относится: ICQ, электронная почта, форум, на котором несколько экспертов помогают людям в решении вопросов. Или модель «человек-машина». Когда человек общается непосредственно с компьютером. Это может быть удаленная настройка базы, конфигурация сетевого устройства. Здесь, в отличие от загрузчиков, важно постоянное вмешательство человека. То есть, как минимум, один человек выступает инициатором. Пропускная способность уже более чувствительна к задержкам, чем приложения-загрузчики. Например, при удаленной конфигурации сетевого устройства, будет тяжело его настраивать, если отклик от команды будет в 30 секунд.
Приложения в реальном времени. Приложения, позволяющие передавать информацию в реальном времени. Как раз к этой группе относится IP-телефония, системы потокового вещания, видеоконференции. Самые чувствительные к задержкам и пропускной способности приложения. Представьте, что вы разговариваете по телефону и то, что вы говорите, собеседник услышит через 2 секунды и наоборот, вы от собеседника с таким же интервалом. Такое общение еще и приведет к тому, что голоса будут пропадать и разговор будет трудноразличимым, а в видеоконференция превратится в кашу. В среднем, задержка не должна превышать 300 мс. К данной категории можно отнести Skype, Lync, Viber (когда совершаем звонок).
Теперь поговорим о такой важной вещи, как топология. Она делится на 2 большие категории: физическая и логическая. Очень важно понимать их разницу. Итак, физическая топология — это как наша сеть выглядит. Где находятся узлы, какие сетевые промежуточные устройства используются и где они стоят, какие сетевые кабели используются, как они протянуты и в какой порт воткнуты.
Теперь посмотрим и разберем виды топологии:
1) Топология с общей шиной (англ. Bus Topology)
Одна из первых физических топологий. Суть состояла в том, что к одному длинному кабелю подсоединяли все устройства и организовывали локальную сеть. На концах кабеля требовались терминаторы. Как правило — это было сопротивление на 50 Ом, которое использовалось для того, чтобы сигнал не отражался в кабеле. Преимущество ее было только в простоте установки. С точки зрения работоспособности была крайне не устойчивой. Если где-то в кабеле происходил разрыв, то вся сеть оставалась парализованной, до замены кабеля.
В данной топологии каждое устройство подключается к 2-ум соседним. Создавая, таким образом, кольцо. Здесь логика такова, что с одного конца компьютер только принимает, а с другого только отправляет. То есть, получается передача по кольцу и следующий компьютер играет роль ретранслятора сигнала. За счет этого нужда в терминаторах отпала. Соответственно, если где-то кабель повреждался, кольцо размыкалось и сеть становилась не работоспособной. Для повышения отказоустойчивости, применяют двойное кольцо, то есть в каждое устройство приходит два кабеля, а не один. Соответственно, при отказе одного кабеля, остается работать резервный.
3) Топология звезда (англ. Star Topology)
Все устройства подключаются к центральному узлу, который уже является ретранслятором. В наше время данная модель используется в локальных сетях, когда к одному коммутатору подключаются несколько устройств, и он является посредником в передаче. Здесь отказоустойчивость значительно выше, чем в предыдущих двух. При обрыве, какого либо кабеля, выпадает из сети только одно устройство. Все остальные продолжают спокойно работать. Однако если откажет центральное звено, сеть станет неработоспособной.
4)Полносвязная топология (англ. Full-Mesh Topology)
Все устройства связаны напрямую друг с другом. То есть с каждого на каждый. Данная модель является, пожалуй, самой отказоустойчивой, так как не зависит от других. Но строить сети на такой модели сложно и дорого. Так как в сети, в которой минимум 1000 компьютеров, придется подключать 1000 кабелей на каждый компьютер.
5)Неполносвязная топология (англ. Partial-Mesh Topology)
Как правило, вариантов ее несколько. Она похожа по строению на полносвязную топологию. Однако соединение построено не с каждого на каждый, а через дополнительные узлы. То есть узел A, связан напрямую только с узлом B, а узел B связан и с узлом A, и с узлом C. Так вот, чтобы узлу A отправить сообщение узлу C, ему надо отправить сначала узлу B, а узел B в свою очередь отправит это сообщение узлу C. В принципе по этой топологии работают маршрутизаторы. Приведу пример из домашней сети. Когда вы из дома выходите в Интернет, у вас нет прямого кабеля до всех узлов, и вы отправляете данные своему провайдеру, а он уже знает куда эти данные нужно отправить.
6) Смешанная топология (англ. Hybrid Topology)
Самая популярная топология, которая объединила все топологии выше в себя. Представляет собой древовидную структуру, которая объединяет все топологии. Одна из самых отказоустойчивых топологий, так как если у двух площадок произойдет обрыв, то парализована будет связь только между ними, а все остальные объединенные площадки будут работать безотказно. На сегодняшний день, данная топология используется во всех средних и крупных компаниях.
И последнее, что осталось разобрать — это сетевые модели. На этапе зарождения компьютеров, у сетей не было единых стандартов. Каждый вендор использовал свои проприетарные решения, которые не работали с технологиями других вендоров. Конечно, оставлять так было нельзя и нужно было придумывать общее решение. Эту задачу взвалила на себя международная организация по стандартизации (ISO — International Organization for Standartization). Они изучали многие, применяемые на то время, модели и в результате придумали модель OSI, релиз которой состоялся в 1984 году. Проблема ее была только в том, что ее разрабатывали около 7 лет. Пока специалисты спорили, как ее лучше сделать, другие модели модернизировались и набирали обороты. В настоящее время модель OSI не используют. Она применяется только в качестве обучения сетям. Мое личное мнение, что модель OSI должен знать каждый уважающий себя админ как таблицу умножения. Хоть ее и не применяют в том виде, в каком она есть, принципы работы у всех моделей схожи с ней.
Состоит она из 7 уровней и каждый уровень выполняет определенную ему роль и задачи. Разберем, что делает каждый уровень снизу вверх:
1) Физический уровень (Physical Layer): определяет метод передачи данных, какая среда используется (передача электрических сигналов, световых импульсов или радиоэфир), уровень напряжения, метод кодирования двоичных сигналов.
2) Канальный уровень (Data Link Layer): он берет на себя задачу адресации в пределах локальной сети, обнаруживает ошибки, проверяет целостность данных. Если слышали про MAC-адреса и протокол «Ethernet», то они располагаются на этом уровне.
3) Сетевой уровень (Network Layer): этот уровень берет на себя объединения участков сети и выбор оптимального пути (т.е. маршрутизация). Каждое сетевое устройство должно иметь уникальный сетевой адрес в сети. Думаю, многие слышали про протоколы IPv4 и IPv6. Эти протоколы работают на данном уровне.
4) Транспортный уровень (Transport Layer): Этот уровень берет на себя функцию транспорта. К примеру, когда вы скачиваете файл с Интернета, файл в виде сегментов отправляется на Ваш компьютер. Также здесь вводятся понятия портов, которые нужны для указания назначения к конкретной службе. На этом уровне работают протоколы TCP (с установлением соединения) и UDP (без установления соединения).
5) Сеансовый уровень (Session Layer): Роль этого уровня в установлении, управлении и разрыве соединения между двумя хостами. К примеру, когда открываете страницу на веб-сервере, то Вы не единственный посетитель на нем. И вот для того, чтобы поддерживать сеансы со всеми пользователями, нужен сеансовый уровень.
6) Уровень представления (Presentation Layer): Он структурирует информацию в читабельный вид для прикладного уровня. Например, многие компьютеры используют таблицу кодировки ASCII для вывода текстовой информации или формат jpeg для вывода графического изображения.
7) Прикладной уровень (Application Layer): Наверное, это самый понятный для всех уровень. Как раз на этом уроне работают привычные для нас приложения — e-mail, браузеры по протоколу HTTP, FTP и остальное.
Самое главное помнить, что нельзя перескакивать с уровня на уровень (Например, с прикладного на канальный, или с физического на транспортный). Весь путь должен проходить строго с верхнего на нижний и с нижнего на верхний. Такие процессы получили название инкапсуляция (с верхнего на нижний) и деинкапсуляция (с нижнего на верхний). Также стоит упомянуть, что на каждом уровне передаваемая информация называется по-разному.
На прикладном, представления и сеансовым уровнях, передаваемая информация обозначается как PDU (Protocol Data Units). На русском еще называют блоки данных, хотя в моем круге их называют просто данные).
Информацию транспортного уровня называют сегментами. Хотя понятие сегменты, применимо только для протокола TCP. Для протокола UDP используется понятие — датаграмма. Но, как правило, на это различие закрывают глаза.
На сетевом уровне называют IP пакеты или просто пакеты.
И на канальном уровне — кадры. С одной стороны это все терминология и она не играет важной роли в том, как вы будете называть передаваемые данные, но для экзамена эти понятия лучше знать. Итак, приведу свой любимый пример, который помог мне, в мое время, разобраться с процессом инкапсуляции и деинкапусуляции:
1) Представим ситуацию, что вы сидите у себя дома за компьютером, а в соседней комнате у вас свой локальный веб-сервер. И вот вам понадобилось скачать файл с него. Вы набираете адрес страницы вашего сайта. Сейчас вы используете протокол HTTP, которые работает на прикладном уровне. Данные упаковываются и спускаются на уровень ниже.
2) Полученные данные прибегают на уровень представления. Здесь эти данные структурируются и приводятся в формат, который сможет быть прочитан на сервере. Запаковывается и спускается ниже.
3) На этом уровне создается сессия между компьютером и сервером.
4) Так как это веб сервер и требуется надежное установление соединения и контроль за принятыми данными, используется протокол TCP. Здесь мы указываем порт, на который будем стучаться и порт источника, чтобы сервер знал, куда отправлять ответ. Это нужно для того, чтобы сервер понял, что мы хотим попасть на веб-сервер (стандартно — это 80 порт), а не на почтовый сервер. Упаковываем и спускаем дальше.
5) Здесь мы должны указать, на какой адрес отправлять пакет. Соответственно, указываем адрес назначения (пусть адрес сервера будет 192.168.1.2) и адрес источника (адрес компьютера 192.168.1.1). Заворачиваем и спускаем дальше.
6) IP пакет спускается вниз и тут вступает в работу канальный уровень. Он добавляет физические адреса источника и назначения, о которых подробно будет расписано в последующей статье. Так как у нас компьютер и сервер в локальной среде, то адресом источника будет являться MAC-адрес компьютера, а адресом назначения MAC-адрес сервера (если бы компьютер и сервер находились в разных сетях, то адресация работала по-другому). Если на верхних уровнях каждый раз добавлялся заголовок, то здесь еще добавляется концевик, который указывает на конец кадра и готовность всех собранных данных к отправке.
7) И уже физический уровень конвертирует полученное в биты и при помощи электрических сигналов (если это витая пара), отправляет на сервер.
Процесс деинкапсуляции аналогичен, но с обратной последовательностью:
1) На физическом уровне принимаются электрические сигналы и конвертируются в понятную битовую последовательность для канального уровня.
2) На канальном уровне проверяется MAC-адрес назначения (ему ли это адресовано). Если да, то проверяется кадр на целостность и отсутствие ошибок, если все прекрасно и данные целы, он передает их вышестоящему уровню.
3) На сетевом уровне проверяется IP адрес назначения. И если он верен, данные поднимаются выше. Не стоит сейчас вдаваться в подробности, почему у нас адресация на канальном и сетевом уровне. Это тема требует особого внимания, и я подробно объясню их различие позже. Главное сейчас понять, как данные упаковываются и распаковываются.
4) На транспортном уровне проверяется порт назначения (не адрес). И по номеру порта, выясняется какому приложению или сервису адресованы данные. У нас это веб-сервер и номер порта — 80.
5) На этом уровне происходит установление сеанса между компьютером и сервером.
6) Уровень представления видит, как все должно быть структурировано и приводит информацию в читабельный вид.
7) И на этом уровне приложения или сервисы понимают, что надо выполнить.
Много было написано про модель OSI. Хотя я постарался быть максимально краток и осветить самое важное. На самом деле про эту модель в Интернете и в книгах написано очень много и подробно, но для новичков и готовящихся к CCNA, этого достаточно. Из вопросов на экзамене по данной модели может быть 2 вопроса. Это правильно расположить уровни и на каком уровне работает определенный протокол.
Как было написано выше, модель OSI в наше время не используется. Пока разрабатывалась эта модель, все большую популярность получал стек протоколов TCP/IP. Он был значительно проще и завоевал быструю популярность.
Вот так этот стек выглядит:
Как видно, он отличается от OSI и даже сменил название некоторых уровней. По сути, принцип у него тот же, что и у OSI. Но только три верхних уровня OSI: прикладной, представления и сеансовый объединены у TCP/IP в один, под названием прикладной. Сетевой уровень сменил название и называется — Интернет. Транспортный остался таким же и с тем же названием. А два нижних уровня OSI: канальный и физический объединены у TCP/IP в один с названием — уровень сетевого доступа. Стек TCP/IP в некоторых источниках обозначают еще как модель DoD (Department of Defence). Как говорит википедия, была разработана Министерством обороны США. Этот вопрос встретился мне на экзамене и до этого я про нее ничего не слышал. Соответственно вопрос: «Как называется сетевой уровень в модели DoD?», ввел меня в ступор. Поэтому знать это полезно.
Было еще несколько сетевых моделей, которые, какое то время держались. Это был стек протоколов IPX/SPX. Использовался с середины 80-х годов и продержался до конца 90-х, где его вытеснила TCP/IP. Был реализован компанией Novell и являлся модернизированной версией стека протоколов Xerox Network Services компании Xerox. Использовался в локальных сетях долгое время. Впервые IPX/SPX я увидел в игре «Казаки». При выборе сетевой игры, там предлагалось несколько стеков на выбор. И хоть выпуск этой игры был, где то в 2001 году, это говорило о том, что IPX/SPX еще встречался в локальных сетях.
Еще один стек, который стоит упомянуть — это AppleTalk. Как ясно из названия, был придуман компанией Apple. Создан был в том же году, в котором состоялся релиз модели OSI, то есть в 1984 году. Продержался он совсем недолго и Apple решила использовать вместо него TCP/IP.
Также хочу подчеркнуть одну важную вещь. Token Ring и FDDI — не сетевые модели! Token Ring — это протокол канального уровня, а FDDI это стандарт передачи данных, который как раз основывается на протоколе Token Ring. Это не самая важная информация, так как эти понятия сейчас не встретишь. Но главное помнить о том, что это не сетевые модели.
Вот и подошла к концу статья по первой теме. Хоть и поверхностно, но было рассмотрено много понятий. Самые ключевые будут разобраны подробнее в следующих статьях. Надеюсь теперь сети перестанут казаться чем то невозможным и страшным, а читать умные книги будет легче). Если я что-то забыл упомянуть, возникли дополнительные вопросы или у кого есть, что дополнить к этой статье, оставляйте комментарии, либо спрашивайте лично. Спасибо за прочтение. Буду готовить следующую тему.
Протокол TCP/IP или как работает Интернет (для чайников)
В основе работы глобальной сети Интернет лежит набор (стек) протоколов TCP/IP. Но эти термины лишь на первый взгляд кажутся сложными. На самом деле стек протоколов TCP/IP — это простой набор правил обмена информацией, и правила эти на самом деле вам хорошо известны, хоть вы, вероятно, об этом и не догадываетесь. Да, все именно так, по существу в принципах, лежащих в основе протоколов TCP/IP, нет ничего нового: все новое — это хорошо забытое старое.
Человек может учиться двумя путями:
- Через тупое формальное зазубривание шаблонных способов решения типовых задач (чему сейчас в основном и учат в школе). Такое обучение малоэффективно. Наверняка вам приходилось наблюдать панику и полную беспомощность бухгалтера при смене версии офисного софта — при малейшем изменении последовательности кликов мышки, требуемых для выполнения привычных действий. Или приходилось видеть человека, впадающего в ступор при изменении интерфейса рабочего стола?
- Через понимание сути проблем, явлений, закономерностей. Через понимание принципов построения той или иной системы. В этом случае обладание энциклопедическими знаниями не играет большой роли — недостающую информацию легко найти. Главное — знать, что искать. А для этого необходимо не формальное знание предмета, а понимание сути.
В этой статье я предлагаю пойти вторым путем, так как понимание принципов, лежащих в основе работы Интернета, даст вам возможность чувствовать себя в Интернете уверенно и свободно — быстро решать возникающие проблемы, грамотно формулировать проблемы и уверенно общаться с техподдержкой.
Итак, начнем.
Принципы работы интернет-протоколов TCP/IP по своей сути очень просты и сильно напоминают работу нашей советской почты.
Вспомните, как работает наша обычная почта. Сначала вы на листке пишете письмо, затем кладете его в конверт, заклеиваете, на обратной стороне конверта пишете адреса отправителя и получателя, а потом относите в ближайшее почтовое отделение. Далее письмо проходит через цепочку почтовых отделений до ближайшего почтового отделения получателя, откуда оно тетей-почтальоном доставляется до по указанному адресу получателя и опускается в его почтовый ящик (с номером его квартиры) или вручается лично. Все, письмо дошло до получателя. Когда получатель письма захочет вам ответить, то он в своем ответном письме поменяет местами адреса получателя и отправителя, и письмо отправиться к вам по той же цепочке, но в обратном направлении.
На конверте письма будет написано примерно следующее:
Адрес отправителя: От кого: Иванов Иван Иванович Откуда: Ивантеевка, ул. Большая , д. 8, кв. 25 Адрес получателя: Кому: Петров Петр Петрович Куда: Москва, Усачевский переулок, д. 105, кв. 110
Теперь мы готовы рассмотреть взаимодействие компьютеров и приложений в сети Интернет (да и в локальной сети тоже). Обратите внимание, что аналогия с обычной почтой будет почти полной.
Каждый компьютер (он же: узел, хост) в рамках сети Интернет тоже имеет уникальный адрес, который называется IP-адрес (Internet Protocol Address), например: 195.34.32.116. IP адрес состоит из четырех десятичных чисел (от 0 до 255), разделенных точкой. Но знать только IP адрес компьютера еще недостаточно, т.к. в конечном счете обмениваются информацией не компьютеры сами по себе, а приложения, работающие на них. А на компьютере может одновременно работать сразу несколько приложений (например почтовый сервер, веб-сервер и пр.). Для доставки обычного бумажного письма недостаточно знать только адрес дома — необходимо еще знать номер квартиры. Также и каждое программное приложение имеет подобный номер, именуемый номером порта. Большинство серверных приложений имеют стандартные номера, например: почтовый сервис привязан к порту с номером 25 (еще говорят: «слушает» порт, принимает на него сообщения), веб-сервис привязан к порту 80, FTP — к порту 21 и так далее.
Таким образом имеем следующую практически полную аналогию с нашим обычным почтовым адресом:
"адрес дома" = "IP компьютера" "номер квартиры" = "номер порта"
В компьютерных сетях, работающих по протоколам TCP/IP, аналогом бумажного письма в конверте является пакет, который содержит собственно передаваемые данные и адресную информацию — адрес отправителя и адрес получателя, например:
Адрес отправителя (Source address): IP: 82.146.49.55 Port: 2049 Адрес получателя (Destination address): IP: 195.34.32.116 Port: 53 Данные пакета: ...
Конечно же в пакетах также присутствует служебная информация, но для понимания сути это не важно.
Обратите внимание, комбинация: «IP адрес и номер порта» — называется «сокет».
В нашем примере мы с сокета 82.146.49.55:2049 посылаем пакет на сокет 195.34.32.116:53, т.е. пакет пойдет на компьютер, имеющий IP адрес 195.34.32.116, на порт 53. А порту 53 соответствует сервер распознавания имен (DNS-сервер), который примет этот пакет. Зная адрес отправителя, этот сервер сможет после обработки нашего запроса сформировать ответный пакет, который пойдет в обратном направлении на сокет отправителя 82.146.49.55:2049, который для DNS сервера будет являться сокетом получателя.
Как правило взаимодействие осуществляется по схеме «клиент-сервер»: «клиент» запрашивает какую-либо информацию (например страницу сайта), сервер принимает запрос, обрабатывает его и посылает результат. Номера портов серверных приложений общеизвестны, например: почтовый SMTP сервер «слушает» 25-й порт, POP3 сервер, обеспечивающий чтение почты из ваших почтовых ящиков «слушает» 110-порт, веб-сервер — 80-й порт и пр.
Большинство программ на домашнем компьютере являются клиентами — например почтовый клиент Outlook, веб-обозреватели IE, FireFox и пр.
Номера портов на клиенте не фиксированные как у сервера, а назначаются операционной системой динамически. Фиксированные серверные порты как правило имеют номера до 1024 (но есть исключения), а клиентские начинаются после 1024.
Повторение — мать учения: IP — это адрес компьютера (узла, хоста) в сети, а порт — номер конкретного приложения, работающего на этом компьютере.
Однако человеку запоминать цифровые IP адреса трудно — куда удобнее работать с буквенными именами. Ведь намного легче запомнить слово, чем набор цифр. Так и сделано — любой цифровой IP адрес можно связать с буквенно-цифровым именем. В результате например вместо 82.146.49.55 можно использовать имя www.ofnet.ru. А преобразованием доменного имени в цифровой IP адрес занимается сервис доменных имен — DNS (Domain Name System).
Рассмотрим подробнее, как это работает. Ваш провайдер явно (на бумажке, для ручной настройки соединения) или неявно (через автоматическую настройку соединения) предоставляет вам IP адрес сервера имен (DNS). На компьютере с этим IP адресом работает приложение (сервер имен), которое знает все доменные имена в Интернете и соответствующие им цифровые IP адреса. DNS-сервер «слушает» 53-й порт, принимает на него запросы и выдает ответы, например:
Запрос от нашего компьютера: "Какой IP адрес соответствует имени www.ofnet.ru?" Ответ сервера: "82.146.49.55."
Теперь рассмотрим, что происходит, когда в своем браузере вы набираете доменное имя (URL) этого сайта (www.ofnet.ru) и, нажав <enter>, в ответ от веб-сервера получаете страницу этого сайта.
Например:
IP адрес нашего компьютера: 91.76.65.216 Браузер: Internet Explorer (IE), DNS сервер (стрима): 195.34.32.116 (у вас может быть другой), Страница, которую мы хотим открыть: www.ofnet.ru.
Набираем в адресной строке браузера доменное имя www.ofnet.ru и жмем <enter>. Далее операционная система производит примерно следующие действия:
Отправляется запрос (точнее пакет с запросом) DNS серверу на сокет 195.34.32.116:53. Как было рассмотренно выше, порт 53 соответствует DNS-серверу — приложению, занимающемуся распознаванием имен. А DNS-сервер, обработав наш запрос, возвращает IP-адрес, который соответствует введенному имени.
Диалог примерно следующий:
- Какой IP адрес соответствует имени www.ofnet.ru? - 82.146.49.55.
Далее наш компьютер устанавливает соединение с портом 80 компьютера 82.146.49.55 и посылает запрос (пакет с запросом) на получение страницы www.ofnet.ru. 80-й порт соответствует веб-серверу. В адресной строке браузера 80-й порт как правило не пишется, т.к. используется по умолчанию, но его можно и явно указать после двоеточия — http://www.ofnet.ru:80.
Приняв от нас запрос, веб-сервер обрабатывает его и в нескольких пакетах посылает нам страницу в на языке HTML — языке разметки текста, который понимает браузер.
Наш браузер, получив страницу, отображает ее. В результате мы видим на экране главную страницу этого сайта.
Зачем эти принципы надо понимать?
Например, вы заметили странное поведение своего компьютера — непонятная сетевая активность, тормоза и пр. Что делать? Открываем консоль (нажимаем кнопку «Пуск» — «Выполнить» — набираем cmd — «Ок»). В консоли набираем команду netstat -anи жмем <Enter>. Эта утилита отобразит список установленных соединений между сокетами нашего компьютера и сокетами удаленных узлов. Если мы видим в колонке «Внешний адрес» какие-то чужие IP адреса, а через двоеточие 25-й порт, что это может означать? (Помните, что 25-й порт соответствует почтовому серверу?) Это означает то, что ваш компьютер установил соединение с каким-то почтовым сервером (серверами) и шлет через него какие-то письма. И если ваш почтовый клиент (Outlook например) в это время не запущен, да если еще таких соединений на 25-й порт много, то, вероятно, в вашем компьютере завелся вирус, который рассылает от вашего имени спам или пересылает номера ваших кредитных карточек вкупе с паролями злоумышленникам.
Также понимание принципов работы Интернета необходимо для правильной настройки файерволла (проще говоря брандмауэра :)). Эта программа (которая часто поставляется вместе с антивирусом), предназначенна для фильтрации пакетов — «своих» и «вражеских». Своих пропускать, чужих не пущать. Например, если ваш фаерволл сообщает вам, что некто хочет установить соединение с каким-либо портом вашего компьютера. Разрешить или запретить?
Ну и самое главное — эти знания крайне полезны при общении с техподдержкой.
Напоследок приведу список портов, с которыми вам, вероятно, придется столкнуться:
135-139 — эти порты используются Windows для доступа к общим ресурсам компьютера — папкам, принтерам. Не открывайте эти порты наружу, т.е. в районную локальную сеть и Интернет. Их следует закрыть фаерволлом. Также если в локальной сети вы не видите ничего в сетевом окружении или вас не видят, то вероятно это связано с тем, что фаерволл заблокировал эти порты. Таким образом для локальной сети эти порты должны быть открыты, а для Интернета закрыты. 21 — порт FTP сервера. 25 — порт почтового SMTP сервера. Через него ваш почтовый клиент отправляет письма. IP адрес SMTP сервера и его порт (25-й) следует указать в настройках вашего почтового клиента. 110 — порт POP3 сервера. Через него ваш почтовый клиент забирает письма из вашего почтового ящика. IP адрес POP3 сервера и его порт (110-й) также следует указать в настройках вашего почтового клиента. 80 — порт WEB-сервера. 3128, 8080 — прокси-серверы (настраиваются в параметрах браузера).
Несколько специальных IP адресов:
127.0.0.1 — это localhost, адрес локальной системы, т.е. локальный адрес вашего компьютера. 0.0.0.0 - так обозначаются все IP-адреса. 192.168.xxx.xxx — адреса, которые можно произвольно использовать в локальных сетях, в глобальной сети Интернет они не используются. Они уникальны только в рамках локальной сети. Адреса из этого диапазона вы можете использовать по своему усмотрению, например, для построения домашней или офисной сети.
Что такое маска подсети и шлюз по умолчанию (роутер, маршрутизатор)?
(Эти параметры задаются в настройках сетевых подключений).
Все просто. Компьютеры объединяются в локальные сети. В локальной сети компьютеры напрямую «видят» только друг друга. Локальные сети соединяются друг с другом через шлюзы (роутеры, маршрутизаторы). Маска подсети предназначена для определения — принадлежит ли компьютер-получатель к этой же локальной сети или нет. Если компьютер-получатель принадлежит этой же сети, что и компьютер-отправитель, то пакет передается ему напрямую, в противном случае пакет отправляется на шлюз по умолчанию, который далее, по известным ему маршрутам, передает пакет в другую сеть, т.е. в другое почтовое отделение (по аналогии с советской почтой).
Напоследок рассмотрим что же означают непонятные термины:
TCP/IP — это название набора сетевых протоколов. На самом деле передаваемый пакет проходит несколько уровней. (Как на почте: сначала вы пишете писмо, потом помещаете в конверт с адресом, затем на почте на нем ставится штамп и т.д.).
IP протокол — это протокол так называемого сетевого уровня. Задача этого уровня — доставка ip-пакетов от компьютера отправителя к компьютеру получателю. По-мимо собственно данных, пакеты этого уровня имеют ip-адрес отправителя и ip-адрес получателя. Номера портов на сетевом уровне не используются. Какому порту, т.е. приложению адресован этот пакет, был ли этот пакет доставлен или был потерян, на этом уровне неизвестно — это не его задача, это задача транспортного уровня.
TCP и UDP — это протоколы так называемого транспортного уровня. Транспортный уровень находится над сетевым. На этом уровне к пакету добавляется порт отправителя и порт получателя.
TCP — это протокол с установлением соединения и с гарантированной доставкой пакетов. Сначала производится обмен специальными пакетами для установления соединения, происходит что-то вроде рукопожатия (-Привет. -Привет. -Поболтаем? -Давай.). Далее по этому соединению туда и обратно посылаются пакеты (идет беседа), причем с проверкой, дошел ли пакет до получателя. Если пакет не дошел, то он посылается повторно («повтори, не расслышал»).
UDP — это протокол без установления соединения и с негарантированной доставкой пакетов. (Типа: крикнул что-нибудь, а услышат тебя или нет — неважно).
Над транспортным уровнем находится прикладной уровень. На этом уровне работают такие протоколы, как http, ftp и пр. Например HTTP и FTP — используют надежный протокол TCP, а DNS-сервер работает через ненадежный протокол UDP.
Как посмотреть текущие соединения?
Текущие соединения можно посмотреть с помощью команды
netstat -an
(параметр n указывает выводить IP адреса вместо доменных имен).
Запускается эта команда следующим образом:
«Пуск» — «Выполнить» — набираем cmd — «Ок». В появившейся консоли (черное окно) набираем команду netstat -an и жмем <Enter>. Результатом будет список установленных соединений между сокетами нашего компьютера и удаленных узлов.
Например получаем:
Активные подключения
Имя | Локальный адрес | Внешний адрес | Состояние |
TCP | 0.0.0.0:135 | 0.0.0.0:0 | LISTENING |
TCP | 91.76.65.216:139 | 0.0.0.0:0 | LISTENING |
TCP | 91.76.65.216:1719 | 212.58.226.20:80 | ESTABLISHED |
TCP | 91.76.65.216:1720 | 212.58.226.20:80 | ESTABLISHED |
TCP | 91.76.65.216:1723 | 212.58.227.138:80 | CLOSE_WAIT |
TCP | 91.76.65.216:1724 | 212.58.226.8:80 | ESTABLISHED |
...
В этом примере 0.0.0.0:135 — означает, что наш компьютер на всех своих IP адресах слушает (LISTENING) 135-й порт и готов принимать на него соединения от кого угодно (0.0.0.0:0) по протоколу TCP.
91.76.65.216:139 — наш компьютер слушает 139-й порт на своем IP-адресе 91.76.65.216.
Третья строка означает, что сейчас установлено (ESTABLISHED) соединение между нашей машиной (91.76.65.216:1719) и удаленной (212.58.226.20:80). Порт 80 означает, что наша машина обратилась с запросом к веб-серверу (у меня, действительно, открыты страницы в браузере).
В следующих статьях мы рассмотрим, как применять эти знания, например общаясь с техподдержкой.
Устройство и основные понятия локальной сети | Info-Comp.ru
Данная статья посвящена основам локальной сети, здесь будут рассмотрены следующие темы:
- Понятие локальная сеть;
- Устройство локальной сети;
- Оборудование для локальной сети;
- Топология сети;
- Протоколы TCP/IP;
- IP-адресация.
Понятие локальной сети
Сеть — группа компьютеров, соединенных друг с другом, с помощью специального оборудования, обеспечивающего обмен информацией между ними. Соединение между двумя компьютерами может быть непосредственным (двухточечное соединение) или с использованием дополнительных узлов связи.
Существует несколько типов сетей, и локальная сеть — лишь одна из них. Локальная сеть представляет собой, по сути, сеть, используемую в одном здании или отдельном помещении, таком как квартира, для обеспечения взаимодействия используемых в них компьютеров и программ. Локальные сети, расположенные в разных зданиях, могут быть соединены между собой с помощью спутниковых каналов связи или волоконно-оптических сетей, что позволяет создать глобальную сеть, т.е. сеть, включающую в себя несколько локальных сетей.
Интернет является еще одним примером сети, которая уже давно стала всемирной и всеобъемлющей, включающей в себя сотни тысяч различных сетей и сотни миллионов компьютеров. Независимо от того, как вы получаете доступ к Интернету, с помощью модема, локального или глобального соединения, каждый пользователь Интернета является фактически сетевым пользователем. Для работы в Интернете используются самые разнообразные программы, такие как обозреватели Интернета, клиенты FTP, программы для работы с электронной почтой и многие другие.
Компьютер, который подключен к сети, называется рабочей станцией (Workstation). Как правило, с этим компьютером работает человек. В сети присутствуют и такие компьютеры, на которых никто не работает. Они используются в качестве управляющих центров в сети и как накопители информации. Такие компьютеры называют серверами,
Если компьютеры расположены сравнительно недалеко друг от друга и соединены с помощью высокоскоростных сетевых адаптеров то такие сети называются локальными. При использовании локальной сети компьютеры, как правило, расположены в пределах одной комнаты, здания или в нескольких близко расположенных домах.
Для объединения компьютеров или целых локальных сетей, которые расположены на значительном расстоянии друг от друга, используются модемы, а также выделенные, или спутниковые каналы связи. Такие сети носят название глобальные. Обычно скорость передачи данных в таких сетях значительно ниже, чем в локальных.
Устройство локальной сети
Существуют два вида архитектуры сети: одноранговая (Peer-to-peer) и клиент/ сервер (Client/Server), На данный момент архитектура клиент/сервер практически вытеснила одноранговую.
Если используется одноранговая сеть, то все компьютеры, входящие в нее, имеют одинаковые права. Соответственно, любой компьютер может выступать в роли сервера, предоставляющего доступ к своим ресурсам, или клиента, использующего ресурсы других серверов.
В сети, построенной на архитектуре клиент/сервер, существует несколько основных компьютеров — серверов. Остальные компьютеры, которые входят в сеть, носят название клиентов, или рабочих станций.
Сервер — это компьютер, который обслуживает другие компьютеры в сети. Существуют разнообразные виды серверов, отличающиеся друг от друга услугами, которые они предоставляют; серверы баз данных, файловые серверы, принт-серверы, почтовые серверы, веб-серверы и т. д.
Одноранговая архитектура получила распространение в небольших офисах или в домашних локальных сетях, В большинстве случаев, чтобы создать такую сеть, вам понадобится пара компьютеров, которые снабжены сетевыми картами, и кабель. В качестве кабеля используют витую пару четвертой или пятой категории. Витая пара получила такое название потому, что пары проводов внутри кабеля перекручены (это позволяет избежать помех и внешнего влияния). Все еще можно встретить достаточно старые сети, которые используют коаксиальный кабель. Такие сети морально устарели, а скорость передачи информации в них не превышает 10 Мбит/с.
После того как сеть будет создана, а компьютеры соединены между собой, нужно настроить все необходимые параметры программно. Прежде всего убедитесь, что на соединяемых компьютерах были установлены операционные системы с поддержкой работы в сети (Linux, FreeBSD, Windows)
Все компьютеры в одноранговой сети объединяются в рабочие группы, которые имеют свои имена (идентификаторы).
В случае использования архитектуры сети клиент/сервер управление доступом осуществляется на уровне пользователей. У администратора появляется возможность разрешить доступ к ресурсу только некоторым пользователям. Предположим, что вы делаете свой принтер доступным для пользователей сети. Если вы не хотите, чтобы кто угодно печатал на вашем принтере, то следует установить пароль для работы с этим ресурсом. При одноранговой сети любой пользователь, который узнает ваш пароль, сможет получить доступ к вашему принтеру. В сети клиент/ сервер вы можете ограничить использование принтера для некоторых пользователей вне зависимости от того, знают они пароль или нет.
Чтобы получить доступ к ресурсу в локальной сети, построенной на архитектуре клиент/сервер, пользователь обязан ввести имя пользователя (Login — логин) и пароль (Password). Следует отметить, что имя пользователя является открытой информацией, а пароль — конфиденциальной.
Процесс проверки имени пользователя называется идентификацией. Процесс проверки соответствия введенного пароля имени пользователя — аутентификацией. Вместе идентификация и аутентификация составляют процесс авторизации. Часто термин «аутентификация» — используется в широком смысле: для обозначения проверки подлинности.
Из всего сказанного можно сделать вывод о том, что единственное преимущество одноранговой архитектуры — это ее простота и невысокая стоимость. Сети клиент/сервер обеспечивают более высокий уровень быстродействия и защиты.
Достаточно часто один и тот же сервер может выполнять функции нескольких серверов, например файлового и веб-сервера. Естественно, общее количество функций, которые будет выполнять сервер, зависит от нагрузки и его возможностей. Чем выше мощность сервера, тем больше клиентов он сможет обслужить и тем большее количество услуг предоставить. Поэтому в качестве сервера практически всегда назначают мощный компьютер с большим объемом памяти и быстрым процессором (как правило, для решения серьезных задач используются многопроцессорные системы)
Оборудование для локальной сети
В самом простом случае для работы сети достаточно сетевых карт и кабеля. Если же вам необходимо создать достаточно сложную сеть, то понадобится специальное сетевое оборудование.
Кабель
Компьютеры внутри локальной сети соединяются с помощью кабелей, которые передают сигналы. Кабель, соединяющий два компонента сети (например, два компьютера), называется сегментом. Кабели классифицируются в зависимости от возможных значений скорости передачи информации и частоты возникновения сбоев и ошибок. Наиболее часто используются кабели трех основных категорий:
- Витая пара;
- Коаксиальный кабель;
- Оптоволоконный кабель,
Для построения локальных сетей сейчас наиболее широко используется витая пара. Внутри такой кабель состоит из двух или четырех пар медного провода, перекрученных между собой. Витая пара также имеет свои разновидности: UTP (Unshielded Twisted Pair — неэкранированная витая пара) и STP (Shielded Twisted Pair — экранированная витая пара). Эти разновидности кабеля способны передавать сигналы на расстояние порядка 100 м. Как правило, в локальных сетях используется именно UTP. STP имеет плетеную оболочку из медной нити, которая имеет более высокий уровень защиты и качества, чем оболочка кабеля UTP.
В кабеле STP каждая пара проводов дополнительно экранировала (она обернута слоем фольги), что защищает данные, которые передаются, от внешних помех. Такое решение позволяет поддерживать высокие скорости передачи на более значительные расстояния, чем в случае использования кабеля UTP, Витая пара подключается к компьютеру с помощью разъема RJ-45 (Registered Jack 45), который очень напоминает телефонный разъем RJ-11 (Regi-steredjack). Витая пара способна обеспечивать работу сети на скоростях 10,100 и 1000 Мбит/с.
Коаксиальный кабель состоит из медного провода, покрытого изоляцией, экранирующей металлической оплеткой и внешней оболочкой. По центральному проводу кабеля передаются сигналы, в которые предварительно были преобразованы данные. Такой провод может быть как цельным, так и многожильным. Для организации локальной сети применяются два типа коаксиального кабеля: ThinNet (тонкий, 10Base2) и ThickNet (толстый, 10Base5). В данный момент локальные сети на основе коаксиального кабеля практически не встречаются.
В основе оптоволоконного кабеля находятся оптические волокна (световоды), данные по которым передаются в виде импульсов света. Электрические сигналы по оптоволоконному кабелю не передаются, поэтому сигнал нельзя перехватить, что практически исключает несанкционированный доступ к данным. Оптоволоконный кабель используют для транспортировки больших объемов информации на максимально доступных скоростях.
Главным недостатком такого кабеля является его хрупкость: его легко повредить, а монтировать и соединять можно только с помощью специального оборудования.
Сетевые карты
Сетевые карты делают возможным соединение компьютера и сетевого кабеля. Сетевая карта преобразует информацию, которая предназначена для отправки, в специальные пакеты. Пакет — логическая совокупность данных, в которую входят заголовок с адресными сведениями и непосредственно информация. В заголовке присутствуют поля адреса, где находится информация о месте отправления и пункте назначения данных, Сетевая плата анализирует адрес назначения полученного пакета и определяет, действительно ли пакет направлялся данному компьютеру. Если вывод будет положительным, то плата передаст пакет операционной системе. В противном случае пакет обрабатываться не будет. Специальное программное обеспечение позволяет обрабатывает все пакеты, которые проходят внутри сети. Такую возможность используют системные администраторы, когда анализируют работу сети, и злоумышленники для кражи данных, проходящих по ней.
Любая сетевая карта имеет индивидуальный адрес, встроенный в ее микросхемы. Этот адрес называется физическим, или MAC-адресом (Media Access Control — управление доступом к среде передачи).
Порядок действий, совершаемых сетевой картой, такой.
- Получение информации от операционной системы и преобразование ее в электрические сигналы для дальнейшей отправки по кабелю;
- Получение электрических сигналов по кабелю и преобразование их обратно в данные, с которыми способна работать операционная система;
- Определение, предназначен ли принятый пакет данных именно для этого компьютера;
- Управление потоком информации, которая проходит между компьютером и сетью.
Концентраторы
Концентратор (хаб) — устройство, способное объединить компьютеры в физическую звездообразную топологию. Концентратор имеет несколько портов, позволяющих подключить сетевые компоненты. Концентратор, имеющий всего два порта, называют мостом. Мост необходим для соединения двух элементов сети.
Сеть вместе с концентратором представляет собой «общую шину». Пакеты данных при передаче через концентратор будут доставлены на все компьютеры, подключенные к локальной сети.
Существует два вида концентраторов.
Пассивные концентраторы. Такие устройства отправляют полученный сигнал без его предварительной обработки.
Активные концентраторы (многопостовые повторители). Принимают входящие сигналы, обрабатывают их и передают в подключенные компьютеры.
Коммутаторы
Коммутаторы необходимы для организации более тесного сетевого соединения между компьютером-отправителем и конечным компьютером. В процессе передачи данных через коммутатор в его память записывается информация о MAC-адресах компьютеров. С помощью этой информации коммутатор составляет таблицу маршрутизации, в которой для каждого из компьютеров указана его принадлежность определенному сегменту сети.
При получении коммутатором пакетов данных он создает специальное внутреннее соединение (сегмент) между двумя своими Портами, используя таблицу маршрутизации. Затем отправляет пакет данных в соответствующий порт конечного компьютера, опираясь на информацию, описанную в заголовке пакета.
Таким образом, данное соединение оказывается изолированным от других портов, что позволяет компьютерам обмениваться информацией с максимальной скоростью, которая доступна для данной сети. Если у коммутатора присутствуют только два порта, он называется мостом.
Коммутатор предоставляет следующие возможности:
- Послать пакет с данными с одного компьютера на конечный компьютер;
- Увеличить скорость передачи данных.
Маршрутизаторы
Маршрутизатор по принципу работы напоминает коммутатор, однако имеет больший набор функциональных возможностей, Он изучает не только MAC, но и IP-адреса обоих компьютеров, участвующих в передаче данных. Транспортируя информацию между различными сегментами сети, маршрутизаторы анализируют заголовок пакета и стараются вычислить оптимальный путь перемещения данного пакета. Маршрутизатор способен определить путь к произвольному сегменту сети, используя информацию из таблицы маршрутов, что позволяет создавать общее подключение к Интернету или глобальной сети.
Маршрутизаторы позволяют произвести доставку пакета наиболее быстрым путем, что позволяет повысить пропускную способность больших сетей. Если какой-то сегмент сети перегружен, поток данных пойдет по другому пути,
Топология сети
Порядок расположения и подключения компьютеров и прочих элементов в сети называют сетевой топологией. Топологию можно сравнить с картой сети, на которой отображены рабочие станции, серверы и прочее сетевое оборудование. Выбранная топология влияет на общие возможности сети, протоколы и сетевое оборудование, которые будут применяться, а также на возможность дальнейшего расширения сети.
Физическая топология — это описание того, каким образом будут соединены физические элементы сети. Логическая топология определяет маршруты прохождения пакетов данных внутри сети.
Выделяют пять видов топологии сети:
- Общая шина;
- Звезда;
- Кольцо;
Общая шина
В этом случае все компьютеры подключаются к одному кабелю, который называется шиной данных. При этом пакет будет приниматься всеми компьютерами, которые подключены к данному сегменту сети.
Быстродействие сети во многом определяется числом подключенных к общей шине компьютеров. Чем больше таких компьютеров, тем медленнее работает сеть. Кроме того, подобная топология может стать причиной разнообразных коллизий, которые возникают, когда несколько компьютеров одновременно пытаются передать информацию в сеть. Вероятность появления коллизии возрастает с увеличением количества подключенных к шине компьютеров.
Преимущества использования сетей с топологией «общая шина» следующие:
- Значительная экономия кабеля;
- Простота создания и управления.
Основные недостатки:
- вероятность появления коллизий при увеличении числа компьютеров в сети;
- обрыв кабеля приведет к отключению множества компьютеров;
- низкий уровень защиты передаваемой информации. Любой компьютер может получить данные, которые передаются по сети.
Звезда
При использовании звездообразной топологии каждый кабельный сегмент, идущий от любого компьютера сети, будет подключаться к центральному коммутатору или концентратору, Все пакеты будут транспортироваться от одного компьютера к другому через это устройство. Допускается использование как активных, так и пассивных концентраторов, В случае разрыва соединения между компьютером и концентратором остальная сеть продолжает работать. Если же концентратор выйдет из строя, то сеть работать перестанет. С помощью звездообразной структуры можно подключать друг к другу даже локальные сети.
Использование данной топологии удобно при поиске поврежденных элементов: кабеля, сетевых адаптеров или разъемов, «Звезда» намного удобнее «общей шины» и в случае добавления новых устройств. Следует учесть и то, что сети со скоростью передачи 100 и 1000 Мбит/с построены по топологии «звезда».
Если в самом центре «звезды» расположить концентратор, то логическая топология изменится на «общую шину».
Преимущества «звезды»:
- простота создания и управления;
- высокий уровень надежности сети;
- высокая защищенность информации, которая передается внутри сети (если в центре звезды расположен коммутатор).
Основной недостаток — поломка концентратора приводит к прекращению работы всей сети.
Кольцевая топология
В случае использования кольцевой топологии все компьютеры сети подключаются к единому кольцевому кабелю. Пакеты проходят по кольцу в одном направлении через все сетевые платы подключенных к сети компьютеров. Каждый компьютер будет усиливать сигнал и отправлять его дальше по кольцу.
В представленной топологии передача пакетов по кольцу организована маркерным методом. Маркер представляет собой определенную последовательность двоичных разрядов, содержащих управляющие данные. Если сетевое устройство имеет маркер, то у него появляется право на отправку информации в сеть. Внутри кольца может передаваться всего один маркер.
Компьютер, который собирается транспортировать данные, забирает маркер из сети и отправляет запрошенную информацию по кольцу. Каждый следующий компьютер будет передавать данные дальше, пока этот пакет не дойдет до адресата. После получения адресат вернет подтверждение о получении компьютеру-отправителю, а последний создаст новый маркер и вернет его в сеть.
Преимущества данной топологии следующие:
- эффективнее, чем в случае с общей шиной, обслуживаются большие объемы данных;
- каждый компьютер является повторителем: он усиливает сигнал перед отправкой следующей машине, что позволяет значительно увеличить размер сети;
- возможность задать различные приоритеты доступа к сети; при этом компьютер, имеющий больший приоритет, сможет дольше задерживать маркер и передавать больше информации.
Недостатки:
- обрыв сетевого кабеля приводит к неработоспособности всей сети;
- произвольный компьютер может получить данные, которые передаются по сети.
Протоколы TCP/IP
Протоколы TCP/IP (Transmission Control Protocol/Internet Protocol — Протокол управления передачей данных/Интернет протокол) являются основными межсетевыми протоколами и управляют передачей данных между сетями разной конфигурации и технологии. Именно это семейство протоколов используется для передачи информации в сети Интернет, а также в некоторых локальных сетях. Семейство протоколов TPC/IP включает все промежуточные протоколы между уровнем приложений и физическим уровнем. Общее их количество составляет несколько десятков.
Основными среди них являются:
- Транспортные протоколы: TCP — Transmission Control Protocol (протокол управления передачей данных) и другие — управляют передачей данных между компьютерами;
- Протоколы маршрутизации: IP — Internet Protocol (протокол Интернета) и другие — обеспечивают фактическую передачу данных, обрабатывают адресацию данных, определяет наилучший путь к адресату;
- Протоколы поддержки сетевого адреса: DNS — Domain Name System (доменная система имен) и другие — обеспечивает определение уникального адреса компьютера;
- Протоколы прикладных сервисов: FTP — File Transfer Protocol (протокол передачи файлов), HTTP — HyperText Transfer Protocol (Протокол передачи гипертекста), TELNET и другие — используются для получения доступа к различным услугам: передаче файлов между компьютерами, доступу к WWW, удаленному терминальному доступу к системе и др.;
- Шлюзовые протоколы: EGP — Exterior Gateway Protocol (внешний шлюзовый протокол) и другие — помогают передавать по сети сообщения о маршрутизации и информацию о состоянии сети, а также обрабатывать данные для локальных сетей;
- Почтовые протоколы: POP — Post Office Protocol (протокол приема почты) — используется для приема сообщений электронной почты, SMPT Simple Mail Transfer Protocol (протокол передачи почты) — используется для передачи почтовых сообщений.
Все основные сетевые протоколы (NetBEUI, IPX/SPX и ТСРIР) являются маршрутизируемыми протоколами. Но вручную приходится настраивать лишь маршрутизацию ТСРIР. Остальные протоколы маршрутизируются операционной системой автоматически.
IP-адресация
При построении локальной сети на основе протокола TCP/IP каждый компьютер получает уникальный IP-адрес, который может назначаться либо DHCP-сервером — специальной программой, установленной на одном из компьютеров сети, либо средствами Windows, либо вручную.
DHCP-сервер позволяет гибко раздавать IP-адреса компьютерам и закрепить за некоторыми компьютерами постоянные, статические IP-адреса. Встроенное средство Windows не имеет таких возможностей. Поэтому если в сети имеется DHCP-сервер, то средствами Windows лучше не пользоваться, установив в настройках сети операционной системы автоматическое (динамическое) назначение IP-адреса. Установка и настройка DHCP-сервера выходит за рамки этой книги.
Следует, однако, отметить, что при использовании для назначения IP-адреса DHCP-сервера или средств Windows загрузка компьютеров сети и операции назначения IP-адресов требует длительного времени, тем большего, чем больше сеть. Кроме того, компьютер с DHCP-сервером должен включаться первым.
Если же вручную назначить компьютерам сети статические (постоянные, не изменяющиеся) IP-адреса, то компьютеры будут загружаться быстрее и сразу же появляться в сетевом окружении. Для небольших сетей этот вариант является наиболее предпочтительным, и именно его мы будем рассматривать в данной главе.
Для связки протоколов TCP/IP базовым является протокол IP, так как именно он занимается перемещением пакетов данных между компьютерами через сети, использующие различные сетевые технологии. Именно благодаря универсальным характеристикам протокола IP стало возможным само существование Интернета, состоящего из огромного количества разнородных сетей.
Пакеты данных протокола IP
Протокол IP является службой доставки для всего семейства протоколов ТСР-iР. Информация, поступающая от остальных протоколов, упаковывается в пакеты данных протокола IP, к ним добавляется соответствующий заголовок, и пакеты начинают свое путешествие по сети
Система IP-адресации
Одними из важнейших полей заголовка пакета данных IP являются адреса отправителя и получателя пакета. Каждый IP-адрес должен быть уникальным в том межсетевом объединении, где он используется, чтобы пакет попал по назначению. Даже во всей глобальной сети Интернет невозможно встретить два одинаковых адреса.
IP-адрес, в отличие от обычного почтового адреса, состоит исключительно из цифр. Он занимает четыре стандартные ячейки памяти компьютера — 4 байта. Так как один байт (Byte) равен 8 бит (Bit), то длина IP-адреса составляет 4 х 8 = 32 бита.
Бит представляет собой минимально возможную единицу хранения информации. В нем может содержаться только 0 (бит сброшен) или 1 (бит установлен).
Несмотря на то, что IP-адрес всегда имеет одинаковую длину, записывать его можно по-разному. Формат записи IP-адреса зависит от используемой системы счисления. При этом один и тот же адрес может выглядеть совершенно по-разному:
Формат числовой записи | Значение |
Двоичный (Binary) | 10000110000110000000100001000010 |
Шестнадцатеричный (Hexadecimal) | 0x86180842 |
Десятичный (Decimal) | 2249721922 |
Точечно-десятичный (Dotted Decimal) | 134.24.8.66 |
Двоичное число 10000110 преобразовывается в десятичное следующим образом: 128 + 0 + 0 + 0 + 0 + 4 + 2 + 0 =134.
Наиболее предпочтительным вариантом, с точки зрения удобства чтения человеком, является формат написания IP-адреса в точечно-десятичной нотации. Данный формат состоит из четырех десятичных чисел, разделенных точками. Каждое число, называемое октетом (Octet), представляет собой десятичное значение соответствующего байта в IP-адресе. Октет называется так потому, что один байт в двоичном виде состоит из восьми бит.
При использовании точечно-десятичной нотации записи октетов в адресе IP следует иметь в виду следующие правила:
- Допустимыми являются только целые числа;
- Числа должны находиться в диапазоне от 0 до 255.
Старшие биты в IP-адресе, расположенные слева, определяют класс и номер сети. Их совокупность называется идентификатором подсети или сетевым префиксом. При назначении адресов внутри одной сети префикс всегда остается неизменным. Он идентифицирует принадлежность IP-адреса данной сети.
Например, если IP-адреса компьютеров подсети 192.168.0.1 — 192.168.0.30, то первые два октета определяют идентификатор подсети — 192.168.0.0, а следующие два — идентификаторы хостов.
Сколько именно бит используется в тех или иных целях, зависит от класса сети. Если номер хоста равен нулю, то адрес указывает не на какой-то один конкретный компьютер, а на всю сеть в целом.
Классификация сетей
Существует три основных класса сетей: А, В, С. Они отличаются друг от друга максимально возможным количеством хостов, которые могут быть подключены к сети данного класса.
Общепринятая классификация сетей приведена в следующей таблице, где указано наибольшее количество сетевых интерфейсов, доступных для подключения, какие октеты IP-адреса используются для сетевых интерфейсов (*), а какие — остаются неизменяемыми (N).
Класс сети | Наибольшее количество хостов | Изменяемые октеты IP—адреса, используемые для нумерации хостов |
А | 16777214 | N *.*.* |
В | 65534 | N.N.*.* |
С | 254 | N.N.N.* |
Например, в сетях наиболее распространенного класса С не может быть более 254 компьютеров, поэтому для нумерации сетевых интерфейсов используется только один, самый младший байт IP-адреса. Этому байту соответствует крайний правый октет в точечно-десятичной нотации.
Возникает законный вопрос: почему к сети класса С можно подключить только 254 компьютера, а не 256? Дело в том, что некоторые внутрисетевые адреса IP предназначены для специального использования, а именно:
О — идентифицирует саму сеть;
255 — широковещательный.
Сегментирование сетей
Адресное пространство внутри каждой сети допускает разбиение на более мелкие по количеству хостов подсети (Subnets). Процесс разбиения на подсети называется также сегментированием.
Например, если сеть 192.168.1.0 класса С разбить на четыре подсети, то их адресные диапазоны будут следующими:
- 192.168.1.0-192.168.1.63;
- 192.168.1.64-192.168.1.127;
- 192.168.1.128-192.168.1.191;
- 192.168.1.192-192.168.1.255.
В данном случае для нумерации хостов используется не весь правый октет из восьми бит, а только 6 младших из них. А два оставшихся старших бита определяют номер подсети, который может принимать значения от нуля до трех.
Как обычный, так и расширенный сетевые префиксы можно идентифицировать с помощью маски подсети (Subnet Mask), которая позволяет также отделить в IP-адресе идентификатор подсети от идентификатора хоста, маскируя с помощью числа ту часть IP-адреса, которая идентифицирует подсеть.
Маска представляет собой комбинацию чисел, по внешнему виду напоминающую IP-адрес. Двоичная запись маски подсети содержит нули в разрядах, интерпретируемых как номер хоста. Остальные биты, установленные в единицу, указывают на то, что эта часть адреса является префиксом. Маска подсети всегда применяется в паре с IP-адресом.
При отсутствии дополнительного разбиения на подсети, маски стандартных классов сетей имеют следующие значения:
Класс сети | Маска | |
| двоичная | точечно-десятичная |
А | 11111111.00000000.00000000.00000000 | 255.0.0.0 |
В | 11111111.11111111.00000000.00000000 | 255.255.0.0 |
С | 11111111.11111111.11111111.00000000 | 255.255.255.0 |
Когда используется механизм разбиения на подсети, маска соответствующим образом изменяется. Поясним это, используя уже упомянутый пример с разбиением сети класса С на четыре подсети.
В данном случае два старших бита в четвертом октете IP-адреса используются для нумерации подсетей. Тогда маска в двоичной форме будет выглядеть следующим образом: 11111111.11111111.11111111.11000000, а в точечно-десятичной -255.255.255.192.
Диапазоны адресов частных сетей
Каждый компьютер, подключенный к сети, имеет свой уникальный IP-адрес. Для некоторых машин, например, серверов, этот адрес не изменяется. Такой постоянный адрес называется статическим (Static). Для других, например, клиентов, IP-адрес может быть постоянным (статическим) или назначаться динамически, при каждом подключении к сети.
Чтобы получить уникальный статический, то есть постоянный адрес IP в сети Интернет, нужно обратиться в специальную организацию InterNIC — Internet Network Information Center (Сетевой информационный центр Интернета). InterNIC назначает только номер сети, а дальнейшей работой по созданию подсетей и нумерации хостов сетевой администратор должен заниматься самостоятельно.
Но официальная регистрация в InterNIC с целью получения статического IP-адреса обычно требуется для сетей, имеющих постоянную связь с Интернетом. Для частных сетей, не входящих в состав Интернета, специально зарезервировано несколько блоков адресного пространства, которые можно свободно, без регистрации в InterNIC, использовать для присвоения IP-адресов:
Класс сети | Количество доступных номеров сетей | Диапазоны IP—адресов, используемые для нумерации хостов |
А | 1 | 10.0.0.0 — 10.255.255.255 |
В | 16 | 172.16.0.0-172.31.255.255 |
С | 255 | 192.168.0.О-192.168.255.255 |
LINKLOCAL | 1 | 169.254.0.0-169.254.255.255 |
Однако эти адреса используются только для внутренней адресации сетей и не предназначены для хостов, которые напрямую соединяются с Интернетом.
Диапазон адресов LINKLOCAL не является классом сети в обычном понимании. Он используется Windows при автоматическом назначении личных адресов IP компьютерам в локальной сети.
Надеюсь Вы теперь имеете представление о локальной сети!
Сети для самых маленьких. Часть нулевая. Планирование / Habr
Это первая статья из серии «Сети для самых маленьких». Мы с товарищем thegluck долго думали с чего начать: маршрутизация, VLAN’ы, настройка оборудования.
В итоге решили начать с вещи фундаментальной и, можно сказать, самой важной: планирование. Поскольку цикл рассчитан на совсем новичков, то и пройдём весь путь от начала до конца.
Предполагается, что вы, как минимум читали о эталонной модели OSI (то же на англ.), о стеке протоколов TCP/IP (англ.), знаете о типах существующих VLAN’ов (эту статью я настоятельно рекомендую к прочтению), о наиболее популярном сейчас port-based VLAN и о IP адресах (более подробно). Мы понимаем, что для новичков «OSI» и «TCP/IP» — это страшные слова. Но не переживайте, не для того, чтобы запугать вас, мы их используем. Это то, с чем вам придётся встречаться каждый день, поэтому в течение этого цикла мы постараемся раскрыть их смысл и отношение к реальности.
Начнём с постановки задачи. Есть некая фирма, занимающаяся, допустим, производством лифтов, идущих только вверх, и потому называется ООО «Лифт ми ап». Расположены они в старом здании на Арбате, и сгнившие провода, воткнутые в пожжёные и прожжёные коммутаторы времён 10Base-T не ожидают подключения новых серверов по гигабитным карточкам. Итак у них катастрофическая потребность в сетевой инфраструктуре и денег куры не клюют, что даёт вам возможность безграничного выбора. Это чудесный сон любого инженера. А вы вчера выдержали собеседование и в сложной борьбе по праву получили должность сетевого администратора. И теперь вы в ней первый и единственный в своём роде. Поздравляем! Что дальше?
Следует несколько конкретизировать ситуацию.
- В данный момент у компании есть два офиса: 200 квадратов на Арбате под рабочие места и серверную. Там представлены несколько провайдеров. Другой на Рублёвке.
- Есть четыре группы пользователей: бухгалтерия (Б), финансово-экономический отдел (ФЭО), производственно-технический отдел (ПТО), другие пользователи (Д). А так же есть сервера (С), которые вынесены в отдельную группу. Все группы разграничены и не имеют прямого доступа друг к другу.
- Пользователи групп С, Б и ФЭО будут только в офисе на Арбате, ПТО и Д будут в обоих офисах.
Прикинув количество пользователей, необходимые интерфейсы, каналы связи, вы готовите схему сети и IP-план.
При проектировании сети следует стараться придерживаться иерархической модели сети, которая имеет много достоинств по сравнению с “плоской сетью”:
- упрощается понимание организации сети
- модель подразумевает модульность, что означает простоту наращивания мощностей именно там, где необходимо
- легче найти и изолировать проблему
- повышенная отказоустойчивость засчет дублирования устройств и/или соединений
- распределение функций по обеспечению работоспособности сети по различным устройствам.
Согласно этой модели, сеть разбивается на три логических уровня: ядро сети (Core layer: высокопроизводительные устройства, главное назначение — быстрый транспорт), уровень распространения (Distribution layer: обеспечивает применение политик безопасности, QoS, агрегацию и маршрутизацию в VLAN, определяет широковещательные домены), и уровень доступа (Access-layer: как правило, L2 свичи, назначение: подключение конечных устройств, маркирование трафика для QoS, защита от колец в сети (STP) и широковещательных штормов, обеспечение питания для PoE устройств).
В таких масштабах, как наш, роль каждого устройства размывается, однако логически разделить сеть можно.
Составим приблизительную схему:
На представленной схеме ядром (Core) будет маршрутизатор 2811, коммутатор 2960 отнесём к уровню распространения (Distribution), поскольку на нём агрегируются все VLAN в общий транк. Коммутаторы 2950 будут устройствами доступа (Access). К ним будут подключаться конечные пользователи, офисная техника, сервера.
Именовать устройства будем следующим образом: сокращённое название города (msk) — географическое расположение (улица, здание) (arbat) — роль устройства в сети + порядковый номер.
Соответственно их ролям и месту расположения выбираем hostname:
Маршрутизатор 2811: msk-arbat-gw1 (gw=GateWay=шлюз)
Коммутатор 2960: msk-arbat-dsw1 (dsw=Distribution switch)
Коммутаторы 2950: msk-arbat-aswN, msk-rubl-asw1 (asw=Access switch)
Документация сети
Вся сеть должна быть строго документирована: от принципиальной схемы, до имени интерфейса.
Прежде, чем приступить к настройке, я бы хотел привести список необходимых документов и действий:
• Схемы сети L1, L2, L3 в соответствии с уровнями модели OSI (Физический, канальный, сетевой)
• План IP-адресации = IP-план.
• Список VLAN
• Подписи (description) интерфейсов
• Список устройств (для каждого следует указать: модель железки, установленная версия IOS, объем RAM\NVRAM, список интерфейсов)
• Метки на кабелях (откуда и куда идёт), в том числе на кабелях питания и заземления и устройствах
• Единый регламент, определяющий все вышеприведённые параметры и другие.
Жирным выделено то, за чем мы будем следить в рамках программы-симулятора. Разумеется, все изменения сети нужно вносить в документацию и конфигурацию, чтобы они были в актуальном состоянии.
Говоря о метках/наклейках на кабели, мы имеем ввиду это:
На этой фотографии отлично видно, что промаркирован каждый кабель, значение каждого автомата на щитке в стойке, а также каждое устройство.
Подготовим нужные нам документы:
Список VLAN
№ VLAN | VLAN name | Примечание |
---|---|---|
1 | default | Не используется |
2 | Management | Для управления устройствами |
3 | Servers | Для серверной фермы |
4-100 | Зарезервировано | |
101 | PTO | Для пользователей ПТО |
102 | FEO | Для пользователей ФЭО |
103 | Accounting | Для пользователей Бухгалтерии |
104 | Other | Для других пользователей |
Каждая группа будет выделена в отдельный влан. Таким образом мы ограничим широковещательные домены. Также введём специальный VLAN для управления устройствами.
Номера VLAN c 4 по 100 зарезервированы для будущих нужд.
IP-план
IP-адрес |
Примечание |
VLAN |
---|---|---|
172.16.0.0/16 |
||
172.16.0.0/24 |
Серверная ферма |
3 |
172.16.0.1 | Шлюз | |
172.16.0.2 | Web | |
172.16.0.3 | File | |
172.16.0.4 | ||
172.16.0.5 — 172.16.0.254 | Зарезервировано | |
172.16.1.0/24 |
Управление |
2 |
172.16.1.1 | Шлюз | |
172.16.1.2 | msk-arbat-dswl | |
172.16.1.3 | msk-arbat-aswl | |
172.16.1.4 | msk-arbat-asw2 | |
172.16.1.5 | msk-arbat-asw3 | |
172.16.1.6 | msk-rubl-aswl | |
172.16.1.6 — 172.16.1.254 | Зарезервировано | |
172.16.2.0/24 |
Сеть Point-to-Point |
|
172.16.2.1 | Шлюз | |
172.16.2.2 — 172.16.2.254 | Зарезервировано | |
172.16.3.0/24 |
ПТО |
101 |
172.16.3.1 | Шлюз | |
172.16.3.2 — 172.16.3.254 | Пул для пользователей | |
172.16.4.0/24 |
ФЭО |
102 |
172.16.4.1 | Шлюз | |
172.16.4.2 — 172.16.4.254 | Пул для пользователей | |
172.16.5.0/24 |
Бухгалтерия |
103 |
172.16.5.1 | Шлюз | |
172.16.5.2 — 172.16.5.254 | Пул для пользователей | |
172.16.6.0/24 |
Другие пользователи |
104 |
172.16.6.1 | Шлюз | |
172.16.6.2 — 172.16.6.254 | Пул для пользователей |
Выделение подсетей в общем-то произвольное, соответствующее только числу узлов в этой локальной сети с учётом возможного роста. В данном примере все подсети имеют стандартную маску /24 (/24=255.255.255.0) — зачастую такие и используются в локальных сетях, но далеко не всегда. Советуем почитать о классах сетей. В дальнейшем мы обратимся и к бесклассовой адресации (cisco). Мы понимаем, что ссылки на технические статьи в википедии — это моветон, однако они дают хорошее определение, а мы попробуем в свою очередь перенести это на картину реального мира.
Под сетью Point-to-Point подразумеваем подключение одного маршрутизатора к другому в режиме точка-точка. Обычно берутся адреса с маской 30 (возвращаясь к теме бесклассовых сетей), то есть содержащие два адреса узла. Позже станет понятно, о чём идёт речь.
План подключения оборудования по портам
Разумеется, сейчас есть коммутаторы с кучей портов 1Gb Ethernet, есть коммутаторы с 10G, на продвинутых операторских железках, стоящих немалые тысячи долларов есть 40Gb, в разработке находится 100Gb (а по слухам уже даже есть такие платы, вышедшие в промышленное производство). Соответственно, вы можете выбирать в реальном мире коммутаторы и маршрутизаторы согласно вашим потребностям, не забывая про бюджет. В частности гигабитный свич сейчас можно купить незадорого (20-30 тысяч) и это с запасом на будущее (если вы не провайдер, конечно). Маршрутизатор с гигабитными портами стоит уже ощутимо дороже, чем со 100Mbps портами, однако оно того стоит, потому что FE-модели (100Mbps FastEthernet), устарели и их пропускная способность очень невысока.
Но в программах эмуляторах/симуляторах, которые мы будем использовать, к сожалению, есть только простенькие модели оборудования, поэтому при моделировании сети будем отталкиваться от того, что имеем: маршрутизатор cisco2811, коммутаторы cisco2960 и 2950.
Имя устройства |
Порт |
Название |
VLAN |
|
---|---|---|---|---|
Access |
Trunk |
|||
msk-arbat-gw1 | FE0/1 | UpLink | ||
FE0/0 | msk-arbat-dsw1 | 2,3,101,102,103,104 | ||
msk-arbat-dsw1 | FE0/24 | msk-arbat-gw1 | 2,3,101,102,103,104 | |
GE1/1 | msk-arbat-asw1 | 2,3 | ||
GE1/2 | msk-arbat-asw3 | 2,101,102,103,104 | ||
FE0/1 | msk-rubl-asw1 | 2,101,104 | ||
msk-arbat-asw1 | GE1/1 | msk-arbat-dsw1 | 2,3 | |
GE1/2 | msk-arbat-asw2 | 2,3 | ||
FE0/1 | Web-server | 3 | ||
FE0/2 | File-server | 3 | ||
msk-arbat-asw2 | GE1/1 | msk-arbat-asw1 | 2,3 | |
FE0/1 | Mail-Server | 3 | ||
msk-arbat-asw3 | GE1/1 | msk-arbat-dsw1 | 2,101,102,103,104 | |
FE0/1-FE0/5 | PTO | 101 | ||
FE0/6-FE0/10 | FEO | 102 | ||
FE0/11-FE0/15 | Accounting | 103 | ||
FE0/16-FE0/24 | Other | 104 | ||
msk-rubl-asw1 | FE0/24 | msk-arbat-dsw1 | 2,101,104 | |
FE0/1-FE0/15 | PTO | 101 | ||
FE0/20 | administrator | 104 |
Почему именно так распределены VLAN’ы, мы объясним в следующих частях.
Excel-документ со списком VLAN, IP, портов
Схемы сети
На основании этих данных можно составить все три схемы сети на этом этапе. Для этого можно воспользоваться Microsoft Visio, каким-либо бесплатным приложением, но с привязкой к своему формату, или редакторами графики (можно и от руки, но это будет сложно держать в актуальном состоянии :)).
Не пропаганды опен сорса для, а разнообразия средств ради, воспользуемся Dia. Я считаю его одним из лучших приложений для работы со схемами под Linux. Есть версия для Виндоус, но, к сожалению, совместимости в визио никакой.
L1
То есть на схеме L1 мы отражаем физические устройства сети с номерами портов: что куда подключено.
L2
На схеме L2 мы указываем наши VLAN’ы
L3
В нашем примере схема третьего уровня получилась довольно бесполезная и не очень наглядная, из-за наличия только одного маршрутизирующего устройства. Но со временем она обрастёт подробностями.
Dia-файлы со схемами сети: L1, L2, L3
Как видите, информация в документах избыточна. Например, номера VLAN повторяются и на схеме и в плане по портам. Тут как бы кто на что горазд. Как вам удобнее, так и делайте. Такая избыточность затрудняет обновление в случае изменения конфигурации, потому что нужно исправиться сразу в нескольких местах, но с другой стороны, облегчает понимание.
К этой первой статье мы не раз ещё вернёмся в будущем, равно как и вам придётся всегда возвращаться к тому, что вы изначально напланировали.
Собственно задание для тех, кто пока только начинает учиться и готов приложить для этого усилия: много читать про вланы, ip-адресацию, найти программы Packet Tracer и GNS3.
Что касается фундаментальных теоретических знаний, то советуем начать читать Cisco press: раз, два, три (русский язык). Это то, что вам совершенно точно понадобится знать.
В следующей части всё будет уже по-взрослому, с видео, мы будем учиться подключаться к оборудованию, разбираться с интерфейсом и расскажем, что делать нерадивому админу, забывшему пароль.
P.S. Спасибо соавтору статьи — пользователю thegluck.
P.P.S Тем, кто имеет, что спросить, но не имеет возможности свой вопрос здесь задать, милости просим в ЖЖ
Основы компьютерных сетей. Тема №5. Понятие IP адресации, масок подсетей и их расчет
Приветствую вас на очередном выпуске. И сегодня речь пойдет о том, какие бывают IP-адреса, и как ими пользоваться. Что такое маска подсети, как она считается, и для чего она нужна. Как делить сети на подсети и суммировать их. Заинтересовавшихся приглашаю к прочтению.
Начнем, или уже продолжим, с самого популярного, заезженного и больного. Это IP-адреса. На протяжении 4-х статей это понятие встречалось по несколько раз, и скорее всего вы уже либо сами поняли для чего они, либо нагуглили и почитали о них. Но я обязан вам это рассказать, так как без ясного понимания двигаться дальше будет тяжело.
Итак IP-адрес — это адрес, используемый узлом на сетевом уровне. Он имеет иерархическую структуру. Что это значит? Это значит, что каждая цифра в его написании несет определенный смысл. Объясню на очень хорошем примере. Примером будет номер обычного телефона — +74951234567. Первой цифрой идет +7. Это говорит о том, что номер принадлежит зоне РФ. Далее следует 495. Это код Москвы. И последние 7 цифр я взял случайными. Эти цифры закреплены за районной зоной. Как видите здесь наблюдается четкая иерархия. То есть по номеру можно понять какой стране, зоне он принадлежит. IP адреса придерживаются аналогично строгой иерархии. Контролирует их организация IANA(англ. Internet Assigned Numbers Authority). Если на русском, то это «Администрация адресного пространства Интернет». Заметьте, что слово «Интернет» с большой буквы. Мало кто придает этому значение, поэтому объясню разницу. В англоязычной литературе термин «internet» используется для описания нескольких подключённых друг к другу сетей. А термин «Internet» для описания глобальной сети. Так что примите это к сведению.
Несмотря на то, что тема статьи больше теоретическая, нежели практическая, я настоятельно рекомендую отнестись к ней со всей серьезностью, так как от нее зависит понимание дальнейших тем, а особенно маршрутизации. Не для кого, я думаю, не секрет, что мы привыкли воспринимать числовую информацию в десятичном формате (в числах от 0-9). Однако все современные компьютеры воспринимают информацию в двоичном (0 и 1). Не важно при помощи тока или света передается информация. Вся она будет воспринята устройством как есть сигнал (1) или нет (0). Всего 2 значения. Поэтому был придуман алгоритм перевода из двоичной системы в десятичную, и обратно. Начну с простого и расскажу, как выглядят IP адреса в десятичном формате. Вся эта статья посвящена IP адресам версии 4. О версии 6 будет отдельная статья. В предыдущих статьях, лабах, да и вообще в жизни, вы видели что-то вроде этого «193.233.44.12». Это и есть IP адрес в десятичной записи. Состоит он из 4-х чисел, называемых октетами и разделенных между собой точками. Каждое такое число (октет) может принимать значение от 0 до 255. То есть одно из 256 значений. Длина каждого октета равна 8 битам, а суммарная длина IPv4 = 32 битам. Теперь интересный вопрос. Каким образом этот адрес воспримет компьютер, и как будет с ним работать?
Можно конечно набить это в калькулятор, коих навалом в Интернете, и он переведет его в двоичный формат, но я считаю, что переводить вручную должен уметь каждый. Особенно это касается тех, кто планирует сдавать экзамен. У вас не будет под рукой ничего, кроме бумаги и маркера, и полагаться придется только на свои навыки. Поэтому показываю, как это делать вручную. Строится таблица.
Вместо «x» записывается либо 1, либо 0. Таблица разделена на 8 колонок, каждая из которых несет в себе 1 бит (8 колонок = 8 бит = 1 октет). Расположены они по старшинству слева направо. То есть первый (левый) бит — самый старший и имеет номер 128, а последний (правый) — самый младший и имеет номер 1. Теперь объясню, откуда эти числа взялись. Так как система двоичная, и длина октета равна 8-ми битам, то каждое число получается возведением числа 2 в степень от 0 до 7. И каждая из полученных цифр записывается в таблицу от большего к меньшему. То есть слева направо. От 2 в 7-ой степени до 2 в 0-ой степени. Приведу таблицу степеней 2-ки.
Думаю теперь понятно, каким образом строится таблица. Давайте теперь разберем адрес «193.233.44.12» и посмотрим, как он выглядит в двоичном формате. Разберем каждый октет отдельно. Возьмем число 193 и посмотрим, из каких табличных комбинаций оно получается. 128 + 64 + 1 = 193.
Те числа, которые участвовали в формировании комбинации получают 1, а все остальные получают 0.
Берем первый октет 233. 128 + 64 + 32 + 8 + 1.
Для 44 — это 32 + 8 + 4.
И напоследок 12. 8 + 4.
Получается длинная битовая последовательность 11000001.11101001.00101100.00001100. Именно с данным видом работают сетевые устройства. Битовая последовательность обратима. Вы можете так же вставить каждый октет (по 8 символов) в таблицу и получить десятичную запись. Я представлю совершенно случайную последовательность и приведу ее к десятичному виду. Пусть это будет 11010101.10110100.11000001.00000011. Строю таблицу и заношу в нее первый блок.
Получаю 128 + 64 + 16 + 4 + 1 = 213.
Вычисляю второй блок.
Считаю 128 + 32 + 16 + 4 = 180.
Третий блок.
128 + 64 + 1 = 193.
И напоследок четвертый.
2 + 1 = 3
Собираем результаты вычислений и получаем адрес 213.180.193.3. Ничего тяжелого, чистая арифметика. Если тяжело и прям невыносимо трудно, то попрактикуйтесь. Сначала может показаться страшным, так как многие закончили учебу лет 10 назад и многое позабыли. Но уверяю, что как только набьете руку, считать будет гораздо легче. Ну а для закрепления дам вам несколько примеров для самостоятельного расчета (под спойлером будут ответы, но открывайте их только когда прорешаете сами).
Задача №1
1) 10.124.56.220
2) 113.72.101.11
3) 173.143.32.194
4) 200.69.139.217
5) 88.212.236.76
6) 01011101.10111011.01001000.00110000
7) 01001000.10100011.00000100.10100001
8) 00001111.11011001.11101000.11110101
9) 01000101.00010100.00111011.01010000
10) 00101011.11110011.10000010.00111101
1) 00001010.01111100.00111000.11011100
2) 01110001.01001000.01100101.00001011
3) 10101101.10001111.00100000.11000010
4) 11001000.01000101.10001011.11011001
5) 01011000.11010100.11101100.01001100
6) 93.187.72.48
7) 72.163.4.161
8) 15.217.232.245
9) 69.20.59.80
10) 43.243.130.61
Теперь IP-адреса не должны быть чем-то страшным, и можно углубиться в их изучение.
Выше мы говорили о структуре телефонных номеров и их иерархии. И вот на заре рождения Интернета в том представлении, в каком мы его привыкли видеть, возник вопрос. Вопрос заключался в том, что IP-адреса нужно как-то сгруппировать и контролировать выдачу. Решением было разделить все пространство IP-адресов на классы. Это решение получило название классовая адресация (от англ. Classful). Она уже давно устарела, но практически в любой книге на нее отводятся целые главы и разделы. Cisco тоже не забывает про это и в своих учебных материалах рассказывает про нее. Поэтому я пробегусь по этой теме и покажу, чем она блистала с 1981 по 1995 год.
Пространство было поделено на 5 классов. Каждому классу был назначен блок адресов.
Начнем с класса A. Если внимательно посмотреть на таблицу, то можно заметить, что этому блоку дан самый большой блок адресов, а если быть точным, то половина всего адресного пространства. Предназначался данный класс для крупных сетей. Структура этого класса выглядит следующим образом.
В чем суть. Первый октет, то есть 8 бит, остаются за адресом сети, а 3 последних октета (то есть оставшиеся 24 бита) назначаются хостам. Вот для того, чтобы показать, какой кусок относится к сети, а какой к хостам, используется маска. По структуре записи она аналогична записи IP-адреса. Отличие маски от IP-адресов в том, что 0 и 1 не могут чередоваться. Сначала идут 1, а потом 0. Таким образом, там где есть единица, значит это участок сети. Чуть ниже, после разбора классов, я покажу, как с ней работать. Сейчас главное знать, что маска класса A — 255.0.0.0. В таблице еще упомянут какой-то первый бит и для класса A он равен 0. Этот бит как раз нужен для того, чтобы сетевое устройство понимало, к какому классу оно принадлежит. Он же еще задает начальный и конечный диапазон адресов. Если в двоичном виде записать на всех октетах единицы, кроме первого бита в первом октете (там всегда 0), то получится 127.255.255.255, что является границей класса A. Например, возьмем адрес 44.58.63.132. Мы знаем, что у класса A первый октет отдается под адрес сети. То есть «44» — это адрес сети, а «58.63.132» — это адрес хоста.
Поговорим про класс B
Этому классу был дан блок поменьше. И адреса из этого блока предназначались для сетей средних масштабов. 2 октета отданы под адрес сети, и 2 — под адрес хостов. Маска у B класса — 255.255.0.0. Первые биты строго 10. А остальные меняются. Перейдем к примеру: 172.16.105.32. Два первых октета под адрес сети — «172.16». А 3-ий и 4-ый под адрес хоста — «105.32».
Класс C
Этот класс обделили адресами и дали ему самый маленький блок. Он был предназначен для мелких сетей. Зато этот класс отдавал целых 3 октета под адрес сети и только 1 октет — под хосты. Маска у него — 255.255.255.0. Первые биты 110. На примере это выглядит так — 192.168.1.5. Адрес сети «192.168.1», а адрес хоста «5».
Классы D и E. Я неcпроста объединил их в один. Адреса из этих блоков зарезервированы и не могут назначаться сетям и хостам. Класс D предназначен для многоадресной рассылки. Аналогию можно привести с телевидением. Телеканал вещает группе лиц свой эфир. И те, кто подключены, могут смотреть телепередачи. То есть в распоряжение администраторов могут попасть только 3 первых класса.
Напомню, что первые биты у класса D — это 1110. Пример адреса — 224.0.0.5.
А первые биты у класса E — это 1111. Поэтому, если вдруг увидите адрес вида 240.0.0.1, смело говорите, что это адрес E класса.
Про классы обмолвились. Теперь озвучу вопрос, который мне недавно задали. Так зачем тогда маски? У нас итак хосты понимают в каком они классе. Но суть вот в чем. Например, у вас есть маленький офис, и вам нужен блок IP-адресов. Никто не будет вам выдавать все адреса класса C. А дадут только его кусок. Например 192.168.1.0 с маской 255.255.255.0. Так вот эта маска и будет определять вашу границу. Мы уже говорили, что октет варьируется в значении от 0 до 255. Вот этот 4 октет полностью в вашем распоряжении. За исключением первого адреса и последнего, то есть 0 и 255 в данном случае. Первый адрес — это адрес сети (в данном случае 192.168.1.0), а последний адрес — широковещательный адрес (192.168.1.255). Напомню, что широковещательный адрес используется в том случае, когда надо передать информацию всем узлам в сети. Поэтому есть правило. Если вам надо узнать номер сети, то все биты относящиеся к хосту обращаете в 0, а если широковещательный, то все биты — в 1. Поэтому, если из 256 адресов забирается 2 адреса, то на назначение хостам остается 254 адреса (256 — 2). На собеседованиях и экзаменах часто любят спрашивать: «Количество IP-адресов в сети?» и «Сколько доступных IP-адресов в сети для назначения хостам?». Два разных вопроса, которые могут поставить в тупик. Ответом на первый будет — все адреса, включая адрес сети и широковещательный адрес, а на второй вопрос — все адреса, кроме адреса сети и широковещательного адреса.
Теперь углубимся в изучении маски.
Я записал адрес класса C 192.168.1.1 с маской 255.255.255.0 в десятичном и двоичном формате. Обратите внимание на то, как выглядит IP-адрес и маска в двоичном формате. Если в IP-адресе 0 и 1 чередуются, то в маске сначала идут 1, а потом 0. Эти биты фиксируют адрес сети и задают размер. По таблице выше можно сделать вывод, что в двоичном виде маска представлена последовательностью 24 единиц подряд. Это говорит о том, что целых 3 октета выделено под сеть, а 4 октет свободен под адресацию для хостов. Здесь ничего необычного. Это стандартная маска класса C.
Но вот в чем загвоздка. Например, в вашем офисе 100 компьютеров, и расширяться вы не планируете. Зачем плодить сеть из 250+ адресов, которые вам не нужны?! На помощь приходит разделение на подсети. Это очень удобная вещь. Объясню принцип на примере того же класса C. Как бы вы не хотели, но трогать 3 октета нельзя. Они фиксированы. Но вот 4 октет свободен под хосты, поэтому его можно трогать. Заимствуя биты из хостового куска, вы дробите сеть на n-ое количество подсетей и, соответственно, уменьшаете в ней количество адресов для хостов.
Попробуем это воплотить в реальность. Меняю маску. Заимствую первый бит из хостовой части(то есть 1-ый бит 4-ого октета выставляю в единицу). Получается следующая маска.
Данная маска делит сеть на 2 части. Если до дробления у сети было 256 адресов(от 0 до 255), то после дробления у каждого куска будет по 128 адресов(от 0 до 127 и от 128 до 255).
Теперь посмотрю, что изменится в целом с адресами.
Красным цветом я показал те биты, которые зафиксированы и не могут изменяться. То есть маска ей задает границу. Соответственно биты помеченные черным цветом определены для адресации хостов. Теперь вычислю эту границу. Чтобы определить начало, надо все свободные биты(помеченные черным цветом) обратить в ноль, а для определения конца обратить в единицы. Приступаю.
То есть в четвертом октете меняются все биты, кроме первого. Он жестко фиксирован в рамках этой сети.
Теперь посмотрим на вторую половину сети и вычислим ее адреса. Деление у нас производилось заимствованием первого бита в 4-ом октете, значит он является делителем. Первая половина сети получалась, когда этот бит принимал значение 0, а значит вторая сеть образуется, когда этот бит примет значение 1. Обращаю этот бит в 1 и посмотрю на границы.
Приведу в десятичный вид.
Соответственно .128 и .255 назначать хостам нельзя. Значит в доступности 128-2=126 адресов.
Вот таким образом можно при помощи маски управлять размером сети. Каждый заимствованный бит делит сеть на 2 части. Если откусить 1 бит от хостовой части, то поделим на 2 части (по 128 адресов), 2 бита = 4 части (по 64 адреса), 3 бита = 8 (по 32 адреса) и так далее.
Если вы рассчитали количество бит, отдаваемые под хосты, то количество доступных IP-адресов можно вычислить по формуле
В книге У. Одома по подготовке к CCNA R&S приведена хорошая формула для расчета битов, отдаваемых на подсеть и хосты:
N + S + H = 32, где N — кол-во битов сети (класс A — 8 бит, B — 16 бит, C — 24 бита), S — кол-во заимствованных битов на подсеть (это то, что мы делали выше, когда заимствовали 1 бит из хостовой части), H — кол-во бит отводимых хостам.
Внесу ясность и объясню, как и где применять эти формулы.
Возьмем пример:
Нам выдали сеть 172.16.0.0 и попросили создать 120 подсетей со 180 хостами и записать маску. Приступим.
В качестве шпаргалки, и для быстроты вычисления, я ниже подготовил таблицу степеней двойки.
Двигаемся дальше. Первое главное условие, при использовании классовой адресации — это то, что должна использоваться одна маска для всех подсетей. То есть, если у вас для одной подсети маска 255.255.255.0, то для другой подсети она не может быть 255.255.255.128.
Теперь смотрим на выданную сеть. Путем логических размышлений понимаем, что это адрес класса B. А значит его N (кол-во битов сети) = 16. Ок. Значит на хосты выделено тоже 16 бит. Вспоминаем условия задачи. Нужно создать 120 подсетей. «Откусывать» биты от сетевой части запрещено, значит кусаем от хостовой части.
Теперь нужно взять такое кол-во бит, чтобы хватило для 120 подсетей, однако оставляло достаточное кол-во под биты для хоста. Смотрим на таблицу выше. Если взять 7 бит, то получим 128. 128>120, следовательно попадаем под условие. Если возьмем 6 бит, то получим 64. 64<128, поэтому не попадаем под условие и отбрасываем этот вариант.
Ок. Выяснили, что S надо выделить не меньше 7 бит. Теперь посмотрим, что осталось под хосты.
Если N + S + H = 32 => H = 32 — (N + S) => H = 32 — (16 + 7) = 9. Смотрим на таблицу выше (или возводим 2 в 9 степень в уме) и получаем число 512. Отнимаем 2 (адрес сети и широковещательный адрес) и получаем 510 адресов. Нам нужно 180, а значит под условие мы попадаем причем с большим запасом. В таких случаях вам предоставляется право выбора. Сделать больше подсетей или хостов на подсеть. Объясняю, что это значит. У нас есть 9 бит на хосты. Если мы возьмем 8 бит, то получим число 256. 256 — 2 = 254 адреса. Этот вариант нам тоже подходит. Возьмем 7 бит. Получаем 128. Даже не отнимая 2 адреса, становится понятно, что это меньше 180 => данный вариант отбрасывается сразу. Итого получаем, что минимальное количество для подсети — 7 бит, а для хостов — 8 бит. Поэтому свободный бит можно отдать либо на подсеть, либо на хосты. Маска получается сложением N и S. В нашем случае получаем, если под подсеть отдаем 7 бит, то получаем 23. В десятичном виде маска будет выглядеть 255.255.254.0. А если отдадим под подсеть 8 бит, то получим 24 (или в десятичном виде 255.255.255.0). Иногда бывает, что под задачу существует всего одна маска. Ну и, конечно, могут быть случаи, когда маска не попадает не под какие условия. В этих случаях нужно брать сеть другого класса или доказывать заказчику, что это невозможно.
Думаю теперь понятно, как работала классовая адресация, и как ее рассчитывали. Возможно с первого раза голова не переварит этого, поэтому перечитывайте еще раз и повнимательнее. Как только начнет что-то проясняться, потренируйтесь на задачках, которые я оставлю.
Задача №2
1) Записать маску для проекта: сеть 172.16.0.0. 250 подсетей и 220 хостов.
2) Записать маску для проекта: сеть 10.0.0.0. 2000 подсетей и 1500 хостов.
3) Записать маску для проекта: сеть 192.168.0.0. 4 подсети и 60 хостов.
1) 24 бита или 255.255.255.0
2) 19 бит (255.255.224.0), 20 бит (255.255.240.0), 21 бит (255.255.248.0)
3) 26 бит или 255.255.255.192
На этом разговор про классовые сети начну закруглять и подведу итоги. Классовая адресация — это зарождение сегодняшнего интернета, и именно с нее все началось. Поэтому плюсов у нее много, и за это создателям спасибо. Но, как вы могли заметить, у нее было жесткая привязка к одной маске. За счет этого IP-адреса использовались не экономно и расточительно. А в связи с бурным ростом Интернета адресов стало не хватать, и срочно нужно было вносить изменения.
Поняли ведущие умы, что использовать классовые сети не удобно и нужно от них отказываться. Это привело к созданию бесклассовой адресации и маскам переменной длины, о чем мы ниже поговорим. Но перед этим пару слов о видах IP-адресов. Несмотря на то, что переход от классовой адресации к бесклассовой предполагал экономию IP-адресов, на деле эта проблема все равно решалась не полностью. Все упиралось в саму технологию IPv4. Объясню почему. Выше я говорил, что длина IP адреса равна 32 бита. Каждый бит может принимать значение 0 или 1, то есть два значения. Соответственно, чтобы вычислить все комбинации, надо возвести 2 в 32-ую степень. Получаем 4294967296 адресов. Если вычесть отсюда зарезервированные для специальных нужд и прочего, то останется примерно 4.2 млрд. адресов, когда на Земле проживает около 7.3 млрд. человек. Поэтому ведущие умы быстро просекли эту фишку и начали искать решение. Они решили выделить некое адресное пространство, которое будет использоваться только в пределах локальной сети и не будет использоваться в Интернете. Это разделило адреса на 2 лагеря: белые или публичные (англ. public) и серые или частные (англ. private).
Привожу диапазон адресов, которые выделены под локальные сети:
1) 10.0.0.0 — 10.255.255.255 с маской 255.0.0.0 (или кратко 10/8).
2) 172.16.0.0 — 172.31.255.255 с маской 255.240.0.0 (или кратко 172.16/12).
3) 192.168.0.0 — 192.168.255.255 (или кратко 192.168/16).
Если честно, я мало где видел применение адресации 172.16.X.X. Обычно в корпоративной среде всегда используется 10.X.X.X, а в домах/квартирах и мелких офисах 192.168.X.X.
Теперь прошу обратить внимание на очень важную вещь, которую многие путают. Не путайте классовую адресацию и диапазон частных адресов. Очень много людей наступают на эти грабли и свято верят, что диапазон частных адресов 10.0.0.0 — 10.255.255.255 — это диапазон A класса.
Разобрались, что такое частные адреса или private адреса. Но это еще не все. Есть еще список зарезервированных адресов, которые не могут светиться в Интернете. По ним написана целая документация на IETF. Привожу ссылку, где можете прочитать оригинал. Я кратко опишу часто встречающиеся.
1) 0.0.0.0/8 — диапазон адресов, используемый хостами для самоидентификации. Обычно это можно увидеть, когда хост пытается получить IP-адрес от DHCP сервера. Так как изначально у него нету IP-адреса, то в поле источника он вставляет адрес из данного диапазона.
2) 127.0.0.0/8 — loopback или localhost адреса. Это IP-адреса, используемые компьютером, чтобы обратиться к самому себе. Очень полезно для проверки работы TCP/IP. Дело в том, что независимо от наличия соединения с Интернетом или локальной сетью, адреса из этого пула должны всегда пинговаться. Если этого не происходит, значит система накрылась или накрывается медным тазом.
3) 169.254.0.0/16 — link-local address или локальные адреса. Автоматически используются хостами при отсутствии DHCP-сервера или его недоступности. Это позволяет быстро организовать локальную сеть и проверить работу узлов. Однако данный пул адресов не маршрутизируется. Следовательно, выйти в Интернет с них не получится.
4) 224.0.0.0/4 — блок адресов, зарезервированный под многоадресную рассылку или multicast. Для тех, кто хочет побольше узнать про multicast, оставляю ссылку.
Бесклассовая адресация (англ. Classless Inter-Domain Routing или CIDR). Описана была в стандарте RFC1519 в 1993 году. Она отказалась от классовых рамок и фиксированной маски. Адреса делятся только на публичные и зарезервированные, о которых написано выше. Если в классовой адресации маска нарезалась единой для всех подсетей, то в бесклассовой — у каждой подсети может быть своя маска. На теории все хорошо и красиво, но нет ничего лучше, чем практика. Поэтому перехожу к ней и объясню, как можно делить на подсети с разным количеством хостов.
В качестве шпаргалки приведу список всех возможных масок.
Представим ситуацию. Вам выдали сеть 192.168.1.0/24 и поставили следующие условия:
1) Подсеть на 10 адресов для гостей.
2) Подсеть на 42 адреса для сотрудников.
3) Подсеть на 2 адреса для соединения 2 маршрутизаторов.
4) Подсеть на 26 адресов для филиала.
Ок. Данная маска показывает, что в нашем распоряжении находятся 256 адресов. По условию эту сеть надо каким-то образом разделить на 4 подсети. Давайте попробуем. 256 очень хорошо делится на 4, давая в ответе 64. Значит один большой блок в 256 адресов можно поделить на 4 равных блока по 64 адреса в каждом. И все было бы прекрасно, но это порождает большое число пустых адресов. Для сотрудников, которым нужно 42 адреса, ладно, может в дальнейшем компания еще наймет. Но вот подсеть для маршрутизаторов, которая требует всего 2 адреса, оставит 60 пустых адресов. Да, вы можете сказать, что это private адреса, и кому дело до них. А теперь представьте, что это публичные адреса, которые маршрутизируются в Интернете. Их и так мало, а тут мы еще будем их отбрасывать. Это не дело, тем более, когда мы можем гибко управлять адресным пространством. Поэтому возвращаемся к примеру и нарежем подсети так, как нам нужно.
Итак, какие подсети должны быть нарезаны, чтобы вместились все адреса, заданные по условию?!
1) Для 10 хостов, наименьшей подсетью будет блок из 16 адресов.
2) Для 42 хостов, наименьшей подсетью будет блок из 64 адресов.
3) Для 2 хостов, наименьшей подсетью будет блок из 4 адресов.
4) Для 26 хостов, наименьшей подсетью будет блок из 32 адресов.
Я понимаю, что не все могут с первого раза в это вникнуть, и в этом нет ничего страшного. Все люди разные и по-разному воспринимают информацию. Для полноты эффекта покажу деление на картинке.
Вот у нас блок, состоящий из 256 адресов.
После деления на 4 части получается следующая картинка.
Выше мы выяснили, что при таком раскладе адреса используются не рационально. Теперь обратите внимание, как стало выглядеть адресное пространство после нарезки подсетей разной длины.
Как видите, в свободном доступе осталось куча адресов, которые мы в дальнейшем сможем использовать. Можно посчитать точную цифру. 256 — (64 + 32 + 16 + 4) = 140 адресов.
Вот столько адресов мы сэкономили. Двигаемся дальше и ответим на следующие вопросы:
— Какими будут сетевые и широковещательные адреса?
— Какие адреса можно будет назначить хостам?
— Как буду выглядеть маски?
Механизм деления на подсети с разной маской получил название VLSM (от англ. Variable Length Subnet Mask) или маска подсети переменной длины. Дам важный совет! Начинайте адресацию с самой большой подсети. Иначе вы можете попасть на то, что адреса начнут перекрываться. Поэтому сначала планируйте сеть на бумаге. Нарисуйте ее, изобразите в виде фигур, просчитайте вручную или на калькуляторе и только потом переходите настройке в боевых условиях.
Итак, самая большая подсеть состоит из 64 адресов. С нее и начнем. Первый пул адресов будет следующий:
Адрес подсети — 192.168.1.0.
Широковещательный адрес — 192.168.1.63.
Пул адресов для назначения хостам от 192.168.1.1 до 192.168.1.62.
Теперь выбор маски. Тут все просто. Отнимаем от целой сети нужный кусок и полученное число записываем в октет маски. То есть 256 — 64 = 192 => маска 255.255.255.192 или /26.
Дальше идет подсеть поменьше. Состоит она из 32 адресов. Если первая заканчивалась на .63, то эта будет начинаться с .64:
Адрес подсети — 192.168.1.64.
Широковещательный адрес — 192.168.1.95.
Пул адресов для назначения хостам будет от 192.168.1.65 до 192.168.1.94.
Маска: 256 — 32 = 224 => 255.255.255.224 или /27.
3-я подсеть, которая предназначена для филиала, начнет старт с .96:
Адрес подсети — 192.168.1.96.
Широковещательный адрес — 192.168.1.111.
Пул адресов для назначения хостам будет от 192.168.1.97 до 192.168.1.110.
Маска: 256 — 16 = 240 => 255.255.255.240 или /28.
Ну и для последней подсети, которая уйдет под интерфейсы, соединяющие роутеры, будет начинаться с .112:
Адрес подсети — 192.168.1.112.
Широковещательный адрес — 192.168.1.115.
Разрешенными адресами будут 192.168.1.113 и 192.168.1.114.
Маска: 256 — 4 = 252 => 255.255.255.252 или /30.
Замечу, что адрес 192.168.1.115 является последним используемым адресом. Начиная с 192.168.1.116 и до .255 свободны.
Вот таким образом, при помощи VLSM или масок переменной длины, мы экономно создали 4 подсети с нужным количеством адресов в каждой. Думаю это стоит закрепить задачкой для самостоятельного решения.
Задача №3
Разделите сеть 192.168.1.0/24 на 3 разные подсети. Найдите и запишите в каждой подсети ее адреса, широковещательный адрес, пул разрешенных к выдаче адресов и маску. Указываю требуемые размеры подсетей:
1) Подсеть на 120 адресов.
2) Подсеть на 12 адресов.
3) Подсеть на 5 адресов.
Широковещательный адрес — 192.168.1.127.
Пул адресов для назначения хостам будет от 192.168.1.1 до 192.168.1.126.
Маска: 256 — 128 = 128 => 255.255.255.128 или /25.
2) Адрес подсети — 192.168.1.128.
Широковещательный адрес — 192.168.1.143.
Пул адресов для назначения хостам будет от 192.168.1.129 до 192.168.1.142.
Маска: 256 — 16 = 240 => 255.255.255.240 или /28.
3) Адрес подсети — 192.168.1.144.
Широковещательный адрес — 192.168.1.151.
Пул адресов для назначения хостам будет от 192.168.1.145 до 192.168.1.150.
Маска: 256 — 8 = 248 => 255.255.255.248 или /29.
Теперь, когда вы знаете, как делить сети на подсети, самое время научиться собирать подсети в одну общую подсеть. Иначе это называется суммированием или summarization. Суммирование чаще всего используется в маршрутизации. Когда у вас в таблице маршрутизатора несколько соседних подсетей, маршрутизация которых проходит через один и тот же интерфейс или адрес. Скорее всего этот процесс лучше объяснять при разборе маршрутизации, но учитывая то, что тема маршрутизации и так большая, то я объясню процесс суммирования в этой статье. Тем более, что суммирование это сплошная математика, а в этой статье мы ею и занимаемся. Ну что же, приступлю.
Представим, что у меня компания состоящая из главного здания и корпусов. Я работаю в главном здании, а в корпусах коллеги. Хоть у меня и главное здание, но в нем всего 4 подсети:
— 192.168.0.0/24
— 192.168.1.0/24
— 192.168.2.0/24
— 192.168.3.0/24
Тут коллеги с соседнего здания очухались и поняли, что у них слетела конфигурация на маршрутизаторе, а бекапов нет. Наизусть они не помнят, какие в главном здании подсети, но помнят, что они находятся рядом друг с другом, и просят прислать одну суммированную. Теперь у меня возникает задача, как их суммировать. Для начала я переведу все подсети в двоичный вид.
Посмотрите внимательно на таблицу. Как видите, у 4 подсетей первые 22 бита одинаковые. Соответственно, если я возьму 192.168.0.0 с маской /22 или 255.255.252.0, то покрою свои 4 подсети. Но обратите внимание на 5 подсеть, которую я специально ввел. Это подсеть 192.168.4.0. 22-ой бит у нее отличается от предыдущих 4-х, а значит выше выбранное не покроет эту подсеть.
Ок. Теперь я отправлю коллегам суммированную подсеть, и, если они все правильно пропишут, то маршрутизация до моих подсетей будет работать без проблем.
Возьмем тот же пример и немного изменим условия. Нас попросили прислать суммарный маршрут для подсетей 192.168.0.0 и 192.168.1.0. Я не поленюсь и создам еще одну таблицу.
Обратите внимание, что у 2 первых подсетей одинаковые не 22 бита, а 23 бита. Это значит, что их можно просуммировать еще компактнее. В принципе работать будет и так, и так. Но как говорилось в одной рекламе: «Если нет разницы — зачем платить больше?». Поэтому старайтесь суммировать, не задевая при этом соседние подсети.
Таким образом, переводя подсети в двоичный формат и находя одинаковые биты, можно их суммировать.
Вообще суммирование полезно применять, когда надо объединить несколько подсетей, расположенных вблизи друг с другом. Это позволит сэкономить ресурсы маршрутизаторов. Однако это не всегда возможно. Просуммировать, например, подсеть 192.168.1.0 и 192.168.15.0, не захватив при этом соседние подсети, невозможно. Поэтому перед суммированием стоит подумать над ее целесообразностью. Поэтому повторюсь еще раз, что начинать какую-либо революцию надо на бумажке. Ну и для закрепления материала оставлю небольшую задачу.
Задача №4
Даны 4 подсети:
1) 10.3.128.0
2) 10.3.129.0
3) 10.3.130.0
4) 10.3.131.0
Просуммируйте подсети и найдите маску, которая сможет покрыть их, не задевая при этом соседние подсети.
ОтветИсходя из этого, ответом будет 10.3.128.0/22 (255.255.252.0)
Пришло время закругляться. Статья получилась не очень длинной. Я бы даже сказал наоборот. Но все, что требует знать Cisco про IPv4, мы рассмотрели. Самое главное, что требуется от вас — это научиться работать с адресами и масками и уметь конвертировать их из десятичной в двоичную и обратно. Ну и, конечно, правильно делить на подсети и распределять адресное пространство. Спасибо, что дочитали. А если еще и задачки все сами прорешали, то цены вам нет) А если еще не прорешали, то приятного времяпровождения.
Создание сети для начинающих. Часть 1
Создание сети в наше время может потребоваться очень много где. Учитывая всеобщую интернетизацию и развитие информационных технологий, где их только нет. Дома, в офисе, в больнице, в кафе и ресторанах, и так далее. Но с информацией о том, как человеку с небольшим опытом создать локальную сеть, не очень хорошо. Сложно найти материал, который будет лежать в одном месте, надо собирать по кусочкам с разных сайтов. Да и в этом случае знания будут скорее всего отрывочные. Поэтому я решил написать несколько статей о том, как организовать локальную сеть в офисе или дома.
Создание сети надо начать не с протягивания проводов, как ни странно. Начать надо с формулирования задач, которые вы планируете решать. От этого зависит и объем работ, и сервисы, которые вам потребуется организовать.
Формулирование задач
Задачи, для решения которых вы будете создавать сеть, лучше всего записать, чтобы ничего не забыть. Что же это может быть? Это могут быть следующие задачи:
- Объединение компьютеров в сеть для совместной работы с документами
- Обеспечение централизованной печати
- Обеспечение доступа в Интернет для нескольких компьютеров
- Организация централизованного резервного копирования
- Обеспечение возможности подключения к сети по Wi-Fi (Ноутбуки, планшеты, смартфоны)
- Обеспечение ускорения загрузки из сети за счет использования прокси-сервера
- Фильтрация трафика (реклама, вирусы и прочее)
- и так далее, принцип, я думаю, понятен.
После формулирования задач нужно определиться с тем, какое оборудование и материалы нам понадобятся. Здесь могут быть различные вариации, в зависимости от следующих факторов:
- сколько компьютеров у нас есть,
- какого размера организация,
- какого размера площадь, на которой предполагается развертывание сети,
- из каких материалов сделаны стены (важно при прокладке кабеля и использовании Wi-fi)
- будут ли использоваться принтеры
- какой объем буду занимать резервные копии и файлы общего доступа
- Каким образом буду проложены кабели внутри помещений (короба, кабель-каналы в плинтусах и т.д.) и будут ли они вообще использоваться
Могут быть и другие факторы. Смысл в том, чтобы создать общую картину до начала работ, так как бюджет может достаточно сильно варьироваться и создание сети с предварительным анализом обходится дешевле, чем последующие переделки. Одним из лучших вариантов будет прокладка кабелей и организация розеток для подключения патч-кордов. А беспроводную связь в организациях желательно не использовать, так как это позволяет внедряться в сеть не имея к ней физического доступа.
Архитектура сети
После того, как мы определились с задачами и сориентировались на местности, можно смотреть, как лучше организовать саму сеть. Для небольшого офиса и дома обычно подойдет создание сети с топологией «звезда», при которой все компьютеры соединены через свитч или подключены прямо к роутеру.
На этой схеме 7 компьютеров подключены к одному свитчу. Таким образом, компьютеры уже могут между собой коммуницировать. Для этого нужно не так много. Во-первых, правильно обжать патч-корды, во-вторых, настроить сетевые адреса.
Обжимка патч-кордов
Естественно, можно купить готовые патч-корды. Но если вы планируете прокладывать провода по помещению, то могут возникнуть трудности с длиной готовых патч-кордов. Иногда в продаже сложно найти патч-корды длиннее 5 метров. Поэтому навык обжимки лишним, скорее всего, не будет. Для обжимки нам потребуется:
- Бухта с кабелем UTP 5 категории (5e), либо необжатый кабель «на развес» по метражу.
- Клещи для обжимки (кримпер)
- Коннекторы для разъемов типа 8P8C (у нас их ошибочно называют RJ45, хотя на самом деле этот стандарт (RJ45S) использует разъем 8P4C)
Кабель лучше брать 8-жильный (4 пары), а плохой кабель — зря потраченные деньги. Кабель должен быть с цельными жилами (не плетеный). Вот как выглядит бухта кабеля:
В такой бухте обычно 300-305 метров. Цвет внешней изоляции может различаться, но чаще всего он белый. Кроме того, на внешней изоляции могут быть нанесены метки, которые позволяют по метрам отмерить кусок нужной длины.
Коннекторы выглядят так:
А клещи для обжимки (кримпер) выглядят так (вариант без фиксатора):
Или так (вариант с фиксатором):
В принципе, разница не очень большая, но клещи с фиксатором не позволяют коннектору выпасть из кримпера до конца обжимки, даже если вы его отпустили и положили, допустим, на стол, а также гарантируют разжатие кримпера только после того, как коннектор до конца обжат.
Схема обжимки
Существует две основных схемы обжимки кабеля — A и B.
Схема A:
- бело-оранжевый
- оранжевый
- бело-зеленый
- синий
- бело-синий
- зеленый
- бело-коричневый
- коричневый
Схема B:
- бело-зеленый
- зеленый
- бело-оранжевый
- синий
- бело-синий
- оранжевый
- бело-коричневый
- коричневый
Как видите, чтобы схему A превратить в схему B, надо поменять местами оранжевую и зеленую пары. Провод, у которого оба конца обжаты по одной схеме, называется прямым (straight), а провод, у которого оба конца обжаты по разным схемам, называют кроссом (crossover).
Прямой изначально использовался для соединения компьютеров со свитчом (switch) или хабом (hub), а кросс — для соединения компьютера с другим компьютером, либо двух свитчей между собой. Свитч от хаба отличается тем, что хаб транслирует пакеты на все порты одновременно, а свитч только на те, для которых эти пакеты предназначены. В настоящее время найти хаб очень сложно, так как производители давно перешли на выпуск только свитчей. Современные свитчи, роутеры и сетевые карты могут использовать любые патч-корды, поскольку они автоматически могут определить, какого типа патч-корд вставлен в порт, и перекоммутировать сигналы соответствующим образом (Auto-MDIX).
Перед обжимкой нужно срезать внешнюю изоляцию, развить пары проводов и положить их по соответствующей схеме A или B слева направо. Затем вставить их в коннектор, развернув его контактами на себя, до упора. И только после этого обжать коннектор кримпером.
Ручное назначение сетевых адресов
После обжимки патч-кордов и соединения компьютеров со свитчом для работы сети необходимо назначить сетевые адреса. Есть два варианта назначения адресов — автоматически, при помощи DHCP (об этом в следующей статье) и вручную.
Настройки сети в Windows 7 находятся в панели управления (Start -> Панель управления -> Центр управления сетями и общим доступом -> Подключение по локальной сети -> Свойства -> Протокол Интернета версии 4 (TCP/IPv4) -> Свойства).
Выбираем «Использовать следующий IP-адрес», вписываем IP-адрес 192.168.0.11, маску подсети 255.255.255.0.
Выбираем «Использовать следующие адреса DNS-серверов», вписываем 8.8.8.8 и 8.8.4.4.
На следующем компьютере адрес должен быть 192.168.0.12, на третьем 192.168.0.13 и так далее.
После установки всех адресов вы можете нажать сочетание клавиш Win+R, набрать там «cmd» и нажать Enter. Откроется черное окошко, в котором можно проверить соединение командой
ping 192.168.0.12
Устанавливать параметр «Основной шлюз» не нужно, если вы не будете подключаться к другой сети или Интернету, поскольку внутри одного сегмента сети компьютеры взаимодействуют между собой напрямую.
В следующей части рассмотрим автоматическое конфигурирование сетевых адресов.
- Нажмите здесь, чтобы поделиться контентом на Facebook. (Открывается в новом окне)
- Нажмите, чтобы поделиться на LinkedIn (Открывается в новом окне)
- Нажмите, чтобы поделиться на Reddit (Открывается в новом окне)
- Нажмите, чтобы поделиться на Twitter (Открывается в новом окне)
- Нажмите, чтобы поделиться записями на Tumblr (Открывается в новом окне)
- Нажмите, чтобы поделиться записями на Pinterest (Открывается в новом окне)
- Нажмите, чтобы поделиться записями на Pocket (Открывается в новом окне)
- Нажмите, чтобы поделиться в Telegram (Открывается в новом окне)
- Нажмите, чтобы поделиться в WhatsApp (Открывается в новом окне)
- Нажмите, чтобы поделиться в Skype (Открывается в новом окне)
Компьютерные сети for dummies / Habr
Всем привет!После прочтения такого материала как «PHP 7 Д. Котерова», или «byte Of Python», может возникнуть один очень интересный вопрос, и нет, он не будет связан с языком, о котором была книга, он будет взят как правило из первых глав книги, которые обычно посвящаются «устройству интернета», как правило такие книги сильно глубоко пользователя не погружают, и оставляют его на уровне прикладных данных, то есть не дальше чем протокол HTTP, и работа TCP/IP. Но как всем нам известно, есть очень «прожорливые» умы, которым одного только
Каждый из протоколов в идеале «ничего не знает» о том, какой протокол «стоит над ним»совершено не хватит. Вариантов занять свою «прожорливость» уйма, и сегодня я расскажу об всех основных моментах компьютерных сетей, кратко.
Основные термины и понятия компьютерных сетей, грубо говоря, компьютерные сети, это обычные «сети», состоящие из конечных машины. Конечными машинами называться любые компьютеры в сети, которые хотят обмениваться данными.
Такие сети, как правило передают данные по физическим передатчикам, а именно (будут рассмотрены самые популярные/простые в понимании типы):
- Оптоволокно: наивысшая скорость передачи данных, за счет передачи данных с помощью светосигналов.
- Витая пара: более низкая скорость (зависит от типа), переда данных осуществляется с помощью электро сигналов, по восьми медным кабелям.
Тут сразу встает вопрос ребром, неужели все компьютеры просто связаны через кабеля друг с другом, ответ: и да, и нет. Как вы понимаете, если бы вы купили новый ноутбук, вам пришлось бы подключать ко всем компьютерам мира, но вы этого не делаете, заместо этого вы или просто вставляете в свой ноутбук, кабель, или подключаетесь по WI-FI, вот тут то наше «и да, и нет» проявляется, как видите в ручную вы все не делаете, но подключаясь к своему интернету дома, вы покупаете его у провайдера, соответственно, вы как бы «по кабелю» связываетесь с провайдером, который вас уже связывает с всем интернетом. Но, это все равно не отменяет вопрос, провайдер что, тоже связан со всеми ПК мира? Нет, все обстоит иначе, начнем с того что провайдеров много, бывают провайдеры которые покупают интернет у регионального провайдера (это провайдер, который работает на область, допустим Краснодар), такие провайдеры, называются местными (допустим транслируют интернет на какое то село, или маленький город), региональные провайдеры, в свою очередь берут интернет у провайдеров страны, а те в свою очередь, у провайдеров континента, получается как-то так:
Но, как вы сами понимаете, это еще не все, не можем же мы напрямую через кабеля быть связаны с провайдерами, а те с провайдерами на уровень выше, и так далее. Нет, это не так, на самом деле, между конечными системами, провайдерами, и прочими узлами, есть специальные комутаторы и километры кабелей, про комутаторы — а именно маршрутизаторы, маршрутизаторы, это специальные блоки, вычислительные машины, которые имеют несколько входов/выходов (может быть и тем и тем, такие входы/выходы называют интерфейсами), и имеют у себя на борту таблицы, в которой описано 1 адрес в сети следующего маршрутизатора или самой конечной системы, для отправки данных на конечную систему на которую сделан запрос, 2 километраж (это не точное определения, там считается специальными единицами), 3 маска под сети (это не все, но в этой статье не будут подробно раскрываться маршрутизаторы).
Теперь сеть выглядит так.
Компьютеры выделенные цветом, хотят связаться друг с другом, на пути у них, есть несколько маршрутизаторов, и других компьютеров. Появляется вопрос, как же маршрутизатор узнает где именно конечная система, есть ли там по адресу маршрутизатор вообще, и какой путь длиннее, а еще на какой маршрутизатор, дальше отправить данные. На вопрос, о том где конечная система, и на какой маршрутизатор дальше отправит данные, отвечает адресация в сети, а именно IP адреса, прим: 192.168.0.1, маршрутизатор принимая данные которые ему пришли от компьютера, или от другого маршрутизатора, смотрит на все 4 блока адреса (блоки разделены точкой), допустим изначальный путь 176.123.82.129 данные приходят на маршрутизатор 176.123.82.130, к нему подключены два маршрутизатора, 176.123.82.120, 176.123.82.125, и один компьютер 176.123.82.129, это маршрутизатор посмотрит на свою таблицу адресов, и отправит данные туда где они «быстрее дойдут» до конечной системы, то есть, он сам туда отправить данные за счет IP в данных, и своей таблицы. Длина пути вычисляется с помощью, таблицы с «километражом» (не точно, ибо есть своя единица исчисления). С маршрутизаторами все, на самом деле они имеют еще очень много неточностей, и функций, но раскрывать их здесь подробно, я не буду, ибо это займет довольно много времени.
Что-же мы получаем в итоге? У нас есть сети, из конечных систем, провайдеров, они связаны между собой кабелями, но через переходники «маршрутизаторы», которые выполняют роль главный маршрутизаторов данных.
Не большое уточнения, «данные» это пакет данных, содержащий биты информации, порядок обработки такого «пакета» на маршрутизаторе, примерно так — приходит пакет, как правило пакет, это лишь часть всех данных которые передала конечная система, так вот, маршрутизатор делает обработку, достает заголовки сетевого уровня сети (об этом позже) обратно запаковывает пакет, от отправляет его по принципу который был описан выше. Уточню, маршрутизаторы, есть и те которые дожидаются когда прибудут все данные с конечной системой, и которые сразу отправляют данные, сразу, не дожидаясь остальных, но когда приходят остальные, он отправляет их туда же, куда отправил первые (все эти вычисления делает сам маршрутизатор, за счет заголовков в каждом отдельном пакете), а заниматься дальнейшей обработкой, и склеиванием пакетов должна конечная система на которую пришли пакеты, при этом если пакет был потерян, или произошла ошибка, маршрутизатор обязан прервать соединения, и повторить попытку.
Пятиуровневая модель сети TCP/IP
Как вы понимаете, чтобы все выше описанное работало верно, должен быть некий стандарт, этим де-факто стандартом является стек протоколов TCP/IP + уровень OSI.
Для начала немного терминов.
Что такое протокол? Протокол, это некое правила общения между двумя системами, самый травильный и популярный пример, это взаимодействие двух человек, допустим вы подходите в человеку, что вы обычно ему говорите? «Здравствуйте», человек обработает это, и ответит «Здравствуйте», после этого, как прошло соглашения об общении, вы спрашиваете «сколько времени», человек обработает это и ответит к примеру «14:00», после этого общения закончится на слова «благодарю» и «до свидания». Вот такой тип общения, и есть протокол, а именно из примера выше, у нас был почти что браузера, и хостинг, которые работают через HTTP TCP.
Что такое порт? Как вообще общаться компьютеры, через сети? Компьютеры общаются, через специальные приложения, так вот, эти приложения работают, через специальные интерфейсы «сокеты», для того чтобы, верно обработать веб-серверу HTTP запрос допустим, надо чтобы веб сервер вызвал процесс HTTP находящийся по порту 80, по такому порту заработает хостинг, чтобы веб сервер обработал TCP, надо обращаться с процессу с портом 443. То есть порт, это идентификатор процесса на конечной системе, чтобы к ней мог обратится сокет.
Что такое сокет? Один из самых частых вопросов новичков, сокет, это всего лишь интерфейс между протоколом прикладного уровня сети, и процессом компьютера, грубо говоря, есть два дома друг на против друга, в левом доме живет Иван, в правом Сергей, Иван захотел передать письмо Сергею, тогда Иван выходит из своего дома, через дверь (процесс на компьютере посылает пакет, через сокет, сокет в данном случае дверь), переходи через дорогу, тротуар (компьютерная сеть, маршрутизаторы), стучится в дверь, пожимает руку Сергею, и заходи через дверь к нему в дом (делает запрос «стучится», соглашается об работе «пожимает руку», и пакет приходит через сокет «дверь»).
Что такое процесс? Тут все просто, это «программа», которая работает на фоне, все время, допустим это HTTP обработчик.
Что такое соглашения упомянутое раньше? Это вовсе не обязательная процедура, соглашения двух процессов, об общении на таком порту, по такому IP, пример, браузер и веб сервер, начинают общение только после соглашения типа «трехсторонние рукопожатие», это когда вы вводите в адресной строке браузера адрес сайт, браузер сначала посылает запрос на сервер с вопросом «будем работать», сервер может ответить «да» или «нет», если да, то браузер посылает еще один запрос, и соединения начато, если нет, браузер пишет нам какую то ошибку, об запрете доступа. Замечу что не во всех компьютерных сетях, и протоколах обязательно какое либо «соглашения».
Вернемся к пятиуровневой модели сети, и так, пять уровней сети, это специальные уровни работы сети, которые позволяют легче вычислять на каком уровнен была обнаружена ошибка, это позволяет прикладному приложению, работать легче с данными из сети, и позволяет разработчикам, при надстройке своего протокола, не изучать высшую математику.
Приведу пример, используемый в книге «Компьютерные сети. Наглядно», с некоторой модификацией. Представим аэропорт, аэропорт по сути и есть сетевая модель, только в других реалиях, как работает аэропорт? Человек (будет выступать в роли пакета), заходит в здания, и подходит к кассе, на покупку билета, он покупает билет, и идет на регистрацию багажа, дойдя до регистрации багажа, регистрирует багаж, далее он идет на посадку на самолет, после чего самолет берет разгон на взлетной полосе, и уже потом летит (пакет «летит» по сети), после чего самолет приземляется, и происходит все описанное ранние, только в обратном порядке, а именно, самолет садиться на взлетной полосе, человек выходит из самолета, человек забирает багаж, и по желанию может подать жалобу на билет. А теперь представьте, если бы заместо каждой отдельной службы, была всего одна, которая занималась бы и посадкой на самолет, и продаже билетов, и так далее. Тут просто на ум в первую очередь приходят очереди, были бы огромные очереди. Все тоже самое происходит и с моделью сети.
Пример, у нас есть чат, одно приложения на нашем ПК, и другое на ПК нашего друга, мы отправляем сообщения, и происходит следующие, а именно, пакет собирается процессом клиентской (нашей) конечной машины, и через сокет отправляется на уровень модели под названием «транспортный», тот в свою очередь через протокол TCP составляет пакет (длина данных, данные…), и отправляет пакет еще ниже на уровень, к сетевому уровню, который через протокол IP добавляет к пакету данные, об получателе пакета (все данные, кроме изначально передаваемых, называются заголовками, далее мы и будем их так называть) (эти данные генерирует, сам процесс), далее процесс отправляет пакет на канальный уровень, этот уровень отвечает за поиск и исправления ошибок, в сети, а так же маршрутизацию в локальной сети, к примеру WI-FI, канальный уровень в свою очередь отправляет на физический уровень, физический уровень, шифрует все данные, и отправляет их через интерфейс (порт в ПК, или через WI-Fi) туда, куда предусмотрел сетевой уровень, после этого на конечной машине получателя, идет обработка данных, а именно, физический уровень на получателе, расшифровывает данные, и передает их на канальный, тот тоже расшифровывает их (убирает свои заголовки, взяв все нужные данные), и отправляет данные на сетевой уровень, тот обрабатывает, верно ли взят адрес, все ли работает, забирает свои заголовки, и отдает данные на транспортный уровень, тот в свою очередь, окончательно все расшифровывает, и отдает данные нашему «чату».
Уточню, если наш процесс вдруг захочет взят только данные из сетевого уровня, то он не как не сможет проскочить первые два уровня, то есть ему надо будет расшифровать сначала физический уровень, отправить данные на канальный, и только после этого дойти до сетевого, перепрыгнуть уровни не возможно. Это важно! Оно понадобится для дальнейшего домашнего задания (ответ будет описан в конце).
Вот как выглядят уровни сети
Уточню, у новичков может возникнуть вопрос, что значат стрелки между уровнями сети? На самом деле, этих стрелок нет, на самом деле, правый столб уровней, работает с пакетом просто на том протоколе, на котором он был отправлен в левом столбе, он не как не общается с уровнем который отправил этот пакет, он работает лишь с пакетом, на том протоколе, на котором работал уровень левого столба.
А теперь подумайте о плюсах, к примеру главный плюс, это если допустим на канальном уровне произошла ошибка, нам будет не трудно это узнать, просто пропустив по сети специальный возвращаемый запрос. Еще плюс, если мы захотим надстроить свой протокол, нам не придется менять все уровни сети, мы просто сделаем протокол, который верно будет работать с текущем уровнем сети. Далее будет более подробно рассмотрен каждый уровень.
Но для начала вопрос — маршрутизаторы, работают ли они с уровнями сети? С какими именно? До каких доходят? Какие читают? (Ответ в конце).
Прикладной уровень, это вовсе не обязательный в использовании сети уровень, он в основном отвечает за форматирования данных которые приходят на транспортный уровень, на конечной системе приемнике, допустим пример это веб сервер и веб браузер, они на прямую работают с HTML разметкой, при разработке веба, решили что передавать на прямую верстку через транспортный уровень, не очень хорошо, и был создан протокол прикладного уровня HTTP, этот протокол специально создан для передачи HTML документов. Но как я упомянул ранее, прикладной уровень вовсе не обязателен, практически все чат программы, еще до популярности онлайн чатов, обменивались данными через транспортный уровень, без использования прикладного.
Транспортный уровень, этот уровень сети, отвечает за транспортировку данных по сети, то есть он принимает сами данные, их длину, и еще некоторые заголовки, и посылает все это на сетевой уровень, данный уровень, эталонно должен повторять отправку при сбое системы, и одним из самых популярных протоколов данного уровня, является TCP, за ним UPD.
Сетевой уровень, данный уровень отвечает за, адресацию пакета, на данном уровне сохраняется, IP адрес, маска под сети, есть еще некоторые заголовки, но мы их рассматривать не будем. Он отвечает за маршрутизацию пакета по сети.
Канальный уровень, данный уровень отвечает за маршрутизацию пакета в локальной сети, к примеру для определения на какой компьютер послать пакет, в сети WI-FI, а так же, этот уровень отвечает за обнаружения, исправления ошибок при передаче пакета.
Физический уровень, этот уровень на прямую работает с интерфейсами ПК, и занимается шифровкой данных, в разного типа частоты, подробно мы его рассматривать не будем.
Какие типы сетей бывают?
Типов сетей бывает много, начиная от прикладных, заканчивая низкоуровневыми. Я рассмотрю тут два самых популярных типа сетей, это «P2P», и «client server». Но для начала термины.
Что такое клиент? Клиент этот как правила конечная машина (или процесс конечной машины), который запрашивает данные у сервера.
Что такое сервер? Сервер, этот как правило конечная машина (или процесс конечной машины), который по запросу отдает запрашиваемые данные, или любой другой ответ, в общем сервером называется то, что обрабатывает запросы которые на него поступают, и отвечает на них.
P2P (расшифровка — «peer-to-peer»), это тип сетей когда в, в компьютерной сети, все конечные машины, могут быть и серверами, и клиентами, пример группа скайп, когда вы звоните кому-то, вы становитесь клиентом (ваш скайп), который запрашивает у сервера видео обмен (у скайпа того кому вы звоните), теперь вы отключились от звонка, и резко вам позвонил тот с кем вы только что говорили, теперь вы не клиент, а сервер (ваш скайп теперь не делает запросы, а отвечает на них), а скайп того кто позвонил, не сервер а клиент (не отвечает на запросы, а посылает их). Так то и работает P2P, когда все машины потенциально и клиенты, и сервера. Опять же, пример такой сети это — Скайп.
Клиент сервер, это тип сети, когда у нас строго на строго есть клиенты, и сервер/сервера. То есть вы всегда можете лишь посылать запросы, а сервер отвечать на них, так может работать чат, ваш клиент (процесс) посылает запросы, на проверку нету ли, новых сообщений в базе, если есть, сервер вернет их, если нет, вернет другой ответ, когда вы отправляете сообщения, то оно летит на сервер с запросом типа «сохрани в базу новое сообщения». То есть у нас есть группа клиентов, и сервер, если два клиента захотят связаться, все будет проходить через сервер, а клиенты только будут делать запросы на сервер, с просьбой «верни все новые сообщения», а сервер лишь будет отвечать. Пример такой сети, это самая прикладная на данный момент сеть, это веб. Все ваши действия в браузере, вроде ввода адреса в адресную строку, делают запрос на сервер, а сервер лишь отвечает. Ваш браузер не может стать сервером, а сервер не может стать браузером. (Браузер процесс клиента, сервер процесс сервера).
И лишь совсем чуть чуть, о безопасности в сетях.
Безопасность в компьютерных сетях, это сейчас одна из самых популярных тем, информационной безопасности, и коротенькой статьи не хватит чтобы объяснить даже самые основные аспекты. Тут я лишь расскажу о паре самых популярных уязвимостей, и атак на компьютерные сети.
Перехват пакетов, как говорилось раньше, конечные машины обмениваются данными, через пакеты, проходящие по сети. Как вы понимаете в реалиях нашего мира, есть очень много виртуальных структур, которые связаны с финансами к примеру, это могут быть и банки, и просто оплата книги в интернет магазине, не важно. Все ваши данные, в любом случае будут переданы другой конечной машине (серверу), и обработаны, так вот, суть данной уязвимости в том, что данные которые передаются к серверу, а именно пакеты, могут быть перехвачены.
Соответственно могут быть украдены пароли, или номера кредитных карт. Это могут быть что пакеты веб браузера, что пакеты какой либо P2P сети. Решить данную уязвимость, можно сделав между клиентами, и серверами обязательное соглашения о котором шла речь раньше
Что такое соглашения упомянутое раньше? Это вовсе не обязательная процедура, соглашения двух процессов, об общении на таком порту, по такому IP, пример, браузер и веб сервер, начинают общение только после соглашения типа «трехсторонние рукопожатие», это когда вы вводите в адресной строке браузера адрес сайт, браузер начала посылает запрос на сервер с вопросом «будем работать», сервер может ответить «да» или «нет», если да, то браузер посылает еще один запрос, и соединения начато, если нет, браузер пишет нам какую то ошибку, об запрете доступа. Замечу что не во всех компьютерных сетях, и протоколах обязательно какое либо «соглашения».И в этом обязательном соглашении договариваться о работе по протоколу, который шифрует данные к примеру это HTTPS, а процесс его обработчика находиться по порту 443 (это порт и для TCP). То есть договориться общаться по порту 443, это TCP с наработкой, которая работает с HTTPS. Что такое HTTPS? Это протокол, а именно HTTP который шифруется специальной утилитой «SSL, TSL», а главное что шифруется такой пакет и на клиенте, и на сервере, соответственно перехватив такой пакет, злоумышленик не сможет ничего расшифровать, и обнаружить пароли и прочие…
DDoS атака, это атака, которая в данный момент является одной из самых популярных в компьютерных сетях. Работает она так, на больше количество конечных систем, путем рекламы, спама, и прочих методов рекламы, устанавливается вредоносное программное обеспечение(процесс), которое не видно, и работает он как правило без каких либо действий пользователя, в фоновом режиме, в определенный час «Ч», все компьютеры зараженные данным процессом, начинают посылать огромное количество запросов на определенный сервер, с целью выведения данного сервера, или маршрутизатора на пути к серверу, из строя. В запросе, как правило летит не много весовая (для обширности атаки), при этом максимально сложная информация для обработки сервером.
Атаки такого типа выводят сервера из строя, тем самым, что у сервера пропадает возможность отвечать на все более и более новые запросы, таким образом сервер падает, и стает не работа способным, так же, очень часты случаи что из строя выходи маршрутизатор на пути к серверу, ибо у них забивается буфер, и пропадает возможность дальше отправлять пакеты. Такие атаки как правило очень быстро исправляются, но, когда такие атаки происходят на какие то интернет биржи, или банки, что пользователи, что сами структуры, терпят убытки.
Защититься от такой атаки, можно анализируя количество запросов в секунду, от одного и того же IP. Минимальный при этом опасный размер атаки на данный момент это 100 тысяч запросов в секунду. Так же существует родитель DDoS атаки, а именно DoS, но на данный момент эта атака не так страшна, ибо мощность даже самых ушлых серверов, позволяет обработать столь не значительную нагрузку.
Заключения
В заключение я хочу сказать некоторые детали об этой статье.
- Ни в коем случае не используйте эту статью как учебник по компьютерным сетям, ибо это всего лишь «перекус» для сознания новичка в веб программировании, перед специальным изучением компьютерных сетей, не более того.
- В этой статье показаны лишь основы основами, все граничащие с основами моменты, были упущены, так же были показаны не все протоколы уровней сети.
- В этой статье, не рассказано о некоторых вещах, которые вы можете принять за основы, такие как буферизация маршрутизатора, или задержки передачи данных, или единицы измерения данных на разных уровнях, или подробная работа маршрутизатор, так далее и тому подобное… Они были упущены, ибо сложные, и могут запутать новичка.
Спасибо всем большое за прочтение!
UPD: статья рассчитана на тех, кто о сетях и знать ничего не знал, но хочет начать хотя бы не со сложных книг, а с общего обзора.