Como mesclar as interfaces usb0 e usb1 em uma rede?

1

Eu tenho uma configuração com três dispositivos, todos executando o Ubuntu 14.04. A configuração é a seguinte:

O que eu gostaria de ter é uma configuração na qual ambos os dispositivos podem se conectar à Internet, mas também podem se conectar uns aos outros. E idealmente, o PC host deve ter o mesmo IP quando conectado a partir de qualquer dispositivo. Eu tentei duas configurações possíveis, mas ambas falharam.

1: usb0 e usb1 usam o mesmo IP e sub-rede

host

iface usb0 inet static
    address 10.0.1.1
    netmask 255.255.255.0
    up route add 10.0.1.1 netmask 255.255.255.0

iface usb1 inet static
    address 10.0.1.1
    netmask 255.255.255.0
    up route add 10.0.1.1 netmask 255.255.255.0

dispositivo 0

iface usb0 inet static
    address 10.0.1.2
    netmask 255.255.255.0
    route add default gw 10.0.1.1

dispositivo 1

auto usb0
iface usb0 inet static
    address 10.0.1.3
    netmask 255.255.255.0
    route add default gw 10.0.1.1

! problema!

Somente o dispositivo 0 é conectado. Este pode ser pingado, e pode se conectar à internet, mas o dispositivo 1 está completamente fora do jogo. Portanto, também não tem conexão com a Internet.

2: usb0 e usb1 têm um endereço IP diferente

host

iface usb0 inet static
    address 10.0.1.1
    netmask 255.255.255.0
    up route add 10.0.1.1 netmask 255.255.255.0

iface usb1 inet static
    address 10.0.2.1
    netmask 255.255.255.0
    up route add 10.0.2.1 netmask 255.255.255.0

dispositivo 0

iface usb0 inet static
    address 10.0.1.2
    netmask 255.255.255.0
    route add default gw 10.0.1.1

dispositivo 1

auto usb0
iface usb0 inet static
    address 10.0.2.2
    netmask 255.255.255.0
    route add default gw 10.0.2.1

! problema!

Não consigo fazer ping de 10.0.1.1 no dispositivo número 1.

Pergunta

Como eu conecto as duas interfaces USB de modo a formar uma rede local maior, na qual, idealmente, cada máquina tem um endereço IP, está conectada à Internet e é capaz de acessar todas as outras máquinas através do SSH?

    
por hhhhhhhhh 28.09.2015 / 04:03

2 respostas

3

O que você precisa é configurar o bridging. O que a ponte fará é, basicamente, unir várias interfaces e deixar o computador que está executando a ponte funcionar como um comutador. O endereço IP é configurado na própria interface da bridge, e não nas interfaces constituintes.

Existem basicamente duas maneiras de fazer isso, ou você configura uma ponte com as duas interfaces USB, e então usa o iptables e presumivelmente algum tipo de NAT para rotear as máquinas para a Internet, ou você pode simplesmente colocar ambas as portas USB interfaces, bem como a interface física em uma única ponte. Dessa forma, você deixaria suas interfaces USB se conectarem diretamente à sua LAN e obter acesso à Internet dessa maneira.

Cabe a você escolher qual deles faz mais sentido para seu aplicativo.

A configuração ( /etc/network/interfaces ) para a configuração onde as interfaces de rede usb são conectadas à sua rede principal pode ser algo como isto, supondo que sua interface de rede principal seja chamada eth0.

iface eth0 inet manual
iface usb0 inet manual
iface usb1 inet manual

auto br0
iface br0 inet dhcp
  bridge_ports eth0 usb0 usb1

Mais detalhes podem ser encontrados no wiki de ajuda da comunidade Ubuntu .

Nesta configuração, seus dispositivos de rede USB obteriam endereços IP do servidor DHCP existente em sua rede ou seriam configurados com endereços IP estáticos em sua LAN local. Além disso, seu PC obteria o IP usando o DHCP. Certifique-se de que seus dispositivos conectados por USB não executem um servidor DHCP se você fizer isso ou você pode fazer outros usuários de sua rede se cruzarem. : -)

    
por 28.09.2015 / 22:25
0

No final, foi configurado da seguinte forma:

host

/ etc / network / interfaces

auto br0
iface br0 inet static 
    address 10.0.1.1
    netmask 255.255.255.0
    bridge_ports usb0 usb1
    pre-up ip addr flush dev usb1
    pre-up ip addr flush dev usb0

/etc/rc.local

sleep(15)
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward > /dev/null
iptables -P FORWARD ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE -s 10.0.1.0/24

dispositivo 0

/ etc / network / interfaces

auto usb0
iface usb0 inet static
    address 10.0.1.2
    netmask 255.255.255.0
    dns-nameserver 8.8.8.8
    up route add default gw 10.0.1.1

dispositivo 1

/ etc / network / interfaces

auto usb0
iface usb0 inet static
    address 10.0.1.3
    netmask 255.255.255.0
    dns-nameserver 8.8.8.8
    up route add default gw 10.0.1.1
    
por 30.09.2015 / 12:11