skeletor Опубликовано 4 ноября, 2010 (изменено) · Жалоба Всем привет. Есть работающий 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 Изменено 5 ноября, 2010 пользователем skeletor Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ilya Evseev Опубликовано 4 ноября, 2010 · Жалоба Ищем в Гугле: "mpd set iface route -default" Тут же находим: http://www.opennet.ru/openforum/vsluhforumID1/79730.html Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
skeletor Опубликовано 5 ноября, 2010 · Жалоба Всем спасибо, разобрался. 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`; } } От себя добавлю: скрипт для удаления маршрута в принцыпи не нужен, так как маршрут удаляется сам, при отключении клиента (интерфейс просто уничтожается). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 5 ноября, 2010 · Жалоба Всем спасибо, разобрался.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 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
skeletor Опубликовано 5 ноября, 2010 · Жалоба 2Ivan_83 Если такое нужно для 1-го клиента - то конструкция switch-case не нужна (я писал в общем случае). Достаточно простого if. Если для 2 и более - очень удобно применять конструкцию switch-case (вы видимо не слышали о такой). Особой разницы нет: perl или shell. Я написал на perl. В принцыпи вы ничего нового не написали, а лишь взяли мой пост и по своему предложения составили. :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 5 ноября, 2010 · Жалоба О switch в жизни никогда не слышал, до этого поста :) Перл ещё ставить нужно. Для 1-2-10 между свищ и иф разницы нет. Вы не указали что это оба скрипта для сервера в головном офисе, не указали какие настройки на клиенте, остаётся только догадываться что у вас для клиента - офис с сервером на фряхе+мпд5 является шлюзом по умолчанию. В моём примере клиент ходит в инет через свой канал напрямую, лишь до удалённого офиса прописываются маршруты. script_down.pl - вообще не нужен, можете сами в этом убедится. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
skeletor Опубликовано 5 ноября, 2010 · Жалоба Ну вообще-то он уже стоит. А если бы не стоял, тогда однозначно shell. Если я писал только о серверной части, значит на клиенской всё настроено и никаких дополнительных телодвижений делать не нужно. Что касается script_down.pl - то я об этом писал ещё во втором посте. Да и не нужен он конкретно в моей ситуации (но может потребоваться в другой). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...