Назад | Перейти на главную страницу

Как объединить интерфейсы usb0 и usb1 в одну сеть?

У меня есть установка с тремя устройствами, все под управлением Ubuntu 14.04. Настройка выглядит следующим образом:

Я хотел бы иметь конфигурацию, в которой оба устройства могут подключаться к Интернету, но также могут подключаться друг к другу. И в идеале хост-компьютер должен иметь одинаковый IP-адрес при подключении с любого устройства. Я пробовал две возможные конфигурации, но обе не увенчались успехом.

1: usb0 и usb1 используют один и тот же IP-адрес и подсеть

хозяин

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

устройство 0

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

устройство 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

! проблема!

Подключается только устройство 0. На него можно пинговать, и он может подключаться к Интернету, но устройство 1 полностью выбрано из игры. Поэтому у него также нет подключения к Интернету.

2: usb0 и usb1 имеют разные IP-адреса

хозяин

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

устройство 0

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

устройство 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

! проблема!

Я не могу пинговать 10.0.1.1 с устройства номер 1.

Вопрос

Как мне подключить два интерфейса USB, чтобы они образовали большую локальную сеть, в которой в идеале каждая машина имеет один IP-адрес, подключена к Интернету и может получить доступ к любой другой машине через SSH?

Что вам нужно, так это настроить мост. Мостовое соединение в основном объединяет несколько интерфейсов, а затем позволяет компьютеру, на котором установлен мост, действовать как коммутатор. IP-адрес настраивается на самом интерфейсе моста, а не на составляющих интерфейсах.

В основном это можно сделать двумя способами: либо вы настраиваете мост с двумя интерфейсами USB, а затем используете iptables и, предположительно, какой-то NAT для маршрутизации машин в Интернет, либо вы можете просто вставить оба интерфейса USB. как физический интерфейс в едином мосту. Таким образом, вы позволите своим USB-интерфейсам напрямую подключаться к вашей локальной сети и получить доступ в Интернет.

Вам решать, какой из них больше подходит для вашего приложения.

Конфигурация (/etc/network/interfaces) для настройки, в которой сетевые интерфейсы USB соединены с вашей основной сетью, может выглядеть примерно так, если ваш основной сетевой интерфейс называется eth0.

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

auto br0
iface br0 inet dhcp
  bridge_ports eth0 usb0 usb1

Более подробную информацию можно найти в Вики-справка сообщества Ubuntu.

В этой настройке ваши сетевые USB-устройства будут либо получать IP-адреса от существующего DHCP-сервера в вашей сети, либо будут настроены со статическими IP-адресами в вашей локальной сети. Также ваш компьютер получит IP с помощью DHCP. Убедитесь, что ваши USB-подключенные устройства не запускают DHCP-сервер, если вы это сделаете, иначе вы можете заставить других пользователей вашей сети перекреститься. :-)

В итоге все было настроено так:

хозяин

/ и т.д. / сеть / интерфейсы

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

устройство 0

/ и т.д. / сеть / интерфейсы

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

устройство 1

/ и т.д. / сеть / интерфейсы

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