Домашно интернет маршрутизиране на два (или повече) доставчика, базирано на Bird Routing Daemon
Вероятно много потребители на домашен интернет са срещали как да паралелизират два или повече интернет канала в домашна мрежа. Този проблем може да бъде решен както хардуерно (използвайки евтино или скъпо оборудване), така и софтуерно. Кой модел на маршрутизиране да избера? Можете незабавно да отхвърлите RIP / OSPF / BGP, тъй като това е домашен интернет и съм повече от сигурен (и проверено в моя случай), че няма да искате да правите поддръжка от страна на доставчика безплатно. Спрях избора си на птица.
И така, начална позиция:
- Домашен рутер с Debian GNU/Linux 6.0.5 (свиване) на борда
- 2 интернет канала (ISP1 и ISP2)
- 2 прави ръце
- чаша кафе
- eth0 – Доставчик „ISP1“:
- IP: 10.10.10.106
- мрежова маска: 255.255.255.0
- Шлюз: 10.10.10.1
Аз съм фен на apt, но както се оказа, apt има доста остаряла версия на bird (1.2.5-1) и няма многопътна поддръжка. Ще трябва да го сглобите на ръка. Предварително умишлено пропускам всеки пламък, как да не превърна debian в slackware.
Скриптът за стартиране е готов, добавете към автоматично стартиране:
Нека създадем директория за лог файла:
Сега нека започнем да конфигурираме самата птица.
Първо архивирайте оригиналната конфигурация и създайте нова:
След това го отворете за редактиране:
Сега създаваме директория за ръчни конфигурации и например добавяменякои маршрути:
Това е всичко, настройката на птицата е завършена. Сега нека да преминем към конфигуриране на таблиците за маршрутизиране.
Добавете таблици към /etc/iproute2/rt_tables:
Сега трябва да направим така, че когато бъдат поискани от мрежата на ISP1, пакетите да се връщат обратно към ISP1, а не през друг интерфейс. За да направите това, добавете ip правило(а): За да направите това, създайте iprules скриптове:
Поставете отметка в квадратчето +x:
Сега започваме всички рестартирания:
За да не копирате и поставяте команди, нека го направим по-умно:
Сега издърпайте кабела, изключете мрежовия кабел от ISP1 (eth0), вижте какво се е променило:
Тоест, ако един от доставчиците бъде случайно прекъснат, трафикът ще премине през другия, деактивираният доставчик ще бъде наблюдаван на всеки 20 секунди (вижте опцията за време за сканиране 20 в регистрационните файлове на ядрото) и автоматично ще премахне „мъртъв“, когато се появи.
В заключение: по същия начин можете да добавите 10 доставчика.
Hardcore conf в C++. Каним само професионалисти.