Файл: Сетевые операционные системы (Особенности алгоритмов управления ресурсами).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 14.05.2023

Просмотров: 472

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

• ifconfig — программа конфигурирования сетевого интерфейса;

• route — программа маршрутизации сетевого интерфейса (при запуске без параметров выдает таблицу маршрутизации);

• ping — проверяет доступность удаленной системы (Попробовали запустить? Не знаете, как выйти из нее? Тогда Ctrl+C);

• netstat — выдает отчет о состоянии сетевых соединений

• hostname — выдает текущее имя вашей системы

2.3.2 Архитектура

Linux – сетевая многопользовательская многозадачная операционная система с открытым кодом. Свободно распространяемая версия Unix, первоначально разработанная Линусом Торвальдсом (Linus Torvalds), начавшим работу над ней, будучи студентом Хельсинкского университета в Финляндии. Сейчас Линус работает в Transmeta Corporation, молодой фирме в городе Санта-Клара в Калифорнии, и продолжает поддерживать ядро Linux, т. е. основной низкоуровневый компонент операционной системы. Сегодня Linux является полноценным клоном Unix. Под ним работают X Window, TCP/IP, Emacs, Web, программы для работы с электронной почтой и телеконференциями - трудно все перечислить. Почти все основные свободно распространяемые программные пакеты перенесены на Linux. На практике многие разработчики сначала пишут свои приложения для Linux, а затем переносят их на другие Unix-системы. Поддерживается большее разнообразие аппаратных средств, чем в первоначальных версиях ядра. Было выполнено много тестов производительности Linux-систем, которые показали, что они работают быстрее рабочих станций Sun и Compaq. В большом числе тестов Linux-системы работают лучше или, по крайней мере, не хуже, чем Windows 98 или Windows NT.

Linux - монолитное (большое) ядро операционной системы.[15] Оно включает в себя все необходимые для работы системы драйверы (графические X11 и звуковые ALSA в т.ч.) и функционирует логически целостно. Однако, Linux так же поддерживает и динамическое, "горячее", подключение внешних модулей для поддержки оборудования, в виде которых и распространяются, например, закрытые (проприетарные) драйверы для видеокарт NVidia и AMD/ATI.

Загрузкой ядра Linux при старте операционной системы в большинстве случаев управляет универсальный загрузчик Grub (хотя встречаются и конфигурации с загрузчиком LILO), код которого может записываться как в загрузочный сектор основного носителя данных, так и одного из его логических разделов (для активации загрузочным флагом впоследствии).

Основная функции ядра системы Linux – связывать между собой прикладные программы и аппаратную часть (внешние и внутренние устройства). Ядро состоит из трех основных подсистем:


Файловая подсистема обеспечивает интерфейс к доступа к данным. Она получает запрос на доступ к данным, проверяет права доступа и выдает (или записывает)

Подсистема управления памятью и процессами, которая контролируем все программы запущенные на исполнение. Следит за тем, чтобы не было конфликтов по памяти. Контролирует создание и удаление процессов, распределяет системные ресурсы между процессами.

Подсистема ввода-вывода управляет доступом к периферийным устройствам, взаимодействует с драйверами устройств, организует и управляет очередями к внешним устройствам.

При работе с файлами программы могут не заботиться о типе безжалостного диска и файловой системе на нем. Системные вызовы заручат безопасность и стабильность системы. Так как ядро работает арбитром между ресурсами системы и программами, оно может получать решения о предоставлении доступа в соответствии с правами юзера и другими критериями. Ядро Linux предоставляет комплект интерфейсов, именуемых системными вызовами, которые дают обеспечение взаимодействие прикладных программ, работающих в пространстве юзера, и аппаратной части компьютера. POSIX, WinAPI – образцы таких API. Прикладные программы разрабатываются с применением программных интерфейсов прибавлений (Application Programming Interface, API). В этом случае нет нужды между в корре ляции между интерфейсами, какие используют приложения и интерфейсами, которые предоставляет ядро.

Сможет существовать один и тот же API для различных операционных систем, а осуществление его может отличаться. Например, операционные системы Linux и FreeBSD отвечают стандарту POSIX (Linux на 100% соответствует эталону POSIX 1003.1), и многие приложения, написанные для FreeBSD, смогут сравнительно легко быть перенесены в Linux и и наоборот. Этим объясняется схожесть наборов приложений для данных операционных систем. Частично интерфейс к системным функциям дает обеспечение библиотека C. Например, функция printf() формирует строчку в соответствии с заданным форматом и передает ее системному призыву write(), который отправляет ее на стандартное механизм вывода (чаще всего терминал).

