Linux Advanced Routing amp; Traffic Control HOWTO Bert Hubert, Thomas Graf, Gregory Maxwell, Remco van Mook, Martijn van Oosterhout, Paul B Schroeder, Jasper Spaans, Pedro Larroy Глава 1. Посвящение. Глава 2. Введение. 2.1. Ограничения и лицензионное соглашение 2.2. Предварительные сведения 2.3. Что может предложить вам linux 2.4. Дополнительные замечания 2.5. Доступ к CVS и передача обновлений 2.6. Список рассылки 2.7. Структура документа. Глава 3. Введение в iproute2 3.1. Почему iproute2? 3.2. Краткий обзор iproute2 3.3. Необходимые условия 3.4. Текущая конфигурация 3.4.1. Просмотр списка сетевых интерфейсов с помощью утилиты ip 3.4.2. Просмотр списка ip-адресов с помощью утилиты ip 3.4.3. Просмотр списка маршрутов с помощью утилиты ip 3.5. ARP Глава 4. Правила — база политик маршрутизации 4.1. Простая маршрутизация по источнику. 4.2. Маршрутизация через несколько каналов/провайдеров. 4.2.1. Раздельный доступ 4.2.2. Распределение нагрузки. Глава 5. GRE и другие тоннели. 5.1. Несколько общих замечаний о тоннелях: 5.2. Тоннелирование IP в IP. 5.3. GRE тоннели. 5.3.1. Тоннелирование IPV4. 5.3.2. Тоннелирование IPV6. 5.4. Тоннели неядерного уровня. Глава 6. Тоннелирование IPV6 при помощьи Cisco и/или 6bone. 6.1. Тоннелирование IPV6. Глава 7. IPSEC: безопасная передача данных протоколами ip через Интернет 7.1. Пример ручного конфигурирования безопасного соединения между двумя хостами. 7.2. Пример автоматического конфигурирования безопасного соединения между двумя хостами. 7.2.1. Теория. 7.2.2. Пример. 7.2.2.1. Известные проблемы и недостатки. 7.2.3. Автоматизация с использованием сертификатов X.509 7.2.3.1. Создание собственного сертификата x.509. 7.2.3.2. Настройка и запуск. 7.2.4. Как сохранить настройки туннеля в безопасности. 7.3. Туннели ipsec 7.4. Другое программное обеспечение для работы с ipsec 7.5. Взаимодействие с другими операционными системами через ipsec. 7.5.1. Windows. 7.5.2. Check Point VPN-1 NG Глава 8. Маршрутизация групповых сообщений. Глава 9. Дисциплины обработки очередей для управления пропускной способностью 9.1. Понятие очереди и дисциплины обработки 9.2. Простые бесклассовые дисцплины обработки очереди. 9.2.1. pfifo_fast 9.2.1.1. Параметры и использование 9.2.2. Token Bucket Filter 9.2.2.1. Параметры и использование 9.2.2.2. Пример конфигурации 9.2.3. Stochastic Fairness Queueing. 9.2.3.1. Параметры и использование 9.2.3.2. Пример конфигурации 9.3. Какие типы дисциплин нужно использовать. 9.4. Терминология 9.5. Классовые дисциплины обработки очередей. 9.5.1. Порядок движения пакетов внутри полноклассовых дисциплин и классов. 9.5.2. Элементы дисциплины: корень, дескриптор, родительские элементы и элементы одного уровня. 9.5.2.1. Как выполняется классификация с помощью фильтров. 9.5.2.2. Как выполняется извлечение пакетов из очереди. 9.5.3. Дисциплина PRIO. 9.5.3.1. Параметры и порядок использования дисциплины PRIO. 9.5.3.2. Пример конфигурации. 9.5.4. Дисциплина CBQ. 9.5.4.1. Шейпинг в CBQ. 9.5.4.2. Характеристики классов в CBQ. 9.5.4.3. Параметры CBQ, управляющие характером заимствования. 9.5.4.4. Пример конфигурирования. 9.5.4.5. Прочие параметры настройки CBQ: split и defmap. 9.5.5. Hierarchical Token Bucket 9.5.5.1. Пример конфигурации. 9.6. Классификация пакетов с помощью фильтров. 9.6.1. Ряд простых примеров фильтрации. 9.6.2. Наиболее употребимые способы фильтрации. 9.7. Intermediate queueing device. 9.7.1. Пример конфигурирования. Глава 10. Распределение нагрузки по нескольким интерфейсам. 10.1. Предостережение. 10.2. Другие возможности. Глава 11. netfilter и iproute – маркировка пакетов. Глава 12. Расширенная фильтрация. 12.1. Классификатор u32. 12.1.1. Селектор u32. 12.1.2. Селекторы общего назначения. 12.1.3. Селекторы специального назначения. 12.2. Классификатор route. 12.3. Фильтры-ограничители трафика. 12.3.1. Способы ограничения. 12.3.1.1. Оценочная функция в ядре (estimator). 12.3.1.2. Token Bucket Filter. 12.3.2. Действия в случае превышения ограничения. 12.3.3. Примеры. 12.4. Хеш-фильтры. 12.5. Фильтрация трафика IPv6. 12.5.1. Почему не работают tc-фильтры в IPv6? 12.5.2. Маркировка пакетов IPv6 средствами ip6tables. 12.5.3. Использование селектора u32 для пакетов IPv6. Глава 13. Параметры настройки сети в ядре. 13.1. Reverse Path Filtering. 13.2. Малоизвестные настройки. 13.2.1. Параметры настройки IPv4. 13.2.2. Параметры настройки устройств. 13.2.3. Параметры сетевых политик. 13.2.4. Параметры маршрутизации. Глава 14. Специализированные дисциплины управления очередями. 14.1. bfifo/pfifo 14.1.1. Параметры и порядок использования. 14.2. Алгоритм Кларка-Шенкера-Чанга. 14.3. DSMARK. 14.3.1. Введение. 14.3.2. Что такое Dsmark и с чем его "едят"? 14.3.3. Основные принципы. 14.3.4. Как работать с Dsmark. 14.3.5. Как работает SCH_DSMARK. 14.3.6. Фильтр TC_INDEX. 14.4. Ingress qdisc. 14.4.1. Параметры и порядок использования. 14.5. Random Early Detection (RED) 14.6. Generic Random Early Detection. 14.7. Эмуляция VC/ATM. 14.8. Weighted Round Robin (WRR). Глава 15. Решебник. 15.1. Запуск нескольких сайтов с различными sla. 15.2. Защита от syn flood. 15.3. Ограничение пропускной способности для icmp-пакетов, с целью предотвращения dDoS атак. 15.4. Управление приоритетами для трафика различных типов. 15.5. Прозрачное проксирование с помощью netfilter, iproute2, ipchains и squid. 15.5.1. Схема движения пакетов после настройки. 15.6. Решение проблемы с Path MTU Discovery путем настройки MTU. 15.6.1. Решение 15.7. Решение проблемы с Path MTU Discovery путем настройки MSS. 15.8. Формирователь трафика: Низкая задержка, максимальная производительность. 15.8.1. Почему все так сложно? 15.8.2. Формирователь трафика на базе CBQ. 15.8.3. Формирователь трафика на базе HTB. 15.9. Ограничение скорости для отдельного хоста или подсети. 15.10. Пример подключения локальной сети к Интернет через nat, с организацией qos. 15.10.1. Начнем с оптимизации пропускной способности. 15.10.2. Классификация пакетов. 15.10.3. Дополнительная оптимизация 15.10.4. Выполнение настроек во время загрузки системы. Глава 16. Построение мостов и псевдо-мостов с proxy arp. 16.1. Бриджинг и iptables. 16.2. Бриджинг и шейпинг. 16.3. Псевдо-мосты с проксированием ARP. 16.3.1. ARP и проксирование ARP 16.3.2. Реализация Глава 17. Динамическая маршрутизация — OSPF и BGP. 17.1. Настройка ospf в zebra 17.1.1. Предварительные условия. 17.1.2. Конфигурирование. 17.1.3. Запуск zebra 17.2. Настройка BGP4 с помощью ZEBRA. 17.2.1. Конфигурация сети (пример). 17.2.2. Конфигурирование (пример). 17.2.3. Проверка конфигурации. Глава 18. Прочие возможности. Глава 19. Рекомендуемая литература. Глава 20. Благодарности.
2.3. Что может предложить вам linux Вот далеко не полный список из того, что может предложить вам операционная система Linux:
• Управлять пропускной способностью НА отдельных компьютерах.
• Управлять пропускной способностью К отдельным компьютерам.
• Поможет "раздать" пропускную способность по-справедливости.
• Защитить вашу сеть от DoS-атак
• Предотвратить нападения из вашей сети на серверы в Интернет.
• Распараллелить несколько серверов, с целью равномерного распределения нагрузки.
• Ограничить доступ к вашим компьютерам.
• Ограничить доступ ваших пользователей к другим узлам сети.
• Выполнять маршрутизацию на основе UID (да!), MAC-адресов, исходящих IP-адресов, номеров портов, типа обслуживания, времени суток и содержимого.
На сегодняшний день эти дополнительные возможности не получили широкого распространения. На то есть ряд причин: хотя имеющаяся документация достаточно подробна, она почти не содержит практических рекомендаций. А вопросы управления трафиком вообще не освещены.