Всем привет.
Ситуация не критичная, но не очень ясная...
Есть 2 провайдера на 2 интерфейсах.
У обоих беру внешние адреса посредством vpn и mpd5:
первый - l2tp (EXT1="ng0")
второй - pppoe (EXT2="ng1").
Также с адресами выдаются гейтвеи для них ($EXTGW1 и $EXTGW2, соответственно)
В фильтре (pf) созданы правила для перенаправления:
pass out on $EXT1 route-to ($EXT2  $EXTGW2) from ($EXT2) to any keep state
pass out on $EXT2 route-to ($EXT1  $EXTGW1) from ($EXT1) to any keep state

А дело вот в чем:
Если в таблице маршрутизации ставить дефолтом гейтвей первого прова ($EXTGW1), то тогда снаружи пингуется только внешний адрес 1-го прова, а при пинге внешнего адреса второго прова, несмотря на то, что tcpdump на $EXT2 видит и запрос и ответ:
tcpdump -ni ng1 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ng1, link-type NULL (BSD loopback), capture size 65535 bytes
IP 88.198.46.51 > 222.222.222.222: ICMP echo request, id 11883, seq 1, length 64 IP 222.222.222.222 > 88.198.46.51: ICMP echo reply, id 11883, seq 1, length 64 IP 88.198.46.51 > 222.222.222.222: ICMP echo request, id 11883, seq 2, length 64 IP 222.222.222.222 > 88.198.46.51: ICMP echo reply, id 11883, seq 2, length 64
снаружи все тихо.
Зато если в таблице маршрутизации ставить дефолтом гейтвей второго прова ($EXTGW2), то тогда снаружи пингуются оба адреса.
Без дефолта вообще не пингуется ничего...

Я попросил совета у одного профессионала в этой области, получил от него такое объяснение/предположение (расскажу как понял в меру своей неначитанности Стивенса): Дело в свойствах pppoe и порядке прохождения пакета по цепи обработке: сначала он идет на дефолт, потом его инкапсулируют, после чего роутят-ту. Поэтому если дефолтом стоит первый пров, то в pppoe уже поступают инкапсулированные фреймы опосля pf и pppoe в силу своих свойств на этом затыкается, а когда наоборот, то в pppoe пакеты сразу поступают без инкапсуляции и роутинга, а когда их инкапсулируют и отправляют в l2tp (gre там, вроде, да?), то он с этим вполне себе справляется. Из этого была дана рекомендация: брось каку-pppoe, смени второго прова на подключающего без pppoe. Сменить прова - эт не вопрос, их у нас тут как грязи, а вот ситуация очень интересна в принципе. Хочу спросить мнения профессионалов об этой ситуации. Согласны ли с объяснением? Мож кто знает какую хитрую возможность pppoe обмануть в таком случае? Мож нетграф чего эдакого умеет? Может с маршутизацией чего-нибудь хитрого можно сделать? Ежели кому не лень вдруг будет, развлекитесь чтоль, потыкайте мордой во что-нить умное... Я лично от необходимости осваивать такой объем инфы сразу, чего-то уже затормозил... Помогите лишнее отсечь, плз...
Спасибо.
Пока.

Ответить