Linux Advanced Routing & Traffic Control HOWTO (Hubert, Graf) - страница 12

>ip route add default scope global nexthop via $P1 dev $IF1 weight 1 \

> nexthop via $P2 dev $IF2 weight 1

Результатом команды будет попеременный выбор маршрута по-умолчанию. Вы можете изменить параметр weight, так чтобы один из провайдеров получал большую нагрузку.

Обратите внимание, что балансировка не будет идеальной, так как она основывается на маршрутах, а маршруты кэшируются. Это означает, что маршруты к часто посещаемым сайтам не будут проходить через разных провайдеров.

Если вы действительно интересуетесь этим, вам стоит посмотреть на патчи Юлиана Анастасова (Julian Anastasov), расположеные по адресу http://www.ssi.bg/~ja/#routes. Они могут вам помочь.

Глава 5. GRE и другие тоннели.

В ОС Linux поддерживаются 3 типа тоннелей. Это тоннелирование IP в IP, GRE тоннелирование и тоннели не-ядерного уровня (как, например, PPTP).

5.1. Несколько общих замечаний о тоннелях:

Тоннели могут использоваться для очень необычных и интересных вещей. Также они могут усугубить ситуацию, если они сконфигурированы неправильно. Не задавайте маршрут по умолчанию через тоннель, если только вы ТОЧНО не уверены в том, что делаете :-). Далее, тоннелирование увеличивает нагрузку на систему и сеть, потому что добовляются дополнительные IP-заголовки. Обычно, это 20 байт на пакет. Таким образом, если обычный размер пакета (MTU) в сети равен 1500 байтам, то при пересылке по тоннелю, пакет может содержать только 1480 байт. Это не обязательно становится проблемой, но помните о необходимости правильной настройки фрагментации пакетов, если вы соединяете большие сети. Ах да, и конечно самый быстрый способ "прорыть" тоннель — это "рыть" с обоих сторон.

5.2. Тоннелирование IP в IP.

Этот тип тоннелирования доступен в Linux уже давно. Для его работы требуются два модуля ядра: ipip.o и new_tunnel.o.

Допустим у вас есть три сети: внутренние сети A и B, и промежуточная сеть C (например, Internet). Итак, сеть A:

>сеть          10.0.1.0

>маска         255.255.255.0

>маршрутизатор 10.0.1.1

Адрес маршрутизатора в сети С — 172.16.17.18.

сеть B:

>сеть          10.0.2.0

>маска         255.255.255.0

>маршрутизатор 10.0.2.1

Адрес маршрутизатора в сети С — 172.19.20.21.

Мы полагаем, что сеть C передает пакеты от A к B и наоборот. Такой сетью может служить даже Internet.

Теперь, что нам нужно сделать?

Убедитесь, что все необходимые модули загружены:

>insmod ipip.o

>insmod new_tunnel.o

Теперь на маршрутизаторе сети A выполните:

>ifconfig tunl0 10.0.1.1 pointopoint 172.19.20.21

>route add –net 10.0.2.0 netmask 255.255.255.0 dev tunl0