Как подключить Ethernet через USB-соединение к хост-сети?

У меня есть одноплатный компьютер, который я хочу подключить к локальной сети / Интернету. SBC не имеет порта Ethernet, только встроенный беспроводной чип, который в настоящее время не работает. Но у него есть USB, и я подумал, что его можно подключить через Ethernet через USB к моей рабочей станции, а затем выполнить какой-то мост / пересылку. Я' m с использованием Beagle Bone Black Wireless и (в настоящее время) Arch Linux ARM am33x в качестве «клиента». Рабочая станция - Fedora 23. Ethernet через USB работает, я могу подключиться к SBC по SSH. Однако мне не удалось получить доступ от SBC к моей локальной сети или Интернету.

Список вещей, которые я уже пробовал:

Пример a:

Это позволяет мне подключаться к клиенту по SSH.

Конфигурация / Команды на клиенте:

modprobe g_ether

Конфигурация netctl:

Description='USB ethernet connection'

Interface=usb0

Connection=ethernet

IP=static

Address=('192.168.7.2/24')

DNS=('8.8.8.8')

#Gateway=('192.168.1.1')

## For IPv6 autoconfiguration

IP6=stateless

Конфигурация на рабочей станции:

ifconfig enp0s29u1u2 192.168.7.1

Пример b:

Я устал от этого для соединения двух интерфейсов ( enp0s29u1u2 - это Eth over боковой интерфейс USB и enp6s0 обращены к моей локальной сети, а также к Интернету); следующий код выполняется на Рабочей станции. Однако мне не удалось получить доступ от SBC к моей локальной сети или Интернету.

Список вещей, которые я уже пробовал:

Пример a:

Это позволяет мне подключаться к клиенту по SSH.

Конфигурация / Команды на клиенте:

modprobe g_ether

Конфигурация netctl:

Description='USB ethernet connection'

Interface=usb0

Connection=ethernet

IP=static

Address=('192.168.7.2/24')

DNS=('8.8.8.8')

#Gateway=('192.168.1.1')

## For IPv6 autoconfiguration

IP6=stateless

Конфигурация на рабочей станции:

ifconfig enp0s29u1u2 192.168.7.1

Пример b:

Я устал от этого, чтобы соединить два интерфейса ( enp0s29u1u2 - это Eth over боковой интерфейс USB и enp6s0 обращены к моей локальной сети, а также к Интернету); следующий код выполняется на Рабочей станции. Однако мне не удалось получить доступ от SBC к моей локальной сети или Интернету.

Список вещей, которые я уже пробовал:

Пример a:

Это позволяет мне подключаться к клиенту по SSH.

Конфигурация / Команды на клиенте:

modprobe g_ether

Конфигурация netctl:

Description='USB ethernet connection'

Interface=usb0

Connection=ethernet

IP=static

Address=('192.168.7.2/24')

DNS=('8.8.8.8')

#Gateway=('192.168.1.1')

## For IPv6 autoconfiguration

IP6=stateless

Конфигурация на рабочей станции:

ifconfig enp0s29u1u2 192.168.7.1

Пример b:

Я устал от этого для соединения двух интерфейсов ( enp0s29u1u2 - это Eth over боковой интерфейс USB и enp6s0 обращен к моей локальной сети, а также к Интернету); следующий код выполняется на Рабочей станции.

Мне надоело это для соединения двух интерфейсов ( enp0s29u1u2 - это интерфейс Eth через USB, а enp6s0 обращен к моей локальной сети, а также к Интернету); следующий код выполняется на Рабочей станции.

Я устал от этого, чтобы соединить два интерфейса ( enp0s29u1u2 - это интерфейс Eth через USB, а enp6s0 обращен к моей локальной сети, а также к Интернету); следующий код выполняется на Рабочей станции. Я нашел это здесь: Маршрутизация между двумя сетями в Linux?

echo 1 >> /proc/sys/net/ipv4/ip_forward
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i enp0s29u1u2 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o enp6s0 -j MASQUERADE
iptables --append FORWARD -i enp6s0 -o enp0s29u1u2 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables --append FORWARD -i enp0s29u1u2 -o enp6s0 -j ACCEPT       

Сначала я оставил IP-адреса такими, какими они были 192.168.1.0/24 для локальной сети и 192.168.7.0/24 для сети Ethernet через USB. Но я не мог добраться до своего шлюза или чего-либо еще под моей рабочей станцией. Я также пытался дать Beagle Bone адрес 192.168.1. * , что тоже не помогло. Я, наверное, что-то здесь упускаю. Может быть, маршрутизация?

Пример c:

Я также пытался установить мост между интерфейсами.

Конфигурация Netctl на beaglebone была настроена примерно так:

Description = 'USB ethernet connection'

Interface=usb0

Connection=ethernet

IP=static

Address=('192.168.1.210/24')

DNS=('8.8.8.8')

Gateway=('192.168.1.1')

## For IPv6 autoconfiguration

IP6=stateless

Команды (рабочая станция):

brctl addbr br0
brctl addif br0 enp6s0 enp0s29u1u2
ifconfig br0 192.168.1.202 (or some random free address)

Мне пришлось выполнить route add default gw 192.168.1.1 , чтобы восстановить доступ в Интернет на моей рабочей станции. Я тоже делал это на биглебоне, разрабатывать. Я не уверен, но поскольку я понимаю сетевой мост, он должен вести себя так, как будто я только что подключил устройство к коммутатору Ethernet (то есть члены сети могут общаться, как если бы моста там не было; но, по-видимому, ему нужен отдельный ip, поэтому я немного запутался, дайте мне подсказку).

Основной вопрос:

Требуется ли какая-то ручная маршрутизация для интеграции Beaglebone в локальную сеть и получения доступа в Интернет или что-то еще? Спасибо за любые подсказки! Также приветствуются обходные пути, поскольку я ищу временное решение.

3
задан 13 April 2017 в 15:14
1 ответ

У вас есть echo 1 >> / proc / sys / net / ipv4 / ip_forward

Но должно быть echo 1> / proc / sys / net / ipv4 / ip_forward

Шлюз закомментирован #Gateway = ('192.168.1.1') в одной из ваших опций.

Вам нужно будет сделать ip route add default через 192.168.1.1 на одноплатном компьютере, поэтому он знает, куда отправлять интернет-трафик. (Где 192.168.1.1 - это IP-адрес устройства с включенным ip_forward .)

2
ответ дан 3 December 2019 в 06:57

Теги

Похожие вопросы