Всем доброго времени!
Есть необходимость в работе прокси сервера.
Чтобы его завести нужно решить вопрос по механизма получения им трафика.
В настоящий момент для этого имеется сетевой мост с поднятым на нем сквидом,
опытным путем выяснено, что конструкция bridge+squid работает.
Конфигурация моста и сквида, плюс правила ebtables + iptables.
bridge
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto eth1
iface eth1 inet manual
auto br0
iface br0 inet static
address 172.16.11.15
netmask 255.255.255.0
gateway 172.16.11.1
bridge-ports eth0 eth1
bridge_stp off
dns-nameservers 217.195.65.9 8.8.4.4
squid
http_port 172.16.11.15:3128 transparent
acl LocalNet src 172.16.11.0/255.255.255.0
acl bad dstdomain "/home/user/squid_lists/bad_urls"
http_access deny LocalNet bad
acl bad_net dst "/home/user/squid_lists/bad_net"
http_access deny LocalNet bad_net
acl bad_files url_regex -i "/home/user/squid_lists/bad_files"
http_access deny LocalNet bad_files
http_access allow LocalNet
http_access deny all
ebtables
ebtables -t broute -A BROUTING -p IPv4 --ip-protocol 6 \
--ip-destination-port 80 -j redirect --redirect-target ACCEPT
iptables-save
# Generated by iptables-save v1.4.12 on Tue Jan 14 14:36:35 2014
*nat
:PREROUTING ACCEPT [2020:169470]
:INPUT ACCEPT [2:406]
:OUTPUT ACCEPT [12:768]
:POSTROUTING ACCEPT [2012:162971]
-A PREROUTING -s 172.16.11.0/12 -i br0 -p tcp -m tcp --dport 80 -j REDIRECT --to- ports 3128
COMMIT
# Completed on Tue Jan 14 14:36:35 2014
# Generated by iptables-save v1.4.12 on Tue Jan 14 14:36:35 2014
*filter
:INPUT ACCEPT [1933:198146]
:FORWARD ACCEPT [10488:667469]
:OUTPUT ACCEPT [313:39819]
COMMIT
# Completed on Tue Jan 14 14:36:35 2014
root@bridge:~# iptables-save
# Generated by iptables-save v1.4.12 on Tue Jan 14 14:36:44 2014
*nat
:PREROUTING ACCEPT [2039:171913]
:INPUT ACCEPT [2:406]
:OUTPUT ACCEPT [12:768]
:POSTROUTING ACCEPT [2031:165414]
-A PREROUTING -s 172.16.11.0/24 -i br0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
COMMIT
# Completed on Tue Jan 14 14:36:44 2014
# Generated by iptables-save v1.4.12 on Tue Jan 14 14:36:44 2014
*filter
:INPUT ACCEPT [1970:201855]
:FORWARD ACCEPT [10516:670646]
:OUTPUT ACCEPT [323:41299]
COMMIT
# Completed on Tue Jan 14 14:36:44 2014
Но есть один непонятный для меня момент - когда я ввожу мост в разрыв сети между juniper srx100h и 3com 4210g то мой мост, вместо того чтобы заворачивать трафик из 172.31.16.0/24 (vlan1) на сквид, работает просто как прозрачный мост, пропуская сквозь себя весь трафик (в приведенной выше конфигурации).
Порт junipera настроен так:
fe-0/0/7 {
unit 0 {
family ethernet-switching {
port-mode trunk;
vlan {
members [ LAN phones video ];
}
}
}
}
из конфига порта видно, что он является транком LAN, phones, video, собственно сеть которую надо заворачивать на squid - LAN (172.16.11.0/24), vlan1.
я установил пакет VLAN, сконфигурировал интерфейсы так:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto eth1
iface eth1 inet manual
auto br0
iface br0 inet static
address 172.16.11.15
netmask 255.255.255.0
gateway 172.16.11.1
bridge-ports eth0 eth1
bridge_stp off
dns-nameservers 8.8.8.8 8.8.4.4
auto vlan1
iface vlan1 inet static
address 172.16.11.15
netmask 255.255.255.0
vlan_raw_device br0
Это неправильная конфигурация, просто мне непонятно как данном случае должна назначаться адресация...
При том что изначальная конфигурация интерфейсов - bridge.
И на какой интерфейс должен заруливаться траф на squid. Потом, сеть 172.16.11.0/24 это пользовательская сеть, хотелось бы обращаться к машине по IP из своей сети...
Подскажите, с чего начать чтобы разрешить эту проблему.