Почему может не срабатывать доп.роутинг?



  • Что имеем:
    [2.0.1-RELEASE][admin@proxy2]/usr/local/bin(39): netstat -rn
    Routing tables

    Internet:
    Destination Gateway Flags Refs Use Netif Expire
    default 192.168.25.1 UGS 0 7759 em1
    10.0.0.0/8 192.168.25.2 UGS 0 109 em1
    127.0.0.1 link#3 UH 0 79143 lo0
    192.168.0.0/23 link#1 U 0 1785080 em0
    192.168.0.1 link#1 UHS 0 52 lo0
    192.168.25.0/24 link#2 U 0 82 em1
    192.168.25.3 link#2 UHS 0 0 lo0

    [2.0.1-RELEASE][admin@proxy2]/usr/local/bin(40): traceroute 10.12.86.54
    traceroute to 10.12.86.54 (10.12.86.54), 64 hops max, 40 byte packets
    1 192.168.25.1 (192.168.25.1) 2.130 ms 2.093 ms 1.867 ms
    2 191.23.114.19 (191.23.114.19) 2.966 ms 2.409 ms 2.537 ms
    3 *^C
    [2.0.1-RELEASE][admin@proxy2]/usr/local/bin(41):

    Почему пакеты на подсеть 10.0.0.0/8 не идут на 192.168.25.2, а идут на шлюз по умолчанию, хотя правило в таблице есть?



  • Схему сети



  • у Вас на em1 и дефолтный маршрут висит, и 10-я подсеть, так и задумано?



  • Да. Так и задумано. Суть в том, что после шлюза есть роутер в инет - 25.1 и есть железяка, обрабатывающая особым образом пакеты для сети 10. Задача - пакеты с dest 10.0.0.0/8 заворачивать не на 25.1, а на 25.2. Как сие правильно настраивается на pfsense в режиме transparent прокси? Я уже замаялся. И bypass proxy указывал, и в роутинг пихал - не пойму механику работы сетевых демонов. Т.е. когда на линухе я сие делал - там понятно было. iptables обрабатывал пакеты сам, а 80 и 443 порты заворачивал на проксю. А вот что именно тут обрабатывает пакеты и в какой последовательности - пока не понял.



  • а что говорит tcpdump на em1 при трассировке сети 10/8?



  • WAN
    15:55:59.918337 IP 192.168.25.3 > 10.200.1.93: ICMP echo request, id 58727, seq 50, length 72
    15:55:59.921013 IP 192.168.25.3 > 10.200.1.93: ICMP echo request, id 58727, seq 51, length 72
    15:55:59.923469 IP 192.168.25.3 > 10.200.1.93: ICMP echo request, id 58727, seq 52, length 72
    15:56:05.425731 IP 192.168.25.3 > 10.200.1.93: ICMP echo request, id 58727, seq 53, length 72

    Т.е. пакеты выходят со шлюза не под IP источника, а под IP шлюза. Я так понимаю, squid их проксирует.

    Подскажите, все-таки, плиз, как определить почему сие происходит? Как настраивает систему pfsense, когда стоит галка "transparent proxy"? Кто хватает пакеты, пришедшие на сетевой интерфейс? Конфиг этой службы где лежит?



  • насколько мне известно, squid проксирует запросы на 80-й порт и оперирует протоколом tcp(udp). icmp же относится к сетевому уровню, т.е. лежит ниже.
    В arp кэше pfsense запись MAC адреса сетевой карты с IP адресом 192.168.25.2 есть?
    Вполне может быть, что не происходит резолвинга IP в MAC, и кадры отправляются на дефолтный гейт



  • Я прошу прощения, но проблема уже сменилась. 25.2 уже назначен gw_default. И он умеет делить трафик инет и 10. Вся беда в том, что пакеты с адреса, скажем, 192.168.0.50 приходят на шлюз pfsense и уходят на 25.2 с обратным адресом 25.3 (WAN pfsense). Соответственно, на хитрый обработчик пакетов они приходят не с тем обратным IP и блокируются. Вот я и не пойму - кто и зачем проксирует сии пакеты. Не важно по какому порту они идут. Надо жестко - если dest 10. - вообще не трогать эти пакеты. Только голый роутинг.



  • если действительно "и уходят на 25.2 с обратным адресом 25.3" - то смотрите, что у Вас делает NAT. Судя по подмене ip.src в пакетах - это его рук дело



  • Вот! Этот самый NAT. Ну, вроде, разогнул заразу. 80-й порт не трогает, если юзверь лезет на 10./8. Мда… Чет лет 5 тому я ставил SuSe+squid+lightsquid для того же самого - проще було... :)



  • Придется, все-таки, ставить что-то без этой веб-конфигурации. Ни фига не понятно что оно творит и как пилить под себя в случае нетривиальной задачи…


Locked