Bridge wifi to ethernet linux

Ubuntu 18.04 netplan create bridge from wifi to ethernet

I am running ubuntu 18.04 and do not have much experience with networking. This ubuntu server runs on our robot and is supposed to act as a wireless to lan bridge for the rest of the wired modules on the robot. I have been using dd-wrt routers previously in client bridge mode to achieve the same, but they are too inconsistent. An off the shelf extender with ethernet ports is a little expensive and hence i wanted to try this out. I have configured the wireless interface using netplan. Following are the network interfaces on my server, enp2s0 is the ethernet interface and wlp3s0 is the wifi interface:

br0: flags=4163 mtu 1500 inet 192.168.0.10 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe80::7c0d:f9ff:feb1:68ba prefixlen 64 scopeid 0x20 ether 7e:0d:f9:b1:68:ba txqueuelen 1000 (Ethernet) RX packets 3 bytes 138 (138.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 39 bytes 5047 (5.0 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 docker0: flags=4163 mtu 1500 inet 192.168.9.1 netmask 255.255.255.0 broadcast 192.168.9.255 inet6 fe80::42:a6ff:fee9:59a4 prefixlen 64 scopeid 0x20 ether 02:42:a6:e9:59:a4 txqueuelen 0 (Ethernet) RX packets 1115 bytes 84610 (84.6 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 843 bytes 77266 (77.2 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eno1: flags=4099 mtu 1500 inet 169.254.32.1 netmask 255.255.255.0 broadcast 169.254.32.255 ether fc:aa:14:e3:e4:96 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 20 memory 0xf7e00000-f7e20000 enp2s0: flags=4163 mtu 1500 inet 192.168.0.64 netmask 255.255.255.0 broadcast 192.168.0.255 ether fc:aa:14:e3:e4:94 txqueuelen 1000 (Ethernet) RX packets 3 bytes 180 (180.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 216 bytes 14171 (14.1 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (Local Loopback) RX packets 50687 bytes 11888298 (11.8 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 50687 bytes 11888298 (11.8 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 vethea1fda5: flags=4163 mtu 1500 inet6 fe80::94b1:bcff:fe80:d58e prefixlen 64 scopeid 0x20 ether 96:b1:bc:80:d5:8e txqueuelen 0 (Ethernet) RX packets 558 bytes 50143 (50.1 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 486 bytes 45921 (45.9 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 vethf80ef47: flags=4163 mtu 1500 inet6 fe80::d419:a5ff:fe1d:fb02 prefixlen 64 scopeid 0x20 ether d6:19:a5:1d:fb:02 txqueuelen 0 (Ethernet) RX packets 557 bytes 50077 (50.0 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 486 bytes 45965 (45.9 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 wlp3s0: flags=4163 mtu 1500 inet 192.168.0.43 netmask 255.255.255.0 broadcast 192.168.0.255 ether d8:fc:93:c5:df:aa txqueuelen 1000 (Ethernet) RX packets 6318 bytes 5376431 (5.3 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4444 bytes 851545 (851.5 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 
network: version: 2 renderer: networkd ethernets: enp2s0: dhcp4: no wifis: wlp3s0: dhcp4: no dhcp6: no addresses: [192.168.0.44/24] gateway4: 192.168.0.1 access-points: "leibnitz": password: "***********" bridges: br0: dhcp4: no addresses: [192.168.0.10/24] interfaces: [enp2s0,wlp3s0] parameters: stp: true forward-delay: 4 

The bridge part in the config file is mostly a copy paste from here and there without really understanding whats happening. What i understood is that this creates a bridge between interfaces, and since i have specified that the interfaces to be used are enp2s0 and wlp3s0. It creates a bridge between the 2 interfaces (Sorry if i’m wrong about this). The current status is that i can connect to the internet via my wireless interface but cannot ping the primary router (192.168.0.1) nor any other computers on the same subnet. Following is the output of brctl show:

bridge name bridge id STP enabled interfaces br0 8000.7e0df9b168ba yes enp2s0 docker0 8000.0242a6e959a4 no vethea1fda5 vethf80ef47 

When i connect a computer(configured with a static IP) to enp2s0, i dont get anything. I cant even ping the computer which is connected to enp2s0. Any advice or help regarding the same would be great.

Читайте также:  Беспроводной вай фай через розетку

Источник

Мост между WiFi соединением и Ethernet

С другой стороны, я с трудом представляю, зачем такое может понадобиться. Обычно мостом объединяют с локалкой не клиентский, а серверный интерфейс вайфая, и делается это обычно на роутерах.

Может, расскажете, что именно вы хотите в результате получить?

Description='A basic static ethernet connection' Interface=enp0s27 Connection=ethernet IP=no
Description='A simple WPA encrypted wireless connection using a static IP' Interface=wlp2s0 Connection=wireless Security=wpa ESSID='networkname' Key='xxxxxxx' IP=no
Description="Example Bridge connection" Interface=br0 Connection=bridge BindsToInterfaces=(enp0s27 wlp2s0) IP=static Address='192.168.10.20/24' Gateway='192.168.10.200' ## Ignore (R)STP and immediately activate the bridge SkipForwardingDelay=yes

Достаточно на сервере назначить телевизору IP из диапазона домашней сети, а при подключении вайфая включить на интерфейсе вайфая proxy ARP. Делается это так:

sysctl net.ipv4.conf.wlp2s0.proxy_arp=1
echo 1 > /proc/sys/net/ipv4/conf/wlp2s0/proxy_arp

В этом случае сервер будет автоматически отвечать в беспроводной сети на ARP-запросы к IP телевизора своим MAC-адресом, и пересылать телевизору пакеты, пришедшие на его IP.

Мост может понадобиться только в том случае, если телевизору зачем-то нужно подключение именно на канальном уровне.

По виду всё нормально, но я обычно пользуюсь командами ip без костылей netctl, так что мог чего-то упустить.

iw dev wlp2s0 set 4addr on

Источник

Bridge wlan0 to eth0

This wiki describes methods to bridge a wired and wireless interface to enable network communication between hosts reachable via either interface. This allows one or more wired hosts to share the wireless interface on the bridge host.

In my use case, I have a desk with a wired switch with multiple hosts connected. All wired devices on this switch can access my home wifi network via the bridge host’s wireless interface.

Читайте также:  Wifi антенна mimo сделай сам

I am only going to document the proxy ARP method as that’s what I’m currently using. Please feel free to add additional methods and remove this section of the introduction.

Method 1: Proxy ARP

These steps result in a working solution where hosts on the wired side and hosts on the wireless side are all in the same ip network. There are no frills added, such as dhcp or automatic route entries for the wired hosts. Each wired host needs to have a manually configured IP address and an entry manually added to the bridge host’s routing table.

Note: For your wired hosts, use IP addresses in the same IP range as the rest of your network but outside of the scope used by a local DHCP server, if applicable. You may need to reduce your DHCP scope to free up IP addresses for this purpose.

Configure the network interfaces on your bridge host:

Contents of /etc/network/interfaces

auto lo iface lo inet loopback auto wlan0 iface wlan0 inet dhcp hostname wyse3030-3 auto eth0 iface eth0 inet manual pre-up ifconfig $IFACE up pre-down ifconfig $IFACE down

Notice that the wireless interface (wlan0) uses dhcp from the home network as usual and that an IP address is not used at all on the wired interface (eth0).

Enable and create a local start-up script to add route entries at boot:

# rc-update add local default # touch /etc/local.d/RouteAdd.start # chmod +x /etc/local.d/RouteAdd.start

Add route statements for each host on the wired side of the bridge:

Contents of /etc/local.d/RouteAdd.start

ip route add 10.0.0.51/32 dev eth0 ip route add 10.0.0.52/32 dev eth0 ip route add 10.0.0.53/32 dev eth0

Читайте также:  Sonoff wifi реле sonoff basic switch

Contents of /etc/sysctl.d/local.conf

Источник

Мост между wifi и ethernet

Это работает, только если компьютер является точкой доступа, или если используется нестандартный 4-адресный режим wi-fi. Причина: конфликт на уровне протокола 802.11.

В обычном Ethernet’е различие mac-адреса официального получателя пакета и mac-адреса сетевой карты, которая его получает по факту (т.е. порта моста), проблемой не является. В wi-fi прием или отправка «чужих» пакетов невозможен, т.к. в заголовке есть место только для трех адресов из четырех (bssid, клиент, отправитель, получатель).

Подписался. Тоже хочу wifi в мост, только не с ethernet, а с tap, но это не важно наверное. Пробовал делать 4addr on, wifi просто отваливалась. Наверное на стороне точки тоже что-то сделать нужно.

Lavos ★★★★★ ( 02.11.16 13:48:36 MSK )
Последнее исправление: Lavos 02.11.16 13:49:01 MSK (всего исправлений: 1)

Да, на точке тоже надо включить четырехадресный режим.

Альтернативное решение — не делать честный мост, а настроить proxyarp. Копать в сторону parprouted.

У мну openwrt, оно наверное умеет. Но у меня ещё есть телефон с android вместо os, он сможет в 4addr?

с android вместо os, он сможет в 4addr?

Источник

Оцените статью
Adblock
detector