squid and setfib
Apr. 17th, 2012 09:35 amОказывается setfib уже предусмотрен в стандартном /usr/local/etc/rc.d/squid, и переменная squid_fib вынесена в rc.conf. Тем самым задача "пользователи прокси ходят в Интернет по одному каналу, а все остальные по второму" решается с небывалым изяществом. Никаких нелюбимых мной "ipfw fwd".
/usr/local/etc/mpd5/mpd.conf:
set iface up-script /usr/local/etc/mpd5/ifup.sh
/usr/local/etc/mpd5/ifup.sh:
setfib 1 route add default $4
/etc/rc.conf.local:
squid_enable="YES"
squid_fib="1"
FreeBSD сделана для людей, однозначно. Ну и для локальных пользователей "setfib 1 tcsh" и работай через второй канал. В ядре "options ROUTETABLES=4".
/usr/local/etc/mpd5/mpd.conf:
set iface up-script /usr/local/etc/mpd5/ifup.sh
/usr/local/etc/mpd5/ifup.sh:
setfib 1 route add default $4
/etc/rc.conf.local:
squid_enable="YES"
squid_fib="1"
FreeBSD сделана для людей, однозначно. Ну и для локальных пользователей "setfib 1 tcsh" и работай через второй канал. В ядре "options ROUTETABLES=4".
no subject
Date: 2012-04-17 05:41 am (UTC)Типа такого
http://nginx.org/ru/docs/http/ngx_http_core_module.html#listen
PS: А зачем тебе 4 Routetables?
no subject
Date: 2012-04-17 05:53 am (UTC)no subject
Date: 2012-04-17 06:09 am (UTC)no subject
Date: 2012-04-17 06:07 am (UTC)Красиво, но я бы предпочел здесь и сейчас - чтобы в rc.subr предусмотрели стандартную возможность для всех запускаемых при старте демонов выбирать fib. Или задавать его через переменную среды.
С запасом. Пока используются только 0 и 1.
no subject
Date: 2012-04-17 06:15 am (UTC)Сделай патч к rc.subr
Или задавать его через переменную среды.
Ну это можно практически для всех скритов которые позволяют задать имя стартующего бинарника.
Число routetables емнип можно менять в loader.conf
no subject
Date: 2012-04-17 07:13 am (UTC)Туплю. Можно пример?
no subject
Date: 2012-04-17 07:22 am (UTC)inetd_flags="0 /usr/sbin/inetd -wW -C 60"
no subject
Date: 2012-04-21 03:48 am (UTC)Кстати да, а без модификации squid как можно такое сделать? А то если понадобится сделать доступ клиентов к squid не из локальной сети, на которую в каждом fib есть directly connected маршрут, то таки будет облом. Мне что-то ничего в голову не приходит, кроме как пропускать входящие соединения через какой-нибудь локально запущенный netcat (некрасиво).
no subject
Date: 2012-04-23 05:26 am (UTC)В принципе ничего особо сложного там быть не должно.
Реализацию для nginx я за полдня нарисовал ненапрягаясь.