Script para determinar se uma interface TAP criada por um serviço está ativa

1

Meu sistema tem um serviço SoftEther VPN que cria sua própria interface TAP quando é iniciado e o remove quando está parado. Mas, mesmo com o DHCP em execução na VPN, o TAP não configura seu próprio IP quando ele aparece ou o IP estático é configurado no arquivo ifcfg específico. No entanto, ele configura seu IP DHCP se eu fizer dhclient ou executar ifup (com ifcfg presente).

Minha pergunta é: como faço para monitorar o script se a interface está ativa e execute dhclient ou ifup , o que eu quiser?

    
por Oxwivi 23.10.2015 / 12:23

2 respostas

1

Como eu fiz em um Centos7, resolvi com sysmtemd-networkd. Ele escuta em todos os dispositivos de rede especificados em / etc / systemd / network /

Por exemplo, 20-static-tap_clients.network se parece com:

[Match]
Name=tap_clients
[Network]
Address=192.168.103.1/24

Alterando tap_clients com o nome da interface de toque e modificando o endereço IP para o IP desejado.

Você deve desativar o serviço NetworkManager e ativar o systemd-networkd. Quanto ao softether, eu também criei os arquivos da unidade e os coloquei em / usr / lib / systemd / system

softether-vpnserver.service

[Unit]
Description=SoftEther VPN Server
After=network.target auditd.service
ConditionPathExists=!/opt/vpnserver/do_not_run

[Service]
Type=forking
EnvironmentFile=-/opt/vpnserver
ExecStart=/opt/vpnserver/vpnserver start
ExecStop=/opt/vpnserver/vpnserver stop
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target
Alias=softether-vpnserver.service

softether-vpnbridge.service

[Unit]
Description=SoftEther VPN Bridge
After=network.target auditd.service
ConditionPathExists=!/opt/vpnbridge/do_not_run

[Service]
Type=forking
ExecStart=/opt/vpnbridge/vpnbridge start
ExecStop=/opt/vpnbridge/vpnbridge stop
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target
Alias=softether-vpnserver.service

e softether-vpnclient.service

[Unit]
Description=SoftEther VPN Client
After=network.target auditd.service
ConditionPathExists=!/opt/vpnclient/do_not_run

[Service]
Type=forking
EnvironmentFile=-/opt/vpnclient
ExecStart=/opt/vpnclient/vpnclient start
ExecStop=/opt/vpnclient/vpnclient stop
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target
Alias=softether-vpnclient.service
    
por 05.07.2016 / 12:35
0

Você pode assistir à interface em um loop while assim:

#!/bin/sh
trap exit 1 2 15
while true; do
    if [ "$(ip l | fgrep IFACE: | wc -l)" -gt 0 ]; then
        # run dhclient/ifup for your IFACE here
        break
    fi
    sleep 1
done

Mas espero que o SoftEther VPN possa configurar a interface TAP, deve haver uma opção para o script que o usuário escreve ou opções que controlam a configuração da interface TAP em algum lugar, no (s) arquivo (s) de configuração ou guia do programa.

    
por 31.10.2015 / 09:11

Tags