пиринговые сети провайдера ByFly

или что такое продвинутая маршрутизация iproute2

...или что такое "Продвинутая маршрутизация"

Постановка задачи: Отдельным пунктом рассмотрим настройку доступа к гостевым ресурсам (пиринг) сетей byfly. Обратите внимание на строчки в файлах /etc/ppp/peers/ppp0 и /etc/ppp/peers/ppp0_guest в предыдущей моей статье Настройка pppoe под Linux (ADSL от byfly в режиме Bridge)

...
86.57.245.XXX:		# НАШ статический IP
defaultroute		# использовать ppp0 как шлюз по умолчанию
replacedefaultroute	# заменить им любой существующий шлюз по умолчанию
...

и
...
noipdefault		# если у вас Динамический IP
nodefaultroute		# не использовать его как шлюз по умолчанию
noreplacedefaultroute	# не заменять существующий шлюз по умолчанию
...

Если Вы укажите defaultroute, то интерфейс ppp0 будет использоваться как шлюз по умолчанию на время его подключения. В случае отключения будет восстановлен предыдущий маршрут по умолчанию.

Вариант №1 – простой:

Проверить, установлен ли в системе пакет продвинутой маршрутизации Iproute2, выполнив команду:

server:/# ip -V

ip utility, iproute2-ss080725

По умолчанию этот пакет в Lenny уже установлен, в Etch скорее всего – нет. Если пакет не установлен – установите его:

server:/# apt-get install iproute

Создадим простой скрипт добавления статических маршрутов в таблицы нашего сервера /etc/iproute2/piring

server:/# touch /etc/iproute2/piring   
server:/# chown root:root /etc/iproute2/piring   
server:/# vim /etc/iproute2/piring   

#!/bin/bash
# For ByFly 

ip route $1 86.57.251.28  dev ppp1 &> /dev/null
ip route $1 86.57.151.3  dev ppp1 &> /dev/null
ip route $1 86.57.253.1  dev ppp1 &> /dev/null
ip route $1 91.149.189.0/25  dev ppp1 &> /dev/null
ip route $1 91.149.189.128/26  dev ppp1 &> /dev/null
ip route $1 93.125.53.0/24  dev ppp1 &> /dev/null
ip route $1 82.209.240.241  dev ppp1 &> /dev/null
ip route $1 193.232.248.79  dev ppp1 &> /dev/null
ip route $1 193.232.248.80  dev ppp1 &> /dev/null
ip route $1 82.209.245.151  dev ppp1 &> /dev/null
ip route $1 86.57.250.0/23  dev ppp1 &> /dev/null
ip route $1 86.57.246.0/24  dev ppp1 &> /dev/null
ip route $1 93.84.112.0/21  dev ppp1 &> /dev/null
ip route $1 82.209.240.241  dev ppp1 &> /dev/null
ip route $1 82.209.243.241  dev ppp1 &> /dev/null

Делаем его исполняемым:

server:/# chmod +x /etc/iproute2/piring   

Добавить его в старт при автозагрузке любым доступным способом. Например, через /etc/rc.local, добавив строку:

server:/# /etc/iproute2/piring add

Аналогично Вы можете в любой момент выгрузить весь пиринг из таблиц маршрутизации командой:

server:/# /etc/iproute2/piring del

Вот и все! Теперь у Вас настроены гостевые ресурсы, доступные в пиринге на высоких скоростях.

Замечание: У нашего горячо любимого провайдера в принципе с 2011 года нету больше "гостя"(гостевого соединения). Технически всё осталось как есть - можно создавать два соединения и подключаться например только по гостевому, однако относится ли IP к гостевому или не относится - решает биллинговая система у провайдера, а не статические маршруты у вас (на компе, на сервере, в роутере). И 2 соединения в принципе больше не нужны, и эти маршруты тоже... Создали одно в роутере, подключились к роутеру, вылезли в Интернет - всё. Дальше уже всё раскладывается на биллинге. НО есть и другие провайдеры, возможно это кому-то еще будет полезно!

