2020樹莓派兩種方式搭建ATC網(wǎng)損測(cè)試系統(tǒng)

ATC介紹

https://github.com/facebookarchive/augmented-traffic-control

ATC是一個(gè)基于TC的端到端網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)擁塞項(xiàng)目佩谷。

通過利用TC模擬在兩個(gè)網(wǎng)卡之間的數(shù)據(jù)延時(shí)、丟包、抖動(dòng)等網(wǎng)絡(luò)模型。

python-django是一個(gè)框架,用于atc交互用的涩禀。

樹莓派介紹

image

樹莓派就是一個(gè)嵌入式linux設(shè)備,裝好系統(tǒng)就是一臺(tái)五臟俱全的pc主機(jī),就是性能差了點(diǎn)羔沙,最新版本的raspiberry 4B 最高配置可選4GB內(nèi)存的,性能據(jù)說是pi3b+的3倍厨钻。對(duì)比路由器扼雏,其性能還是強(qiáng)很多的坚嗜。

樹莓派硬件接口介紹

最新的pi4B 有一個(gè)千兆網(wǎng)口,一個(gè)type-c電源接口诗充,兩個(gè)4k級(jí)別的hdmi口苍蔬,一個(gè)音頻輸出口,兩個(gè)usb3.0口蝴蜓,兩個(gè)usb2.0口碟绑,一組24pin的gpio口,有很強(qiáng)的拓展性茎匠,還有一個(gè)連接相機(jī)的csi口格仲,無線連接方面,高性能藍(lán)牙诵冒,雙頻wifi凯肋。整體來說樹莓派4B對(duì)比3B升級(jí)挺多的,也挺值得買的汽馋。

網(wǎng)絡(luò)拓?fù)鋱D介紹

有兩種搭建模式侮东,如果想用樹莓派發(fā)射熱點(diǎn)并使用wifi接入,可以只用一根網(wǎng)線連接豹芯。

第二種模式是通過在樹莓派增加一個(gè)USB網(wǎng)卡苗桂,隨后用有線USB網(wǎng)卡連接路由器,路由器當(dāng)作交換機(jī)使用告组,拓展樹莓派的網(wǎng)口和wifi煤伟,測(cè)試樹莓派的wifi性能沒有路由器好。所以這種設(shè)置模式比較適合距離wifi較遠(yuǎn)的使用場(chǎng)景木缝。


一圖勝千言便锨,這個(gè)圖要仔細(xì)看,認(rèn)真看N业放案!

AP熱點(diǎn)模式ATC搭建教程

第一步,進(jìn)入系統(tǒng)中設(shè)置本地lcoal為china矫俺,不然熱點(diǎn)頻段不符合國內(nèi)要求吱殉,其他設(shè)備連接的時(shí)候會(huì)出現(xiàn)斷聯(lián)的情況。

隨后按照以下教程安裝一鍵熱點(diǎn)開啟腳本

#全部使用root權(quán)限
#將代碼copy到本地厘托,安裝 全部使用root權(quán)限
git clone https://github.com/oblique/create_ap
cd create_ap
make install

#安裝依賴的庫
apt-get install util-linux procps hostapd iproute2 iw haveged dnsmasq

#執(zhí)行命令

#創(chuàng)建WiFi熱點(diǎn)(GitHub上有多種方式創(chuàng)建友雳,可以查找自己需要的那種)
sudo create_ap wlan0 eth0 熱點(diǎn)名 密碼

#開機(jī)啟動(dòng)
將 'sudo create_ap wlan0 eth0 熱點(diǎn)名 密碼 & ' 添加到/etc/rc.local文檔中,即可開機(jī)啟動(dòng)

安裝ATC腳本

https://github.com/facebookarchive/augmented-traffic-control 官網(wǎng)根據(jù)官網(wǎng)安裝和配置铅匹,在配置settings.py文件時(shí)增加ALLOWED_HOSTS修改 押赊,允許所有ip使用ATC。

ALLOWED_HOSTS = ['*'] 

隨后就是創(chuàng)建啟動(dòng)腳本:(腳本路徑和名字: /home/pi/atcui/autoShell.py )

sudo nano /home/pi/atcui/autoShell.py
#寫入以下內(nèi)容

# coding: UTF-8
import sys
import time
reload(sys)
sys.setdefaultencoding('utf8')
import subprocess
import os
import commands

#os.system('cmd1 && cmd2')
startAP = "sudo create_ap wlan0 eth0 pi33 12345678  &"
runAtcServer = "sudo python /home/pi/atcui/manage.py runserver 0.0.0.0:8000"
startAtcInit = "sudo atcd --atcd-wan eth0  --atcd-lan wlan0"

subprocess.Popen(startAP, shell=True)
time.sleep(10)
subprocess.Popen(runAtcServer, shell=True)
time.sleep(10)
subprocess.Popen(startAtcInit, shell=True)
#subprocess.call(cmd,shell=True)

設(shè)定自啟動(dòng)包斑,在etc/rc.local文件添加

python /home/pi/atcui/autoShell.py &

隨后愉快地重啟: sudo reboot

重啟后流礁,連接wifi涕俗,進(jìn)入192.168.12.1:8000 網(wǎng)址后就可以看到熟悉的atc頁面了。

路由橋接模式ATC搭建教程

把樹莓派和路由器的wan口用有線連接在一起神帅,路由器關(guān)閉dhcp服務(wù)器功能再姑。樹莓派通過自帶的網(wǎng)口和外網(wǎng)連接。

參考這位臺(tái)灣小友設(shè)置ap的方式去設(shè)置有線路由模式

