Jump to content

Recommended Posts

Posted (edited)

Всем привет.

Есть работающий 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
Posted

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

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

 

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

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

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

Posted

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

 

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

Posted

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

 

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

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

 

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

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

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

 

Posted

Ну вообще-то он уже стоит. А если бы не стоял, тогда однозначно 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.

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.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.