Nomeando interfaces PPP

3

Eu tenho dois peers PPP, dsl-line1 e dsl-line2, que são configurados com o pppd no Ubuntu (Server) Linux.

Eles são criados pelo arquivo / etc / network / interfaces com o recurso auto. Entretanto, cada conexão PPP escolhe o nome pppX, em que X varia, dependendo do que aparecer primeiro.

Eu gostaria de fazer com que dsl-line1 surja com um nome como "dsl0" e dsl-line2 com um nome como "dsl1" para que eu possa criar regras de firewall mais facilmente para cada um e configurar o roteamento (além de facilitar a configuração).

A minha pergunta é como posso obter as interfaces do pppd para se nomearem?

/ etc / ppp / peers / dsl-line1 (a linha dsl-line2 é basicamente a mesma para além da rota padrão sendo removida e a interface ethernet sendo diferente)

noipdefault
defaultroute
replacedefaultroute
hide-password
#lcp-echo-interval 30
#lcp-echo-failure 4
lcp-echo-interval 10
lcp-echo-failure 3
noauth
persist
#mtu 1492
#persist
#maxfail 0
#holdoff 20
plugin rp-pppoe.so eth1
user "[email protected]"

/ etc / network / interfaces (a parte line1, novamente, 2 é muito semelhante)

auto dsl0
iface dsl0 inet ppp
    pre-up /sbin/ifconfig eth1 up # line maintained by pppoeconf
    post-up /bin/sh /home/callum/ppp0_up.sh # Route everything
    post-up /bin/sh /etc/miniupnpd/ppp0_up.sh # Start miniupnpd (if not alr$
    provider dsl-line1

Obrigado antecipadamente.

    
por CallumA 21.07.2014 / 14:30

4 respostas

2

A melhor aposta que encontrei foi a opção "unit" no arquivo / etc / ppp / peers / .... Esta opção é um inteiro que nomeia a interface pppX onde X é o int depois de "unit".

Acabei de nomear as interfaces pppX em / etc / network / interfaces e usar "unit" nos arquivos peers para garantir que eles sejam nomeados dessa forma.

    
por 21.07.2014 / 16:56
3

Enquanto versões antigas de pppd oferecem a opção unit que @CallumA destacou :

   unit num
          Sets the ppp unit number (for a ppp0 or ppp1 etc interface
          name) for outbound connections.

… versões mais recentes de pppd para Linux (por exemplo, 2.4.7) são corrigidas para oferecer a opção ifname , que permite que você defina um nome de interface totalmente arbitrário, como ppp_tunnel ou magic0 , etc:

   ifname string
          Set the ppp interface name for outbound connections.
          If the interface name is already in use, or if the name 
          cannot be used for any other reason, pppd will terminate.

Como apontado nos comentários, a opção ifname é específica do Linux . Meu palpite é que ele não foi mesclado upstream porque nem todos os sistemas operacionais têm a capacidade de definir um nome de interface arbitrário. ( No Linux, o nome da interface é definido com SIOCSLIFNAME ioctl .)

    
por 21.09.2016 / 02:43
0

A maneira mais simples de fazer isso é ter um script em /etc/ppp/ip-up.d/<script name> .

Um exemplo é:

#!/bin/sh -e
# only apply this when a connection to dsl10 has occurred
if [ "X$CALL_FILE" != "Xoptus" ]; then
     exit 0
fi

echo $CALL_FILE is using the ppp device $IFNAME

Você pode ver o conjunto completo de variáveis disponíveis no pppd (8) na seção SCRIPTS

    
por 02.02.2015 / 07:15
0

Aqui está um exemplo completo de renomear uma conexão pppoe em ppp0 para eth0 (para compatibilidade de script):

Edite / etc / network / interfaces e defina a conexão ppp (aqui denominada dsl-provider) como:

auto dsl-provider
iface dsl-provider inet ppp
pre-up /bin/ip link set eth0 down
pre-up /bin/ip link set eth0 name eth99
pre-up /bin/ip link set eth99 up # line maintained by pppoeconf
provider dsl-provider

Em / etc / ppp / peers / dsl-provider Adicione o seguinte:

plugin rp-pppoe.so eth99
ifname eth0

Agora, na inicialização, seu dispositivo ppp0 será chamado eth0 (e sua antiga eth0 foi renomeada para eth99).

    
por 24.05.2018 / 20:34