Now we are ready to plug in the USB ethernet connector. I prefer to make this ethernet connection, the connector to your internet provider, but there is nothing to say you can’t make it your LAN connection.
If you don’t have any previous networking experience, LAN means Local Area Network, this is what will be behind your firewall, hidden and protected from the outside world. The way we are going to setup the firewall, all the computers behind it will look like a single computer. By contrast, the internet is a Wide Area Network, or WAN for short.
Make sure your USB ethernet adapter is plugged in, and run the following command.
lsusb
You should see something like the following for the output
Bus 001 Device 004: ID 1267:0103 Logic3 / SpectraVideo plc G-720 Keyboard Bus 001 Device 003: ID 0b95:7720 ASIX Electronics Corp. AX88772 Bus 001 Device 002: ID 2109:2811 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
In my case, that ASIX Electronics Corp. line is my USB ethernet. This is very good, this means I don’t have to compile a new linux kernel module for it. Now, we want to see a little more information about it. Enter the following into the console.
ifconfig
And you will get something like the following for output
eth0 Link encap:Ethernet HWaddr d0:39:72:54:4d:e7 inet addr:10.0.1.1 Bcast:10.0.1.255 Mask:255.255.255.0 inet6 addr: fe80::d239:72ff:fe54:4de7/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:22296295 errors:0 dropped:118 overruns:0 frame:0 TX packets:32827682 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1367972463 (1.3 GB) TX bytes:2528887318 (2.5 GB) Interrupt:40 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:1644 errors:0 dropped:0 overruns:0 frame:0 TX packets:1644 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:139327 (139.3 KB) TX bytes:139327 (139.3 KB) usb0 Link encap:Ethernet HWaddr ba:67:28:61:85:ea inet addr:192.168.7.2 Bcast:192.168.7.3 Mask:255.255.255.252 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) rename3 Link encap:Ethernet HWaddr b6:c3:97:fe:20:c0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:34242743 errors:593 dropped:0 overruns:0 frame:593 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
This shows our network connections. “usb0” is NOT our usb to ethernet adapter, rather it is something that is pre-configured in our ubuntu distribution for the beaglebone, I must admit, I am not 100% sure what good it is. “rename3” is the item we are looking for, as you can see we need to setup an IP for the adapter, and the name of “rename3” is rather obnoxious. To satisfy my inner “Monk“, and because I am a lazy typist, I want to make the name shorter and more meaningful, thus we will rename the adapter to reflect its purpose “wan0”.
We will need to take note of the HWaddr, which is the MAC address, so we can edit the next file to rename the adapter. To do this renaming, open the file using your text editor of choice/
sudo nano /etc/udev/rules.d/70-persistent-net.rules
You should see a file that looks like
# Auto generated by RootStock-NG: setup_sdcard.sh
# udevadm info -q all -p /sys/class/net/eth0 --attribute-walk
# BeagleBone: net device ()
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
At the end of the file, add the following line, making sure to replace the MAC address from your adapter.
# USB device 0x:0x (AX88772)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="b6:c3:97:fe:20:c0", NAME="wan0"
Essentially, we are adding a device to the net(working) subsystem, uniquely identifying it by the MAC address (you did remember to change it to yours, right?). Save the file, and do a clean reboot with the following command
sudo reboot
When the it finishes the reboot, run the ifconfig
command again, to verify the adapter was correctly renamed.
Now, we need to setup the adapter to retrieve an IP address from your ISP, to do that we need to edit /etc/network/interfaces
sudo nano /etc/network/interfaces
Now add the following at the bottom of the file
# The WAN(internet) network interface
auto wan0
iface wan0 inet dhcp
Like many scripts and configurations in the Unix world the “#” tells the system to ignore this line, so you can put in stuff that is meaningful to you. Programmer call these lines “comments”.
auto wan0
tells the system to bring up this network interface upon boot.
iface wan0 inet dhcp
tells the system, for interface (iface) wan0, get a version 4 internet (inet) address from DHCP. Because my ISP doesn’t support IPv6, I won’t set that up right now. If you have a static IP from your ISP, or want to do additional things, please refer to the debian documentation.
Now we need to setup a very minimal firewall, so it is safe for us to connect to the internet, and make sure all these changes work. That will be part 7.