Эта история давно длится, еще с 4 версии. Не понятно фича это или баг, но неприятность такая в свое время задала головоломку. И сейчас с ней тоже столкнулся на новом сервере, благо, что вспомнил.
Предположим есть такое в конфигах:
mpd.conf
set pptp self 10.8.20.191
Итак, если в конфигах прописано в таком порядке как указано выше то все работает правильно,
у клиента при подключении указывается сервер 10.8.20.191
Однако, если сервак загружается в rc.conf вот так cloned_interfaces="vlan1100 vlan10", то у клиента при подключении указывается сервер 46.150.1.1
Вот така бодяга.
Last edit: Sancho 2015-09-16
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Странно. Все работает через функцию GetInetSocket() в файле util.c
Если есть возможность, попробуйте подебажить эту ситуацию.
Привязка идет в строке
if (bind(sock, (struct sockaddr *) &sa, sa.ss_len) < 0)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Эта история давно длится, еще с 4 версии. Не понятно фича это или баг, но неприятность такая в свое время задала головоломку. И сейчас с ней тоже столкнулся на новом сервере, благо, что вспомнил.
Предположим есть такое в конфигах:
mpd.conf
set pptp self 10.8.20.191
rc.conf
cloned_interfaces="vlan10 vlan1100"
ifconfig_vlan10="inet 10.8.20.191 netmask 255.255.255.0 vlan 10 vlandev em0"
ifconfig_vlan1100="inet 46.150.1.1 netmask 255.255.255.0 vlan 1100 vlandev em0"
Итак, если в конфигах прописано в таком порядке как указано выше то все работает правильно,
у клиента при подключении указывается сервер 10.8.20.191
Однако, если сервак загружается в rc.conf вот так cloned_interfaces="vlan1100 vlan10", то у клиента при подключении указывается сервер 46.150.1.1
Вот така бодяга.
Last edit: Sancho 2015-09-16
Неплохоб было конкретику !
Конфиги, используется ли радиус и т/д ...
P.S: у меня 1100 Интерфейсов с разными ип и всё железно работает (правда L2TP)
Странно. Все работает через функцию GetInetSocket() в файле util.c
Если есть возможность, попробуйте подебажить эту ситуацию.
Привязка идет в строке
if (bind(sock, (struct sockaddr *) &sa, sa.ss_len) < 0)
Last edit: Sancho 2015-09-19
Научите, как отдебажить эту ситуацию, никогда этим не занимался.
Ну как минимум после каждой строчки повставлять Log(LG_ERR, ("бла-бла"));
В 8.4 не нашел такой строки этом в файле
Файл util.c в исходниках mpd5.
Я совсем не программер, помудохался немного, но ничего не получается.
Тем не менее, проблема имеет место быть, если что.
есть ли возможность обновиться на 10-STABLE ?