EMOS Group 3 組員:郭柏宏 郭建漢 蕭鼎亞 黃雍文 黃博奕 Current Status Networking User Router User User Router User Router User User Current Status of Crowded Networking User Router User User Router … Router User User Motivation • • • • 通訊Bandwidth浪費在重覆註冊連線上 階層化(Hierarchy) 的網路連線與頻寬分配 Web-Browser 的網路UI 頻寬分配之監控 Concept User (M) User (S) User (S) User User User User Router … Router User User User Router User User User User User System Blocks Raspberry Pi (含Bandwidth monitoring) App. & Driver HOW ? 技術與人力分工圖 用Raspberry Pi 接通網路 (Man X2) 資本主義 之共產網 路Router 頻寬分享 Driver & 程式 UI & 頻寬 監控 (Man X2) (Man x1) Boot Materials Boot Materials 存取硬體資源Driver- by Python Python Python 頻寬分配 UI UI UI To monitor the network usage 1. A web server - apache 2. A program language build in Pi - Python web server Common Gateway interface GPIO To access the hardware resources, we should use GPIO on Pi to get the information. Then we can monitor the usage of wifi and manage the bandwidth which is shared with users. Reference • http://pingbin.com/2012/12/setup-wifiraspberry-pi/ • http://wwssllabcd.github.io/blog/2013/01/31 /how-to-setup-raspberry-pi/ • http://www.maketecheasier.com/set-upraspberry-pi-as-wireless-access-point/ Source Code: Configure the wireless adapter sudo nano /etc/network/interfaces • • • • • • • • • • • auto lo iface lo inet loopback iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet manual address 192.168.0.100 netmask 255.255.255.0 gateway 192.168.0.1 wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf Source Code: Install and configure a DHCP server sudo apt-get install isc-dhcp-server sudo nano /etc/dhcp/dhcpd.conf • • • • • • • • • subnet 192.168.42.0 netmask 255.255.255.0 { range 192.168.42.10 192.168.42.50; option broadcast-address 192.168.42.255; option routers 192.168.42.1; default-lease-time 600; max-lease-time 7200; option domain-name "local"; option domain-name-servers 8.8.8.8, 8.8.4.4; } sudo nano /etc/default/isc-dhcp-server Change “INTERFACES=""” to “INTERFACES="wlan0"” sudo service isc-dhcp-server restart Source Code: Install and configure the access point daemon sudo apt-get install hostapd sudo nano /etc/hostapd/hostapd.conf • • • • • • • • • • • • • • interface=wlan0 driver=nl80211 #driver=rtl871xdrv ssid=MyPi hw_mode=g channel=6 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=raspberry wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP sudo nano /etc/default/hostapd Remove the “#” in front of “DAEMON_CONF” and alter the line to read: DAEMON_CONF="/etc/hostapd/hostapd.conf" Source Code: Configure IP routing between the wireless and Ethernet (or 2 Wireless Adapters) sudo nano /etc/sysctl.conf Find the line which reads “Uncomment the next line to enable packet forwarding for IPv4” and uncomment the next line like this: # Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1 Run the following command to activate forwarding now: sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward" Now turn the Pi into a router with the follow commands: sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT (如果要用兩張網卡一收一發, 就把eth0 & wlan0 改成wlan0 & wlan1) And save the routing tables into the file “/etc/iptables.ipv4.nat” sudo sh -c "iptables-save > /etc/iptables.ipv4.nat” Edit “/etc/network/interfaces“: sudo nano /etc/network/interfaces And add the following line to the end of the file. This line will restore the routing table whenever the Pi is booted: pre-up iptables-restore < /etc/iptables.ipv4.nat