Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
freebsd:pf [2010/08/30 20:41] linko22@gmail.com |
freebsd:pf [2010/08/30 21:08] (текущий) linko22@gmail.com |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== pf.conf ====== | + | ====== |
+ | |||
+ | Схема такая. | ||
+ | |||
+ | Есть роутер на FreeBSD, с внешним аплинком к провайдеру по трафику. Надо завернуть все трафикопожирающие сервисы на Yota. Так же в случае падения основного канала, | ||
+ | |||
+ | ===== pf.conf | ||
ext_if=" | ext_if=" | ||
Строка 26: | Строка 32: | ||
| | ||
pass in on $int_if reply-to ($int_if $yota_addr) proto tcp from ! $int_if: | pass in on $int_if reply-to ($int_if $yota_addr) proto tcp from ! $int_if: | ||
+ | |||
+ | ===== pf.yota-gw ===== | ||
+ | |||
+ | Это файл таблиц адресов, | ||
+ | !194.87.0.50 # этот адрес мы исключаем, | ||
+ | !10.8/16 # исключаем всю свою внутреннюю сеть | ||
+ | 0/0 # Все адреса | ||
+ | |||
+ | |||
+ | ===== pf.yota-table.conf ===== | ||
+ | |||
+ | В этом файле таблиц прописываются те адреса или подсети, | ||
+ | |||
+ | ===== pf.yota.conf ===== | ||
+ | |||
+ | Файл, который считывается непосредственно при загрузке pf.conf | ||
+ | ===== Переключалка каналов ===== | ||
+ | ==== Скрипт переключения ==== | ||
+ | |||
+ | Скрипт на bash, полный путь к нему / | ||
+ | |||
+ | # | ||
+ | | ||
+ | ping -q -c 5 -W 60 194.87.0.50 | ||
+ | if [ $? -ne " | ||
+ | pfctl -t yota -T show | grep " | ||
+ | if [ $? -ne " | ||
+ | cp / | ||
+ | pfctl -f / | ||
+ | fi | ||
+ | else # пинг есть | ||
+ | pfctl -t yota -T show | grep " | ||
+ | if [ $? -eq " | ||
+ | cp / | ||
+ | pfctl -f / | ||
+ | fi | ||
+ | fi | ||
+ | |||
+ | ==== Запись в / | ||
+ | |||
+ | '' | ||