【SDN】普通路由器刷OpenWrt + OpenVSwitch教程完美版_搭建SDN OpenFlow1.3协议的路由器(Flash>16M)
生活随笔
收集整理的這篇文章主要介紹了
【SDN】普通路由器刷OpenWrt + OpenVSwitch教程完美版_搭建SDN OpenFlow1.3协议的路由器(Flash>16M)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
* * ┏┓ ┏┓+ +* ┏┛┻━━━┛┻┓ + +* ┃ ┃ * ┃ ━ ┃ ++ + + +* ████━████ ┃+* ┃ ┃ +* ┃ ┻ ┃* ┃ ┃ + +* ┗━┓ ┏━┛* ┃ ┃ * ┃ ┃ + + + +* ┃ ┃* ┃ ┃ + * ┃ ┃ * ┃ ┃ + * ┃ ┗━━━┓ + +* ┃ ┣┓* ┃ ┏┛* ┗┓┓┏━┳┓┏┛ + + + +* ┃┫┫ ┃┫┫* ┗┻┛ ┗┻┛+ + + +*
一、教程簡(jiǎn)介
Author: louis
Email:louis.yyj.dev@foxmail.com
編譯環(huán)境:Ubuntu20.04(or Ubuntu18.04) 建議20.04
路由器品牌:紅米
路由器型號(hào):Redmi AX6000
編寫(xiě)日期:2023.2.14 (情人節(jié)快樂(lè))
更新日期:2023.3.3
刷機(jī)前請(qǐng)確認(rèn)你的路由器支持OpenWrt,并確定Flash大小,具體方法請(qǐng)進(jìn)入下面的網(wǎng)址,在Model一欄中輸入你路由器型號(hào),如"TL-MR3420",有搜索結(jié)果,并列出你路由器支持的版本(路由器背部或進(jìn)入路由管理界面查看版本),則代表支持,否則不支持,點(diǎn)擊Device Page可查看路由器硬件信息。路由器型號(hào)確認(rèn)網(wǎng)址
如果你的路由器Flash=4M,請(qǐng)移步該教程,刷入僅支持OpenFlow1.3的OpenWrt,無(wú)法刷入OpenVSwitch。請(qǐng)注意,僅刷入OpenFlow1.3但不含OpenVSwitch的路由器是無(wú)法進(jìn)行流表操作的,僅能體驗(yàn)一下控制與轉(zhuǎn)發(fā)分離的操作,故建議購(gòu)買(mǎi)更大FLASH的路由器,以成功部署SDN:點(diǎn)我轉(zhuǎn)跳
如果倉(cāng)庫(kù)失效,可進(jìn)入OpenWrt倉(cāng)庫(kù)發(fā)布網(wǎng)站進(jìn)行更正:OpnWrt倉(cāng)庫(kù)發(fā)布網(wǎng)址
福利:如果各位網(wǎng)友如果不想自己部署固件編譯環(huán)境,可以直接下載我打包好的"openwrt"文件夾到根目錄,直接sudo make menuconfig + make V=99即可編譯出固件,免去環(huán)境搭建和試錯(cuò)環(huán)節(jié)(教程步驟還是簡(jiǎn)單看一下),好用給我點(diǎn)個(gè)贊就行。
OpenWrt完整包下載地址(免部署環(huán)境.請(qǐng)?jiān)赨buntu20.04.6下使用): 鏈接:https://pan.baidu.com/s/19y1XNZ7yPKTLMEKNvsAvoQ 提取碼:guet二、教程正文
1.安裝依賴
(更新系統(tǒng)源與軟件) sudo apt update && sudo apt upgrade(安裝依賴) sudo apt install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils subversion libncurses5-dev ncurses-term zlib1g-dev subversion git gawk asciidoc libz-dev python3-pip(可選,更改python指向python3、pip指向pip3) echo alias python=python3 >> ~/.bashrc echo alias pip=pip3 >> ~/.bashrc source ~/.bashrc2.獲取OpenWrt、OpenVSwitch并安裝依賴
(獲取OpenWRT源碼) git clone https://git.openwrt.org/openwrt/openwrt.git (或從百度網(wǎng)盤(pán)下載(文件夾放到home目錄下):https://pan.baidu.com/s/1I3t0zdim_HEWaoYuZAgQsw 提取碼: guet)(進(jìn)入代碼目錄,一定要先進(jìn)入openwrt目錄,再克隆packages文件夾) cd openwrt/(獲取OpenWRT依賴——packages包) git clone git://git.openwrt.org/openwrt/packages.git (或從百度網(wǎng)盤(pán)下載(文件夾放到home目錄下):https://pan.baidu.com/s/162gLGBOp56P3IHmeF1AvhQ 提取碼: guet)(更新最新代碼,安裝最新組件) sudo ./scripts/feeds update -a sudo ./scripts/feeds install -a (如果運(yùn)行此處有警告,別管,在運(yùn)行一次該命令即可) ./scripts/feeds install -a -p luci ./scripts/feeds update packages luci(更新版本號(hào)) svn up(添加openVSwitch代碼連接) echo 'src-git openVswitch https://github.com/pichuang/openvwrt.git' >>feeds.conf(克隆OpenVSwitch源碼) sudo ./scripts/feeds update openVswitch(安裝OpenVSwitch) sudo ./scripts/feeds install -a -p openVswitch(添加一個(gè)patch) wget https://gist.githubusercontent.com/pichuang/7372af6d5d3bd1db5a88/raw/4e2290e3e184288de7623c02f63fb57c536e035a/openwrt-add-libatomic.patch -q -O - | patch -p13.配置系統(tǒng)、編譯并生成固件
(進(jìn)入編譯前設(shè)置) sudo make menuconfig對(duì)其中的選項(xiàng)設(shè)置參考如下(根據(jù)路由器實(shí)際型號(hào)選擇):(選擇CPU型號(hào),必選) Target System ---> 選擇 "Atheros ATH79" (請(qǐng)根據(jù)你的實(shí)際路由器型號(hào)選擇) Subtarget ---> 選擇 "Device with small flash" (請(qǐng)根據(jù)你的實(shí)際路由器型號(hào)選擇)(選擇路由器型號(hào),必選) Target Profile ---> 選擇 "TP-Link TL-MR3420 v1" (請(qǐng)根據(jù)你的實(shí)際路由器型號(hào)選擇)(添加UTF-8編碼,必選) Kernel module ---> Native Language Support ---> 光標(biāo)放在"kmod-nls-utf8"選項(xiàng)上,按兩下空格變成<*>(添加openVSwitch支持,必選) Network ---> Open vSwitch ---> 除了"ovsd"以外,全部調(diào)成<*>(添加openFlow1.3支持,必選) Network ---> OpenFlow---> 調(diào)成<*>(添加LuCI用戶交互界面、LuCI中文語(yǔ)言支持包、LuCI_DDNS選項(xiàng),可選) LuCI ---> 1.Collection ---> 光標(biāo)放在"luci"選項(xiàng)上,按2下空格,變成<*> LuCI ---> 2.Modules ---> Translations ---> 光標(biāo)放在"Chinese Simplified (zh_Hans)"選項(xiàng)上,按兩下空格變成<*> LuCI ---> 3.Applications ---> 光標(biāo)放在"luci-app-ddns"選項(xiàng)上,按兩下空格變成<*>(添加復(fù)位鍵支持,沒(méi)有該選項(xiàng)則忽略此步驟,可選) Utilities ---> 光標(biāo)放在"restorefactory"選項(xiàng)上,按兩下空格變成<*>(其他,建議配置) Advanced configuration options(for developers) 按一下空格調(diào)成<*>,然后按回車(chē)進(jìn)入: Target Options 調(diào)成<*>后回車(chē)進(jìn)入,取消掉"Build packages with MIPS16 instructions",即調(diào)成<> Toolchain 調(diào)成<*>后回車(chē)進(jìn)入,選擇 Binutils Version(Binutils 2.39) ---> 選擇"Binutils 2.40"在Libraries選項(xiàng)里找到libustream-openssl和libustream-mbedtls這兩個(gè)組件,取消選中其中一個(gè),只能2選1:最后選擇界面最下方的 "save" ,回車(chē)2下后保存,選擇"Exit"退出。(更改所有文件和文件夾的擁有者為當(dāng)前用戶) sudo chgrp -R $USER * sudo chown -R $USER *(編譯,需要聯(lián)網(wǎng),勿用sudo,首次編譯時(shí)間較久,大于2小時(shí),耐心等待) make V=99(如果編譯出來(lái)的固件太大無(wú)法刷機(jī),使用下面語(yǔ)句清理編譯信息后,重新配置,減少插件量,再編譯) make clean make dirclean sudo rm .config make menuconfig 重新選擇信息,減少配置然后重新編譯:make V=994.刷入固件
(打開(kāi)編譯保存目錄) cd /home/$USER/openwrt/bin/ar71xx/(列出所有文件) ls(找到我們所需要的固件) 固件命名格式:openwrt-系統(tǒng)版本-硬件平臺(tái)-具體分支-設(shè)備型號(hào)-硬件版本-分區(qū)類(lèi)型-固件類(lèi)型.bin openwrt-ar71xx-generic-tl-mr3420-v1-squashfs-factory.bin (如果從路由器原廠固件刷OpenWRT,則選擇該固件刷入) openwrt-ar71xx-generic-tl-mr3420-v1-squashfs-sysupgrade.bin (如果路由器原本就有OpenWRT,則選擇該固件刷入)(由于路由器原系統(tǒng)原因,最好將名稱(chēng)改短一些,并用副本來(lái)操作,保留原文件以免出錯(cuò)) cp openwrt-ar71xx-generic-tl-mr3420-v1-squashfs-factory.bin /home/$USER/ (根據(jù)實(shí)際文件名操作) cd (更名為:"myOPenWRT.bin",根據(jù)實(shí)際文件名操作) mv openwrt-ar71xx-generic-tl-mr3420-v1-squashfs-factory.bin myOPenWRT.bin 然后使用網(wǎng)頁(yè)登陸路由器原管理界面,找到類(lèi) 似"路由升級(jí)"或者"軟件升級(jí)"等入口, 選擇myOPenWRT.bin文件刷入OpenWRT固件,具體見(jiàn)下方圖片:5.刷機(jī)成功,連接路由器并進(jìn)行一些常規(guī)設(shè)置
(Ubuntu系統(tǒng)安裝SSH工具) sudo apt install ssh刷機(jī)成功后默認(rèn)關(guān)閉無(wú)線WIFI功能,故需要先用SSH登陸管理頁(yè)面,用一條網(wǎng)線連接電腦和路由器lan口。(連接路由器,默認(rèn)賬號(hào):root 地址:192.168.1.1) ssh-keygen -R 192.168.1.1 (清除公鑰,否則如果之前ssh過(guò)192.168.1.1則會(huì)報(bào)錯(cuò):WRNING:REMOTE......) ssh root@192.168.1.1 (可能會(huì)有提示一些信息,輸入yes即可)如果看見(jiàn)如下信息,恭喜你,刷機(jī)成功!-------------------------------------------------------------------------- BusyBox v1.23.2 (2023-02-17 15:26:17 CST) built-in shell (ash)_______ ________ __| |.-----.-----.-----.| | | |.----.| |_| - || _ | -__| || | | || _|| _||_______|| __|_____|__|__||________||__| |____||__| W I R E L E S S F R E E D O M-----------------------------------------------------CHAOS CALMER (Chaos Calmer, r49632)-----------------------------------------------------* 1 1/2 oz Gin Shake with a glassful* 1/4 oz Triple Sec of broken ice and pour* 3/4 oz Lime Juice unstrained into a goblet.* 1 1/2 oz Orange Juice* 1 tsp. Grenadine Syrup----------------------------------------------------- root@OpenWrt:~# --------------------------------------------------------------------------如果你沒(méi)有反應(yīng),請(qǐng)自行排出軟、硬件錯(cuò)誤,再不行就是變磚了,請(qǐng)自行百度救磚。(打開(kāi)路由器的WIFI功能) vi /etc/config/wireless 按一下鍵盤(pán)的"I"鍵,進(jìn)入修改模式 將option disable 1改為0,按下"ESC"鍵,再輸入:wq 然后回車(chē),即完成修改并保存 reboot 重啟路由發(fā)現(xiàn)WIFI出來(lái)了,默認(rèn)WIFI名為:OpenWrt 現(xiàn)在你的路由就支持openflow1.3協(xié)議啦!三、部分可刷OpenWrt+OVS+OpenFlow1.3路由器推薦
1.紅米(ReadMi) AX6000 CPU:2000MHz Flash:128 469元
2.小米(XiaoMi) AX3200 / AX6S CPU:1350MHz Flash:128MB(非易失閃存) 265元
3.網(wǎng)件(NETGEAR) R6300V2 CPU:800MHz Flash:128MB(非易失閃存) 250元
4.D-LINK(友訊) DIR-885L CPU:1400MHz Flash:32NOR + 128NAND 159元
5.小米(XiaoMi) 4A 千兆版 CPU:880MHz(雙核) Flash:16MB 139元
6.小米(XiaoMi) 4C CPU:580MHz Flash:16MB 79元
7.小米(XiaoMi) 4A 普通版 CPU:575MHz Flash:16MB 109元
教程結(jié)束,覺(jué)得寫(xiě)的不錯(cuò)的給個(gè)贊吧,謝謝各位!
總結(jié)
以上是生活随笔為你收集整理的【SDN】普通路由器刷OpenWrt + OpenVSwitch教程完美版_搭建SDN OpenFlow1.3协议的路由器(Flash>16M)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 虚幻4 程序化 植被_首次资产发行商通过
- 下一篇: elisa标准曲线怎么做_ELISA标准