Como mesclar interfaces usb0 e usb1 em uma rede?

Como mesclar interfaces usb0 e usb1 em uma rede?

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

Configuração de rede com um host e dois dispositivos.

O que eu gostaria de ter é uma configuração em que ambos os dispositivos possam se conectar à internet, mas também possam se conectar entre si. E, idealmente, o PC host deve ter o mesmo IP quando conectado a qualquer um dos dispositivos. Tentei duas configurações possíveis, mas ambas falharam.

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

hospedar

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 !

Apenas o dispositivo 0 é conectado. Este pode receber ping e 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

hospedar

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 executar ping em 10.0.1.1 do dispositivo número 1.

Pergunta

Como faço para conectar as duas interfaces USB para formar uma rede local maior na qual, idealmente, cada máquina tenha um endereço IP, esteja conectada à Internet e seja capaz de acessar todas as outras máquinas através de SSH?

Responder1

O que você precisa é configurar a ponte. O que a ponte fará é basicamente unir várias interfaces e, em seguida, deixar o computador que executa a ponte atuar como um switch. O endereço IP é configurado na própria interface da ponte, e não nas interfaces constituintes.

Existem basicamente duas maneiras de fazer isso: configurar uma ponte com as duas interfaces USB e, em seguida, usar iptables e, presumivelmente, algum tipo de NAT para rotear as máquinas para a Internet, ou você pode simplesmente conectar as duas interfaces USB também. como a interface física em uma única ponte. Dessa forma, você permitiria que suas interfaces USB se conectassem diretamente à sua LAN e obtivessem acesso à Internet dessa forma.

Cabe a você escolher qual faz mais sentido para sua aplicação.

A configuração ( /etc/network/interfaces) para a configuração em que as interfaces de rede USB são conectadas à sua rede principal pode ser semelhante a esta, assumindo 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 noWiki 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 DHCP. Certifique-se de que seus dispositivos conectados por USB não executem um servidor DHCP se você fizer isso ou poderá fazer com que outros usuários da sua rede se cruzem. :-)

Responder2

No final foi configurado da seguinte forma:

hospedar

/etc/rede/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/rede/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/rede/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

informação relacionada