Сервер FreeBSD 7.0 c двумя сетевыми интерфейсами
192.168.1.0/24 (GRAY_IP)
83.83.83.0/24 (REAL_IP)
Cisco - через которую идет весь сетевой трафик подсети LAN1
На данный момент запущен SQUID и настроен wccp с Циской примерно так:
SQUID: wccp_router CISCO_IP
ifconfig gre0 create
ifconfig gre0 REAL_IP CISCO_IP 255.255.255.255 up
ifconfig gre0 tunnel REAL_IP CISCO_IP
ipfw add 100 fwd REAL_IP,3128 tcp from 83.83.83.0/24 to not 83.83.83.0/24 80 in recv gre0
Все прекрасно работает. Когда поднят SQUID, Циска это видит и направляет на FreeBSD все запросы по 80-му порту. SQUID корректно отрабатывает запросы и отдает трафик. Возникла необходимость запустить вторую подсетку через FreeBSD. Для этого запускаю NAT:
log yes
use_sockets
same_ports
port 8668
dynamic yes
deny_incoming no
interface em0
ipfw add 1000 divert 8668 ip from any to any via em0
В итоге LAN2 прекрасно работает, но HTTP для LAN1 перестает функционировать. Т.е. запросы от циски приходят, видно, что уходят на 100-м правиле, но в ответ-тишина. Файрволом ничего не закрыто.
Как подружить NAT со сквидом? По-идее, решаться должно несложно, но уже голову поломал ;(
Картинка, поясняющая ситуацию:
http://www.tih.ru/tmp/squid_nat_wcc.gif