Шрифт:
Интервал:
Закладка:
# route add default 192.168.1.11 1
Таким образом мы объявили маршрут по умолчанию со значением метрики, равным 1.
Не забудьте только добавить вызовы команды route в загрузочный сценарий, потому что при перезагрузке правила маршрутизации ядра теряются.
Забегая несколько вперед, замечу, что такой статический маршрут представляет собой обычное правило перенаправления трафика, поэтому его можно реализовать и средствами пакетного фильтра IPTables:
# iptables -P FORWARD DROP
# iptables -A FORWARD -S 192.168.1.0/24 -d 192.168.2.0/24 -j ACCEPT
# iptables -A FORWARD -S 192.168.2.0/24 -d 192.168.1.0/24 -j ACCEPT
А вот более сложный пример, приведенный в документации по IPTables. Пусть у нас имеется одно-единственное соединение с Интернетом и мы не хотим, чтобы кто-либо вошел в нашу сеть извне:
## Загрузим модули для отслеживания соединений
# (не нужно, если они встроены в ядро)
# insmod ip_conntrack
# insmod ip_conntrack_ftp
## Создадим цепь block, которая будет блокировать
# соединения извне.
# iptables -N block
# iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A block -m state --state NEW -i ! ppp0 -j ACCEPT
# iptables -A block -j DROP
## Весь входящий и маршрутизированный трафик будет
# проходить через block
# iptables -A INPUT -j block
# iptables -A FORWARD -j block
19.2.2. Демон gated — правильный выбор
В последнее время демон gated используется чаще, чем стандартный routed. Объясняется это тем, что gated более гибок в конфигурировании и обладает большими возможностями, в частности, им поддерживаются протоколы RIP-2 и OSFP.
Программа gated была разработана группой американских университетов для работы сети NFSNET. Она позволяет организовать многофункциональный шлюз, обслуживающий как внутреннюю, так и внешнюю маршрутизацию. На данный момент gated поддерживает следующие протоколы маршрутизации:
♦ RIP версий 1 и 2
♦ HELLO
♦ OSPF версии 2
♦ EGP версии 2
♦ BGP версии 2, 3 и 4.
Таблица 19.1 поможет вам сравнить возможности демонов routed и gated.
Протоколы, поддерживаемые gated и routed Таблица 19.1
Демон Протоколы внутренних маршрутизаторов Протоколы внешних маршрутизаторов RIP HELLO OSPF BGP EGP routed V1 – – – – gated, версий 2 V1 + – V1 + gated, версия 3 V1, V2 + V2 V2, V3 +Рассмотрим классическое подключение локальной сети к Интернету. Пусть адрес нашей локальной сети 143.100.100.0, а на шлюзе установлены две сетевые платы с IP-адресами 143.100.100.1 и 143.100.200.1. Пусть в нашей сети есть машина с IP-адресом 143.100.100.5, на которой также установлен gated. Настроим gated сначала на этой рабочей станции, а потом — на сервере. Для настройки может использоваться утилита gdc, поставляемая вместе с самим gated.
Настройка gated осуществляется путем редактирования файла конфигурации /etc/gated.conf. Содержимое этого файла для рабочей станции приведено в листинге 19.1, а для сервера — в листинге 19.2.
Листинг 19.1. Файл конфигурации /etc/gated.conf для рабочей станции
# Это IP-адрес рабочей станции
interface 143.100.100.5 passive;
# используем протокол RIP (Route Internet Protocol)
rip yes;
Листинг 19.2. Файл конфигурации /etc/gated.conf для сервера
# Описываем интерфейсы и протокол
interface 143.100.100.1 passive;
interface 143.100.200.1 passive;
rip yes;
export proto rip interface 143.100.100.1
{
proto direct {
announce 143.100.200.0 metric 0;
};
};
export proto rip interface 143.100.200.1
{
proto rip interface 143.100.100.1 {
announce all;
};
};
Первая директива export объявляет подсеть 143.100.100.0 (наша сеть) через интерфейс 143.100.100.1, который объявляется шлюзом в данную подсеть, то есть считается, что интерфейс 143.100.100.1 принадлежит узлу, входящему в эту сеть. Директива proto direct говорит о том, что пакеты для подсети нужно посылать непосредственно на интерфейс, а нулевая метрика означает, что интерфейс стоит на шлюзе в подсеть.
Вторая директива export сообщает всем узлам подсети через интерфейс 143.100.200.1 все маршруты, которые данный шлюз получает из подсети 143.100.100.0 через интерфейс 143.100.100.1.
При написании директив export внешняя конструкция всегда определяет интерфейс, через который сообщается информация, а внутренняя — источник, через который эту информацию будет получать gated.
Рассмотрим пример из документации по gated, в котором нашу сеть через подсеть подключают к Интернету (листинг 19.3).
Листинг 19.3. Подключение через подсеть
rip yes;
export proto rip interface 136.66.12.3 metric 3
{
proto rip interface 136.66.1.5
{
announce all;
};
};
export proto rip interface 136.66.1.5
{
proto rip interface 136.66.12.3
{
announce 0.0.0.0;
};
};
Первая директива export говорит о том, что gated получает все, что передается в подсеть, связывающую данную сеть с Интернетом, через интерфейс 136.66.12.3 (речь идет о маршрутах, а не о самих данных).
Вторая директива export определяет место назначения — куда по умолчанию нужно отправлять информацию из сети, чтобы она достигла адресата, который расположен за пределами локальной сети. Адрес 0.0.0.0, соответствующий любой машине за интерфейсом 136.66.12.3, определяется через интерфейс 136.66.1.5 для всей локальной сети.
После настройки gated нужно перезапустить:
# service gated restart
19.3. Расширенные средства маршрутизации. Комплекс iproute2
19.3.1. Пакет iproute2
Начиная с версии ядра 2.2, сетевая подсистема Linux была значительно переработана, в нее было добавлено много новых возможностей — управление трафиком, маршрутизация на основе правил и т.п. Доступ к этим возможностям предоставляется пакетом iproute2, входящим в состав большинства современных дистрибутивов.
В случае необходимости можно скачать этот пакет с сайта ftp://ftp.inr.ас.ru./ip-routing.
19.3.2. Утилита ip
Утилита ip, входящая в состав пакета iproute2, объединяет в себе все возможности команд ifconfig, arp и route. Формат ее вызова такой:
ip [ключи] объект [команда [аргументы команды]]
Ключи можно указывать следующие:
♦ -s — вывод статистической информации;
♦ -f — выбор протокола:
• -f inet — протокол IPv4;
• -f inet6 — протокол IPv6;
• -f link — сетевое устройство;
♦ -r — разрешать IP-адреса в имена узлов;
♦ -V — печать версии программы.
Аргумент Объект позволяет выбрать объект, с которым будем работать:
♦ адрес — IPv4 или IPv6 адрес устройства;
♦ link — устройство;
♦ neighbour — ARP-адрес;
♦ route — маршрутизация;
♦ rule — база данных правил маршрутизации;
♦ madress — широковещательный адрес;
♦ tunnel — туннель через IP.
Аргумент Команда описывает действие над Объектом:
♦ ip link — конфигурация сетевого устройства;
♦ ip link set — изменение параметров сетевого устройства;
♦ ip link show — просмотр параметров сетевого устройства.
При изменении параметров сетевого устройства вы можете задать следующие аргументы:
♦ up — включить;
♦ down — выключить;
♦ arp on или arp off — изменение флага NOARP на устройстве;
♦ dynamic on или dynamic off — изменяет флаг DYNAMIC на устройстве;
♦ multicast on или multicast off — изменяет флаг MULTICAST на устройстве;
♦ name — изменяет имя устройства;
- Операционная система UNIX - Андрей Робачевский - Программное обеспечение
- Разработка приложений в среде Linux. Второе издание - Майкл Джонсон - Программное обеспечение
- Искусство программирования для Unix - Эрик Реймонд - Программное обеспечение
- Linux - Алексей Стахнов - Программное обеспечение
- Fedora 8 Руководство пользователя - Денис Колисниченко - Программное обеспечение
- Недокументированные и малоизвестные возможности Windows XP - Роман Клименко - Программное обеспечение
- Изучаем Windows Vista. Начали! - Дмитрий Донцов - Программное обеспечение
- Windows Vista - Виталий Леонтьев - Программное обеспечение
- Архитектура операционной системы UNIX - Морис Бах - Программное обеспечение
- Windows Vista. Трюки и эффекты - Юрий Зозуля - Программное обеспечение