Вроде где-то живой пример был. Если я правильно понял задачу, речь идёт о transparent proxy? Тогда точно можно, я делал, но давненько. Верю. А вспомни как :)
rdr xl0 192.168.0.0/0 port 80 -> x.x.x.x port 3128 ^^^^^^^^^^^^^ Маски 0 тут не бывает. ipnat понимает это дело как 0/0 и бредит.
Однако было. Взято из некогда рабочего конфига. Сказать, на какой версии это работало, не могу. Что-то из 4.x
И squid, собранный с соответствующими опциями работал через такую конструкцию.
Вот блин, пустяшная ж проблемка :-/ Вот прямо сейчас рабочий конфиг: ----------------------------------------- gash@hc $ uname -sr FreeBSD 4.6-RELEASE gash@hc $ cat /etc/ipnat.rules # Enable NAT on outgoing ethernet interface map ed0 from 10.1.1.0/24 to any -> 213.169.64.173/32 # Enable transparent proxy for HTTP traffic rdr rl0 10.1.1.1/32 port 80 -> 127.0.0.1 port 80 rdr rl0 0.0.0.0/0 port 80 -> 127.0.0.1 port 3128 rdr rl0 0.0.0.0/0 port 443 -> 127.0.0.1 port 3128 ----------------------------------------- rl0 - внутрення сетевушка, ed0 - внешняя. Squid на порту 3128.
А если поставить нормальную маску, то выходит :
client[10.0.0.2]> MSIE dst
router> ipmon -l List of active MAP/Redirect filters: map oif 10.0.0.0/8 -> uplink/32 portmap tcp/udp 10000:65000 map oif 10.0.0.0/8 -> uplink/32 rdr iif 10.0.0.0/8 port 80 -> true_local_proxy port 3128 tcp
List of active sessions: MAP 10.0.0.2 1170 <- -> uplink 10002 [dst 80] MAP 10.0.0.2 1169 <- -> uplink 10001 [dst 80] MAP 10.0.0.2 1167 <- -> uplink 10000 [dst 80]
Пакетики ходят, но никакого редиректа
Я уже сильно подзабыл ipfilter, но, может, в порядке эксперимента временно уберёшь map из конфигурации? :)
--
Alexander Andriashevich