- •2. Версии iPv4 и iPv6
- •3. Пакеты и их инкапсуляция
- •4. Адресация пакетов
- •Глава 14. Сети tcp/ip 505
- •6. Cidr: протокол бесклассовой междоменной маршрутизации
- •7. Частные адреса и система nat
- •8. Маршрутизация
- •9. Таблицы маршрутизации
- •10. Arp: протокол преобразования адресов
- •11. Dhcp: протокол динамического конфигурирования узлов
- •12. Ррр: протокол двухточечного соединения
- •13. Команда ifconfig: конфигурирование сетевых интерфейсов
- •14. Демоны маршрутизации
- •Глава 15. Маршрутизация 571
- •15. Основные протоколы маршрутизации
- •Глава 15. Маршрутизация 567
- •16. Технология Ethernet: сетевая панацея
- •17. Беспроводной стандарт: локальная сеть для кочевников
- •18. Dsl и кабельные модемы: “последняя миля” 8
- •Глава 16. Сетевые аппаратные средства 593
- •20. Основные задачи системы dns
- •Глава 18. Сетевой протокол Network File System 737
- •22. Серверная часть протокола nfs
- •Глава 18. Сетевой протокол Network File System 745
- •23. Клиентская часть протокола nfs
- •Глава 18. Сетевой протокол Network File System 753
- •24. Ldap: упрощенный протокол доступа к каталогам
- •25. Структура данных ldap
- •Глава 19. Совместное использование системных файлов 775
- •26. Nis: Сетевая информационная служба
- •27. Системы электронной почты
- •Глава 20. Электронная почта 789
- •28. Протоколы smtp, pop3.
- •30. Почтовые серверы
- •Часть II. Работа в сети
- •31. Cпам и вредоносные программы
- •Глава 20. Электронная почта 813 ip range
- •32. Фильтрация почты
- •33. Почтовый агент sendmail
- •34. Почтовый агент Postfix
- •Глава 20. Электронная почта 877
- •35. Поиск неисправностей в сетях
- •Глава 21. Управление сетями 911
- •36. Kоманда traceroute: трассировка ip-пакетов
- •Глава 21. Управление сетями 915
- •37. Команда netstat: получение информации о состоянии сети
- •Глава 21. Управление сетями 919
- •39. Snmp: простой протокол управления сетями
- •40. Протокол NetFlow: мониторинг соединений
- •Глава 21. Управление сетями 939
- •41. Ключевые аспекты безопасности
- •Глава 22. Безопасность 951
- •42. Пароли и учетные записи пользователей
- •43. Эффективное использование команды chroot
- •44. Команда nmap: сканирование сетевых портов
- •45. Bro: программная система для распознавания вторжения в сеть
- •Глава 22. Безопасность 967
- •46. Мандатное управление доступом
- •47. Ssh: безопасная оболочка
- •48. Брандмауэры
- •Глава 22. Безопасность 983
- •49. Функциональный стек lamp
- •50. Обнаружение ресурсов в сети веб
- •Глава 23. Веб-хостинг 1003
- •51. Принцип работы http
- •52. Конфигурирование сервера Apache
- •Глава 23. Веб-хостинг 1011
- •53. Виртуальные интерфейсы
- •54. Протокол Secure Sockets Layes
- •Глава 23. Веб-хостинг 1017
14. Демоны маршрутизации
Мы не рекомендуем использовать системы UNIX и Linux в качестве маршрутизато ров в производственных сетях. Специализированные маршрутизаторы проще, надежнее, безопаснее и более быстродействующие (даже если они скрытно запускают ядро системы Linux). Иначе говоря, очень хорошо иметь возможность организовать новую подсеть, ис пользуя всего лишь сетевую карту стоимостью 15 долл. и коммутатор за 40 долл. Это впол не разумный подход к организации разреженных, тестовых и вспомогательных сетей.
Системы, действующие как шлюзы в таких подсетях, не требуют дополнительных инструментов для управления их собственными таблицами маршрутизации. Статические маршруты вполне адекватны как для машин, используемых в качестве шлюзов, так и д ля машин, представляющих собой узлы самой подсети. Однако если вы хотите, чтобы ваша подсеть была доступной для других сетей в вашей организации, вам необходимо сооб щить о ее существовании и идентифицировать маршрутизатор, к которому будут при вязаны пакеты, посылаемые данной подсети. Обычно для этого на шлюзе запускается демон маршрутизации.
Системы UNIX и Linux могут участвовать в большинстве протоколов маршрутизации с помощью различных демонов маршрутизации. Важным исключением из этого правила является протокол EIGRP, который, насколько нам известно, не имеет широко доступ ной реализации в системах UNIX и Linux.
Поскольку демоны маршрутизации редко реализуются в производственных систе мах, мы не будем подробно описывать их использование и конфигурацию. Тем не менее в следующих разделах мы приведем краткое описание типичных программ и укажем, где искать детали конфигурации.
Демон route: устаревшая реализация в протоколе RIP
Долгое время демон routed был стандартным демоном маршрутизации, и его до сих пор включают в дистрибутивы некоторых систем. Демон routed понимает только протокол RIP и при этом плохо: даже поддержка версии RIPv2 не поправила ситуацию. Демон routed не понимает протокол RIPng, реализация которого основана на совре менных демонах, таких как Quagga и ramd в системе HP-UX.
Демон routed целесообразно использовать в пассивном режиме (-q), в котором он принимает сообщения об обновлениях маршрутов, но не осуществляет широковещатель ную рассылку собственных сообщений. Кроме указания опций в командной строке, демон routed не требует конфигурирования. Он представляет собой дешевый и простой способ получения сообщений об обновлениях маршрутов без сложного конфигурирования.
Демон заносит обнаруженные маршруты в таблицу ядра. Все маршруты долж ны анонсироваться, как минимум, каждые четыре минуты, иначе они будут удалены. Правда, демон route помнит, какие маршруты он добавлял, и не удаляет статические маршруты, заданные с помощью команды route.
Команда route описана в разделе 14.9.
570 Часть II. Работа в сети
Демон gated: первый многопротокольный демон маршрутизации
Демон gated — элегантная и легко доступная программа маршрутизации, позволяю щая одновременно использовать несколько протоколов маршрутизации. Он предостав ляет администратору полный контроль над анонсированными маршрутами, широкове щательными адресами, правилами безопасности и метриками стоимости. Демон gated разрешает нескольким протоколам использовать одни и те же маршруты, позволяя тем самым создавать шлюзы между автономными областями, в которых приняты разные си стемы маршрутизации. Наконец, демон gated имеет один из самых удобных командных интерфейсов и форматов файлов конфигурации среди всего административного про граммного обеспечения.
Увы, демон gated мертв (или, по крайней мере, при смерти), хотя память о нем еще живет в выпусках систем HP-UX 3.5.9 и AIX 6.0, которые вообще медленно реагируют на происходящие изменения.
Демон gated представляет собой поучительный пример риска, с которым связаны попытки разрабатывать открытое программное обеспечение. Он задумывался как сво бодно распространяемая программа, но в 1992 году был приватизирован и переделан консорциумом по разработке программ; в результате его обновления стали доступными только членам этого консорциума. В конце концов консорциум был расформирован, и права на коммерческую версию демона gated несколько раз “меняли” владельцев. Тем временем открытые проекты Zebra и Quagga вытеснили демон gated и сами стали играть ведущие роли в области открытых пакетов маршрутизации. В настоящее время
демон gated угас и как коммерческий продукт, и как открытый проект. Печальный ко нец полезного и хорошо спроектированного пакета.
Пакет Quagga: основной демон маршрутизации
Quagga (quagga.net) — это опытно-конструкторское подразделение проекта Zebra, выполняемого в рамках проекта GNU. Проект Zebra был запущен Кунихиро Ишигуро (Kunihiro Ishiguro) и Йошинари Йошикава (Yoshinari Yoshikawa) для реализации много протокольной маршрутизации с помощью коллекции независимых демонов, а не одного монолитного приложения. В реальной жизни квагга (quagga) — это исчезнувший подвид зебры, которая была последний раз сфотографирована в 1870 году. Но его цифровая ре инкарнация Quagga выжила, а проект Zebra закрылся.
В настоящее время пакет Quagga реализует все протоколы RIP (все версии), OSPF (версии 2 и 3), BGP и IS-IS. Он выполняется в системах Linux, Solaris и разных вариан тах системы BSD. В системе Solaris и версиях системы Linux, имеющихся в нашем рас поряжении, пакет Quagga либо инсталлирован по умолчанию, либо доступен в качестве вспомогательного пакета, который можно загрузить из стандартного системного репози тория программного обеспечения.
В пакете Quagga демон zebra играет роль информационного центра для маршрути зации. Он управляет взаимодействием между таблицей маршрутизации ядра и демона ми, соответствующими отдельным протоколам маршрутизации (ripd, ripngd, ospfd, ospf6d, bgpd и isisd). Кроме того, он управляет потоками информации о маршрутах, которыми обмениваются протоколы. Каждый демон имеет свой собственный конфигу рационный файл в каталоге /etc/quagga.
Для того чтобы послать запрос или изменить конфигурацию, можно соединиться с любым из демонов Quagga с помощью интерфейса командной строки (vtysh в системе
