Como controlar os intervalos de IP dos hotspots do Network Manager?

1

Um servidor tem duas interfaces WiFi, ambas configuradas pelo Network Manager para serem pontos de acesso.

Clientes conectados obtêm IPs nos intervalos 10.42.0.0/24 e 10.42.1.0/24 (AFAICS via dnsmasq chamado por NM). Eu preciso ser capaz de atribuir um intervalo específico para uma interface específica. Infelizmente, o Network Manager os atribui imprevisivelmente (portanto, wlan0 pode obter 10.42.0.0 hoje e 10.42.1.0 amanhã; então wlan1 obtém o intervalo restante), o que atrapalha meu iptables porque as regras de roteamento são diferentes para essas interfaces.

Eu tentei a opção dhcp-range= em /etc/dnsmasq.conf (que não estava presente como o NM configura dnsmasq via linha de comando) e algumas outras ideias, mas não consigo encontrar uma solução viável.

Alguma ideia de como posso controlar qual intervalo de IP é atribuído a qual interface?

    
por David Radu 03.11.2016 / 01:26

3 respostas

3

Você pode determinar a sub-rede IPv4 usada configurando um endereço manual, como

nmcli connection modify $SHARED_NAME ipv4.addresses 192.168.2.5/24

Está documentado em man nm-settings , consulte ipv4.method.

/etc/NetworkManager/dnsmasq.d é para usar o dnsmasq como plugin DNS, não para o seu caso de uso de compartilhamento de conexão. Para isso, ele é /etc/NetworkManager/dnsmasq-shared.d - pelo menos nas versões recentes do NM. Mas você não deveria precisar disso.

    
por thaller 04.11.2016 / 00:43
2
Depois de tentar várias soluções, finalmente consegui especificar uma sub-rede para uma conexão de ponto de acesso usando o Network Manager e, em seguida, definir um ip manual no dispositivo cliente para uma espécie de ip estático. Nenhum dos métodos dnsmasq / dhcp funciona com o Network Manager. Você precisa editar o arquivo de conexão do Network Manager. Esses arquivos são gerados para cada conexão no seguinte diretório:

/etc/NetworkManager/system-connections

Eu acredito que quando você cria um Hotspot, um novo arquivo de conexão é criado e é chamado de Hotspot. Você precisa editar este arquivo. Certifique-se de que você está editando o arquivo de conexão do Hotspot ou isso não funcionará! Altere / adicione as seguintes linhas na seção [ipv4] para definir uma sub-rede. Certifique-se de que tem a linha method=shared e use o endereço IP desejado para address1= e o NetworkManager emitirá todos os dispositivos de conexão um ip na mesma sub-rede. O formato desta linha é address1=ip/subnetmask,gateway . O gateway deve ser o mesmo que o ip. Aqui está a aparência da seção [ipv4] :

[ipv4]
dns-search=
method=shared
address1=192.168.125.1/24,192.168.125.1

Depois de concluir, salve o arquivo e execute o seguinte para reiniciar o Network Manager:

sudo service network-manager restart

Agora, seus dispositivos conectados devem receber um endereço IP na mesma sub-rede que o ip digitado. Neste exemplo, seria 192.168.125.x.

Para obter um IP estático, faça isso no dispositivo do lado do cliente. Defina um ip manual para essa conexão de hotspot na mesma sub-rede, usando a mesma máscara de sub-rede e gateway que foram inseridos no arquivo de conexão do Hotspot.

Aqui está o meu arquivo de conexão Hotspot completo para referência:

[connection]
id=Hotspot
uuid=14032jb9-43c6-41c6-8d56-8b6b0f7xcce9
type=wifi
interface-name=wlan0
permissions=
secondaries=
timestamp=1486816539

[wifi]
mac-address=7C:84:DB:62:7B:3F
mac-address-blacklist=
mac-address-randomization=0
mode=ap
seen-bssids=7C:84:DB:62:7B:3F;
ssid=yournetworkname

[wifi-security]
group=
key-mgmt=wpa-psk
pairwise=
proto=
psk=yourpassword

[ipv4]
dns-search=
method=shared
address1=192.168.125.1/24,192.168.125.1

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
ip6-privacy=0
method=ignore

A documentação sobre esta configuração no Network Manager pode ser lida aqui:

link

Tabela 36. Configuração do ipv4

Nome da chave: método

Tipo de valor: string

Valor padrão:

Valor Descrição: método de configuração IP. NMSettingIP4Config e NMSettingIP6Config suportam "auto", "manual" e "link-local". Veja a documentação específica da subclasse para outros valores. Em geral, para o método "auto", propriedades como "dns" e "routes" especificam informações que são adicionadas às informações retornadas da configuração automática. As propriedades "ignore-auto-routes" e "ignore-auto-dns" modificam esse comportamento. Para métodos que não impliquem em rede upstream, como "shared" ou "link-local", essas propriedades devem estar vazias. Para o método IPv4 "compartilhado", a sub-rede IP pode ser configurada adicionando um endereço IPv4 manual ou, de outro modo, 10.42.x.0 / 24 é escolhido.

Parte mais importante:

  

Para o método IPv4 "compartilhado", a sub-rede IP pode ser configurada adicionando   um endereço IPv4 manual ou outro 10.42.x.0 / 24 é escolhido.

    
por jthuring 30.04.2017 / 01:30
1

O seguinte parece funcionar OK - esses comandos forçam o Network Manager a atribuir intervalos DHCP selecionados a pontos de acesso Wifi (10.42.0.x para wifiname1; 10.42.1.x para wifiname2):

nmcli connection modify wifiname1 ipv4.addresses 10.42.0.1
nmcli connection modify wifiname2 ipv4.addresses 10.42.1.1

Nota: wifinameN (N=1/2) corresponde a arquivos em /etc/NetworkManager/system-connections .

    
por David Radu 09.11.2016 / 23:05