Продолжая настраивать схему соединения нескольких сетей между собой, экспериментирую и ищу решения тех или иных тонкостей.
Задача: Зафиксировать назначаемые интерфейсы VPN за назначаемыми IP адресами.
Предыстория: При подключении клиентов по PPP периодически возникает проблема что назначаются интерфейсы ppp(Х) в том порядке, в котором клиент подключился. В виду этого проблема - настроенные маршруты и пробросы портов на серверы подключающихся сетей оказываются неверными.
Решение: Скрипт контроля соединений
В скрипт сразу добавил маршруты. Разместил первоначально в rc.local но вообще надо его немного переработать и включить в /etc/ppp/up - чтобы скрипт обрабатывал каждое подключение. Но эта версия для начала меня устроила, тк пока есть более насущные задачи.
Пока скрипт дает подключиться роутерам по VPN, затем проверяет какие интерфейсы назначены для IP закрепленных за роутерами (выступающими в роли клиентов VPN). Пауза для этих же целей добавлена.
sleep 20
if [ ifconfig ppp0 | grep "P-t-P" |cut -c 40-53 = "192.168.1.101"]
then
ip link set ppp0 down
ip link set ppp0 name pppMSC
ip link set pppMSC up
ip link set ppp1 down
ip link set ppp1 name pppPNZ
ip link set pppPNZ up
else
ip link set ppp0 down
ip link set ppp0 name pppMSC
ip link set pppMSC up
ip link set ppp1 down
ip link set ppp1 name pppPNZ
ip link set pppPNZ up
fi
sleep 10
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.3.1 pppMSC
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.3.1 pppPNZ
Результат: Тестирую. Пока работает.
Вот второй и более удачный вариант, встраиваемый в скрипт ppp/ip-up (добавление маршрутов отключено по причине того, что несоклько изменил конфигурацию соединений и необходимость отпала):
#sleep 10
if [ $5 = "192.168.3.100" ]
then
ip link set $1 down
ip link set $1 name pppMSC
ip link set pppMSC up
sleep 1
#route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.3.1 pppPNZ
#route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.3.1 pppMSC
fi
if [ $5 = "192.168.3.101" ]
then
ip link set $1 down
ip link set $1 name pppPNZ
ip link set pppPNZ up
sleep 1
#route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.3.1 pppPNZ
#route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.3.1 pppMSC
fi