• Почему зависает IPSec VPN по истечению peer lifetime?

    @protsey Автор вопроса
    В общем, поставил lifetime в два раза меньше, поставил strict и вроде стало постабильнее. Пока полет нормальный. Заметил что когда при начальных значениях как только Side устанавливался как responder, а не initiator, тупняк наступал в 100% случаев.
  • Как запустить BGP и стоит ли в это вляпываться?

    @protsey Автор вопроса
    Михаил Васильев, я очень на это надеялся, но их технический специалист оговорил, что пока он сформирует все необходимое на бумаге, нам стоит заняться получением AS что немного не вяжется с моими надеждами решить все малой кровью.

    Об адресном пространстве не говорили ничего, но, как я понимаю, это вытекает из регистрации AS.
    Может есть какая то менее глобализированная технология, которая поможет решить мою задачу с конкретным оператором, о которой стоит им намекнуть?
  • Как запустить BGP и стоит ли в это вляпываться?

    @protsey Автор вопроса
    Михаил Васильев, на данный момент симки работают либо на белый IP одного из наших провайдеров (у симок динамический IP), либо на модемы (симки в отдельной подсети со статикой). Для симок используются три оператора сотовой связи, IP набраны у обычных "домашних" проводных провайдеров с их адресного пространства. Используется NAT.

    Нам для большой части оборудования важна статика, поэтому они работают в отдельной подсети оператора, со своим APN, работают на модем в том же APN. Провайдер изначально предложил построить туннель между подсетью симок с моей подсетью серверов. Но это только один тунель через один IP нашего провайдера со всеми прелестями. Возможность резервироваться предлагают оформить в связке GRE+IPSec+BGP.
  • Балансировка нагрузки между несколькими провайдерами - шлюз или сервер?

    @protsey
    Drunar, в моем конкретном случае было достаточно разделить трафик по конкретным пользователям и по типу трафика. По адресу и/или порту источника Микротик решает в какую таблицу маршрутизации толкать трафик. Но можно сделать и динамическое решение в зависимости от нагрузки на конкретный канал, правда я не делал поэтому конкретно не отвечу.

    https://habr.com/ru/post/244385
    https://habr.com/ru/post/443788
  • Можно ли поднять WAN PPPoE на VLAN интерфейсе Mikrotik без участия провайдера?

    @protsey Автор вопроса
    это не критичные деньги

    Та все это понимают, и я, и начальство, и все остальные. Но тут пока диверсию не организуешь, никто не проведет счет, такова у меня тут реальность, забудем об этом.

    Т.е вы бардак с кучей роутеров хотите перенести на микротики?

    Да, хочу бардак в топологии сети на бытовых роутерах перевести на логически понятную и адекватную схему на микротиках с элементами временных костылей. И костыли чисто для того, чтобы не останавливать работу на пару дней, ибо за это меня расстреляют через 20 минут.

    Пока вопрос стоит в том, чтобы найти возможность на Mikrotik RouterBOARD 750 в один порт вставить нетегированый трафик от провайдера, а с другого порта получить транк с VLANами, на которых я смогу поднять PPPoE на другом роутере в нужном количестве. Чтобы здесь и сейчас ничего не покупать.
  • Можно ли поднять WAN PPPoE на VLAN интерфейсе Mikrotik без участия провайдера?

    @protsey Автор вопроса
    То, что стандартными средствами этого не сделать я понимаю. Видать надо было формулировать вопрос не "можно ли", а "как в данной ситуации". Под руками есть Mikrotik RouterBOARD 962UiGS-5HacT2HnT две штука, и две штука Mikrotik RouterBOARD 750, которые лежат в столе. Трафика совсем немного, должно хватать. Ситуация такая, что начальство как бы видит что все как то работает и все сходится к тому что меня кормят завтраками по поводу финансирования. А мне все это поддерживать вообще удовольствия не приносит. Поэтому хочу своими силами выйти из ситуации.

    Витает надежда, что можно перед маршрутизатором поставить еще один Микротик в качестве умного свитча, который на канальном уровне будет тегировать, растегировать и маршрутизировать трафик по разным VLANам, которые одним транком пойдут уже в сторону непосредственно маршрутизатора, на котором будут подниматься PPPoE к провайдеру. Это не решение на продакшн, это решения для плавного доведения всего этого до ума. В дальнейшем, когда можно будет с минимальным простоям перейти к адекватным решениям так и будет сделано.

    Как решить свою задачу в условиях нормального финансирования и возможности останавливать рабочий процесс я понимаю, но таких идеальных условия я еще не встречал) Спасибо за ответ)
  • Как изменить CallerID до его перехвата через AMI?

    @protsey Автор вопроса
    Уже отвечал выше - Опытным путем было выявлено, что ПО получает номер из события Newchannel - если в manager.conf добавить eventfilter=!Event: Newchannel, , то ПО не определяет ничего. Только это первое событие и я не могу понять как с этим быть...

    ПО изменить нельзя никак, не мы разработчики и к разработчикам обращаться возможности нет.
  • Как изменить CallerID до его перехвата через AMI?

    @protsey Автор вопроса
    Опытным путем было выявлено, что ПО получает номер из события Newchannel - если в manager.conf добавить eventfilter=!Event: Newchannel, , то ПО не определяет ничего. Только это первое событие и я не могу понять как с этим быть...
  • Как изменить CallerID до его перехвата через AMI?

    @protsey Автор вопроса
    Softer, AMI настроено так

    [general]
    enabled=yes ; возможность работать с AMI (по-умолчанию no)
    port=5038; на порту TCP 5038
    bindaddr=0.0.0.0 ; принимать соединения в локальной сети (0.0.0.0 - на всех интерфейсах)
    timestampevents=yes ; Отправлять в пакетах событий временную метку
    displayconnects=yes ; Отображать факт подключения пользователя к AMI
    allowmultiplelogin=yes ; Разрешить несколько параллельных подключений с одним именем

    ; Начало секции, описывающей пользователя
    [user] ;Имя пользователя
    secret=12345678;пароль
    ;deny=0.0.0.0/0.0.0.0 ; запрет всех адресов
    permit=0.0.0.0/0.0.0.0 ;разрешенная сеть
    ;permit=192.168.2.0/255.255.255.0 ; разрешенная сеть
    read=call,originate ;разрешенные права
    write=call,originate ;разрешенные права
    eventfilter=!Event: ExtensionStatus ;фильтрация ненужных событий
    eventfilter=!Event: MusicOnHold
    eventfilter=!Event: NewAccountCode
    eventfilter=!Event: Leave
    eventfilter=!Event: Rename
    eventfilter=!Event: Masquerade
    eventfilter=!Event: Join
    eventfilter=!Event: NewCallerid


    Это из рекомендации производителя ПО, но там все достаточно размыто.

    В ПО пишем IP, порт, имя пользователя, пароль и контекст исходящих звонков, больше нечего.
  • Как изменить CallerID до его перехвата через AMI?

    @protsey Автор вопроса
    Softer, как то так это на этапе отладки

    [trunk-2222]

    exten => _38.,1,Dial(SIP/trunk-2222/${EXTEN:2})

    exten => _0.,1,Dial(SIP/trunk-2222/${EXTEN})

    exten => _.,1,Set(CALLERID(num)=${CALLERID(num):1})
    exten => _.,n,Set(CALLERID(name)=${CALLERID(name):1})
    exten => _.,n,Dial(SIP/3333) ;номер софтфона

    exten => h,1,Hangup()


    В отладке видно, что AMI успевает получить неотредактированный CallerID. На софтфон номер уже приходит в правильном формате.
    spoiler

    == Using SIP RTP CoS mark 5
    > 0x7fb978012a80 -- Strict RTP learning after remote address set to: 192.168.0.86:10276
    <-- Examining AMI event: -->
    Event: Newchannel
    Privilege: call,all
    Timestamp: 1541068914.733912
    SequenceNumber: 598
    File: manager_channels.c
    Line: 734
    Func: channel_snapshot_update
    Channel: SIP/trunk-2222-0000005d
    ChannelState: 0
    ChannelStateDesc: Down
    CallerIDNum: +380ХХХХХХХХХ
    CallerIDName: +380ХХХХХХХХХ
    ConnectedLineNum:
    ConnectedLineName:
    Language: en
    AccountCode:
    Context: trunk-2222
    Exten: trunk-2222
    Priority: 1
    Uniqueid: 1541068914.146
    Linkedid: 1541068914.146

    <-- Examining AMI event: -->
    Event: Newstate
    Privilege: call,all
    Timestamp: 1541068914.734026
    SequenceNumber: 602
    File: manager_channels.c
    Line: 734
    Func: channel_snapshot_update
    Channel: SIP/trunk-2222-0000005d
    ChannelState: 4
    ChannelStateDesc: Ring
    CallerIDNum: +380ХХХХХХХХХ
    CallerIDName: +380ХХХХХХХХХ
    ConnectedLineNum:
    ConnectedLineName:
    Language: en
    AccountCode:
    Context: trunk-2222
    Exten: trunk-2222
    Priority: 1
    Uniqueid: 1541068914.146
    Linkedid: 1541068914.146

    <-- Examining AMI event: -->
    Event: DeviceStateChange
    Privilege: call,all
    Timestamp: 1541068914.734042
    SequenceNumber: 604
    File: manager.c
    Line: 1836
    Func: manager_default_msg_cb
    Device: SIP/trunk-2222
    State: INUSE

    -- Executing [trunk-2222@trunk-2222:1] Set("SIP/trunk-2222-0000005d", "CALLERID(num)=380ХХХХХХХХХ") in new stack
    <-- Examining AMI event: -->
    Event: Newexten
    Privilege: call,all
    Timestamp: 1541068914.735166
    SequenceNumber: 605
    File: manager_channels.c
    Line: 734
    Func: channel_snapshot_update
    Channel: SIP/trunk-2222-0000005d
    ChannelState: 4
    ChannelStateDesc: Ring
    CallerIDNum: +380ХХХХХХХХХ
    CallerIDName: +380ХХХХХХХХХ
    ConnectedLineNum:
    ConnectedLineName:
    Language: en
    AccountCode:
    Context: trunk-2222
    Exten: trunk-2222
    Priority: 1
    Uniqueid: 1541068914.146
    Linkedid: 1541068914.146
    Extension: trunk-2222
    Application: Set
    AppData: CALLERID(num)=380ХХХХХХХХХ

    <-- Examining AMI event: -->
    Event: NewCallerid
    Privilege: call,all
    Timestamp: 1541068914.735544
    SequenceNumber: 606
    File: manager_channels.c
    Line: 734
    Func: channel_snapshot_update
    Channel: SIP/trunk-2222-0000005d
    ChannelState: 4
    ChannelStateDesc: Ring
    CallerIDNum: 380ХХХХХХХХХ
    CallerIDName: +380ХХХХХХХХХ
    ConnectedLineNum:
    ConnectedLineName:
    Language: en
    AccountCode:
    Context: trunk-2222
    Exten: trunk-2222
    Priority: 1
    Uniqueid: 1541068914.146
    Linkedid: 1541068914.146
    CID-CallingPres: 0 (Presentation Allowed, Not Screened)

    -- Executing [trunk-2222@trunk-2222:2] Set("SIP/trunk-2222-0000005d", "CALLERID(name)=380ХХХХХХХХХ") in new stack
    <-- Examining AMI event: -->
    Event: Newexten
    Privilege: call,all
    Timestamp: 1541068914.736037
    SequenceNumber: 607
    File: manager_channels.c
    Line: 734
    Func: channel_snapshot_update
    Channel: SIP/trunk-2222-0000005d
    ChannelState: 4
    ChannelStateDesc: Ring
    CallerIDNum: 380ХХХХХХХХХ
    CallerIDName: +380ХХХХХХХХХ
    ConnectedLineNum:
    ConnectedLineName:
    Language: en
    AccountCode:
    Context: trunk-2222
    Exten: trunk-2222
    Priority: 2
    Uniqueid: 1541068914.146
    Linkedid: 1541068914.146
    Extension: trunk-2222
    Application: Set
    AppData: CALLERID(name)=380ХХХХХХХХХ

    <-- Examining AMI event: -->
    Event: NewCallerid
    Privilege: call,all
    Timestamp: 1541068914.736358
    SequenceNumber: 608
    File: manager_channels.c
    Line: 734
    Func: channel_snapshot_update
    Channel: SIP/trunk-2222-0000005d
    ChannelState: 4
    ChannelStateDesc: Ring
    CallerIDNum: 380ХХХХХХХХХ
    CallerIDName: 380ХХХХХХХХХ
    ConnectedLineNum:
    ConnectedLineName:
    Language: en
    AccountCode:
    Context: trunk-2222
    Exten: trunk-2222
    Priority: 2
    Uniqueid: 1541068914.146
    Linkedid: 1541068914.146
    CID-CallingPres: 0 (Presentation Allowed, Not Screened)

    -- Executing [trunk-2222@trunk-2222:3] Dial("SIP/trunk-2222-0000005d", "SIP/3333") in new stack
    <-- Examining AMI event: -->
    Event: Newexten
    Privilege: call,all
    Timestamp: 1541068914.736750
    SequenceNumber: 609
    File: manager_channels.c
    Line: 734
    Func: channel_snapshot_update
    Channel: SIP/trunk-2222-0000005d
    ChannelState: 4
    ChannelStateDesc: Ring
    CallerIDNum: 380ХХХХХХХХХ
    CallerIDName: 380ХХХХХХХХХ
    ConnectedLineNum:
    ConnectedLineName:
    Language: en
    AccountCode:
    Context: trunk-2222
    Exten: trunk-2222
    Priority: 3
    Uniqueid: 1541068914.146
    Linkedid: 1541068914.146
    Extension: trunk-2222
    Application: Dial
    AppData: SIP/3333

  • Как работает маршрутизация в VPN сеть?

    @protsey Автор вопроса
    cssman, сервер не умеет толком ничего, узкоспециализированное ПО от монополистов на рынке. Его можно только попытаться обмануть маршрутизациями и т.д. Клиенты делают несколько попыток на один IP и в случае неудачи делают несколько попыток на второй, и так по кругу. При этом APN не меняется, со всеми вытекающими.
  • Как работает маршрутизация в VPN сеть?

    @protsey Автор вопроса
    Да, писал в спешке, перечитал и сам ничего не понял, прошу прощения. Сейчас у нас есть сервер с белым статическим IP и клиентское оборудование с динамическим IP. Сервер работает по проводу, клиенты - SIM-карты. Все клиентское оборудование общается только с сервером и не более. Сервер может сам генерировать запросы к клиентскому оборудовании на основании последнего IP, с которого передавались пакеты по данному прибору.

    Стоит задача работать со статической адресацией, так стабильнее с конкретным типом оборудования, реже отваливается. Самый общий способ, это модем с сим картой на сервер и услуга VPN-сети у оператора мобильной связи. В таком случае все отлично работает, имеем подсеть вида 10.10.0.0 для сервера и клиентских устройств.

    Далее идет навеска плюшек. А именно, резервный канал. В месте расположения сервера бывают локальные проблемы с мобильной связью, не часто, но больно. В основном все отлично. Хотелось бы иметь возможность из VPN-сети ходить на белый IP и обратно. Оборудование поддерживает резервный сервер. Ну и данный резервный канал останется основным для небольшого количества оборудования, которое работает с другим оператором.

    У оператора заказываем VPN-сеть. Кроме стандартного названия точки доступа, маски, названия подсети и т.д. в бланке заявки, кроме прочего, есть пункт "Наличие доступа в интернет -> Ограниченные доступ(список IP адресов)". Интересуют возможности данного пункта и какие технические условия нужны для его использования. Понятно, что этот вопрос больше к специалистами оператора, но два дня не могу с ними связаться, сменился менеджер, который сейчас порядочно тупит в этом деле.
  • Как получить список зависимых таблиц MSSQL с помощью запроса?

    @protsey Автор вопроса
    d-stream, я уже успел сложить все это средствами java, работает, если будет настроение, оптимизирую запрос.
  • Как получить список зависимых таблиц MSSQL с помощью запроса?

    @protsey Автор вопроса
    d-stream, решил вот таким вот образом:
    select name 
       from sys.tables 
      where object_id in 
           ( select parent_object_id 
               from sys.foreign_key_columns 
              where referenced_object_id = 2105058535
                and referenced_column_id = 1);


    Предварительно получив
    select object_id from sys.tables where name = 'MyTable'

    и
    select column_id from sys.columns where name = 'MyTable' and object_id = my_id
  • Как получить список зависимых таблиц MSSQL с помощью запроса?

    @protsey Автор вопроса
    d-stream, попробовал перехватить View Dependencies к одной из таблиц. Получившийся набор запросов можно распечатать на рулоне шпалеры, для меня не так уж и просто будет разобраться как его подогнать под мою задачу.
  • Как оптимизировать объединение данных из нескольких баз MSSQL?

    @protsey Автор вопроса
    davidnum95, да, это базы под одно и то же ПО, которое развертывалось в разное время в разных местах, но сейчас они живут в одном помещении и используются одним и тем же человеком, следовательно все это громоздкость мешает работать. Если бы не дубли ключей, то можно было бы тупо копировать все таблицы и все.
  • Как установить драйвера x86 на Windows 7 x64?

    @protsey Автор вопроса
    АртемЪ, Не уточнил, только одна железка не работает с х64, все остальное в этом плане не проблемное. Делить это все на много хостов не охота, ибо стратегическая задача свести весь зоопарк оборудования в нормальную серверную стойку, ибо сейчас это 8 компов от доса до линукса и целыми гирляндами оборудования. Поэтому стараюсь сейчас минимизировать количество машин, дабы потом излишние виртуалки не городить на сервере.

    Диск проверенный, пол года еще не прожил, скорость чтения и записи приличная. В дальнейшем необходимо в любом случае ставить дополнительное ПО туда, которое кушает больше гига оперативы в режиме простоя, расширение объема ОЗУ на данный момент неизбежно. Если выход не будет найден с драйверами, придется делать отдельную машину под это дело, с ОЗУ итог неизбежен.
  • Как установить драйвера x86 на Windows 7 x64?

    @protsey Автор вопроса
    Выход есть, но для этого необходимо менять оборудование нескольким сотням клиентов, которые хотят менять все за наш счет. Окупать это вложение мы будем несколько лет, поэтому не вариант. Буду пробовать проброс в виртуалку, а там посмотрим.
  • Как установить драйвера x86 на Windows 7 x64?

    @protsey Автор вопроса
    АртемЪ, Там и так ничего нет, используется только специализированное ПО, с этим все нормально, по диспетчеру задач ОЗУ расходуется куда надо, отключено все, включая службу обновления, защитник и т.д. Попробую протестировать проброс PCI в виртуальную машину.
  • Как установить драйвера x86 на Windows 7 x64?

    @protsey Автор вопроса
    Ну я имел ввиду система в плане целиком совокупность железа, ПО и т.д. ОЗУ по диспетчеру всегда не ниже 80%, что часто вызывает лютый тупняк.