TCP/IP в Linux (2 лекции и задание)
Неожиданно прочтённые мной лекции по настройке L2 и L3 маршрутизации в Linux(две пары)
* Видео
Задание
Импортировать образ виртуальной машины для VirtualBox, клонировать его, и настроить топологию сети как предписано в варианте задания.
Отчёт по заданию
В состав образа входит пакет etckeeper, который хранит (нужное) содержимое каталога /etc в git-е.
После каждого успешного изменения настроек (проверьте, что оно успешно) рекомендуется делать etckeeper commit — это просто git commit — с описанием проделанной работы
После того, как площадка заработает, на каждом узле выполняется команда cd /etc; git archive -o /root/ФИО_назначение_узла.tar.gz HEAD
Все архивы отсылаются сюда: TODO
- Для отсылки архива машины-моста надо временно настроить сеть на ней
Что будет в задании
В задании будет набор из четырёх-пяти виртуалок, объединённых в несколько сетей с выходом в интернет + описание требуемой топологии сети и ролей узлов в ней.
Возможная тематика:
Статическая настройка IP (файлы /etc/net/ifaces/имя_интерфейса/ipv4address и /etc/net/ifaces/имя_интерфейса/options)
Динамическое получение настроек IP (/etc/net/ifaces/имя_интерфейса/options)
- Настройка сервера, обеспечивающего выход в интернет
- Скорее всего, внешний интерфейс настроен динамически
Файл /etc/resolv.conf, который при этом сгенерится, надо будет разложить на все машины, где нужно, чтобы DNS работал
- NAT (одно правило типа MASQUERADE), есть на этом вики)
работа роутером (включение sys.net.ipv4.ip_forward в 1, настройка /etc/net/sysctl.conf)
- если есть какие-то внутренние подсети, добавление маршрута до них
- Скорее всего, внешний интерфейс настроен динамически
- Настройка маршрутизатора
- работа роутером
возможно, дополнительные маршруты (/etc/net/ifaces/имя_интерфейса/ipv4rules)
policy routing (ip rule / ip route … table столько-то) (файлы /etc/net/ifaces/имя_интерфейса/ipv4route и /etc/net/ifaces/имя_интерфейса/ipv4rules)
- Настройка моста, объединяющего один или несколько интерфейсов
Настройка vlan-ов (конкретно в смысле IEEE_802.1Q)
Полезные советы
Все системные действия делайте от root, в которого входите командой su - (не просто su, и не надо никаких sudo). Все информационные действия делайте в соседнем окне из-под обычного пользователя.
Для проверки работоспособности конфигурации сети используйте systemctl restart network
От волшебного переименования интерфейсов пришлось отказаться: в некоторых интересующих нас случаях оно происходит позже, чем применение соответствующих настроек, и всё ломается
Нынешняя схема именования — т. н. predictable network device names. Читать это не обязательно, просто в имя интерфейса зашивается номер шины и номер слота в шине, например, enp0s3: вместо eth0:
- При клонировании не забываем
- делать связную копию (а не полную, чтобы не забить диск)
- включать крыжик «перегенерировать все MAC-адреса»
При добавлении нового сетевого интерфейса в настройках VirtualBox не забываем включить разрешение promiscuous mode
Документация
По утилите ip в конце страницы, там 95% нам не нужно)
по etcnet (тоже многое не нужно, всё, что нужно, было в лекциях)
Много (увы, слишком сложных) примеров настройки в каталоге /usr/share/doc/etcnet*