Всем привет.
Ситуация не критичная, но не очень ясная...
Есть 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 обмануть в таком
случае? Мож нетграф чего эдакого умеет? Может с маршутизацией чего-нибудь
хитрого можно сделать?
Ежели кому не лень вдруг будет, развлекитесь чтоль, потыкайте мордой во
что-нить умное... Я лично от необходимости осваивать такой объем инфы
сразу, чего-то уже затормозил... Помогите лишнее отсечь, плз...
Спасибо.
Пока.