¿Cómo fusionar las interfaces usb0 y usb1 en una red?

¿Cómo fusionar las interfaces usb0 y usb1 en una red?

Tengo una configuración con tres dispositivos, todos con Ubuntu 14.04. La configuración es la siguiente:

Configuración de red con un host y dos dispositivos.

Lo que me gustaría tener es una configuración en la que ambos dispositivos puedan conectarse a internet pero también puedan conectarse entre sí. E idealmente, la PC host debería tener la misma IP cuando se conecte desde cualquiera de los dispositivos. Probé dos configuraciones posibles, pero ambas fallaron.

1: usb0 y usb1 usan la misma IP y subred

anfitrión

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 !

Solo se conecta el dispositivo 0. A este se le puede hacer ping y se puede conectar a Internet, pero el dispositivo 1 está completamente fuera del juego. Por tanto, tampoco tiene conexión a Internet.

2: usb0 y usb1 tienen una dirección IP diferente

anfitrión

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 !

No puedo hacer ping a 10.0.1.1 desde el dispositivo número 1.

Pregunta

¿Cómo conecto las dos interfaces USB para que forme una red local más grande en la que idealmente cada máquina tenga una dirección IP, esté conectada a Internet y pueda acceder a todas las demás máquinas a través de SSH?

Respuesta1

Lo que necesitas es configurar el puente. Lo que hará el puente es básicamente unir un montón de interfaces y luego dejar que la computadora que ejecuta el puente actúe como un interruptor. La dirección IP se configura en la propia interfaz del puente, en lugar de en las interfaces constituyentes.

Básicamente, hay dos formas de hacer esto: o configura un puente con las dos interfaces USB y luego usa iptables y presumiblemente algún tipo de NAT para enrutar las máquinas a Internet, o simplemente puede conectar ambas interfaces USB también. como interfaz física en un único puente. De esa manera, permitirá que sus interfaces USB se conecten directamente a su LAN y obtenga acceso a Internet de esa manera.

Depende de usted elegir cuál tiene más sentido para su aplicación.

La configuración ( /etc/network/interfaces) para la configuración donde las interfaces de red USB están conectadas a su red principal podría verse así, suponiendo que su interfaz de red principal se llame eth0.

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

auto br0
iface br0 inet dhcp
  bridge_ports eth0 usb0 usb1

Se pueden encontrar más detalles en elWiki de ayuda de la comunidad de Ubuntu.

En esta configuración, sus dispositivos de red USB obtendrían direcciones IP del servidor DHCP existente en su red o se configurarían con direcciones IP estáticas en su LAN local. Además, su PC obtendrá la IP mediante DHCP. Asegúrese de que sus dispositivos conectados por USB no ejecuten un servidor DHCP si hace esto o podría hacer que otros usuarios de su red se enfaden. :-)

Respuesta2

Al final quedó configurado de la siguiente manera:

anfitrión

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

información relacionada