一塊arm開發板,帶有乙太網口,還有乙個在京東上買的usbwifi模組,wifi模組在ubuntu上直接可以用,輸入lsusb,發現其使用的wifi模組竟然是realtek的8192,於是想用這兩個網口實現無線路由的**功能,即板子的乙太網接到區域網,乙太網與wifi的wlan0直接存在一定**規則,然後手機或者筆記本連上8192的ap即可上網。
實現這一功能稍微有些繁瑣,需要移植和配置一些東西,這裡只說一下步驟與注意細節,不再詳細的去寫過程。
1乙太網部分。我的板子檔案系統是nfs的,掛到虛擬機器192.168.1.248,板子乙太網ip是192.168.1.100;
2ap部分。先移植8192驅動,把韌體放到指定位置,insmod 8192.ko,出現wlan0節點。ifconfig wlan 192.168.0.1 ,指定wlan0的ip位址。然後讓8192作為ap,需要移植hostapd,配合配置檔案,配置檔案裡主要是建立ap的一些引數,如ap名稱、密碼、加密方式等,然後執行hostapd,此時用手機掃瞄wifi出現 「rtwap」。8192的hostapd在驅動原始碼裡有。
3ip分配與獲取。通過udhcpd與udhcpc實現,udhcpd一般執行在路由器端,負責分發ip,udhcpc執行與終端,負責獲取ip,只有當路由器端執行了udhcpd,終端才可以通過udhcpc獲取ip,否則你是獲取不到ip的,移植udhcpd,編寫配置檔案,配置檔案描述了ip分發規則,當有客戶端連上ap後,udhcpd會跟據配置檔案的規則自動分配乙個ip位址。例子中的配置檔案ip分配從 192.168.0.2開始,這樣一般第乙個連上的ip是192.168.0.2,下乙個是192.168.0.3......。waln0的ip是192.168.0.1相當於路由器的閘道器。
4ip**。路由器具有路由和ip**功能,這裡我們只實現**功能。ip**依賴於核心的防火牆,需要先在核心裡選上相關配置選項,然後移植iptables,由iptables去實現。
移植iptables的時候需要注意,移植的時候庫使用什麼路徑,那麼檔案系統裡要把庫放到和移植時相同路徑,否則提示某些引數命令找不到。iptables移植好之後,即可進行**規則設定。
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -i postrouting -o eth0 -j masquerade
iptables -a froward -s 192.168.0.0/24 -j accept
iptables -a froward -d 192.168.0.0/24 -j accept
有這四條命令後,會將192.168.0.0網段的ip偽裝成eth0的192.168.1.x通過eth0** 。
5客戶端的設定。pc連上rtwap,獲取到ip 192.168.0.2,ping 192.168.1.248,但是ping超時,為什麼? 因為一般的筆記本有乙太網口和無線網口,預設 192.168.1.x ip通過乙太網發出去,而我們想讓192.168.1.248通過192.168.0.1發出去,這樣192.168.1.248到192.168.0.1閘道器之後,iptables進行**,然後選擇相應路由。指定ip位址由哪個網口發出去,要看pc的路由表,所以ping 不通的原因是我們沒有在本地新增相應路由。
sudo route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1
這樣設定以後,ping 192.168.1.248 就可以ping 通,然後 ssh [email protected] ,輸入密碼後可以登上虛擬主機。
6除錯工具。 移植tcpdump,可以對指定網絡卡抓包。tcpdump -i wlan0 -v 可以顯示wlan0的資料傳遞情況。我當時一直沒有ping通,後來通過tcpdump發現是pc端路由設定不對。
7備註。具體各個工具的移植網上資料較多,不再贅述。
無線路由引數
rts 閾值 為了防止在ap範圍內卻不在同一範圍內的無線節點互相傳送訊號導致衝突所用 比如 你在馬路開車,開到乙個拐角,對方也開到乙個拐角,如果你不鳴笛 傳送rts訊號 的話對方也就不知道你的存在,這樣極容易發生事故 當設為0表示只要傳送資料報就要檢測是否衝突,ap會傳送rts訊號。當設定為2347...
無線路由對接
無線路由對接 1.主路由按正常配置,配置到能正常無線上網 2.需橋接的路由先改lan介面,到網路引數 lan口設定,改變lan口的ip位址,改192.168.1.2 192.168.1.第三個可以用3,以此類推.改完儲存後通過192.168.1.2登入路由配置 3.設定橋接,在無線設定 基本設定中設...
無線路由的beacon interval
beacon interval 信標間隔時槽 一般無線網絡卡都是做所謂的被動式掃瞄 passive scanning 你開啟os下的無線網路管理程式 或是xp內建管理程式,無線網路卡其實都在從ism 頻道一直輪番掃瞄.等待掃到無線基地臺的beacon 才會顯示現在這區域有哪些ssid.而基地臺的be...