informando ao gerente de rede para ignorar temporariamente um dispositivo de rede

5

Eu tenho um laptop com debian. A rede está configurada com o NetworkManager. Agora, ocasionalmente, quero conectar um dispositivo à sua porta Ethernet com fio e, em seguida, conectá-lo a uma rede sem fio. Isso tudo funciona até agora: eu preciso terminar o NetworkManager primeiro manualmente para ignorar a porta ethernet ou então ele vai tentar configurá-lo, o que interfere com o endereço estático necessário. A minha pergunta agora é: como eu posso, usando um comando dbus, dizer ao NetworkManager que ele deve ignorar a eth0 por um tempo? E depois para administrar novamente?

    
por Folkert van Heusden 28.04.2013 / 10:08

3 respostas

2

Do wiki do Debian :

As of Debian Squeeze, NetworkManager does not manage any interface defined in /etc/network/interfaces by default.

Portanto, talvez você deva colocar a configuração de Ethernet estática no arquivo interfaces e impedir que NetworkManager o gerencie completamente. Eu acho que você também pode fazer alguns mapeamento de interface para alternar automaticamente entre usar a configuração em ponte e o "normal", conforme necessário.

    
por 28.04.2013 / 11:10
1

Eu tenho medo de que isso não seja possível. A API do D-Bus permite desativar todos os tipos de dispositivos sem fio, mas não o com fio. A única maneira de desativar as conexões com fio é desativando todos dispositivos, incluindo o seu dispositivo sem fio.

Talvez ajude a desmarcar a caixa "Conectar automaticamente" ao seu dispositivo com fio. Dessa forma, o NetworkManager não se conectará automaticamente a ele.

    
por 28.04.2013 / 10:59
0

Isso é o que eu encontrei em nmcli man-pages. Eu não sei quais distribuições isso se aplica, mas estou usando Ubuntu 12.04 LTS

Isso marcará o dispositivo para desconectar o estado de modo que fique fora do controle do gerenciador de rede

nmcli dev disconnect iface eth0 

Tudo bem, desde que eu não desconecte o cabo.

Você pode verificar o status do dispositivo com:

nmcli dev status

E as conexões atualmente ativas com:

nmcli con status

Eu criei este script de ajuda nm-manual-interface

#!/bin/bash

DEV=${1:-help}
shift

OPER=${1:-manual}
shift


if [ "$DEV" == "help" ]; then
echo -n "$0 "
  cat <<'EOH';
<DEV> [manual|auto]

Change <DEV> to disconnected state for nm.
In short take manual control of <DEV>.

All changes are temporary.

Usage:

Change to manual:
EOH
echo $0 eth0 manual
echo
echo Change back to nm control:
echo $0 eth0 auto
echo
  exit 1
fi
# store last uuid of device here
LASTUUIDFILE="/tmp/.nm-last-uuid-${DEV}"


if [ "$OPER" == "manual" ]; then
  if [ -n "$DEV"  ] ; then
    UUIDNET=$(nmcli con status |grep "$DEV" | perl -anle 'print @F[1]')
    if [ -n "$UUIDNET" ]; then 
      echo "$UUIDNET"  > $LASTUUIDFILE
      nmcli dev disconnect iface "$DEV"
    fi
  fi
fi

if [ "$OPER" == "auto" ]; then
  if [ -f "$LASTUUIDFILE" ]; then
     nmcli con up uuid $(cat "$LASTUUIDFILE") --nowait
     rm "$LASTUUIDFILE"
  else
    echo No last-state uuid file for iface "$DEV"
  fi
fi
    
por 06.08.2013 / 14:56