Инструменты пользователя

Инструменты сайта


freebsd:pf
Warning: Undefined array key -1 in /home/virtwww/w_linko22-ru_c0d3353b/http/inc/html.php on line 1458

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
freebsd:pf [2010/08/30 20:43]
linko22@gmail.com
freebsd:pf [2010/08/30 21:08] (текущий)
linko22@gmail.com
Строка 32: Строка 32:
      
   pass in on $int_if reply-to ($int_if $yota_addr) proto tcp from ! $int_if:network to self port 222 flags S/SA keep state # обратный проброс порта ssh из Yota во вне, сделано, что бы в случае пропажи основного линка можно было зайти на роутер   pass in on $int_if reply-to ($int_if $yota_addr) proto tcp from ! $int_if:network to self port 222 flags S/SA keep state # обратный проброс порта ssh из Yota во вне, сделано, что бы в случае пропажи основного линка можно было зайти на роутер
-====== pf. ====== 
  
 +===== pf.yota-gw =====
 +
 +Это файл таблиц адресов, которые надо посылать через Yota. Используется в случае падения основного канала.
 +  !194.87.0.50 # этот адрес мы исключаем, что бы пинговать его, проверяя доступность канала провайдера (www.ru)
 +  !10.8/16 # исключаем всю свою внутреннюю сеть
 +  0/0 # Все адреса
 +
 +
 +===== pf.yota-table.conf =====
 +
 +В этом файле таблиц прописываются те адреса или подсети, которые используются для заворачивания на Yota в обычном режиме работы.
 +
 +===== pf.yota.conf =====
 +
 +Файл, который считывается непосредственно при загрузке pf.conf
 +===== Переключалка каналов =====
 +==== Скрипт переключения ====
 +
 +Скрипт на bash, полный путь к нему /home/scripts/sw-isp.sh
 +
 +  #!/usr/local/bin/bash
 +  
 +  ping -q -c 5 -W 60 194.87.0.50                          # пингуем 5 раз адрес (с первого раза бывает, хоть и очень редко, пинг не идет и это принимается за падение канала)
 +  if [ $? -ne  "0" ] ; then                               # если пинг не проходит и возвращаемое значение не 0 тогда
 +      pfctl -t yota -T show | grep "194.87.0.50"          # смотрим, есть ли адрес для пинга в таблице, т.е. переключение на Yota уже произошло
 +      if [ $? -ne "0" ] ; then                            # если нет, это первое падение канала
 +          cp /etc/pf.yota-gw.conf /etc/pf.yota.conf       # меняем файл таблицы адресов
 +          pfctl -f /etc/pf.conf                           # перезагружаем правила
 +      fi
 +  else                                                    # пинг есть
 +      pfctl -t yota -T show | grep "194.87.0.50"          # смотрим, какая таблица активна
 +      if [ $? -eq "0" ] ; then                            # если таблица Yota в качестве шлюза
 +          cp /etc/pf.yota-table.conf /etc/pf.yota.conf    # тогда меняем файл таблицы на часть адресов через Yota
 +          pfctl -f /etc/pf.conf                           # применяем правила
 +      fi
 +  fi
 +
 +==== Запись в /etc/crontab ====
 +
 +''                              root    /home/scripts/sw-isp.sh''
  
freebsd/pf.1283186620.txt.gz · Последнее изменение: 2010/08/30 20:43 — linko22@gmail.com