Различия между версиями 13 и 14
Версия 13 от 2023-04-02 20:22:10
Размер: 10789
Редактор: FrBrGeorge
Комментарий:
Версия 14 от 2023-04-02 20:37:15
Размер: 10236
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 46: Строка 46:
Сами скрипты (по состоянию на <<Date(2023-03-05T12:56:49+0300)>>):
 * [[attachment:../VirtualBoxTools/vbsnap]] — Клонирование виртуалки со сменой порта для консоли и подключением внутренних сетей
 * [[attachment:../VirtualBoxTools/vbconnect]] — Подключение к виртуалке с помощью [[http://www.dest-unreach.org/socat/|socat]]
 * [[attachment:../VirtualBoxTools/vbintnets]] — Список внутренних сетей у запущенных виртуалок
<<Include(../VirtualBoxTools, ,to="^=")>>

Некоторые сведения о физическом уровне и управлении виртуальными машинами

Носители данных

Две задачи:

  1. Свойства среды передачи данных

    • Коммутация каналов или данных?
      • Аналоговый поток ⇒ разделяем каналы
      • Цифровой поток ⇒ разделяем данные
    • С помощью чего представляются данные
    • Параметры среды, условия эксплуатации
      • Та же витая пара: оплётка, шаг и направление скруток, расстояние до соседней пары и т. п. (тысячи их)

  2. Формат данных
    • Физическое кодирование

      • Синхронизация (NRZManchester)

      • Как отличить данные от не-данных? (преамбула/кадр)

      • Обнаружение ошибок. Пример: чётность; сколько дополнительных битов, столько ошибок можно найти, но не исправить.
      • Исправление ошибок (пример: линейный код избыточность такая, что при возникновении одной ошибки результат всё равно по метрике ближе неискажённому исходнику)

      • Скремблинг (в некоторых средах спасает от собственных помех и «накопления единицы»)

      • Адская математика и алгоритмы коррекции искажений среды (например, ADSL)

    • Пример: последовательный порт RS-232 (вспомогательные сигналы для управления потоком, но контроль чётности уровнем выше, UART)

Что известно о физическом уровне со стороны ОС? Да ничего почти.

  • В виртуалке:
    • ethtool eth0

      • Посмотреть на «Supported ports» и «Port»
    • ip link set eth0 up

      • Снова посмотреть на «Supported ports» и «Port»

Работа с VirtualBox

  • <!> Важно: Фиксация состояния (snapshot) и откат к этому состоянию

  • Что мы меняем на лекциях в настройках
  • Клонирование машин
    • (./) «Связное клонирование»

    • (./) «Новые MAC-адреса для всех сетевых адаптеров»

    • Дополнительно: выключение проброса COM в сеть или смена TCP-порта в настройках

О волшебных скриптах в лекции

  • Управление VirtualBox с помощью VBoxManage

    • На 2023 год — alien technology detected (LC_ALL=C … oops!)

  • Проброс COM-сорта через TCP
    • Подключение к порту с помощью netcat

  • На гостевой машине:
    • export TERM=xterm-256color

      • Для владельцев xterm. bin/xtermresize

    • sethostname имя

Shell-сценарии для лекций (2023-04-03)

  • vbsnap — для быстрого создания клона

  • vbconnect — для подключения TCP/COM (по имени или по номеру порта)

  • vbintnets — какие внутренние сети используются

/!\ Не гарантируется, что скрипты будут работать (особенно с учётом марсианских технологий VBoxManage).

Как делать Д/З

Программа (скрипт) report и файлы отчёта

  • Создание отчёта:
    • report номер_задания название_хоста

      • получается файл report.номер_задания.название_хоста

  • Просмотр отчёта
    • report файл_отчёта

Передача отчёта из виртуалки

  1. «аппаратный вариант» — COM-порт в файл
    • выключите виртуалку
    • удалите файл port_logger (или как вы его назвали)

    • Настройте эмуляцию COM-порта — перенаправление вывода в файл

      com_file.png

    • В виртуальной машине:
      • Настройте второй COM-порт (raw — это режим, при котором ядро не считает его терминалом, и не обрабатывает/преобразует передаваемые байты; обратите внимание на то, что порт должен открываться на чтение, поэтому используется «<»)

        # stty raw < /dev/ttyS1`
      • Вывалите отчёт в COM-порт (больше ничего с ним не делайте)
         # cat report.01.base > /dev/ttyS1`
    • Выключите виртуалку и переименуйте файл port_logger в report.01.base

  2. «Аппаратно-сетевой вариант» — COM-порт в TCP + netcat (для система, в которых есть netcat) — как консоль в лекциях.

    • Настройте эмуляцию COM-порта — перенаправление ввода-вывода в поток TCP/IP например, на порт 2010
    • После старта вируталки в хост-системе запустите
      # netcat localhost 2010 > report.01.base`
    • В виртуалке проделайте обе команды (перенастройку ttyS1 и перенаправление файла с отчётом)
    • На хост-системе скажите netcat-у ^D (Это control+D)

Отчёт — это tar-архив

  • На хост-системе нужно проверить, что он не попортился при передаче, с помощью tar tvf report.01.base

Д/З

Образ не изменился.

Задание 1

  1. Склонировать базовый образ
  2. Настроить COM2 в двух образах на работу с сокетом («настройки ВМ → COM-порты» «Порт2 → хост-канал» + какое-нибудь имя, например, vboxport; см. подсказку VirtualBox-а, как это должно называться под Windows — там хитро)

    • На одном хосте поставить (./) «подключаться к уже существующему каналу», на другом — нет (он-то будет открывать сокет)

  3. Отчёты:
    • На базовой машине (report 1 base)

      • stty -a < /dev/ttyS1

      • cat /dev/ttyS1

      • после получения текста нажать ^C (Это control+C)

      • (не забыть ^D для остановки отчёта)
    • На клоне (report 1 clone)

      • stty -a < /dev/ttyS1

      • date > /dev/ttyS1

      • (не забыть ^D для остановки отчёта)
  4. Оба отчёта (report.01.base и report.01.clone) именно с такими названиями переслать одним письмом в качестве двух приложений на uneexlectures@cs.msu.ru

    • В теме письма должно встречаться слово LinuxNetwork2023

    • Обязательно проверьте, что отчёт не битый и открывается как tar.gz-архив!

LecturesCMC/LinuxNetwork2023/01_HardwareAndCommandline (последним исправлял пользователь FrBrGeorge 2023-04-02 20:37:15)