首先找御,將目前已經(jīng)安裝的軟件都先更新到最新询刹。

sudo apt update
sudo apt upgrade

安裝對(duì)應(yīng)的軟件dnsmasq,用于解析dns

sudo apt install dnsmasq -y

停用對(duì)eth1 (usb有線網(wǎng)卡) 的DHCP客戶端ip分配萎坷,設(shè)定固定ip凹联。

sudo nano /etc/dhcpcd.conf
#編輯dhcpd.conf文件,在最后輸入下文哆档,隨后保存蔽挠,eth1是你作為lan口(usb網(wǎng)卡)的網(wǎng)卡名稱,可以在ifconfig命令中查看
#這里采用的ip段192.168.7.xxx不要和你的wan口ip相同瓜浸,防止發(fā)生沖突澳淑。
interface eth1
static ip_address=192.168.7.1/24
static routers=192.168.7.1
static domain_name_servers=8.8.8.8

設(shè)置dns

sudo nano /etc/dnsmasq.conf
# 設(shè)定dns內(nèi)容,在此文件中輸入下文插佛,隨后保存杠巡,eth1是網(wǎng)卡名稱,dhcp-range是設(shè)定可用ip范圍雇寇,一般是除了網(wǎng)口ip(上文設(shè)置的static routers)以外, .2到.253都設(shè)置為可分配ip氢拥,24h是指此ip刷新周期為24小時(shí)。
interface=eth1
domain-needed
bogus-priv
dhcp-range=192.168.7.2,192.168.7.253,24h

設(shè)定IP轉(zhuǎn)發(fā)策略锨侯,用于wan口和lan口不同網(wǎng)卡不同網(wǎng)段之間的數(shù)據(jù)轉(zhuǎn)發(fā)嫩海。

sudo nano /etc/sysctl.conf
net.ipv4.ip_forward=1
#開啟ipv4轉(zhuǎn)發(fā)功能
#退出文件并保存
#持續(xù)輸入以下命令用于IP轉(zhuǎn)發(fā):
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
#隨后保存上述指令并設(shè)為開機(jī)自動(dòng)運(yùn)行
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
sudo nano /etc/rc.local
#在開機(jī)自啟動(dòng)文件rc.local中寫入以下命令:
sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
iptables-restore < /etc/iptables.ipv4.nat

隨后又到了喜聞樂見的重啟環(huán)節(jié):

sudo reboot

重啟后設(shè)備連接到usb網(wǎng)卡上就可以自動(dòng)獲取ip,并可以正常上網(wǎng)了囚痴。如果重啟后不能正常上網(wǎng)叁怪,請(qǐng)排查問題后再往下走。

隨后是按照ATC深滚,步驟和注意事項(xiàng)已經(jīng)在上一個(gè)模式中給出奕谭,這里就不重復(fù)了,但是在編寫rc.local文件時(shí)痴荐,啟動(dòng)atc的腳本要最后再運(yùn)行血柳,且腳本autoShell.py 要修改成下面這樣子,就是刪除AP開啟指令蹬昌。

# coding: UTF-8
import sys
import time
reload(sys)
sys.setdefaultencoding('utf8')
import subprocess
import os
import commands

#os.system('cmd1 && cmd2')
#startAP = "sudo create_ap wlan0 eth0 pi33 12345678  &"

runAtcServer = "sudo python /home/pi/atcui/manage.py runserver 0.0.0.0:8000"
startAtcInit = "sudo atcd --atcd-wan eth0  --atcd-lan eth1"

#subprocess.Popen(startAP, shell=True)
time.sleep(10)
subprocess.Popen(runAtcServer, shell=True)
time.sleep(10)
subprocess.Popen(startAtcInit, shell=True)
#subprocess.call(cmd,shell=True)

設(shè)置完atc重啟后混驰,連接路由器lan口或者連接路由器wifi攀隔,進(jìn)入192.168.7.1:8000 網(wǎng)址后就可以看到熟悉的atc頁面了皂贩。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末栖榨,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子明刷,更是在濱河造成了極大的恐慌婴栽,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辈末,死亡現(xiàn)場(chǎng)離奇詭異愚争,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)挤聘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門轰枝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人组去,你說我怎么就攤上這事鞍陨。” “怎么了从隆?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵诚撵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我键闺,道長(zhǎng)寿烟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任辛燥,我火速辦了婚禮筛武,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘挎塌。我一直安慰自己畅铭,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布勃蜘。 她就那樣靜靜地躺著硕噩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪缭贡。 梳的紋絲不亂的頭發(fā)上炉擅,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音阳惹,去河邊找鬼谍失。 笑死,一個(gè)胖子當(dāng)著我的面吹牛莹汤,可吹牛的內(nèi)容都是我干的快鱼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼抹竹!你這毒婦竟也來了线罕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤窃判,失蹤者是張志新(化名)和其女友劉穎钞楼,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體袄琳,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡询件,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了唆樊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宛琅。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖逗旁,靈堂內(nèi)的尸體忽然破棺而出夯秃,到底是詐尸還是另有隱情,我是刑警寧澤痢艺,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布仓洼,位于F島的核電站,受9級(jí)特大地震影響堤舒,放射性物質(zhì)發(fā)生泄漏色建。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一舌缤、第九天 我趴在偏房一處隱蔽的房頂上張望箕戳。 院中可真熱鬧,春花似錦国撵、人聲如沸陵吸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽壮虫。三九已至,卻和暖如春环础,著一層夾襖步出監(jiān)牢的瞬間囚似,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國打工线得, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留饶唤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓贯钩,卻偏偏與公主長(zhǎng)得像募狂,于是被迫代替她去往敵國和親办素。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

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