Opened 8 years ago

Last modified 7 years ago

#334 closed улучшение

Плохой выбор bind-адреса в режиме "Авто" — at Version 18

Reported by: alx Owned by: san
Priority: trivial Milestone: 2 очередь
Component: ПО MC04-Dispatcher. Пульт диспетчера/техника Keywords: network
Cc: san

Description (last modified by alx)

Сейчас при установке "настройки bind-адреса" в значение "Auto" программа bind'ит UDP транспорт на адрес 0.0.0.0. Это один из самых неудачных вариантов, какие только можно придумать.

Предлагаю выбирать в качестве bind-адреса адрес интерфейса, в который указывает маршрут к выбранному серверу.

Change History (18)

in reply to:  description ; comment:1 by san, 8 years ago

Replying to alx:

адрес 0.0.0.0. Это один из самых неудачных вариантов, какие только можно придумать.

А чем конкретно неудачен этот вариант?

comment:2 by dimag, 8 years ago

Какой вы предлагаете?

comment:3 by san, 8 years ago

Owner: changed from dimag to san
Priority: majortrivial
Status: newassigned
Type: багулучшение

Сейчас у меня на ноутбуке два сетевых интерфейса: "Wi-fi" и медный "Eth".
Дефолтный маршрут в вай-фай.
В настройке Авто "программа работает" при подключении к серверу через любой из интерфейсов.

А если программа будет bind-иться на адрес интерфейса из дефолтного маршрута(вай фай), будет ли она работать если к серверу подключена через "Eth"?
Программа выберет адрес "вай-фай", а сервер не сможет отправить пакеты на адрес вай-фай, он про него ничего не знает, он видит только "Eth" и роутинга в сеть "Wi-fi" у него нет.

Вобщем я немного запутан, и пока не уверен что стоить менять bind-адрес по умолчанию.
(тикет пока заберу себе)

in reply to:  1 comment:4 by alx, 8 years ago

Replying to san:

А чем конкретно неудачен этот вариант?

В этом варианте невозможно предугадать, какой будет адрес отправителя у отправляемого пакета. Легко можно получить ситуацию, когда на запрос, направленный на один адрес, программа ответит с другого адреса. В результате такой пакет может быть отброшен либо самим получателем, либо даже где-то по дороге, если попадется какой-нибудь statefull firewall, отслеживающий соответствие запросов и ответов.

in reply to:  2 comment:5 by alx, 8 years ago

Replying to dimag:

Какой вы предлагаете?

Мое предложение изложено в описании этого тикета.

in reply to:  3 comment:6 by alx, 8 years ago

Replying to san:

А если программа будет bind-иться на адрес интерфейса из дефолтного маршрута(вай фай), будет ли она работать если к серверу подключена через "Eth"?
Программа выберет адрес "вай-фай", а сервер не сможет отправить пакеты на адрес вай-фай, он про него ничего не знает, он видит только "Eth" и роутинга в сеть "Wi-fi" у него нет.

Вот для таких случаев у нас предусмотрено ручное указание адреса в конфигурации.

comment:7 by san, 8 years ago

Какие преимущества даёт вариант "Авто" с выбором адреса из дефолтного маршрута, если мы всё-равно не знаем "куда подключен сервер" ?
Кому и в каких случаях пригодится этот вариант?

comment:8 by dimag, 8 years ago

Resolution: fixed
Status: assignedclosed

r361
Задал bind-адрес 192.168.0.81, совпадающий с IP моего подключения - выдалось следующее сообщение, то есть SIP клиент стла привязан к адресу 192.168.0.81
11:13:42.063 pjsua_core.c SIP UDP socket reachable at 192.168.0.81:6000
11:13:42.063 udp030BBB20 SIP UDP transport started, published address is 192.168.0.81:6000
Для авто применяется адрес используемый SIP-клиентом по умолчанию.

in reply to:  7 comment:9 by alx, 8 years ago

Replying to san:

Какие преимущества даёт вариант "Авто" с выбором адреса из дефолтного маршрута,

Преимущество по сравнению с чем? Если с вариантом "ручной", то преимущество в отсутствии необходимости выяснения, какой адрес у компьютера, и ввода этого адреса в настройках.

если мы всё-равно не знаем "куда подключен сервер" ?

? А зачем нам это знать?

Кому и в каких случаях пригодится этот вариант?

Наверное тому, кто не находится в ситуации, подобной описанной тобой в comment:3.

comment:10 by alx, 8 years ago

Resolution: fixed
Status: closedreopened

У меня в r361 программа по-прежнему привязывается к адресу 0.0.0.0.

Last edited 8 years ago by alx (previous) (diff)

comment:11 by san, 8 years ago

Дима, будь внимательней.

  • В этом тикете речь о том "Какой bind-адрес устанавливать врежиме авто"
  • к тому-же, тикет я забрал себе, для обдумывания

А про неработающую настройку bind-адреса которую ты, кажется, починил - тикет #332

in reply to:  10 ; comment:12 by dimag, 8 years ago

Replying to alx:

У меня в r361 программа по-прежнему привязывается к адресу 0.0.0.0.

Как вы это узнаёте? В каком режиме "Авто" или "Ручная" с прописанным bind-адресом?

comment:13 by san, 8 years ago

хм...

Дима, ты прочитал мой последний комент к этому тикету?

in reply to:  12 comment:14 by alx, 8 years ago

Replying to dimag:

Как вы это узнаёте?

root@voip:~# netstat -ulnp |grep MC04Disp
udp        0      0 0.0.0.0:5061            0.0.0.0:*                           12432/MC04Dispatche

В каком режиме "Авто" или "Ручная" с прописанным bind-адресом?

Если я жалуюсь на поведение программы в режиме "Авто", то и проверяю ее работу в режиме "Авто".

comment:15 by dimag, 8 years ago

Не заметил что вы данный тикет забрали себе.

in reply to:  3 comment:16 by san, 8 years ago

Поэтому и предлагаю тебе быть внимательней

Owner changed from dimag to san

(тикет пока заберу себе)

к тому-же, тикет я забрал себе, для обдумывания

comment:17 by alx, 8 years ago

У меня появилась мысль: поскольку на момент привязки сокета уже известен адрес сервера, с которым мы будет работать, при выборе адреса привязки вместо дефолтного маршрута будет лучше брать маршрут к серверу.

Last edited 8 years ago by alx (previous) (diff)

comment:18 by alx, 8 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.