Вариант №2 – функциональный:

Убедились, что пакет iproute в системе присутствует… Теперь вкратце обрисую ситуацию: представьте, что из-за сбоя в сетях коммуникаций или на сервере провайдера у вас произошел разрыв соединения ppp. Debian отреагирует однозначно – удалит все «неживые» маршруты из таблиц маршрутизации и даже если демон PPP восстановив связь – маршруты будут утрачены и интернета у вас больше не будет.

Решаем задачку в лоб: по расписанию запускаем скрипт, который проверяет «живучесть» канала и восстанавливает маршруты. Скрипт может быть переделан по Вашему усмотрению...

Создадим ...

server:/# touch /etc/iproute2/balance   
server:/# chown root:root /etc/iproute2/balance   
server:/# vim /etc/iproute2/balance  

и рассмотрим сам скрипт

#!/bin/bash
sleep 5
# Задаем интерфейсы и локальную сеть
IFIN=eth0       			# Local Network
IFOUT=ppp0      			# byFly Canal
LOCALNET=192.168.1.0/24 	# Local network

# Определяем IP и GATEWAY наших интерфейсов
IPIN=`ifconfig ${IFIN}|grep "inet addr"|awk '{print $2}'|cut -d ':' -f 2`
IPOUT=`ifconfig ${IFOUT}|grep "inet addr"|awk '{print $2}'|cut -d ':' -f 2`
GW=`ifconfig ${IFOUT}|grep "inet addr"|awk '{print $3}'|cut -d ':' -f 2`

echo "Метрики сети ppp0 - Canal byfly"
echo $IPOUT $GW

# Принимаем за правило что интерфейс в локалку (eth0) всегда UP, поэтому проверяем наличие только ppp интерфейсов

# Если наш ppp поднят - задаем его шлюз по умолчанию
if [ `ip link show ${IFOUT}|grep "UP"|awk '{print $3}'|cut -d ',' -f 4` ] && [ "UP" ];then
        # Если интерфейс поднят ppp0
        echo "Canal up"
        /etc/iproute2/piring del
        /sbin/route del default gw 192.168.1.1 &> /dev/null

        # и делаем маршрут по умолчанию через ppp0 интерфейс
        /sbin/route add default gw ${GW} &> /dev/null
        /etc/iproute2/piring add

        echo "Маршруты для локальной сети (опционально)"
        /sbin/ip route add ${LOCALNET} dev ${IFIN}
        /sbin/ip route add 127.0.0.0/8 dev lo
fi

exit 0

Делаем его исполняемым:

server:/# chmod +x /etc/iproute2/balance  

Этот простой скрипт поможет Вам не потерять интернет более чем на время между его запусками по расписанию Cron. Добавим его в Cron на исполнение каждые 30 мин, добавив в файл /etc/crontab. Такую же операцию можно сделать через webmin.

#  m h dom mon dow user  command
  30 * *   *   *   root  /etc/iproute2/balance  

А также добавим первоначальный старт скрипта в автозагрузку любым доступным способом. Например, через /etc/rc.local, добавив строку:

server:~# /etc/iproute2/balance

Любопытным гражданам оставлю задачу переписать скрипт таким образом, чтобы замена маршрутов происходила ТОЛЬКО при необходимости.

Комментарии 3

  1. Денис — Nov 14, 2011 at 09:22 PM

    С этого года нету больше гостевого подключения у буфла. Всё решает биллинговая система у провайдера, а не статические маршруты . Эти два разных соединения в принципе больше не нужны как и эти маршруты тоже...

  2. No_body — Apr 23, 2010 at 12:50 PM

    А вот мне было очень полезно. Спасибо.

  3. Cергей — Oct 22, 2009 at 11:32 AM

    Прошу меня простить?! но я даже не знаю что такое byfly! Вы о чем?

  • 1

Комментарии отключены, сожалеем