Jump to content
Калькуляторы

[Решено] 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

Edited by skeletor

Share this post


Link to post
Share on other sites

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

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`;
                }
}

 

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

 

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

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

 

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

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

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

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.