Продолжая настраивать схему соединения нескольких сетей между собой, экспериментирую и ищу решения тех или иных тонкостей.

Задача: Зафиксировать назначаемые интерфейсы 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