Перейти к содержимому
Калькуляторы

mpd5 и номер ng как определить номер тунеля?

Встала необходимость навесить скрипт, который на NAS-е (mpd5.5) должен вырубить пптп-тунель (потушить определенный интерфейс ngXX). Я вижу единственное решение - скрипт телнетится в консоль mpd и делает close для определенного ngХХ. Дело за малым - узнать этот самый номер ХХ.

Ранее, когда это были mpd3/mpd4, они передавали радиусу номер ng через атрибут NAS-Port. Но в mpd5 интерфейсы создаются динамически, и передаваемое в NAS-Port число теперь вовсе не соответствует номеру интерфейса ng. Собственно говоря, вообще непонятно что за номер дает теперь NAS-Port, пользы от него ноль - номера ng совсем не соответсвуют номерам NAS-Port. Из известных параметров, однозначно определяющих тунель, в данный момент остался только назначаемый на тунель IP. Но как по нему в mpd идентифицировать номер ng я пока не додумался.

Никто не сталкивался с задачей определения номера ng? Может я что-то упустил в доках, и этот номер можно получить другим атрибутом? Если нет, то как можно вычислить номер интерфейса скажем по IP?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

у нас получается по данным радиуса найти порт в mpd

для pppoe получаем такую ссылку http://NAS:5006/cmd?link%20vlan536-39&show%20auth

поинтересуюсь завтра у программистов, как вычисляют

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Никто не сталкивался с задачей определения номера ng? Может я что-то упустил в доках, и этот номер можно получить другим атрибутом? Если нет, то как можно вычислить номер интерфейса скажем по IP?

Можно без mpd, из таблицы маршрутизации: route -n get $ip | awk '/interface:/{print $2;}'

А еще он передается радиусу аттрибутом mpd-iface

Изменено пользователем littlesavage

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А чем PoD не устроил? Хорошая же вещь :). Можно даже передать прямо номер сессии либо логин, а mpd уже сам разберется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно без mpd, из таблицы маршрутизации: route -n get $ip | awk '/interface:/{print $2;}'
Жизненно, но не спортивно :) . NAS-ов несколько, придется сначала еще вычислять на каком из них залогинился абонент, потом уже на этом NAS-e шерстить таблицу.

 

А еще он передается радиусу аттрибутом mpd-iface
А вот это уже гораздо интереснее! Полез проверять...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А еще он передается радиусу аттрибутом mpd-iface
То что доктор прописал!!! Спасибки огромное!

Тема закрыта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Стоит попробовать привязаться не к номеру интерфейса, а к Session-ID

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Стоит попробовать привязаться не к номеру интерфейса, а к Session-ID

Я уже о этом говорил. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.