自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

五分鐘技術(shù)趣談 | 讓你的Linux-PC變成一臺(tái)簡(jiǎn)單的企業(yè)級(jí)路由器

開源
FRRouting (FRR)可以在本機(jī)Linux/Unix進(jìn)行部署,使機(jī)器快速具備各種路由協(xié)議交互功能,讓設(shè)備成為一個(gè)簡(jiǎn)單的企業(yè)界路由器。很多設(shè)備商的路由器產(chǎn)品就是基于FRR進(jìn)行二次開發(fā)的,可見對(duì)FRR的認(rèn)可度之高。

Part 01

FRRouting概述

FRRouting (FRR) 是一個(gè)免費(fèi)、開源的互聯(lián)網(wǎng)路由協(xié)議套件,適用于Linux和Unix平臺(tái)。它實(shí)現(xiàn)了BGP、OSPF、RIP、IS-IS、PIM、LDP、BFD、Babel、PBR、OpenFabric 和 VRRP 等路由協(xié)議,并提供了alpha版本支持EIGRP和NHRP。

FRR無縫集成了本機(jī)Linux/Unix IP網(wǎng)絡(luò)堆棧,使其成為通用路由堆棧,適用于各種用例,包括將主機(jī)、虛擬機(jī)和容器連接到網(wǎng)絡(luò)、通告網(wǎng)絡(luò)服務(wù)、LAN交換和路由、互聯(lián)網(wǎng)接入路由器和互聯(lián)網(wǎng)對(duì)等互連等能力。

簡(jiǎn)而言之,F(xiàn)RR可以在本機(jī)Linux/Unix進(jìn)行部署,使機(jī)器快速具備各種路由協(xié)議交互功能,讓設(shè)備成為一個(gè)簡(jiǎn)單的企業(yè)界路由器。很多設(shè)備商的路由器產(chǎn)品就是基于FRR進(jìn)行二次開發(fā)的,可見對(duì)FRR的認(rèn)可度之高。

FRR主要集成了網(wǎng)絡(luò)三層路由協(xié)議,其中最重要且常用的如下:

OSPF(Open Shortest Path First):OSPF路由協(xié)議是用于網(wǎng)際協(xié)議(IP)網(wǎng)絡(luò)的鏈路狀態(tài)路由協(xié)議。該協(xié)議使用鏈路狀態(tài)路由算法的內(nèi)部網(wǎng)關(guān)協(xié)議(IGP),在單一自治系統(tǒng)(AS)內(nèi)部工作。適用于IPv4的OSPFv2協(xié)議定義于RFC 2328,RFC 5340定義了適用于IPv6的OSPFv3。

IS-IS(Intermediate system to intermediate system):中間系統(tǒng)到中間系統(tǒng)是一種內(nèi)部網(wǎng)關(guān)協(xié)議,是電信運(yùn)營商普遍采用的內(nèi)部網(wǎng)關(guān)協(xié)議之一。標(biāo)準(zhǔn)的IS-IS協(xié)議是由國際標(biāo)準(zhǔn)化組織制定的ISO/IEC 10589:2002 所規(guī)范的。但是標(biāo)準(zhǔn)的IS-IS協(xié)議是為無連接網(wǎng)絡(luò)服務(wù)(CLNS)設(shè)計(jì)的,并不直接適合于IP網(wǎng)絡(luò),因此互聯(lián)網(wǎng)工程任務(wù)組制定可以適用于IP網(wǎng)絡(luò)的集成化的IS-IS協(xié)議,稱為集成IS-IS,它由RFC 1195等RFC文檔所規(guī)范。由于IP網(wǎng)絡(luò)的普遍存在,一般所稱的IS-IS協(xié)議,通常是指集成IS-IS協(xié)議。

BGP(Border Gateway Protocol):邊界網(wǎng)關(guān)協(xié)議(BGP)是運(yùn)行于 TCP 上的一種自治系統(tǒng)的路由協(xié)議。BGP 是一種用來處理像因特網(wǎng)大小的網(wǎng)絡(luò)的協(xié)議,也是一種能夠妥善處理好不相關(guān)路由域間的多路連接的協(xié)議。BGP 構(gòu)建在 EGP 的經(jīng)驗(yàn)之上。BGP 系統(tǒng)的主要功能是和其他的 BGP 系統(tǒng)交換網(wǎng)絡(luò)可達(dá)信息。網(wǎng)絡(luò)可達(dá)信息包括列出的自治系統(tǒng)(AS)的信息。這些信息有效地構(gòu)造了 AS 互聯(lián)的拓?fù)鋱D并由此清除了路由環(huán)路,同時(shí)在 AS 級(jí)別上可實(shí)施策略決策。

Part 02

FRRouting支持的特性 

FRR支持豐富的特性和許多平臺(tái),不同平臺(tái)支持的特性有所不同,下表為FRR具體支持的特性。

圖片

圖片

圖片

圖片

Part 03

FRRouting的架構(gòu) 

