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

[Решено] MPD и клиенская подсеть

Всем привет.

Есть работающий MPD сервер. К нему подключаются клиенты, всё работает. Появился новый удалённый офис (настроил на нём mpd client), он подключается, всё нормально. Только у офиса того, есть своя подсеть 10.9.0.0/24 и что бы они могли нормально выдеть нашу локальную сеть приходится на сервере (там где стоит mpd server) вручную добавлять маршрут в их подсеть:

 

#route add -net 10.9.0.0/24 10.11.0.109

 

где 10.11.0.109 - адрес выдаваемый удалённому клиенту. Можно ли как-то сделать, что бы при подключении этого клиента, сеть 10.9.0.0/24 добавлялась автоматом?

 

Нашёл параметр

 

set iface route

 

но мне кажется это не то, хотя не уверен.

Подскажите, умеет ли MPD такое делать?

 

OS FreeBSD 8.1 amd64, MPD-5.5

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

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


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

Ищем в Гугле: "mpd set iface route -default"

Тут же находим: http://www.opennet.ru/openforum/vsluhforumID1/79730.html

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


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

Всем спасибо, разобрался.

1) Добавляем такие строки в mpd.conf

set iface up-script /usr/local/etc/mpd5/script_up.pl
set iface down-script /usr/local/etc/mpd2-->
рядом со строк

рядом со строками set iface (если прописать в конец не будет работать)

 

2) Стартовые скрипты выглядят так:

 

cat script_up.pl

 

#!/usr/bin/perl
# 0-iface, 1-proto, 2-server IP, 3-client IP , 4-login
use Switch;

switch($ARGV[4]){
case client{
                `/sbin/route add -net 10.9.0.0/24 $ARGV[3]`;
                }
}

 

cat script_down.pl

 

#!/usr/bin/perl
# 0-iface, 1-proto, 2-server IP, 3-client IP , 4-login
use Switch;

switch($ARGV[4]){
case client{
                `/sbin/route del 10.9.0.0/24`;
                }
}

 

От себя добавлю: скрипт для удаления маршрута в принцыпи не нужен, так как маршрут удаляется сам, при отключении клиента (интерфейс просто уничтожается).

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


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

Всем спасибо, разобрался.

1) Добавляем такие строки в mpd.conf

Код

set iface up-script /usr/local/etc/mpd5/script_up.pl

set iface down-script /usr/local/etc/mpd2

 

рядом со строками set iface (если прописать в конец не будет работать)

Не превращайте администрирование в шаманство, почитайте доки от мпд5, они там в хтмл идут.

 

Скрипт нb]перлk7;[/b] нафик не сдался.

А в скрипте на перле switch нафик не сдался.

 

на сервере

#!/bin/sh
### Rozhuk Ivan 2009-2010
### mpd.script: L2TP incomming link up
###

# $0 - script name
# $1 - if name (ng0...)
# $2 - proto
# $3 - local-ip
# $4 - remote-ip
# $5 - authname
# $6 - [ dns1 server-ip ]
# $7 - [ dns2 server-ip ]
# $8 - peer-address



if [ "$5" = "office-msk" ]
then
    /sbin/route -q delete 192.168.3.0/24
    /sbin/route -q add 192.168.3.0/24 $4
fi


if [ "$5" = "office-2" ]
then
    /sbin/route -q delete 192.168.0.0/24
    /sbin/route -q add 192.168.0.0/24 $4
fi


pfctl -f /etc/pf.conf


exit 0

office-msk - это имя под которым авторизовались.

 

#!/bin/sh
### Rozhuk Ivan 2009-2010
### mpd.script: L2TP incomming link down
###

# $0 - script name
# $1 - if name (ng0...)
# $2 - proto
# $3 - local-ip
# $4 - remote-ip
# $5 - authname
# $6 - peer-address


pfctl -f /etc/pf.conf


exit 0

При отключении маршрут самим удалять не нужно, он удаляется автоматом, вместе с интерфейсом.

 

 

На клиенте просто добавляем в mpd.conf, в нужное соединение, для каких подсетей его использовать в кач шлюза

(это клиент из 192.168.3.0/24)

    set iface route 192.168.0.0/24
    set iface route 192.168.1.0/24

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


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

2Ivan_83 Если такое нужно для 1-го клиента - то конструкция switch-case не нужна (я писал в общем случае). Достаточно простого if. Если для 2 и более - очень удобно применять конструкцию switch-case (вы видимо не слышали о такой). Особой разницы нет: perl или shell. Я написал на perl.

 

В принцыпи вы ничего нового не написали, а лишь взяли мой пост и по своему предложения составили. :)

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


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

О switch в жизни никогда не слышал, до этого поста :)

 

Перл ещё ставить нужно.

Для 1-2-10 между свищ и иф разницы нет.

 

Вы не указали что это оба скрипта для сервера в головном офисе, не указали какие настройки на клиенте, остаётся только догадываться что у вас для клиента - офис с сервером на фряхе+мпд5 является шлюзом по умолчанию.

В моём примере клиент ходит в инет через свой канал напрямую, лишь до удалённого офиса прописываются маршруты.

script_down.pl - вообще не нужен, можете сами в этом убедится.

 

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


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

Ну вообще-то он уже стоит. А если бы не стоял, тогда однозначно shell. Если я писал только о серверной части, значит на клиенской всё настроено и никаких дополнительных телодвижений делать не нужно. Что касается script_down.pl - то я об этом писал ещё во втором посте. Да и не нужен он конкретно в моей ситуации (но может потребоваться в другой).

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


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

Join the conversation

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

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

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

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

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

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

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