構(gòu)建簡易家用路由器

構(gòu)建簡易家用路由器

構(gòu)建環(huán)境:

系統(tǒng):Ubuntu 14.04

網(wǎng)卡:兩張有線網(wǎng)卡,TL-WN821N

路由器硬件結(jié)構(gòu):

如圖:? ?

上圖所示,我們常用的家用路由器由三部分組成,包括左下角的交換芯片組,右下角的WIFI芯片和上方的CPU。一般路由器會(huì)有5個(gè)接口,這5個(gè)接口最終會(huì)通過交換芯片匯聚成一路觸發(fā)CPU中斷。由于交換芯片是可編程的,可以將WAN口單獨(dú)劃入一個(gè)VLAN,這樣可以將WAN和LAN區(qū)分開。而WIFI芯片則通過br0與LAN橋接在一起。

我們準(zhǔn)備兩張有線網(wǎng)卡和一張無線網(wǎng)卡。我們可以用一張有線網(wǎng)卡模擬圖中的WAN口,一張網(wǎng)卡模擬lan口,TL-WN821模擬WIFI芯片。

設(shè)置無線接口為AP模式:

1、安裝hostapd ?apt-get install hostapd

2、nmcli nm wifi off ?#改變NetworkManager里的狀態(tài),關(guān)閉wifi,同時(shí)軟鎖定

3、rfkill unblock wlan #啟用wifi設(shè)備,不同于網(wǎng)絡(luò)狀態(tài)中的啟用wifi(后者改變NetworkManager里的狀態(tài))

完成上面3步后,ifconfig 查看無線接口假設(shè)為wlan1

橋接LAN和無線接口:

1、下載brctl源碼包:http://www.linuxfromscratch.org/blfs/view/svn/basicnet/bridge-utils.html

autoconf

./configure

make

make install

2、新建橋接口brctl braddr br0 ; ifconfig br0 up

3、橋接無線接口到br0,并激活無線配置,添加配置無線配置文件/etc/hostapd/wpa2.conf,內(nèi)容如下

interface=wlan1//接口名字

bridge=br0

driver=nl80211

ssid=my_router_test//ssid

hw_mode=g //模式

channel=11 //頻道

wpa=2

wpa_passphrase=12345678//密碼

wpa_key_mgmt=WPA-PSK

wpa_pairwise=CCMP

啟動(dòng)無線配置

hostapd -B /etc/hostapd/wpa2.conf

4、查看橋接口brctl show 發(fā)現(xiàn)wan1 已經(jīng)在br0下面了。

5、假如如還用其他有線網(wǎng)卡,如eth1,可以通過brctl addif br0 eth1 將eth1加入br0橋

路由器軟件結(jié)構(gòu)


如圖上圖所示,web server一般用于用戶頁面配置參數(shù)使用,web server通過CGI調(diào)用flash set命令工具將參數(shù)保存到flash,隨后CGI啟動(dòng)初始化腳本,腳本將所需參數(shù)通過flash get讀取出來,并用讀取的參數(shù)重啟各個(gè)應(yīng)用。

配置DHCP服務(wù)器(用于給連接路由器的設(shè)備分配IP)

這里用的是isc-dhcp-server,你也可以使用其它的dhcp服務(wù)器程序

1、安裝isc-dhcp-server,sudo?apt-get?install?isc-dhcp-server

2、修改dhcp server所綁定的接口,修改/etc/default/isc-dhcp-server文件的”INTERFACES”字段改為br0。

3、修改/etc/dhcp/dhcpd.conf文件,修改分配的DNS地址option?domain-name-servers后面改為8.8.8.8,?114.114.114.114

配置DHCP地址池,在文件尾部添加

subnet 192.168.1.0 netmask 255.255.255.0 {

range dynamic-bootp 192.168.1.2 192.168.1.100;

option broadcast-address 192.168.1.255;

option routers 192.168.1.1;

}

4、重啟接口ifconfigbr0?192.168.1.1?netmask?255.255.255.0?up

5、重啟DHCP服務(wù)器/etc/init.d/isc-dhcp-server?restart

IPtables


Iptables主要作用是用于攔截,修改,標(biāo)記數(shù)據(jù)包。

iptables默認(rèn)有5 條鏈,他們對(duì)應(yīng)處理數(shù)據(jù)包的5個(gè)掛在點(diǎn)。5個(gè)掛載點(diǎn)的位置如圖所示:

PREROUTING:數(shù)據(jù)包進(jìn)入路由表之前

INPUT:通過路由表后目的地為本機(jī)

FORWARD:通過路由表后,目的地不為本機(jī)

OUTPUT:由本機(jī)產(chǎn)生,向外轉(zhuǎn)發(fā)

POSTROUTIONG:發(fā)送到網(wǎng)卡接口之前

iptables另外還有3個(gè)做特定處理的表。

mangle?表用于標(biāo)記數(shù)據(jù)包

nat用于轉(zhuǎn)換地址

filter用戶過濾數(shù)據(jù)包

Iptables鏈與表的關(guān)系如圖:


如上圖所示PREROUTING和POSTROUTING是不能進(jìn)行過濾操作的,且各個(gè)表在鏈中的處理順序是mangle > nat > filter

NAT:

為了成功的與公網(wǎng)進(jìn)行通信,我們需要把我們的私有地址轉(zhuǎn)換成我們唯一的公網(wǎng)地址才行。

1、開啟LINUX的路由轉(zhuǎn)發(fā)功能 sudo sysctl -w net.ipv4.ip_forward=1

2、iptables -F ?清理iptable所有表的所有規(guī)則

iptables -t nat -F 指定清理iptable nat表的所有規(guī)則

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //將路由后從eth0接口出去的包,進(jìn)行源IP地址偽裝,偽裝成該接口的IP地址。

最后將命令整理成init.sh shell腳本,設(shè)置成開機(jī)自啟動(dòng)就完成了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,362評(píng)論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,577評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,486評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,852評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,600評(píng)論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,944評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,944評(píng)論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,108評(píng)論 0 290
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,652評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,385評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,616評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,111評(píng)論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,798評(píng)論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,205評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,537評(píng)論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,334評(píng)論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,570評(píng)論 2 379

推薦閱讀更多精彩內(nèi)容

  • dnsmasq是什么我就不說了,請(qǐng)自行百度。 目前我需要使用的用途是:1.dhcp(分配一個(gè)或者多個(gè)內(nèi)網(wǎng)ip地址)...
    dnaEMx閱讀 16,268評(píng)論 0 6
  • 起因 現(xiàn)在市面上有那么多路由器可以選擇,為什么還要自己造一臺(tái)呢?很多國產(chǎn)路由器 fork 自 OpenWRT 的源...
    程序員Delton閱讀 3,476評(píng)論 5 10
  • 我想要什么? 我能克服什么? 我該怎么做? 依現(xiàn)在看他是不會(huì)培養(yǎng)我成長了,只能全靠自己。用打掉牙往肚里咽的勇氣,也...
    空靈人生閱讀 191評(píng)論 0 0
  • 父親節(jié),我嬸寫了篇文章,說讓我也寫寫,我說我不敢,因?yàn)槲視?huì)哭,但是我還是寫了,二十多年,沒有說過這些,今天,...
    王妮妮_閱讀 236評(píng)論 0 0
  • 微涼的清晨,走在鋪滿青石板的林蔭小道上,腳下層層的落葉像一塊寬大柔軟的金色地毯,踩在上面發(fā)出綿綿的沙沙聲。 陣陣秋...
    纖子墨閱讀 589評(píng)論 4 12