squid3+dhcp+2канала=разделение пользователей, NEO, 20-Янв-11, 10:28 [смотреть все]Доброго дня господа!Несколько дней парюс над одной проблемой которую некогда решил. Ситуация простая. Есть машина на fbsd8, на ней squid3. Два интерфейса,на одной статик ип(собственно ,некоторые клиентов этой сети должен пересадить на rl0),другой интерфейс берет адреса по dhcp(192.168.1.0/24) с роутера tp-link от другого провайдера. Задача: перенести часть пользователей на более шустрый канал (на интерфейс который берет ип по dhcp -rl0 ) Аналогичную программу некогда решил с tcp_outgoing_address и сквид,все работало прекрасно.Только тогда обе интерфейса имели статик ип адреса. Я понимаю ,что в форуме полно таких случаев,поверьте перевернул все вверх дном,конкретного решения не нашел.И с гуглом тоже самое.Думаю с маршрутизацией напортачил. Вот конфиги. gateway_enable="YES" inetd_enable="YES" devd_enable="yes" zfs_enable="yes" hostname="proxy.domain.com" sshd_enable="yes" sshd_program="/usr/sbin/sshd" ifconfig_re0="inet 195.xxx.xxx.195 netmask 255.255.255.192" ifconfig_re0_alias0="inet 195.xxx.xxx.225 netmask 255.255.255.192" # # ifconfig_rl0="inet 192.168.1.3 netmask 255.255.255.0" - здесь принудительно поставил ип для tcp_outgoing_address ,но этот интерфейс получает ип динамически natd_enable="YES" natd_interface="rl0" natd_flags="-same_ports -dynamic" #dhcp_program="/sbin/dhclient" # defaultrouter="195.xx.xx.198" nameserver="195.xx0.xx.68" firewall_enable="yes" firewall_type="simple" firewall_script="/etc/rc.firewall" sendmail_enable="none" # apache22_enable="YES" squid_enable="yes" # dhcpd_enable="NO" dhcpd_conf="/usr/local/etc/dhcpd.conf" dhcpd_ifaces="" Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire default 195.xx.xx.198 UGS 5 9455 re0 127.0.0.1 link#6 UH 0 3 lo0 192.168.1.0/24 link#2 U 0 0 rl0 192.168.1.3 link#2 UHS 0 0 lo0 195.xx.xx.192/26 link#1 U 0 214 re0 195.xx0.xx.195 link#1 UHS 0 400 lo0 195.xx0.xx.225 link#1 UHS 0 0 lo0 Internet6: Destination Gateway Flags Netif Expire ::1 ::1 UH lo0 fe80::%lo0/64 link#6 U lo0 fe80::1%lo0 link#6 UHS lo0 ff01:6::/32 fe80::1%lo0 U lo0 ff02::%lo0/32 fe80::1%lo0 U lo0 Благодарю за помощь!
|
- squid3+dhcp+2канала=разделение пользователей, sherlock, 11:21 , 20-Янв-11 (1)
- squid3+dhcp+2канала=разделение пользователей, NEO, 11:25 , 20-Янв-11 (2)
> Сделайте проще, поставьте шлюз по умолчанию на провайдера с DHCP, сквид всех > на него и кинет, а уже с помощью TCP_OUTGOING_ADDRESS кого надо > заверните на другой интерфейс. Ну и для других служб, которые должны > работать с белым IP используйте Policy Routing Я бы рад,но тогда не работают некоторые сервисы.В частности www,apache. на счет Policy Routing можно по подробнее??
- squid3+dhcp+2канала=разделение пользователей, YuSt, 14:46 , 20-Янв-11 (5)
- squid3+dhcp+2канала=разделение пользователей, NEO, 14:52 , 20-Янв-11 (6)
>[оверквотинг удален] > 1- пересобираем ядро с options ROUTETABLES=2, соответственно после "применения" получаем > две таблицы маршрутизации : 0 - общесистемная, и 1 - наша > вспомогательная > 3 - обрабатываем ситуацию получения динамического адреса по DHCP - должен стать > шлюзом по умолчанию в 1-й таблице маршрутизации (в dhclient-exit-hooks) > 2 - для SQUID используем опцию squid_fib=1 в rc.conf > Пы.Сы. Лично я при двух внешних каналах строю ТРИ таблицы маршрутизации, 0 > - системныя, 1 - с дефолтом в 1-й внешний канал и > 2 - с дефолтом во второй внешний канал. Плюсы подобной реализации > (ИМХО) - заморачиваюсь только с переопределением шлюзов по умолчанию ...3ий пунктик еще раз,плз;-) вторую часть. Я в первые в фрее работаю с более чем одной таблицей маршрутизации.(2 года в армии),че то новое. И обе маршруты добавляются так: route add default <gateway_ip>
- squid3+dhcp+2канала=разделение пользователей, sherlock, 05:59 , 21-Янв-11 (9)
- squid3+dhcp+2канала=разделение пользователей, NEO, 13:47 , 21-Янв-11 (10)
Огромное вам спасибо,господа!Все заработало. Пересобрал ядро с поддержкой фиб.потом кальмар с поддержкой фиб,и дал внешнему интерфейсу ип из пула дхцп. дальще настроил таблицы марщрутизации.
|