Само ядро непосредственно пользователю недоступно, поэтому пользователь взаимодействует с ядром при помощи специальной программной оболочки (shell) или с помощью прикладных программ, в которых предусмотрены средства передачи команд от пользователя в ядро. Оболочки shell бывают различные: командные или графические.

К прикладным программам можно отнести различные редакторы тестовых файлов, офисные приложения, графические системы управления ресурсами, игры, системы управления базами данных и т.п.


Некоторые shell-оболочки и прикладные программы могут использовать утилиты – специальные программы, каждая из которых выполняет отдельную специфическую функцию (например, анализирует оперативную память, управляет буферами обмена и т.п.)

С системными и внешними устройствами ядро взаимодействует с помощью драйверов - специальных программ нижнего уровня, которые выполняют функции управления этими устройствами (драйверы похожи на утилиты, но связаны с управлением устройствами). Одной из причин, влияющих на сдерживание процесса распространения ОС Linux среди начинающих пользователей («юзеров») персональных компьютеров , является то, что раньше большинство драйверов приходилось искать и настраивать самим пользователям, что без специальной подготовки является задачей достаточно трудной.

В настоящее время многие дистрибутивы Linux, аналогично Windows, имеют библиотеки драйверов и специальные приложения, которые легко настраиваются на стандартное оборудование без вмешательства пользователя. С нестандартным малоизвестным или совсем новым оборудованием проблемы поиска драйвера под Linux остаются (между, прочим, как и под Windows). Обычно решение этих проблем значительно облегчается, если Вы приобрели дистрибутив Linux официально и пользуетесь услугами технической поддержки какого-нибудь профессионального Linux-центра или сайтами фирм разработчиков специфического оборудования.

2.3.3 Основные команды

«Ping»: посылает ICMP ECHO_REQUEST пакет указанному хосту. Если хост отвечает, вы получаете ICMP пакет обратно. Звучит странно? Вы можете 'ping-овать адрес, чтобы посмотреть, жив ли компьютер, ему соответствующий. Вот пример общения между двумя пользователями Linux. Синтаксис применения прост: "$ping <ip адрес или имя хоста> Конечно, программа так же имеет некоторые опции. Загляните в ping(1) man страницу, для информации.[16]

«telnet»: когда-то сказал, что telnet это самое крутое, из всего, что он когда либо видел в мире компьютеров. Возможность удалённо подключаться и делать что-то на другом компьютере, выделяет Unix и Unix-подобные системы от других систем. Telnet позволяет вам войти в удалённую систему точно так же, как если бы вы сидели за этим компьютером. Указав ваше имя пользователя и пароль, вам выдаётся приглашение командной строки оболочки. С этого момента вы можете делать всё то же, что обычно выполняете в текстовой консоли. Писать письма, читать группы новостей, перемещать файлы, и т.д. Если вы в X и вы соединились с другим компьютером по telnet из xterm, вы можете выполнять программы на удалённом компьютере, а отображать на вашем. Для подключения к удалённому компьютеру, воспользуйтесь таким синтаксисом: «$telnet <hostname>». Если хост ответит, вы получите приглашение входа в систему. Введите имя пользователя и пароль. Ну вот. Теперь вы в оболочке. Чтобы выйти из вашей сессии telnet, воспользуйтесь либо exit, либо logout, на ваше усмотрение.


«wget»: это утилита командной строки, которая скачивает файлы с указанного URL. Она полезна при скачивании целых вэб сайтов, для просмотра в offline, или для более надёжной загрузки файлов с HTTP или FTP серверов, чем из Netscape. Основной синтаксис: «$wget <url>». Вы так же можете указать опции. Например, такая команда загрузит Slackware вэб сайт: wget -recursive http://www.slackware.com. Wget создаст каталог www.slackware.com и запишет в него файлы, как они расположены на сайте. С помощью этой программы так же может загружать файлы с FTP сайтов; просто укажите FTP URL вместо HTTP URL-а. У wget есть гораздо больше опций, что делает её пригодной для использования в скриптах (зеркалирование вэб сайтов, и т.д.). man страничка будет вашей следующей остановкой.

«traceroute»: это полезный инструмент для диагностики системы, traceroute показывает каждый хост, через который пакеты путешествуют на пути достижения цели. Вы можете посмотреть, сколько ''прыжков'' пакеты совершают, путешествую от вас до Slackware вэб сайта, воспользовавшись такой командой: $traceroute www.slackware.com. Каждый из хостов будет показан, вместе со временем ответа.

