Шаблон для выполнения работы
Для выполнения работы создайте новый файла в Obsidian, назовите его “Фамилия Имя Отчество Группа”, скопируйте и вставьте представленный ниже шаблон:
# Лабораторная работа №1
## Создание виртуальных машин в virtualbox
### Создание сети
```bash
$ VBoxManage natnetwork add --netname natnet1 --network "10.0.x.0/24" --enable --dhcp on
$ VBoxManage list natnetworks
```
<Тут должен быть скриншот выполненых выше команд>
### Создание машин
<Тут должны быть скриншоты, со всеми этапами создания и настройки обоих машин в virtualbox>
## Установка ubuntu server
<Тут должны быть скриншоты настройки ubuntu server для обоих машин>
## Установка необходимого софта
<Тут должны быть скриншоты вывода команд apt update/install>
## Ручная настройка сети на ubuntu server
```bash
# Вставьте сюда вывод команд ip a и cat /etc/netplan/50-cloud-init.yaml
# !!!! ДО ТОГО, КАК ВЫ ИЗМЕНИТЕ НАСТРОЙКИ СЕТИ !!!!
```
```bash
# После изменений настроек сети вставьте вывод команд ip a и cat /etc/netplan/50-cloud-init.yaml
```
## Проверка сетевой доступности двух машин
1. Ваш ответ на вопрос, в свободной форме
2. Ваш ответ на вопрос, в свободной форме
3. Ваш ответ на вопрос, в свободной форме
## Самоконтроль
1. Ваш ответ на вопрос, в свободной форме
2. Ваш ответ на вопрос, в свободной форме
3. Ваш ответ на вопрос, в свободной форме
Теоретическая часть
Модель OSI
Модель OSI (Open Systems Interconnection) — это сетевая модель, разработанная Международной организацией по стандартизации (ISO) для описания и стандартизации коммуникационных процессов в компьютерных сетях. Модель OSI состоит из семи уровней, каждый из которых выполняет определённые функции для обеспечения передачи данных между устройствами в сети.
1. Физический уровень (Physical Layer)
- Отвечает за передачу необработанных битов данных (нулей и единиц) по физическому средству передачи (кабели, радиоволны и т.д.).
- Осуществляет электрические, механические и процедурные функции, такие как электрические сигналы, частота, напряжение.
- Примеры устройств: сетевые адаптеры, кабели, повторители.
2. Канальный уровень (Data Link Layer)
- Отвечает за надежную передачу данных между двумя узлами, находящимися в пределах одной сети.
- Уровень управляет доступом к среде передачи и обнаруживает и исправляет ошибки.
- Включает в себя два подуровня: управление логическим каналом (LLC) и управление доступом к среде (MAC).
- Примеры протоколов: Ethernet, Wi-Fi, PPP.
3. Сетевой уровень (Network Layer)
- Отвечает за маршрутизацию данных между различными сетями. Он определяет путь от отправителя до получателя через несколько сетей.
- Осуществляет логическую адресацию (например, IP-адреса) и маршрутизацию пакетов.
- Примеры протоколов: IP (Internet Protocol), ICMP.
4. Транспортный уровень (Transport Layer)
- Отвечает за надежную доставку данных от одного хоста к другому. Этот уровень обеспечивает корректную передачу данных и контроль потока.
- Использует механизмы управления ошибками и разделение данных на сегменты.
- Примеры протоколов: TCP (Transmission Control Protocol), UDP (User Datagram Protocol).
5. Сеансовый уровень (Session Layer)
- Управляет установкой, поддержанием и завершением сеансов связи между приложениями. Сеанс — это длительное взаимодействие между двумя устройствами.
- Управляет синхронизацией и организацией обмена данными.
- Примеры: протоколы RPC (Remote Procedure Call), SMB (Server Message Block).
6. Представительский уровень (Presentation Layer)
- Отвечает за преобразование данных в формат, удобный для использования приложениями. Он занимается шифрованием, дешифрованием, сжатием и преобразованием кодировок данных.
- Пример: преобразование текстов в различные кодировки (ASCII, UTF-8), SSL/TLS для шифрования.
7. Прикладной уровень (Application Layer)
- Отвечает за взаимодействие с конечными приложениями пользователя. Здесь происходят все операции, связанные с передачей данных между программами.
- Примеры протоколов: HTTP, FTP, SMTP, DNS.
Модель TCP/IP
Модель TCP/IP (Transmission Control Protocol/Internet Protocol) — это сетевая модель, которая описывает, как данные передаются через Интернет и другие компьютерные сети. В отличие от модели OSI, которая состоит из семи уровней, модель TCP/IP включает четыре уровня, более приближённых к реальным сетевым архитектурам и протоколам, использующимся в Интернете.
1. Уровень доступа к сети (Network Access Layer)
- Этот уровень объединяет физический и канальный уровни модели OSI.
- Отвечает за физическую передачу данных по сети, взаимодействие с сетевыми интерфейсами и управляет доступом к физической среде передачи данных (например, Ethernet, Wi-Fi).
- Включает в себя работу с MAC-адресами, создание кадров (frames) и управление доступом к сети.
- Примеры технологий: Ethernet, Wi-Fi, PPP.
2. Интернет-уровень (Internet Layer)
- Этот уровень аналогичен сетевому уровню в модели OSI. Он занимается маршрутизацией пакетов через различные сети и обеспечивает возможность доставки данных между хостами, находящимися в разных сетях.
- Основной протокол на этом уровне — это IP (Internet Protocol), который обеспечивает логическую адресацию и маршрутизацию пакетов данных.
- Примеры протоколов: IP (IPv4, IPv6), ICMP (Internet Control Message Protocol), ARP (Address Resolution Protocol).
3. Транспортный уровень (Transport Layer)
- Этот уровень аналогичен транспортному уровню в модели OSI. Он отвечает за надежную передачу данных от одного узла к другому, сегментацию данных и контроль ошибок.
- В модели TCP/IP существует два основных транспортных протокола:
- TCP (Transmission Control Protocol) — обеспечивает надежную передачу данных с подтверждением получения, контроль потока, восстановление утерянных сегментов. Подходит для приложений, где важна надежность (например, веб-браузинг, электронная почта).
- UDP (User Datagram Protocol) — более быстрый, но ненадежный протокол, который не обеспечивает подтверждения доставки. Подходит для приложений, где важна скорость, а потеря данных не критична (например, видеостриминг, VoIP).
- Примеры протоколов: TCP, UDP.
4. Прикладной уровень (Application Layer)
- Этот уровень объединяет три верхних уровня модели OSI: прикладной, сеансовый и представительский. Он отвечает за взаимодействие с конечными приложениями, передавая данные в нужных форматах и обеспечивая управление соединениями.
- Протоколы прикладного уровня напрямую взаимодействуют с пользователем или приложениями. Примеры таких протоколов:
- HTTP (Hypertext Transfer Protocol) — для веб-браузеров.
- FTP (File Transfer Protocol) — для передачи файлов.
- SMTP (Simple Mail Transfer Protocol) — для отправки электронной почты.
- DNS (Domain Name System) — для разрешения доменных имен в IP-адреса.
Ключевые различия между моделями OSI и TCP/IP:
- Количество уровней: OSI имеет 7 уровней, а TCP/IP — 4 уровня.
- Стандартизация: Модель OSI носит больше теоретический характер, её уровни строго разделены. Модель TCP/IP более практична и приближена к тому, как реально работают сети.
- Прикладной уровень: В модели OSI прикладной, сеансовый и представительский уровни разделены, тогда как в TCP/IP они объединены в один.
DHCP
DHCP (Dynamic Host Configuration Protocol) — это сетевой протокол, который используется для автоматической настройки сетевых параметров на устройствах (клиентах) в сети. DHCP упрощает управление IP-адресами, автоматически предоставляя устройствам (например, компьютерам, смартфонам, принтерам и т.д.) IP-адреса и другие параметры сети, необходимые для их работы.
Основные функции DHCP:
- Автоматическое назначение IP-адресов. DHCP-сервер динамически выделяет IP-адреса устройствам, когда они подключаются к сети.
- Выдача других сетевых параметров. Помимо IP-адреса, DHCP может предоставлять маску подсети, шлюз по умолчанию (gateway), адреса DNS-серверов и другие параметры.
- Управление временем аренды IP-адреса. DHCP назначает IP-адрес устройству на определённый период времени (время аренды), после чего устройство должно либо запросить продление аренды, либо получить новый адрес.
Как работает DHCP:
- Клиентский запрос (DHCP Discovery). Когда устройство (клиент) подключается к сети и не имеет IP-адреса, оно отправляет широковещательное сообщение DHCP Discover с просьбой о назначении IP-адреса.
- Ответ сервера (DHCP Offer). DHCP-сервер получает запрос и резервирует для клиента IP-адрес, после чего отправляет ответное сообщение DHCP Offer, в котором содержится предложенный IP-адрес и другие сетевые параметры.
- Запрос клиента (DHCP Request). Клиент, получив DHCP Offer, отправляет сообщение DHCP Request, подтверждая, что он согласен принять предложенный IP-адрес и настройки.
- Подтверждение сервера (DHCP Acknowledgement). DHCP-сервер подтверждает назначение IP-адреса и отправляет сообщение DHCP Acknowledgement. После этого клиент получает IP-адрес и может использовать его для работы в сети.
Основные компоненты DHCP:
- DHCP-сервер — устройство, которое управляет выделением IP-адресов и предоставляет другие сетевые параметры клиентам.
- DHCP-клиент — устройство, которое запрашивает IP-адрес и сетевые параметры от DHCP-сервера.
- DHCP-ретранслятор (relay agent) — устройство, которое пересылает DHCP-запросы от клиентов в другую подсеть, если DHCP-сервер находится за пределами локальной сети.
Время аренды IP-адреса
DHCP назначает IP-адрес на определённый срок — так называемое время аренды. Когда время аренды подходит к концу, клиент должен запросить продление аренды. Если устройство выходит из сети до окончания аренды, IP-адрес освобождается и может быть назначен другому устройству.
Преимущества использования DHCP:
- Автоматизация. DHCP избавляет администратора сети от необходимости вручную назначать IP-адреса каждому устройству, что значительно упрощает администрирование, особенно в крупных сетях.
- Избежание конфликтов IP-адресов. DHCP гарантирует, что каждый клиент получает уникальный IP-адрес, избегая конфликтов.
- Простота масштабирования. В случае роста сети и добавления новых устройств DHCP автоматически выделяет адреса, не требуя изменения конфигурации существующих устройств.
- Гибкость. DHCP позволяет изменять сетевые параметры (например, DNS-серверы, маршрутизаторы) без необходимости ручной настройки каждого устройства.
Проблемы, связанные с DHCP:
- Зависимость от сервера. Если DHCP-сервер выходит из строя, новые устройства не смогут получить IP-адреса, и их подключение к сети станет невозможным.
- Безопасность. Атаки могут быть нацелены на подмену DHCP-сервера (DHCP spoofing), что позволяет злоумышленникам назначать неправильные сетевые параметры и перенаправлять трафик на вредоносные серверы.
Использование DHCP в реальных сетях
- DHCP широко используется в домашних и корпоративных сетях. Например, когда вы подключаетесь к домашнему Wi-Fi, ваш маршрутизатор выступает в роли DHCP-сервера, предоставляя вашему устройству IP-адрес.
- В корпоративных сетях DHCP позволяет управлять тысячами устройств, автоматически распределяя IP-адреса и упрощая настройку и обслуживание сети.
Практическое задание
Создание виртуальных машин в virtualbox
После того, как вы установили virtualbox на свой ПК, нужно создать nat сеть, в которую мы будем добавлять наши вм. Сделать это можно при помощи этой команды:
$ VBoxManage natnetwork add --netname natnet1 --network "10.0.x.0/24" --enable --dhcp on
Где x – ваш номер по списку группы.
Просмотреть информацию по nat сетям можно при помощи следующей команды:
$ VBoxManage list natnetworks
Name: i-ivanov-nat1
Network: 10.0.1.0/24
Gateway: 10.0.1.1
DHCP Server: Yes
IPv6: No
IPv6 Prefix: fd17:625c:f037:2::/64
IPv6 Default: No
Далее нужно скачать установочный образ ubuntu
Далее нужно создать виртуальную машину в графическом интерфейсе virtualbox:
Name: Ubuntu-server-1
Folder: Путь до папки, где будет хранится сама виртуальная машина
ISO Image: Путь до скаченного ранее iso образа
Base Memory: 1024 MB Processors: 1 CPU
Create a Virtual Hard Disk Now -> Disk Size: 10.00 GB (Можно больше, меньше не рекомендуется)
В настройках машины в пункте System в разделе Boot Order выключить Floppy, включить Network, передвинуть Optical на самый верх.
Включить Adapter 1 в настройках машины в пункте Network.
Attached to: Bridged Adapter
Name: <Имя сетевого интерфейса на вашей машине>
Включить Adapter 2 в настройках машины в пункте Network.
Attached to: NAT Network Name: <Имя сети, которые вы ввели ранее>
(!!!)
По аналогии сделать вторую виртуальную машину со всеми теми же настройками, но именем Ubuntu-server-2
(!!!)
Установка ubuntu server
После запуска виртуальной машины вы увидете следующее окно установки, выбирете English язык.
В keyboard information так же оставьте English.
В разметке дисков уберите галочку с set up this disk as an LVM group, и нажмите Done.
В настройках сети вы можете наблюдать, что dhcp сервера выдали ipv4 адреса для обоих интерфейсов. Здесь ничего менять не требуется, идем дальше.
Подтверждаем разметку дисков.
Далее заполняем данные пользователя.
Name: <Первая буква вашего имени>-<ваша фамилия транслитом>
Your servers name: server1
Pick a username: <Первая буква вашего имени>-<ваша фамилия транслитом>
Данный раздел просто пропускаем.
Устанавливаем openssh server.
(!!!)
По аналогии сделать вторую виртуальную машину со всеми теми же настройками, но именем server-2
(!!!)
Установка необходимого софта на сервера
После успешной установки, перезагрузки и входа в систему вы можете при помощи команды sudo su
повысить свои привелегии до root пользователя. Далее, от рут пользователя установим необходимый нам софт:
sudo apt update
sudo apt install net-tools nmap traceroute dnsutils arping -y
Ручная настройка сети на ubuntu server
Далее настроим вторую сеть (NAT Network) статически. Чтобы узнать имя сети введите команду ip a
Далее откройте файл /etc/netplan/50-cloud-init.yaml при помощи консольного текстового редактора nano.
Приведите его к следующему виду:
- Из вывода команды
ip a
мы узнали имя интерфейса, в нем и будет производить изменения - dhcp4: false – отключаем dhcp
- addresses: [ 10.0.x.151/24 ] – указываем статический ip адрес, где x – ваш номер в списке
- routes: - to: default via: 10.0.x.1 – указываем default маршрут, через который будет идти трафик
- nameservers – указываем dns сервера для конкретного интерфейса
Чтобы применить измениня, которые мы произвели, нужно ввести следующую команду:
netplan apply
Произвести те же самые действия на Ubuntu-server-2, изменив только addresses с 10.0.x.151/24 на 10.0.x.152/24.
Проверка сетевой доступности двух машин
- Что будет, если сделать
ping
машины Ubuntu-server-1 с Ubuntu-server-2 через bridge интерфейс? (например:ping -c 4 192.168.1.151
) - Что будет, если сделать
ping
машины Ubuntu-server-2 с Ubuntu-server-1 через Nat Network интерфейс? (например:ping -c 4 10.0.1.152
) - Что будет, если сделать
ping
машины Ubuntu-server-2 с вашей хостовой машины через NAT Network интерфейс? (например:ping 10.0.1.151
)
Самоконтроль
- Сколько уровней в модели OSI?
- Каких уровней нет в модели TCP/IP, если сравнивать ее с OSI?
- Для чего нужен dhcp?