Роутинг и policy-routing в Linux при помощи iproute2
Речь в статье пойдет о роутинге сетевых пакетов в Linux. А конкретно – о типе роутинга под названием policy-routing (роутинг на основании политик). Этот тип роутинга позволяет маршрутизировать пакеты на основании ряда достаточно гибких правил, в отличие от классического механизма маршрутизации destination-routing (роутинг на основании адреса назначения). Policy-routing применяется в случае наличия нескольких сетевых интерфейсов и необходимости отправлять определенные пакеты на определенный интерфейс, причем пакеты определяются не по адресу назначения или не только по адресу назначения. Например, policy-routing может использоваться для: балансировки трафика между несколькими внешними каналами (аплинками), обеспечения доступа к серверу в случае нескольких аплинков, при необходимости отправлять пакеты с разных внутренних адресов через разные внешние интерфейсы, даже для отправки пакетов на разные TCP-порты через разные интерфейсы и т.д.
Для управления сетевыми интерфейсами, маршрутизацией и шейпированием в Linux служит пакет утилит iproute2.
Запретить прием дефолтного роутинга по BGP в Quagga
Небольшая шпаргалка.
При наличии нескольких аплинков стоит запретить прием дефолтного роутинга, мы сами решим кто для нас будет дефолтным шлюзом. Делается это так:
ip prefix-list default seq 5 permit 0.0.0.0/0 route-map PROVIDER-in deny 105 match ip address prefix-list default route-map PROVIDER-in permit 205
И в секции router bgp, где описываются соседи (neighbor) добавляем для нашего соседа строку:
neighbor 11.22.33.44 route-map PROVIDER-in in
Настройка и оптимизация MySQL сервера
В этой статье будут описаны различные настройки MySQL, преимущественно те, которые влияют на производительность. Для удобства все переменные разделены по разделам (базовые настройки, ограничения, настройки потоки, кэширование запросов, тайминги, буферы, InnoDB). Сначала уточним имена некоторых переменных, которые изменились в версии 4 MySQL, а в сети продолжают встречаться и старые и новые варианты имен, что вызывает вопросы.
Играем с BGP в Quagga
BGP (англ. Border Gateway Protocol, протокол граничного шлюза) — основной протокол динамической маршрутизации в Интернете. Протокол, о котором можно сказать, что на нем держится весь Интернет. Суть его в том, что каждый маршрутизатор сообщает соседям, какие сети он маршрутизирует. В ответ соседи сообщают ему, какие сети доступны через них, через их соседей и т.д. Имея несколько BGP-линков, появляется возможность выбирать тот линк, через который маршрут до какой-либо сети будет короче и т.д.
Но тема этой заметки не о самом протоколе BGP, а о его свободной реализации — quagga. Следует заметить, что quagga также поддерживает OSPF и RIP, но мы рассмотрим только BGP. Я приведу несколько несложных примеров использования quagga с конфигами и логами.
Повышение производительности netfilter, использование ipset
iptables — интерфейс к файрволу Linux (netfilter). При большом количестве правил iptables нагрузка может быть достаточно высокой и создавать проблемы. В этой заметке я постараюсь описать, что влияет на производительность iptables и как ее повысить.