Настраиваю ip телефонию. Получил от провайдера sip trunk и внутренний ip в SIP vlan-е провайдера в виде 10.0.0.5/30.
Воткнуть данный ip напрямую в АТС не вариант, т.к. ehternet порт только 1, а vlan она не поддерживает. К тому же через тот же порт идет общение с внутренними sip-клиентами. При этом есть 2 маршрутизатора на FreeBSD, работающих в режиме failover с помощью carp(пока что на каждом свой внешний ip). Настроить NAT на одном из них в общем то не проблема и оно уже работает, дело в том, что при этом отсутствует failover для sip-сети. Вопрос - можно ли настроить carp для ip с 30-й маской и если нет, то какие еще есть варианты в данной ситуации?
это понятно, но может есть какой-нибудь лайфхак в виде того, что, допустим, на интерфейсы мы ставим что то, типа 10.0.0.1/24, а в carp-е плавает 10.0.0.5/30?
Дмитрий Шицков: ну в общем проблема была в том, что на 10-мб адаптерах carp работать отказался, постоянно висел в состоянии init. Остается другой вопрос - поменял сетевухи, carp взлетел, но при попытке пинга шлюза запрос уходит не с адреса carp, а с основного адреса. Соответственно, т.к. провайдер выделил сеть /30, то уходит он в "никуда". Вопрос - что и куда надо прописать, чтобы carp трафик шел с адреса в подсети /24, а всё остальное с /30?
LordNicky: А у вас подсети пересекаются своим адресным пространством? Выкладывайте, пожалуйста, текущую конфигурацию карпа, маршруты и адреса интерфейсов на машинах. Сложно что-то подсказать без конкретных цифр.
netstat -r -F 2:
default 10.60.212.125 UGS vlan74
10.60.212.0 link#10 U vlan74
10.60.212.124/30 link#10 U vlan74
и вот проблема, с которой я столкнулся в том, что NAT-ом я могу отправить траффик с нужного ip(вроде бы), но трафик даже не начинает идти, т.к. arp-запросы для выяснения того, кто такой 10.60.212.125 идут с 10.60.212.1. И вот тут то и затык... Вот здесь тема поднималась, но решения я не увидел: https://forums.freebsd.org/threads/6479/
Дмитрий Шицков: З.Ы. файрвол ipfw использую, для pf встречал варианты с форвардингом, но во первых не до конца понятно, в каком месте это использовать в ipfw, а во вторых это вроде бы не совсем то... кстати всё это безобразие идет через управляемый свитч 3-го уровня и теоретически можно дать ему нужный ip, но ввиду отсутствия nat-а, не факт, что это сработает...
LordNicky: pf удобен возможностью синхронизировать правила между двумя шлюзами. В остальном, в нём слишком много недочётов, по крайней мере в порте для FreeBSD.
Это всего лишь моё предположение, но возможно у вас проблема в том, что диапазоны адресов подсетей 10.60.212.0/24 и 10.60.212.124/30 пересекаются. Попробуйте изменить адрес10.60.212.1/24 на 10.60.200.1/24 или 10.60.212.1/30
Дмитрий Шицков: Слушайте, я вот теперь совершенно ничего не понимаю. Попробовал следующие варианты:
1. установить на шлюзах ip из подсети 10.110.74.0/30, соответственно, в carp повесил 10.60.212.126/30. При этом шлюз (10.60.212.125) пингуется. НО! мои роутеры друг друга пингуют, но carp на обоих в мастере висит, хотя на остальных интерфейсах, где поднят карп всё в порядке. настройки раз 10 перепроверил. Одно и то же.
2. попробовал установить 10.60.212.0/24 и в carp 10.60.212.126/32(примерно так на внутренних carp-ах настроено). Естественно, в таком варианте шлюз не пингуется, роутеры друг друга пингуют, но carp всё равно на обоих в мастере.
настройки ipfw на обоих роутерах :
allow carp from any to any via vlan74
allow all from any to any via vlan74
Идеи? Какого, собсно, черта?
З.Ы. есть еще такой момент - новая сетевуха в одном из роутеров сама не поднимается, приходится делать ifconfig rl1 down; ifconfig rl1 up, без этого не может скорость согласовать. однако после того, как поднялась работает нормально, пинги не теряет.
Дмитрий Шицков: еще один забавный момент:
на первом роутере, если смотреть через ifconfig vlan74 ip адреса показываются в таком порядке:
10.60.212.1
10.60.212.126
а на втором наоборот:
10.60.212.126
10.60.212.2
З.Ы. сетевуху на другую поменял, но она тоже реалтековская, хотя и с другим чипом. определяется также rl1 и та же фигня, т.е. сама скорость не согласовывает.((( приходится down | up делать...
Дмитрий Шицков: спасибо большое, что тратите свое время на мою проблему. я тут много думал и единственное, что представляется возможным в качестве причины- - глюк дров на сетевуху, изза которого carp запросы отправляются c carp-кого же ip адреса(порядок адресов, на который я указывал выше.) завтра буду в офисе, проверю данную настройку на других вланах и другой сетевухе. если сработает, то мне один путь - в магазин...
LordNicky: Уф.. запустил конфигурацию с vlanами. Для карпа и для локального соединения я использовал разные вланы. Для второго сервера получил такую конфигурацию:
Дмитрий Шицков: странно, у меня без отдельного up для vlan поднимаются... по поводу железа - завтра посмотрим. все остальные варианты, во всяком случае, уже перепробовали...
я так понимаю, что строчку
ifconfig_vtnet0_74="inet 10.60.10.30 netmask 255.255.255.0"
перепутали или забыли указать? или оно работает, если ip у соседнего vlan-а есть?
LordNicky: Будет работать даже без указания других адресов. Даже с какого адреса был отправлен пакет - не важно.
Сейчас в rc.conf у меня так:
ifconfig_vtnet0_74="inet 10.60.10.30 netmask 255.255.255.0 up"
ifconfig_vtnet0_74_alias0="vhid 74 adskew 100 pass password alias 10.60.212.126/30 up"
Заработало, так сказать... не знаю, как оно так получилось, но, переставляя сетевухи и меняя конфиги забыл указать "up" для проблемной сетевухи. (обратил внимание на данный факт только когда уже интеловскую сетевуху поставил с поддержкой вланов). Так что кабели и сетевухи в порядке, проблема только в одном маленьком косячке.(хоть убей, не понимаю, как не заметил. добрую сотню раз конфиг перепроверял...)
LordNicky: Поздравляю. Дьявол кроется в деталях. А вот сетевцха с поддержкой вланов наоборот могла бы навредить, занимаясь обрезанием заголовков clan :)