Объединение серверов в «одну сеть»
На днях озадачился наконец обьединением всех своих «домашних» серверов в одну сеть. Чтобы например с сервера «смотрящего» в интернет белым ИП можно было понастраивать и все остальные сервера. Ну и из плюшек дополнительных — подмонтировать на этот сервер некоторые папки из жестких дисков других северов (например домашнего медиаплеера), чтобы в любой момент иметь всё что есть «Дома» под рукой.
Итак, вот получилась какая примерная схема:
Что сделал?
- На виртуалке добавил дополнительный интерфейс в /etc/network/cat interfaces:
1 2 3 4 |
iface eth0:99 inet static address 192.168.10.1 netmask 255.255.255.0 network 192.168.10.0 |
2. Установил на виртуалке PPTD сервер с настройками:
/etc/ppp/options:
1 2 3 4 5 6 7 8 9 10 |
ms-dns 8.8.8.8 asyncmap 0 auth crtscts lock hide-password modem lcp-echo-interval 30 lcp-echo-failure 4 noipx |
/etc/ppp/pptpd-options:
1 2 3 4 5 6 7 8 |
name pptpd proxyarp nodefaultroute lock nobsdcomp novj novjccomp nologfd |
Добавим пользователя в /etc/ppp/chap-secrets:
1 2 3 4 5 |
# Secrets for authentication using CHAP # client server secret IP addresses user1 pptpd суперсекретныйпароль 192.168.10.99 user2 pptpd суперсекретныйпароль 192.168.10.100 user3 pptpd суперсекретныйпароль 192.168.10.110 |
3. На клиентах соответственно установил PPTP клиенты с настройками:
/etc/ppp/pptpd-options:
1 2 3 4 5 6 7 8 9 10 |
lock noauth refuse-pap refuse-eap refuse-chap refuse-mschap nobsdcomp nodeflate nobsdcomp nodeflate |
и создал настройки соединения по виду:
/etc/ppp/peers/gribanoid:
1 2 |
name user1 file /etc/ppp/options.pptp |
Установку соединения не стал прописывать в автозапуск, а запехнул в крон с итервалом запуска раз в 10 минут, как скрипт вида:
1 2 3 4 5 6 7 8 |
#!/bin/bash result=$(ping -c 2 -W 1 -q 192.168.10.1 | grep transmitted) echo $result if [[ $result =~ "0 received" ]]; then echo "-fail, open VPN.."; pptp 2.57.184.20 call gribanoid else echo "-ok"; |
Т.е. если соединение вдруг будет разорвано, оно восстановится само в течении 10 минут.
4. Ну и на сладкое, на виртуалку подмонтировал жесткий диск медиасервера, чтобы иметь в любой момент все «домашние» файлы (тоже положил в крон).
/root/scripts/mountall.sh:
1 2 |
#!/bin/sh sshfs -o allow_other donpadlo@192.168.10.110:/ /mnt/mediapadlo |
Естественно сначала нужно было на сервер установить клиентские ключи.