Появился новый провайдер, и тут появилась она -
Задача - не изменяя топологии сети пустить http через другого провайдера.
Установил FreeBSD 6.2, Сквид, 2 сетевухи в режиме бриджа, 3я сетевуха смотрит в тарелку провайдера...
И вот тут затык.
Все работает прекрасно, за исключением одной мелочи - не получается сделать прозрачную прокси.
Где-то краем уха слыхал, что в режиме бриджа ipfw fwd не работает, но подтверждений этому не нашел.
Если вдруг кто-то захочет помочь - милости прошу :-)
ifconfig
Код: Выделить всё
vr0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
options=40<POLLING>
ether 00:13:46:ec:55:7a
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=48<VLAN_MTU,POLLING>
inet XXX.XXX.XXX.70 netmask 0xfffffffc broadcast BB.BB.BB.BB
ether 00:c0:26:a7:47:d2
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
vr1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
options=40<POLLING>
inet 192.168.4.101 netmask 0xffffff00 broadcast 192.168.4.255
ether 00:0c:6e:ca:ae:4e
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 6a:2c:c8:80:81:1c
priority 32768 hellotime 2 fwddelay 15 maxage 20
member: vr1 flags=3<LEARNING,DISCOVER>
member: vr0 flags=3<LEARNING,DISCOVER>
Код: Выделить всё
net.link.ether.bridge.enable=1
net.link.ether.bridge.config=vr0,vr1
net.link.ether.bridge.ipfw=1
net.link.bridge.pfil_member=1
net.link.bridge.pfil_bridge=0
Код: Выделить всё
blanktime="3600"
#tcp_drop_synfin="YES"
#icmp_drop_redirect="YES"
#named_enable="YES"
#named_flags="-u bind -t /etc/namedb -c /etc/namedb/named.conf"
sshd_enable="YES"
firewall_enable="YES"
#ipnat_enable="YES"
#ipnat_rules="/usr/local/etc/ipnat.rules"
#---------
squid_enable="YES"
# squid_chdir="/var/log/squid"
#-------
sendmail_enable="NONE"
gateway_enable="YES"
static_routes="GwPROXY"
route_GwPROXY="-net 0.0.0.0 -netmask 0.0.0.0 -gateway XXX.XXX.XXX.69"
cloned_interfaces="bridge0"
ifconfig_bridge0="addm vr0 addm vr1 up"
ifconfig_vr0="up"
hostname="ROUTER"
ifconfig_rl0="inet XXX.XXX.XXX.70 netmask 255.255.255.252"
ifconfig_vr1="inet 192.168.4.101 netmask 255.255.255.0"
keymap="ru.koi8-r"
#router="/sbin/routed"
#router_enable="YES"
#router_flags="-q"
usbd_enable="NO"
Код: Выделить всё
00001 11 554 count ip from any to any via rl0 in
00001 11 512 count ip from any to any via rl0 out
00010 0 0 deny ip from any to me dst-port 22 via vr0
00010 0 0 deny ip from any to me dst-port 22 via rl0
01000 11130 1681574 fwd 192.168.4.101,3128 tcp from table(1) to not table(2) dst-port 80 in via vr1
30000 69863 33464736 allow ip from any to any
65535 0 0 deny ip from any to any
Если проксю задавать в бровзерах явно, то все работает, а прозрачно - все ходит через бридж в даль, в access.log живут партизаны, а в 1000 правиле исправно добавляются байтики
В принципе можно жить и так, но очень хотелось бы проксю сделать прозрачной... Даже так - НАДО сделать проксю прозрачной...
ЗЫ: table(1) - все компы с моей стороны сегмента сети, table(2) - сервера, находящиеся со стороны основного провайдера.