Convertendo o comando 'ifconfig wlan0: avahi…' para usar ip em vez de ifconfig

2

Atualmente, estou trabalhando na configuração de uma rede mesh sem fio usando o babeld como o algoritmo de roteamento . A documentação é muito esparsa e a maioria dos guias de configuração que vi online estão usando o comando ifconfig obsoleto.

Eu poderia obviamente instalar o ifconfig e executar os comandos como estão. Mas, se possível, eu preferiria não criar uma dependência desnecessária em ifconfig , e apenas usar os comandos iproute2 -based incorporados. Por isso, convertei os comandos ifconfig que estou encontrando nas respectivas ip versões (por exemplo, ifconfig eth0 up - > ip link set eth0 up )

No entanto, hoje me deparei com o seguinte script de configuração babeld :

ifconfig wlan0 down
iwconfig wlan0 mode ad-hoc essid reseaulibre.ca ap 02:CA:FF:EE:BA:BE channel 9
ifconfig wlan0 up
avahi-autoipd wlan0
ifconfig wlan0:avahi netmask 255.255.255.255
babeld -D wlan0:avahi wlan0

... e não entendo como converter a seguinte linha em um comando ip correspondente:

ifconfig wlan0:avahi netmask 255.255.255.255

O que é um comando equivalente usando ip , que funcionaria no contexto do script de configuração acima?

    
por J. Taylor 18.06.2018 / 10:28

1 resposta

1

Isto parece ser uma coisa que não existe substituto direto para com ip .

Uma solução é:

IPNM=$(ip a sh dev wlan0:avahi scope global | awk  '/inet / {print $2}')
IP=${IPNM/\/*})
ip a add $IP/32 dev wlan0:avahi
ip a del $IPNM dev wlan0:avahi

Isso primeiro extrai o endereço IP, inclusive a máscara de rede, da saída de ip addr show e armazena isso em $ IPNM. Depois disso, a parte da sub-rede é removida e armazenada em $ IP.

Agora você pode adicionar o endereço IP com a máscara de rede desejada ao dispositivo e, em seguida, remover o IP / máscara de rede antigo do dispositivo.

    
por 18.06.2018 / 12:50