傳統(tǒng)的路由軟件通常是單個(gè)進(jìn)程程序,負(fù)責(zé)所有路由協(xié)議功能。相比之下,F(xiàn)RR使用了一種不同的方法。它由多個(gè)守護(hù)程序組成,共同構(gòu)建路由表。每個(gè)重要的協(xié)議都在它自己的守護(hù)程序中實(shí)現(xiàn),這些守護(hù)程序與一個(gè)中間守護(hù)程序(zebra)通信,協(xié)調(diào)路由決策并與數(shù)據(jù)平面通信。

FRR采用模塊化架構(gòu),具有高度的靈活性和可擴(kuò)展性。它的模塊化設(shè)計(jì)使得添加新的協(xié)議或功能非常容易。每個(gè)守護(hù)程序都實(shí)現(xiàn)了插件系統(tǒng),可以在運(yùn)行時(shí)加載新功能,從而擴(kuò)展整個(gè)套件而無需重新編譯整個(gè)程序。

FRR的架構(gòu)具有模塊化特點(diǎn),因此單個(gè)協(xié)議守護(hù)程序的錯(cuò)誤、崩潰或漏洞通常不會(huì)影響其他協(xié)議,提高了整個(gè)系統(tǒng)的彈性和可靠性。另外,F(xiàn)RR的靈活性使得它可以根據(jù)不同網(wǎng)絡(luò)的特定路由需求進(jìn)行定制。FRR的整體框架如下圖:

圖片

Zebra:Zebra 是一個(gè) IP 路由管理器。它提供內(nèi)核路由表更新、接口查找以及不同路由協(xié)議之間的路由重新分發(fā)。它是一個(gè)獨(dú)立進(jìn)程,所有進(jìn)程之間通信都通過zebra進(jìn)行。

BGPD、OSPFD:這些獨(dú)立的進(jìn)程代表了不同協(xié)議的處理進(jìn)程,以上兩個(gè)進(jìn)程分別實(shí)現(xiàn)了BGP和OSPF。

Part 04

如何快速搭建FRRouting? 

(1)獲取FRRouting源碼

從FRR官方網(wǎng)站上獲取FRRouting的git地址或者安裝包

https://frrouting.org/

以GitHub獲取源碼安裝為例:

git clone https://github.com/FRRouting/frr.git

(2)創(chuàng)建configuration

FRRouing下載后會(huì)提供一個(gè)配置腳本,可自動(dòng)檢測(cè)大多數(shù)主機(jī)配置。有幾個(gè)其他配置選項(xiàng)可用于自定義生成以包含或排除特定功能和依賴項(xiàng)。

./bootstrap.sh

在配置完成后,可以設(shè)置各類config屬性,如下表:

圖片

圖片

(3)打開內(nèi)核轉(zhuǎn)發(fā)功能

/etc/sysctl.conf或者/etc/sysctl.d/90-routing-sysctl.conf

打開ipv4和ipv6轉(zhuǎn)發(fā):

net.ipv4.conf.all.forwarding=1
net.ipv6.conf.all.forwarding=1

(4)開始構(gòu)建

選擇配置選項(xiàng)后,運(yùn)行配置腳本并傳遞所選選項(xiàng),示例如下:

./configure \
    --prefix=/usr \
    --localstatedir=/var/run/frr \
    --sbindir=/usr/lib/frr \
    --syscnotallow=/etc/frr \
    --enable-pimd \
    --enable-watchfrr \
    ...

配置軟件后,就可以在系統(tǒng)中構(gòu)建和安裝它了。

make && sudo make install

一切成功之后,F(xiàn)RRouting就安裝成功了,可以開始設(shè)置FRRouting的配置文件了。

(5)進(jìn)程配置文件設(shè)置

剛安裝完后,啟動(dòng) FRR 不會(huì)執(zhí)行任何操作。這是因?yàn)楸仨毻ㄟ^編輯配置目錄中的文件來顯式啟用守護(hù)程序。此文件通常位于 /etc/frr/daemons 中,用于確定通過 init 或 systemd 發(fā)出服務(wù)啟動(dòng)/停止命令時(shí)激活哪些守護(hù)進(jìn)程。如下所示:

zebra=no
bgpd=no
ospfd=no
ospf6d=no
ripd=no
ripngd=no
isisd=no
pimd=no
ldpd=no
nhrpd=no
eigrpd=no
babeld=no
sharpd=no
staticd=no
pbrd=no
bfdd=no
fabricd=no
# If this option is set the /etc/init.d/frr script automatically loads
# the config via "vtysh -b" when the servers are started.
# Check /etc/pam.d/frr if you intend to use "vtysh"!
vtysh_enable=yes
zebra_options=" -s 90000000 --daemon -A 127.0.0.1"
bgpd_options="   --daemon -A 127.0.0.1"
ospfd_options="  --daemon -A 127.0.0.1"
ospf6d_options=" --daemon -A ::1"
ripd_options="   --daemon -A 127.0.0.1"
ripngd_options=" --daemon -A ::1"
isisd_options="  --daemon -A 127.0.0.1"
pimd_options="  --daemon -A 127.0.0.1"
ldpd_options="  --daemon -A 127.0.0.1"
nhrpd_options="  --daemon -A 127.0.0.1"
eigrpd_options="  --daemon -A 127.0.0.1"
babeld_options="  --daemon -A 127.0.0.1"
sharpd_options="  --daemon -A 127.0.0.1"
staticd_options="  --daemon -A 127.0.0.1"
pbrd_options="  --daemon -A 127.0.0.1"
bfdd_options="  --daemon -A 127.0.0.1"
fabricd_options="  --daemon -A 127.0.0.1"
#MAX_FDS=1024
# The list of daemons to watch is automatically generated by the init script.
#watchfrr_optinotallow=""
# for debugging purposes, you can specify a "wrap" command to start instead
# of starting the daemon directly, e.g. to use valgrind on ospfd:
#   ospfd_wrap="/usr/bin/valgrind"
# or you can use "all_wrap" for all daemons, e.g. to use perf record:
#   all_wrap="/usr/bin/perf record --call-graph -"
# the normal daemon command is added to this at the end.

