NetworkManager Problemas múltiplos de conexões com fio

2

Eu tenho um computador que está conectado ao roteador com DHCP e está em pleno funcionamento, o que estou tendo problemas com a adição de framboesa pi zero no modo somente de link. Primeiro eu posso conectar o pi apenas editando a conexão do DHCP para link-only, mas obviamente eu perco a internet, já que posso ter apenas um dispositivo conectado por vez e eles não são DHCP como minha conexão ethernet principal. Eu, então, embora fosse um trabalho simples adicionar uma nova conexão com um conjunto de links que eu poderia usar para conectar os pi's enquanto deixava minha internet intacta, foi aí que o problema começou, consegui fazer a conexão, mas por algum motivo Incapaz de conseguir que ele se atribua ao pi, recebo duas mensagens diferentes, uma é activation of network connection failed e a outra é Unable to find a connection with UUID ('null') .

Eu procurei na internet e não achei muito como sugerido em uma das postagens eu executei nmcli c show que retorna uma lista de conexões e aqui nova conexão todas parecem ter um UUID. Estou preso a esta questão e gostaria de receber ajuda.

    
por bobthemac 31.10.2017 / 17:04

1 resposta

4

Como configurar o Networking via nmcli do Network Manager para um Raspberry Pi conectado a um PC host através da porta USB em execução no modo OTG.

Configurei com êxito uma rede de ponte para um Raspberry Pi Zero usando o Network Manager através da interface de linha de comando nmcli .

Configuração do Raspberry Pi

Eu segui estas instruções listado nos comentários acima para configurar o Pi para conexão Ethernet OTG.

Modifique o sistema de arquivos do cartão MiniSD do Pi

Adicione o seguinte ao /boot/config.txt

do cartão SD
# Enable USB OTG like ethernet
dtoverlay=dwc2

Crie um arquivo vazio chamado ssh no diretório /boot do cartão SD

touch ssh

E anexe o módulo Ethernet do OTG ao carregador de boot, adicionando o seguinte ao /boot/cmdline.txt do cartão SD após rootwait

' modules-load=dwc2,g_ether '

Configurar ponte de rede do PC host

Em seguida, configuro uma interface de rede de ponte na porta Ethernet com fio do meu PC.

nmcli con add type bridge ifname br0
nmcli con modify bridge-br0 bridge.stp no
nmcli con add type bridge-slave ifname eth1 master bridge-br0

Conectei o Raspberry Pi Zero ao PC usando a porta do OTG no Pi. Verifiquei o nome da interface usando ifconfig. E, em seguida, adicionei a interface do OTG à ponte de rede.

nmcli con add type bridge-slave ifname enp0s29f7u1u4u3 master bridge-br0

Com tudo definido, ativei as conexões:

nmcli con up bridge-br0
nmcli con up bridge-slave-eth1
nmcli con up bridge-slave-enp0s29f7u1u4u3

Verificadas todas as interfaces verdes com nmcli connection

root@local:/etc/ssh# nmcli con
NAME                          UUID                                  TYPE            DEVICE          
bridge-br0                    ab1fab48-2c31-4ccc-90bf-db444751c080  bridge          br0             
bridge-slave-enp0s29f7u1u4u3  5efed614-89c7-48d4-996e-0a2e6e616846  802-3-ethernet  enp0s29f7u1u4u3 
bridge-slave-eth1             53c4d66a-3f9e-49f4-b954-92b13ecf96f8  802-3-ethernet  eth1            

Assista ao servidor DHCP para o endereço Raspberry Pi

Em seguida, observei meu servidor DHCP para a atribuição de endereço de rede do Raspberry Pi. Na sua configuração, essa informação estaria disponível através do seu roteador. SSH para Pi sucesso:

SSH em Pi

root@local:/etc/ssh# ssh [email protected]
[email protected]'s password: 

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Nov  1 19:33:48 2017 from 192.168.xxx.xxx
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.4.38+ #938 Thu Dec 15 15:17:54 GMT 2016 armv6l GNU/Linux
pi@raspberrypi:~ $ ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:724 errors:0 dropped:0 overruns:0 frame:0
          TX packets:724 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:58980 (57.5 KiB)  TX bytes:58980 (57.5 KiB)

