Найти в Дзене
Вот и Linux за окном

0025.Строим маленький интернет. Настраиваем статическую маршрутизацию.

Приветствую вас, Уважаемые Читатели! В предыдущей статье мы начали строить маленькую модель интернета и для этого создали 3 линуксовых хоста 2 виндовых хоста (на WinXP), и соединили это всё тремя сегментами сети. Приведу схему планируемого построения. При этом у нас теперь могут взаимодействовать хосты только в пределах сегментов, в которые они включены. В этой статье мы попробуем наладить взаимодействие всех членов сети друг с другом. Т.е. конечная цель будет следующая: настроим хосты так, чтобы один виндовый хост на одном конце сети пинговал другой виндовый хост на другом конце сети. А для достижения такого результата нужно что?... Правильно, нужно настроить маршрутизацию в сети. Собственно для этого мы и создали три специальных хоста - роутера. Два будут маршрутизировать пакеты между тремя сегментами сети, а третий будет маршрутизировать пакеты из внутренней сети во внешнюю сеть (и обратно). Но выход во внешнюю сеть мы настроим чуть позже. Для реализации маршрутизации в больших

Приветствую вас, Уважаемые Читатели!

В предыдущей статье мы начали строить маленькую модель интернета и для этого создали 3 линуксовых хоста 2 виндовых хоста (на WinXP), и соединили это всё тремя сегментами сети. Приведу схему планируемого построения.

При этом у нас теперь могут взаимодействовать хосты только в пределах сегментов, в которые они включены.

В этой статье мы попробуем наладить взаимодействие всех членов сети друг с другом. Т.е. конечная цель будет следующая: настроим хосты так, чтобы один виндовый хост на одном конце сети пинговал другой виндовый хост на другом конце сети.

А для достижения такого результата нужно что?... Правильно, нужно настроить маршрутизацию в сети. Собственно для этого мы и создали три специальных хоста - роутера. Два будут маршрутизировать пакеты между тремя сегментами сети, а третий будет маршрутизировать пакеты из внутренней сети во внешнюю сеть (и обратно). Но выход во внешнюю сеть мы настроим чуть позже.

Для реализации маршрутизации в больших взрослых сетях существует множество различного серверного ПО (с которым я знаком лишь по наслышке), которое реализует автоматическую настройку маршрутизации пакетов, и построение таблиц маршрутизации и прочего. В нашей маленькой сети, нам такие сложности ни к чему. Поэтому мы ограничимся построением простых статических маршрутов, которые помимо прочего, ещё очень наглядно показывают сам процесс построения маршрутизации, и сильно способствуют пониманию этого процесса.

Итак, начинаем.

Для настройки статических маршрутов в линукс системах на основе Debian (и не только) существует команда ip route, которая создаём маршруты, изменяет их и удаляет.

Для начала настроим два раутера: deb-lan3-lan1-router и deb-lan3-lan2-router.

Предварительно проверим их адреса, что бы ничего не перепутать.

-2
-3

Команда sysctl net.ipv4.ip_forward=1 включает соответствующий параметр, который разрешает линукс-хосту пропускать через себя IP пакеты. По большому счёту для этих хостов мы всё уже сделали. Проверяем

-4
-5

И видим, что два виндовых хоста пингуют друг друга. Т.е. в общем цель достигнута.

Немного более подробно о том как прописывать правила маршрутизации. Мне удалось для себя сформулировать хорошее правило, которое описывает как создавать правила маршрутизации: в команде ip route add для установки маршрута в нужную сеть (например 192.168.1.0/24), в параметре dev выставляют имя адаптера, через который должны уходить пакеты в эту сеть, а в параметре via прописывают адрес хоста, который ведёт в целевую сеть, из сети в которой находится адаптер, прописанный в параметре dev. (ну как-то так).

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

Пропишем необходимые команды в настроечных файлах во всех трёх раутерах.

Параметр net.ipv4.ip_forward=1 прописываем в файле /etc/sysctl.conf.

-6

Команды ip route add прописываем в файлах /etc/network/interfaces c префиксом post-up. Т.е. они будут выполняться после того как инициализация данного сетевого интерфейса будет выполнена (возможны и другие варианты, но нам удобен именно этот).

Ниде приведу содержимое настроечных файлов линуксовых хостов.

deb-lan3-lan1-router

/etc/network/interfaces

# This file describes the network interfaces available on your system

# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface

auto lo

iface lo inet loopback

auto enp0s3

iface enp0s3 inet static

address 192.168.3.101

netmask 255.255.255.0

gateway 192.168.3.1

auto enp0s8

iface enp0s8 inet static

address 192.168.1.1

netmask 255.255.255.0

post-up ip route add 192.168.2.0/24 dev enp0s3 via 192.168.3.102

deb-lan3-lan2-router

/etc/network/interfaces

# This file describes the network interfaces available on your system

# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface

auto lo

iface lo inet loopback

auto enp0s3

iface enp0s3 inet static

address 192.168.3.102

netmask 255.255.255.0

gateway 192.168.3.1

auto enp0s8

iface enp0s8 inet static

address 192.168.2.1

netmask 255.255.255.0

post-up ip route add 192.168.1.0/24 dev enp0s3 via 192.168.3.101

deb-lan3-out-router

/etc/network/interfaces

# This file describes the network interfaces available on your system

# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface

auto lo

iface lo inet loopback

# The primary network interface

auto enp0s3

iface enp0s3 inet static

address 192.168.3.1

netmask 255.255.255.0

auto enp0s8

iface enp0s8 inet dhcp

post-up ip route add 192.168.1.0/24 dev enp0s3 via 192.168.3.101

post-up ip route add 192.168.2.0/24 dev enp0s3 via 192.168.3.102

Настройки в файле /etc/sysctl.conf общие для всех линуксовых хостов - раскоментирована одна строка:

....

# Uncomment the next line to enable packet forwarding for IPv4

net.ipv4.ip_forward=1

....

После того как всё настроили перезагрузим на всякий случай все хосты, и проверим настройки статических маршрутов трёх линуксовых хостов.

-7
-8
-9

И связность хостов друг с другом в пределах нашей сети. В данном случае будет достаточно проверить пинг между двумя виндовыми хостами между собой и между deb-lan3-out-router

-10
-11

Вот собственно и всё по построениям.

Благодарю всех Уважаемых Читателей, дочитавших до этого места.

Желаю всем удачи в начинаниях и продолжениях, до новых встреч!!!)

-12

PS

Превью статьи сгенерирована сетью Шедеврум.