[МУЗЫКА] [МУЗЫКА] Здравствуйте,
с вами по-прежнему я, Николай Булахов, и мы продолжаем изучать компьютерные сети.
На сей раз мы объединим два компьютера в сеть и будем пересылать информацию
между ними.
Ранее мы уже говорили с вами о том, что самый простой способ объединить два
компьютера — это взять нуль-модемный кабель и соединить их через COM-порты.
В реальной жизни мы бы с вами так и сделали.
Для VirtualBox,
в настройках выключенных виртуальных машин зайдите на вкладку «COM-порты».
Выберите вкладку «Порт 1» и поставьте галочку на пункте «Включить
последовательный порт».
Номер прерывания и порт оставьте по умолчанию.
Выберите режим порта «Хост-канал».
В графе «Путь / Адрес» на одном компьютере укажите
\\.\pipe\COM1 так,
как показано на экране, и поставьте галочку напротив пункта «Создать канал».
В вашей версии VirtualBox, возможно,
будет пункт «Подключиться к существующему каналу».
Тогда оставьте пустым поле напротив этого пункта.
Суть здесь остается в том, что вы должны как бы создать тот самый
виртуальный кабель, по которому будет передаваться информация.
Поэтому на одном компьютере вам надо создать этот канал,
а на другом компьютере — подключиться к нему.
Поэтому на другом компьютере, когда вы будете создавать виртуальный COM-порт,
укажите тот же самый путь — \\.\pipe\COM1,
но галочку напротив пункта «Создать канал» ставить уже не надо.
Если же у вас пункт звучит как «Подключиться к существующему каналу»,
то, наоборот, отметьте его галочкой.
Это как раз и задаст конфигурацию, при которой на каждом виртуальном компьютере
имеется по COM-порту, и они соединены между собой кабелем напрямую.
Нам понадобится установить дополнительную программу,
которая умеет общаться через COM-порты.
Поэтому проконтролируйте, что тип сети у ваших компьютеров NAT.
Для этого повторите ту же самую последовательность действий,
которую мы выполняли при изменении параметров конфигурирования сети,
убедитесь, что тип сетевого подключения выбран именно NAT.
Далее, запустите сначала компьютер,
где не выбран пункт «Подключение к существующему каналу»,
либо, если у вас точно так же, как и у меня, пункт называется «Создать канал»,
то, наоборот, выбран этот самый пунктик,
затем запустите тот компьютер, где все сделано наоборот.
Чтобы передавать информацию в порт и читать информацию из неё,
воспользуйтесь программой Putty.
Для начала надо ее установить.
Для этого откройте окно терминала и выполните уже знакомую вам команду
sudo apt- get install putty точно так же, как это показано на экране.
Вам понадобится ввести пароль от вашего аккаунта.
Не забывайте, что при этом он в терминале не печатается.
Просто наберите пароль и нажмите Enter.
Дождитесь окончания установки.
Сразу же после установки вы можете запустить программу Putty.
Для этого наберите sudo пробел putty.
Мы запускаем эту программу с привилегиями суперпользователя.
Возможно, конечно, это не самый лучший вариант в повседневной жизни,
но для учебных целей вполне сгодится.
Суперпользователь нам здесь нужен для того,
чтобы получить доступ к тому самому COM-порту, к которому по умолчанию
непривилегированный пользователь доступа не имеет.
Выберите тип подключения в программе Putty — последовательный порт.
Имя порта укажите по умолчанию — /dev/ttyS0.
Скорость также оставьте по умолчанию.
Нажмите «Открыть», имеется в виду открыть соединение.
Сначала на одном компьютере проделайте эту последовательность действий,
потом — на другом.
В появившихся окнах попробуйте набрать какой-либо текст.
Например, «Здравствуй, мир».
Каждый вводимый вами символ будет передаваться связанному с вами компьютеру,
а то, что приходит в ответ, будет показано на экране.
Для этого на другом компьютере в его окне терминала
наберите еще какую-нибудь фразу, например, «Привет», и вы увидите,
что отосланные в ответ символы тут же появились на другом экране.
[БЕЗ_ЗВУКА] Первые
компьютерные программы широко использовали данный способ передачи.
Соединив таким простым способом два компьютера, можно было поиграть, например,
в Star Craft.
Но нас интересует передача информации по сети.
И мы уже рассмотрели,
как можно соединить компьютеры при помощи сетевых адаптеров по технологии Ethernet.
В настройках адаптеров VirtualBox ваших виртуальных машин
выберите host-only network.
Задайте имя сети.
Оно должны быть одинаковое на обоих компьютерах.
Это как имя коммутатора, к которому подключается виртуальный компьютер.
Отключите автоматическое получение сетевых настроек внутри вашей
гостевой операционной системы.
Для этого кликните по значку сети в правом верхнем углу рабочего стола каждой машины,
выберите пункт в появившемся контекстном меню «Изменить соединения».
Выберите проводное соединение 1.
Изменить.
На вкладке «IPv4» способ настройки «Выключено».
Аналогично на вкладке «IPv6» выберите пункт «Игнорировать».
Нажмите кнопку «Сохранить».
Подчеркиваю, вышеуказанные действия надо повторить на каждой машине.
[БЕЗ_ЗВУКА] Запустите
на одном компьютере программу Scapy, на другом — Wireshark.
Запустить их надо от имени суперпользователя,
чтобы у нас не возникало никаких проблем.
Поэтому в терминале наберите в одном случае команду sudo пробел scapy,
в другом — sudo пробел wireshark.
Запустите в Wireshark прослушивание всех доступных интерфейсов,
то есть any в списке прослушиваемых интерфейсов.
В Scapy выполните команду, отправляющую в сеть через сетевой интерфейс виртуальной
машины текст «Здравствуй, мир».
Для этого сначала узнайте название сетевого интерфейса в виртуальной машине.
Для этого запустите еще один терминал и выполните команду ifconfig.
Название будет в левой колонке.
Справа вы увидите физический адрес интерфейса — точно такой же,
как указан в настройках в VirtualBox для данного интерфейса.
Используйте этот способ проверки связи между именем интерфейса в настройках
VirtualBox и внутри гостевой операционной системы.
В моем случае имя интерфейса — enp0s3.
В запущенном Scapy наберите следующую строчку
— sendp(Ether(src=,
в одинарных кавычках MAC-адрес,
у вас он будет отличный от того, который вы видите на экране,
далее, /"Здравствуй, мир",
iface=enp0s3.
Что же мы сделали?
Sendp отправляет данные через сетевой интерфейс,
указанный в параметре iface, — enp0s3 в моем случае.
Чтобы VirtualBox передал сформированный пакет от отправителя к получателю,
надо указать MAC-адрес отправителя, что мы, собственно, и сделали с помощью
параметра src и MAC-адреса, указанного в одинарных кавычках.
В моем случае вы видите этот адрес на экране.
У вас же будет совершенно другой адрес.
Повторюсь, вы должны посмотреть его с помощью команды ifconfig,
выполнив ее во втором терминале.
Опять же, вы можете посмотреть этот адрес и в настройках самого VirtualBox.
Он у вас будет указан как адрес интерфейса, аппаратный адрес интерфейса.
Hello, World — это информация, которую мы хотим передать,
то есть та самая полезная нагрузка.
В окне программы Wireshark вы тут же увидите пакет, который вы отправили.
Помимо этого пакета, по сети передается различного рода служебная информация.
Несмотря на то, что мы минимизировали ее количество, отключив динамическую
настройку интерфейсов, тем не менее какая-то информация, как видите, проходит.
Но и те пакеты, которые передали вы, тут же появляются в окне Wireshark.
Почему вы передали информацию таким довольно сложным способом,
задействовав две дополнительные программы?
Дело в том, что мы с вами еще ничего не знаем о настройках сетевых интерфейсов,
о сетевых протоколах.
И поэтому нам понадобился самый простой вариант передачи данных,
при котором мы не используем никакие дополнительные протоколы,
поля, заголовки этих самых пакетов, а просто в сеть отослали
некоторую фразу «Здравствуй, мир», а на другом компьютере, можно сказать даже,
не приняли этот пакет, а просто посмотрели, что передается по сети.
Собственно, эти две программы — Scapy и Wireshark позволили нам это сделать.
На этом можно пока остановиться.
Мы уже передали с вами информацию через нуль-модемный кабель и посредством
сетевого адаптера.
Будем усложнять задачу постепенно.
[МУЗЫКА]
[МУЗЫКА]