The purpose was to create an Internet connected WiFi-network at my parents' summer cottage.
I want to cover a fairly large area of the property and house. I might want several WiFi access points and control their placement and the placement of the 3G modem, therefore I did not want an integrated WiFi hub such as a Dovado 3/4G router (SEK 799 / €92 at Kjell & Co.
I'm using:
- a Raspberry Pi model B (SEK 298 / €34 at Webhallen)
- the Adafruit Occidentalis v 0.2 distribution (since I'd used it before)
- an unlocked Huawei HiLink E353, originally tied to Swedish operator Tre, I think (SEK 179 / €21 at Swedish auction site Tradera)
- Connected a WiFi access point I had earlier to the Raspberry Pi.
- My plan is to use Telenor Bredband Kontant (SEK 400 / €46 for 6 months and 10 GB data). I did my tests by borrowing the SIM card from my iPad.
- I think I also need a powered USB hub for the 3G modem, will experiment later to see if a more powerful supply for the Raspberry Pi might remove the need for this.
- Normally, I used ssh over a network connection to the Raspberry Pi, but when setting up the network bridge, I used a regular monitor (with an HDMI - DVI cable) and a USB keyboard, because the network interfaces must be shut down to set up the bridge.
Installed Occidentalis on the SD card.
Connected RasPi to MacBook with Ethernet cable. Internet sharing from WiFi to Ethernet on MacBook, to give RasPi Internet access. Logged in with ssh on Raspberry Pi.
Booted the RasPi.
Did:
sudo apt-get update
sudo apt-get upgrade
(takes a long time)
usb_modeswitch is required to get 3G modem to work:
apt-get install usb-modeswitch
Install UPnP client, will be needed to open ports in the modem:
Remove and re-insert dongle?
apt-get install miniupnpc
Reboot:
sudo shutdown -r now
On startup, stick should be available as eth1, check with ifconfig. If it doesn't it might be that the modem needs to be in a powered USB hub.
edit /etc/network/interfaces
Add:
iface eth1 inet dhcp
check with:
sudo ifup eth1
Great. Try to ssh into RasPi over public internet. How to get public IP?
wget http://ipecho.net/plain -O - -q ; echo
Got 90.129.85.242
Can't ssh to it (connection refused). After some research found out that in order to open port forwarding on the 3G modem, one must use UPnP.
Open port 22 to allow ssh connections from the Internet to the Raspberry Pi.
// to receive ssh
upnpc -r 22 TCP
Set up bridge (for more information, see documentation). This entails shutting down both network interfaces, so you will need to be connected to the Pi with keyboard & monitor, or with a third network connection:
I think I shut down eth0 and eth1 first:
Modified my WiFi access point to have IP 192.168.1.2
I think I shut down eth0 and eth1 first:
ifdown eth0Then set up the bridge:
ifdown eth1
brctl addbr br0It works! Can access Internet via Dongle from WiFi.
brctl addif eth0
brctl addif eth1
dhclient br0
Modified my WiFi access point to have IP 192.168.1.2
Now set configuration in /etc/network/intefaces:
auto lo br0
iface lo inet loopback
# Ethernet
iface eth0 inet manual
# Huawei 3G dongle
iface eth1 inet manual
allow-hotplug eth1
# Bridge
iface br0 inet dhcp
bridge_ports eth0 eth1
bridge_fd 0 # no forwarding delay
Configured DynDNS for my DNS provider Loopia according to these instructions.
Works very nicely!
Did you find this useful? Please Flattr me!
2 comments:
Very interesting!!!
But.... where do you configure the ppp connection between the modem3g and the ISP (the APN data)
Thank's very much!
I don't have the hardware here at the moment. I'm not sure if it was automatic, otherwise the 3G stick sets up a local web server to access the settings for the 3G modem.
I don't remember the IP address, but it was something fairly trivial like 192.168.1.1. If you don't have a graphical terminal on your PI, you need to set up IP forwarding to be able to access it from another machine on the network.
This is from memory. Good luck!
Post a Comment