[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

This is an old revision of the document!


SandPit for Wifi to eth <del>bridge</del> routing

The reason for this HOWTO: word bridge is misleading

For a network bridge we assume a device that transfer unmodified network packets from one network connection to the other. One can create a bridge device (virtual) and add members to it. This works only for a members of a type wired - eth network cards. Network Bridge “connects” members on level 3 of OSI model. That means communication on TCP/IP level.
When you want to add a WiFi device to the bridge, you hit to a barrier: WiFi devices communicate on a level 2 of OSI model. So you can find many manuals on the internet, how to circumvent this (in a form of putting WiFi card to 4addr mode). This simply DO NOT WORK!
WiFi network card (member of bridge) authenticate and connects to AP, but TCP/IP packets do not travel over connection.
So searching for “wifi eth bridge” do not return a usefull solution. The culprit is word “bridge”.

General solution

A working solution is “Proxy ARP Routing” You simply enable IP forwarding and then for every device connected to eth side of a “bridge” you have to add a routing line to routing table. This can be automated by program parprouted - Proxy ARP routing daemon.

Solution for Slackware, step-by-step

This solution is for static IP addresses. See below for A use of DHCP.
Assuptions:
We want to interconnect one WiFi and one eth network card - devices wlan0 and eth0.
Prepare Slackware box so, to be able to comunicate over WiFi adapter (Networkmanager, rc.inet1 …), eth adapter is idle.
I had set up WPA2 AES verification with Networkmanager to get useable wpa_supplicant.conf later used with rc.inet1.
Disable all bootable network configurations (rc.networkmanager or other files for network setup are not executable) and set rc.inet1 executable.

1. IP forwarding must be enabled at Linux kernel compilation
2. download & compile & install http://www.hazard.maks.net/parprouted/parprouted-0.7.tar.gz *

warning


3. edit /etc/rc.d/rc.inet1.conf so to enable wlan0 and eth0, set them static IP numbers and set wlan0 to lowest index and connect to AP
4. set /etc/rc.d/rc.ip_forward executable:

     chmod +x /etc/rc.d/rc.ip_forward

5. add a line:

    /usr/local/sbin/parprouted wlan0 eth0 
      into /etc/rc.d/rc.local and make this file executable

That's all. Reboot and you have a working WiFi - eth bridge, also called WiFi extender or WiFi Internet share.

* read instructions for compilation, as you have to set path for one file correctly - default is not right!

DHCP enabled variant

Look below for a solution in a source link.

Source

 playground:playground ()