В данной статье описано как настроить транзит пакетов на системах ядра Linux. В качестве стенда под данную работу будет происходить в гипервизоре VMware, в качестве основного ядра будет использоваться ALT Linux. Так же для симуляции локально вычислительной сети будет использоваться утилита GNS3.

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

Так же заранее настраиваем интерфейсы, это делается для того чтобы не было проблем при импорте виртуальных машин в GNS3. Далее создаем простую топологию в GNS3. (Для удобства были выписаны ip адреса), сама топология и вся локально вычислительная сеть изображена на рисунке снизу

По порядку настройки необходимо настроить интерфейсы, для данной настройки необходимо зайти в "/etc/net/ifaces/ens"номер интерфейса"", в данной директории должно быть несколько файлов, а именно "options" и "ipv4address", в первом файле идет информация непосредственно о интерфейсе, самое важно что там находиться:

  • BOOTPROTO="static or dhcp", этот параметр отвечает за тип приема ip адреса "static" и "dhcp" это статическая адресация и динамическая адресация соответственно,

  • TYPE="eth, bond, vlan", это тип интерфейса, "eth" сокращение от слова Ethernet это технология интерфейса. "bond" означает, что сетевой интерфейс является агрегированным (объединённым) интерфейсом (bonding), который объединяет несколько физических сетевых интерфейсов в один логический для повышения производительности, отказоустойчивости или балансировки нагрузки. vlan это "virtual lan", соответственно виртуальный LAN

Таким образом необходимо создать дополнительные директории для интерфейсов ens34 и ens36 в моем случае.

В файле "ipv4address", задается ip адрес для данного интерфейса в формате "A.B.C.D/X", где:

  • A.B.C.D - это октеты для самого ip адреса

  • X - это префикс маски подсети

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

Далее для того чтобы настроить транзит пакетов, необходимо зайти в конфигурационный файл сервиса "network", по пути "/etc/net/sysctl.conf". Он содержит параметры, которые применяются через утилиту "sysctl" при запуске сетевых служб или при изменении состояния сети. Это сетевые настройки уровня ядра, которые влияют на:

  • Транзит пакетов (ip_forward),

  • ARP-обработку,

  • TCP/IP-стек, это буферы, окна, таймауты,

  • Безопасность (защита от атак, фильтрация),

  • Производительность сети.

Нас интересует только параметр "ip_forward", с значения "0" меняем на "1", изображено на рисунке снизу

Для полноты картины, необходимо настроить адресацию для "VPCS" внутри GNS3. VPCS, это легковесная эмуляция компьютера с поддержкой базовых сетевых команд, предназначенная для тестирования сетевых конфигураций без запуска полноценной виртуальной машины.

Для этого используется команда "ip A.B.C.D <маска подсети> <основной шлюз>", выдаем ip адрес соответствующий адресации на схеме, в качестве основного шлюза указываем интерфейс который смотрит на VPCS.

Далее необходимо провести проверку на уровне одной подсети с помощью утилиты "ping", результат изображен на рисунке снизу.

Делаем все то же самое но в другой подсети. И после проверки работоспособности обоих из подсетей, необходимо проверить транзит пакетов, то есть с PC1 пингануть PC2, и по идее ответ должен доходить до исходной точки, продемонстрировано на рисунке снизу

Во время данной работы можно столкнуться с одной проблемой, это импорт виртуальных машин, перед тем как создавать новый проект, необходимо запустить импорт, и только потом сама утилита вам подскажет что необходимо создать проект.

Итог

Параметр "ip_forward=1", позволяет пересылать пакеты с одного интерфейса на другой, буквально виртуальная машина с включенным транзитом пакетов можно использовать в качестве маршрутизатора