將需要打開的進(jìn)程設(shè)置為“yes”,然后執(zhí)行服務(wù)啟動(dòng)命令。

systemctl daemon-reload
systemctl start frr

(6)使用界面

FRR的使用界面基本同cisco的路由器配置界面一致,安裝完后通過在系統(tǒng)中敲入vtysh進(jìn)入FRRouting管理界面,如下圖:

圖片

圖片來自筆者測(cè)試截圖,Ubuntu18.04


敲入configure terminal進(jìn)入配置管理模式,敲入?顯示支持的配置模塊,如下圖:

圖片

圖片來自筆者測(cè)試截圖,Ubuntu18.04

至此,Linux-PC已經(jīng)能夠配置各種路由協(xié)議和各類路由設(shè)備對(duì)接了。

Part 05

構(gòu)建實(shí)驗(yàn)測(cè)試環(huán)境 

圖片

圖片來自筆者測(cè)試截圖,eNSP構(gòu)建

其中外省一路由設(shè)備通過CLOUD1用安裝了FRR的Linux-PC模擬,其他路設(shè)備均為華為路由設(shè)備。

外省1的配置如下:

圖片

圖片來自筆者測(cè)試截圖,Ubuntu18.04

實(shí)驗(yàn)結(jié)論:通過正常配置BGP命令,確保對(duì)端配置正常的情況下,在端到端進(jìn)行抓包,發(fā)現(xiàn)BGP完成了控制報(bào)文交互,BGP鄰居正常建立,端到端訪問正常,BGP發(fā)布的路由其他路由設(shè)備能正確學(xué)習(xí)到。

Part 06

 結(jié)語 

FRR是一個(gè)非常出色的開源軟件,它可以將普通的Linux-PC快速轉(zhuǎn)變成一臺(tái)功能強(qiáng)大的企業(yè)級(jí)路由器,滿足日常網(wǎng)絡(luò)需求。盡管如此,為了提高FRR的性能和穩(wěn)定性,我們需要研發(fā)人員投入更多的時(shí)間和精力,在不斷地研究和開發(fā)上不斷優(yōu)化完善。

未來,隨著數(shù)字化時(shí)代的到來和互聯(lián)網(wǎng)應(yīng)用領(lǐng)域的不斷擴(kuò)大,F(xiàn)RR將迎來巨大的機(jī)遇和挑戰(zhàn)。我們期待看到更多的高質(zhì)量特性被添加到FRR中,從而滿足不斷變化的市場(chǎng)需求。同時(shí),我們也預(yù)計(jì)FRR將吸引更多的行業(yè)專家參與其中,共同推動(dòng)其發(fā)展,為用戶帶來更加優(yōu)質(zhì)、安全、高效的使用體驗(yàn)。

責(zé)任編輯:龐桂玉 來源: 移動(dòng)Labs
相關(guān)推薦

2021-05-17 15:17:42

Thread物聯(lián)網(wǎng)IOT路由器

2023-07-23 18:47:59

Docker開源

2023-07-16 18:49:42

HTTP網(wǎng)絡(luò)

2023-07-12 15:50:29

機(jī)器學(xué)習(xí)人工智能

2023-08-29 06:50:01

Javamaven

2021-09-18 11:36:38

混沌工程云原生故障

2023-04-15 20:25:23

微前端

2023-08-15 14:46:03

2023-06-03 21:14:47

Linux

2023-07-02 16:09:57

人工智能人臉識(shí)別

2023-07-02 16:34:06

GPU虛擬化深度學(xué)習(xí)

2023-08-07 06:35:07

系統(tǒng)限流

2023-09-12 07:10:13

Nacos架構(gòu)

2023-07-31 08:55:15

AI技術(shù)網(wǎng)絡(luò)暴力

2024-12-18 14:10:33

2023-08-06 07:00:59

Openstack網(wǎng)絡(luò)

2023-09-17 17:51:43

Android 14

2023-07-12 16:03:37

Android開發(fā)架構(gòu)

2023-08-23 07:21:44

JsonSchema測(cè)試

2023-08-06 06:55:29

數(shù)字可視化物聯(lián)網(wǎng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)