頻寬分配 - RSWiki

advertisement
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
Download