«ifconfig»: команда выдает информацию про все сетевые устройства вашего компьютера, MAC-адреса, IP-адрес, сетевую маску и т.д.

«arp» :команда arp отображает ARP-таблицу данного хоста. С помощью параметра -i можно специфицировать сетевой интерфейс, информация о котором интересует. Таблица с информацией о канальном уровне содержит связь IP- и MAC-адресов. При использовании параметра -n IP-адреса не будут заменяться символьными именами хостов.

«route»: эта команда используется для просмотра и изменения таблицы маршрутизации хоста. Для этой команды также работает параметр -n, при использовании которого IP-адреса не будут заменяться символьными именами хостов. Особый интерес представляет адрес 0.0.0.0, который соответствует хосту назначения по умолчанию. Для добавление нового маршрута к определённому хосту используются параметры add и -host. "route add -host 192.168.0.1 eth0" - эта команда создаёт новую строку в таблице маршрутизации, согласно которой все пакеты к узлу 192.168.0.1 должны отправляться в сетевой интерфейс eth0.

«tcpdump»: команда используется для мониторинга сети на канальном и более высоких уровнях. Программа «слушает» на одним или нескольких сетевых интерфейсах и выводит дамп пакетов, проходящих через этот интерфейс. Параметр -i задаёт имя сетевого интерфейса, на котором запускается прослушивание. При просмотре захватываемых данных удобно использовать ключ -l, который буферезует вывод построчно. Для этой команды также работает параметр -n, при использовании которого IP-адреса не будут заменяться символьными именами хостов.


«nmap»: сетевой сканер, с помощью которого можно определить уязвимость удалённых хостов. Основное назначение этой программы – определение состояние портов удалённого хоста (закрыты они, открыты или заблокированны). Также программа может на основании собственной базы знаний определить по поведению удалённого хоста, какая операционная система запущена на нём.

2.4 Router OS

2.4.1 Предоставляема функциональность

Mikrotik Router OS это мощный инструмент для создания сетей и их управлением, включающий в свой арсенал огромное количество функций для работы практически со всеми возможными сетевыми протоколами. Поддерживаются такие функции для работы с протоколом TCP/IP как:

- Firewall NAT (Network Address Translation) - механизм распределение пакетов с реализацией функций SNAT и DNAT; внутреннее распределение и маршрутизация пакетов; фильтрация по IP адресам, диапазонам адресов, портам и их диапазонам, протоколам, интерфейсам, маркировка пакетов и многое другое; списки адресов; полная поддержка IPv4 и IPv6; PCC (Per Connection Classifier) - механизм распределения нагрузки;

- Routing статическая маршрутизация, виртуальная маршрутизация (VRF); маршрутизация на базе политик; маршрутизация на базе интерфейсов; динамические протоколы маршрутизации RIP v1/v2, OSPFv2, BGP v4 и RIPng, OSPFv3, BGP для IPv6 протокола;

- VPN и туннели IPsec - IP security AH и ESP протоколы, с поддержка аппаратного шифрования на некоторых моделях оборудования RouterBoard;

- PTP (Point to Point) протоколы, включая OpenVPN, PPTP, PPPoE, L2TP, SSTP с поддержкой PAP, CHAP, MSCHAPv1 и MSCHAPv2 авторизации; поддержка простых туннелей по протоколам IP2IP и EoIP в сетях IPv4 и IPv6; поддержка виртуальных сетей VLAN;

тунели на базе MPLS;

- DHCP базовый DHCP сервер с поддержкой IPv6 (DHCPv6-PD); DHCP клиент с поддержкой IPv6 (DHCPv6); статический и динамический DHCP; персональные DHCP настройки;

- QoS возможность динамического управления полосой пропускания для IP, протокола, подсети, порта и цепочки при помощи протокола HTB (Hierarchical Token Bucket); Simple queues (простые очереди) для быстрой реализации функции QoS; динамическое выравнивание скорости клиента (PCQ);

- Proxy встроенный FTP и HTTP/HTTPS прокси-сервер с возможностью кэширования; прозрачный DNS и HTTP прокси-сервер;

- поддержка SOCKS протокола; DNS static записи; поддержка Parent proxy; список доступа Access control list;

- ISDN ISDN dial-in / dial-out; поддержка протоколов авторизации PAP, CHAP, MSCHAPv1 и MSCHAPv2; поддержка протоколов Cisco HDLC, x75i, x75ui, x75bui; дозвон по требованию;