Опубликован: 26.07.2011 | Уровень: для всех | Доступ: свободно
Лекция 10:

Маршрутизация в Linux

< Лекция 9 || Лекция 10: 123 || Лекция 11 >
Аннотация: Даны краткие сведения об использовании компьютера с Linux в качестве маршрутизатора и расширенных возможностях маршрутизации, в частности маршрутизация по IP-адресу источника; описаны особенности выбора локального исходящего IP-адреса. Приведены примеры маршрутизации виртуальных локальных сетей, объединения локальных сетей на основе маршрутизаторов, задания локального исходящего IP-адреса и добавление альтернативного маршрута для узла-источника на шлюзе

Содержание

  1. Включение функции пересылки проходящих пакетов.
  2. Выбор IP-адреса для исходящих соединений.
  3. Маршрутизация на основе правил и таблиц.

Включение функции пересылки проходящих пакетов

Операционная система Linux позволяет не только организовать сложные схемы обработки сетевых пакетов локального узла, но и использовать компьютер с несколькими сетевыми интерфейсами (физическими и/или логическими) в качестве маршрутизатора (для передачи трафика удаленных узлов и сетей).

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

По умолчанию сетевая подсистема Linux обрабатывает пакеты, предназначенные данному узлу или созданные данным узлом; функция обработки пакетов, в которых не указан IP-адрес данной станции как источник или приемник (forwarding, пересылка пакетов ) отключена. Для включения функции пересылки проходящих пакетов необходимо установить в 1 значение, записанное в файле ip_forward псевдофайловой системы proc:

# echo 1 > /proc/sys/net/ipv4/ip_forward

Данная настройка будет действовать до перезагрузки компьютера. Для восстановления конфигурации нужно после перезагрузки выполнять указанную команду (указать ее в файле /etc/rc.local ) или лучше установить в файле /etc/sysctl.conf следующий параметр:

net.ipv4.ip_forward=1

Пример 10.1.Объединение виртуальных локальных сетей с помощью маршрутизатора на основе Linux.

Для того, чтобы в примере 5.6. "Постоянные сетевые конфигурации (на примере Debian/GNU Linux)" "Постоянные сетевые конфигурации" подсети 192.168.1.0/24 и 192.168.2.0/24 могли взаимодействовать друг с другом через указанный в примере компьютер Linux (выступает в качестве шлюза для данных подсетей) необходимо:

  • на данном компьютере включить функцию пересылки пакетов одним из описанных выше способов;
  • на всех компьютерах первой подсети указать в качестве шлюза для второй подсети адрес 192.168.1.4 (разумеется, также можно указать данный адрес как шлюз по умолчанию), а для компьютеров второй подсети - шлюз для первой подсети 192.168.2.4.

Таблица маршрутизации шлюза:

# ip route show
192.168.2.0/24 dev vlan2  proto kernel  scope link  src 192.168.2.4 
192.168.1.0/24 dev vlan1  proto kernel  scope link  src 192.168.1.4

Эти записи добавляются в таблицу маршрутизации шлюза автоматически (например, если на интерфейсе vlan1 установлен IP-адрес 192.168.1.4/24, то система полагает, что сеть 192.168.1.0/24 непосредственно подключена к данному интерфейсу). Таким образом, если на интерфейс vlan1 шлюза приходят сетевые пакеты, в которых адрес назначения принадлежит второй подсети, то шлюз, согласно таблицы маршрутизации, передает эти пакеты в сеть с интерфейса vlan2.

Пример 10.2.Объединение двух сетей на основе маршрутизаторов

Пусть необходимо обеспечить взаимодействие сетей 192.168.1.0/24 и 192.168.2.0/24 (рис. 10.1.), соединенных интерфейсами маршрутизаторов, установленных в каждой из сетей (интерфейсы маршрутизаторов в сетях имеют адреса 192.168.1.1 и 192.168.2.1 соответственно).

Объединение двух сетей на основе маршрутизаторов

Рис. 10.1. Объединение двух сетей на основе маршрутизаторов

Для решения данной задачи ( рис. 10.1.) необходимо установить на интерфейсы, связывающие маршрутизаторы друг с другом адреса из одной произвольно выбранной подсети (192.168.3.0/24, на первый — 192.168.3.1, на второй — 192.168.3.2) и добавить статические маршруты в таблицы маршрутизаторов (для первого маршрутизатора - для сети 192.168.2.0/24 через узел 192.168.3.2, для второго — для сети 192.168.1.0/24 через узел 192.168.3.1).

К примеру таблица маршрутизации первого маршрутизатора (при использовании Linux) будет иметь вид:

# ip route show
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.1 
192.168.3.0/24 dev eth1  proto kernel  scope link  src 192.168.3.1
192.168.2.0/24 via 192.168.3.2 dev eth1

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

< Лекция 9 || Лекция 10: 123 || Лекция 11 >
Нияз Сабиров
Нияз Сабиров

Здравствуйте. А уточните, пожалуйста, по какой причине стоимость изменилась? Была стоимость в 1 рубль, стала в 9900 рублей.

Елена Сапегова
Елена Сапегова

для получения диплома нужно ли кроме теоретической части еще и практическую делать? написание самого диплома требуется?

Сергей Пархоменко
Сергей Пархоменко
Россия, Ростов-на-Дону, ЮФУ (ДГТУ), 2008