Очень странная ситуация. Есть подсеть. У подсети есть маршрут по умолчаию - ip адрес 192.168.3.1. На интерфейсе поднят прозрачный прокси. Если люди работают на прямую без прокси, то всё хорошо. Если хотя бы один запрос отправляется из этой подсети на прокси, то 192.168.3.1 становится недоступным и не пингуется. Остальные адреса в подсети остаются доступными. Лечится всё просто - ifconfig eth0 down - ifocnfig eth0 up + юзеры перед этим пускаются в обход прокси. Есть ещё одна подсеть с маршрутом по умолчаю 192.168.2.63. И в ней все ходят в инет через проксю, и проблем не наблюдается, даже когда проблемы есть в соседней подсети.
Маски подсети везде = 24 бита.
Но мне нужно, чтобы обе посдети ходили в инет через один прокси, а не только одна. Помогите пожалуйста! Конфиги фаерволла и сквида прилагаю.
RC.FIREWALL:
#!/bin/sh
IPTABLES="/usr/sbin/iptables"
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD
$IPTABLES -t nat -F
INET_IP="10.34.105.30"
INET_IFACE="eth2"
INET_SUBNET="10.34.105.28/30"
INET_BROADCAST="10.34.105.31"
# Specialnie adresnie prostarnstva i adresa //Valya
#SM
RABOCHIE_STANCII="192.168.2.1-192.168.2.30"
TONKIE_CLIENTI="192.168.2.31-192.168.2.100"
TERMINAL_SERVER="192.168.2.171"
ALL_SM_LAN="192.168.2.0/24"
#MD
MD_STANCII="192.168.3.0/24"
LAN_IP="192.168.2.63"
LAN_SUBNET="192.168.2.0/24"
LAN_IFACE_SMS="eth1"
LAN_IFACE_MD="eth0"
LO_IFACE="lo"
LO_IP="127.0.0.1"
IPTABLES="/usr/sbin/iptables"
/sbin/depmod -a
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
echo "1" > /proc/sys/net/ipv4/ip_forward
#echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
#echo "1" > /proc/sys/net/ipv4/conf/all/proxy_arp
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$INET_IFACE -j MASQUERADE
#Çàðåçàåì òðàôèê ñ òîíêèõ êëèåíòîâ â ñåòü èíòåðíåò íàïðÿìóþ
iptables -t filter -A FORWARD -m iprange --src-range $TONKIE_CLIENTI -d ! 192.168.2.63 -p all -j DROP
#########
iptables -t nat -A PREROUTING -m iprange --src-range $RABOCHIE_STANCII -d ! 192.168.2.63 -p tcp -m multiport --dport 80,81,82,83,88,8082,8083,8091,8100,8101,8102,8103,8080,8888,777 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -s $TERMINAL_SERVER -d ! 192.168.2.63 -p tcp -m multiport --dport 80,81,82,83,88,8082,8083,8091,8100,8101,8102,8103,8080,8888,777 -j REDIRECT --to-port 3128
#iptables -t nat -A PREROUTING -s $MD_STANCII -d ! 192.168.3.1 -p tcp -m multiport --dport 80,81,82,83,88,8082,8083,8091,8100,8101,8102,8103,8080,8888,777 -j REDIRECT --to-port 3128
#çàðåçàåì óòå÷êè brodcast-òðàôèêà èç âñåõ ëîêàëüíûõ ñåòåé
$IPTABLES -A INPUT -i $LAN_IFACE_SMS -s 255.255.255.255 -j DROP
$IPTABLES -A INPUT -i $LAN_IFACE_SMS -d 0.0.0.0 -j DROP
#$IPTABLES -A INPUT -i $LAN_IFACE_MD -s 255.255.255.255 -j DROP
#$IPTABLES -A INPUT -i $LAN_IFACE_MD -d 0.0.0.0 -j DROP
#######################################################
$IPTABLES -A FORWARD -p tcp --dport 25 -d ! 62.113.86.197 -j ULOG --ulog-nlgroup 1 --ulog-prefix "(b25-tcp): "
$IPTABLES -A FORWARD -p tcp --dport 25 -d ! 62.113.86.197 -j REJECT
$IPTABLES -A FORWARD -p udp --dport 25 -d ! 62.113.86.197 -j ULOG --ulog-nlgroup 1 --ulog-prefix "(b25-udp): "
$IPTABLES -A FORWARD -p udp --dport 25 -d ! 62.113.86.197 -j REJECT
$IPTABLES -A FORWARD -d 81.176.226.166 -j REJECT --reject-with icmp-host-prohibited
$IPTABLES -A FORWARD -d 87.242.91.47 -j REJECT --reject-with icmp-host-prohibited
$IPTABLES -A FORWARD -d 195.2.91.115 -j REJECT --reject-with icmp-host-prohibited
$IPTABLES -A FORWARD -d 195.2.91.116 -j REJECT --reject-with icmp-host-prohibited
$IPTABLES -A FORWARD -d 195.190.105.0/24 -j REJECT --reject-with icmp-host-prohibited
$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP
SQUD.CONF :
##################################### ACL ######################################
#You can disable allowing only SM packets here, but I recommend to pass only them //V
acl manager proto cache_object
acl all src 0.0.0.0/0.0.0.0
acl root_host src 192.168.2.199
acl localhost src 127.0.0.1/255.255.255.255
acl bad_sites url_regex -i "/usr/local/squid/etc/bw.regex"
acl good_sites url_regex -i "/usr/local/squid/etc/gw.regex"
http_access allow manager localhost
http_access deny manager
acl sm src 192.168.2.0/24
acl md src 192.168.3.0/24
http_access deny bad_sites
http_access allow good_sites
http_access allow sm
http_access allow md
http_access deny all
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 9443 9080 563 15100 11001 11002
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 9443 9080 563 11001 11002 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
#acl sm proxy_auth REQUIRED
http_access deny all
############# CACHE #############
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
cache allow all
cache_mem 60 MB
####DNS
##################################
############# PATHS #################################
cache_dir ufs /usr/local/squid/var/cache 7000 16 256
access_log /usr/local/squid/var/logs/access.log squid
####################################################
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
cache_effective_user squid
cache_effective_group squid
log_access allow all
tcp_outgoing_address 10.34.105.30 sm
tcp_outgoing_address 10.34.105.30 md
http_port 3128 transparent
visible_hostname squid