usb0      Link encap:Ethernet  HWaddr 8e:31:5b:06:db:bb  
          inet addr:192.168.xxx.xxx  Bcast:192.168.xxx.xxx  Mask:255.255.255.0
          inet6 addr: fe80::xxx:/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:756 errors:0 dropped:0 overruns:0 frame:0
          TX packets:430 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:90941 (88.8 KiB)  TX bytes:76278 (74.4 KiB)

pi@raspberrypi:~ $ route
Kernel IP routing table
Destination     Gateway           Genmask         Flags Metric Ref    Use Iface
default         192.168.xxx.xxx   0.0.0.0         UG    202    0        0 usb0
192.168.xxx.0     *               255.255.255.0   U     202    0        0 usb0

pi@raspberrypi:~ $ sudo -s
root@raspberrypi:/home/pi# ping unix.stackexchange.com
PING unix.stackexchange.com (151.101.65.69) 56(84) bytes of data.
64 bytes from 151.101.65.69: icmp_seq=1 ttl=55 time=27.2 ms
64 bytes from 151.101.65.69: icmp_seq=2 ttl=55 time=7.91 ms
64 bytes from 151.101.65.69: icmp_seq=3 ttl=55 time=6.40 ms
64 bytes from 151.101.65.69: icmp_seq=4 ttl=55 time=6.78 ms
64 bytes from 151.101.65.69: icmp_seq=5 ttl=55 time=7.87 ms
^C
--- unix.stackexchange.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 6.404/11.240/27.219/8.012 ms
root@raspberrypi:/home/pi#

Adendo

Depois de ler Parte 2 das instruções de rede Pi OTG, adicionarei o componente que elas fornecem para definir permanentemente o endereço MAC do Pi. Com um endereço MAC permanente, seu servidor DHCP e / ou roteador deixarão de fornecer endereços IP sequenciais a cada reinicialização do RPi.

webonomic diz:

You do this by appendign(sic) this to cmdline.txt on the boot partition on your pi:

g_ether.host_addr=8a:3e:d4:ce:89:53

Just take the address form the ifconfig command of your laptop, after you have established a connection.

Eles mencionam a alteração da configuração do Pi do DHCP para IP estático. No entanto, eu não recomendo fazê-lo dessa maneira. Eu sempre recomendo configurar concessões estáticas no servidor DHCP da sua rede. Desta forma, apenas o servidor DHCP precisa ser modificado para redesenhar sua rede. Também existem métodos úteis para dividir sub-redes para limitar o acesso a determinados hosts de outras pessoas.

A maioria dos roteadores domésticos modernos permite configurar concessões estáticas. É uma boa prática utilizar todos os recursos do seu servidor DHCP.

Notas adicionais

Eu descobri que a configuração g_ether.host_addr não é suficiente para fornecer um endereço MAC constante para o Pi. Há um segundo requisito para definir g_ether.dev_addr

A documentação do gadget também recomenda definir um fabricante e um número de produto.

O Linux-USB Gadget API Framework diz:

To better support DHCP, ZCIP, and related network autoconfiguration, you'll want to manage Ethernet addresses so that each peripheral reuses the same unique address every time it boots. You should assign those addresses using a registered IEEE 802 company id; this will also make the device appear to Linux hosts as an "ethN" interface, not as "usbN". It's easy to do this without a separate ID PROM (or an initrd) if you're using boot firmware like U-Boot:

*#* manufacturing assigns Ethernet addresses; company id is xx:xx:xx
setenv eth_a_host    xx:xx:xx:01:23:45
setenv eth_a_gadget  xx:xx:xx:67:89:ac
setenv eth_i_vendor  "Great Stuff, LLC"
setenv eth_i_product "Our Cool Thing"
setenv eth_args             g_ether.host_addr=\$(eth_a_host)
setenv eth_args $(eth_args) g_ether.dev_addr=\$(eth_a_gadget)
setenv eth_args $(eth_args) g_ether.iManufacturer=\$(eth_i_vendor)
setenv eth_args $(eth_args) g_ether.iProduct=\$(eth_i_product)
*#* you can assign USB vendor/product/version codes too...
setenv add_eth_args setenv bootargs $(eth_args) \$(bootargs)
...
setenv bootcmd run add_eth_args\;bootm

Esses parâmetros também podem ser anexados ao cmdline.txt para melhor usabilidade com servidores DHCP.

    
por 02.11.2017 / 01:06