Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
幾天有人在微信群里詢(xún)問(wèn)bond相關(guān)的一些問(wèn)題,在上家公司使用過(guò)bond功能,但當(dāng)時(shí)是基于vpp 16.9版本。最近看了一下21.10版本的發(fā)現(xiàn)差異很大,bond node節(jié)點(diǎn)跳轉(zhuǎn)方式完全不同了。本文基于21.10搭建環(huán)境,通過(guò)cli來(lái)配置和驗(yàn)證bond功能。
下面內(nèi)容來(lái)自華為配置文檔介紹以太網(wǎng)鏈路聚合的定義及目的。
1、定義
以太網(wǎng)鏈路聚合Eth-Trunk簡(jiǎn)稱(chēng)鏈路聚合,它通過(guò)將多條以太網(wǎng)物理鏈路捆綁在一起成為一條邏輯鏈路,從而實(shí)現(xiàn)增加鏈路帶寬的目的。同時(shí),這些捆綁在一起的鏈路通過(guò)相互間的動(dòng)態(tài)備份,可以有效地提高鏈路的可靠性。
2、目的
隨著網(wǎng)絡(luò)規(guī)模不斷擴(kuò)大,用戶(hù)對(duì)骨干鏈路的帶寬和可靠性提出越來(lái)越高的要求。在傳統(tǒng)技術(shù)中,常用更換高速率的設(shè)備的方式來(lái)增加帶寬,但這種方案需要付出高額的費(fèi)用,而且不夠靈活。
采用鏈路聚合技術(shù)可以在不進(jìn)行硬件升級(jí)的條件下,通過(guò)將多個(gè)物理接口捆綁為一個(gè)邏輯接口,達(dá)到增加鏈路帶寬的目的。在實(shí)現(xiàn)增大帶寬目的的同時(shí),鏈路聚合采用備份鏈路的機(jī)制,可以有效的提高設(shè)備之間鏈路的可靠性。
鏈路聚合技術(shù)主要有以下三個(gè)優(yōu)勢(shì):
1、增加帶寬:鏈路聚合接口的最大帶寬可以達(dá)到各成員接口帶寬之和。
2、提高可靠性:當(dāng)某條活動(dòng)鏈路出現(xiàn)故障時(shí),流量可以切換到其他可用的成員鏈路上,從而提高鏈路聚合接口的可靠性。
3、負(fù)載分擔(dān):在一個(gè)鏈路聚合組內(nèi),可以實(shí)現(xiàn)在各成員活動(dòng)鏈路上的負(fù)載分擔(dān)。
vpp bonding特性支持以下可選項(xiàng)目
1、mode:active-backup。此模式使用主備策略(熱備)。在所有bond的物理網(wǎng)卡中,同一時(shí)刻只有一張網(wǎng)卡被激活,當(dāng)且僅當(dāng)活動(dòng)網(wǎng)卡失效時(shí)才會(huì)激活其他的網(wǎng)卡。這種模式下做bond的兩張或多張網(wǎng)卡的MAC地址和Bond虛擬網(wǎng)卡的MAC地址相同,而B(niǎo)ond的MAC地址是Bond創(chuàng)建啟動(dòng)后活動(dòng)網(wǎng)卡(Active Slave)的MAC地址。這種模式要求主備網(wǎng)卡能快速的切換,即當(dāng)主網(wǎng)卡出現(xiàn)故障后能迅速地切換至備用網(wǎng)卡。
2、mode:lacp:動(dòng)態(tài)鏈接聚合。動(dòng)態(tài)LACP匯聚是一種系統(tǒng)自動(dòng)創(chuàng)建/刪除的匯聚,不允許用戶(hù)增加或刪除動(dòng)態(tài)LACP匯聚中的成員端口。只有速率和雙工屬性相同、連接到同一個(gè)設(shè)備、有相同基本配置的端口才能被動(dòng)態(tài)匯聚在一起。即使只有一個(gè)端口也可以創(chuàng)建動(dòng)態(tài)匯聚,此時(shí)為單端口匯聚。動(dòng)態(tài)匯聚中,端口的LACP協(xié)議處于使能狀態(tài)。
- load-balance l2 | l23 | l34。#支持分擔(dān)模式。
- numa-only:只有l(wèi)acp模式下支持numa-only配置。
3、mode xor 平衡策略
表示XOR Hash負(fù)載分擔(dān),Hash模式支持如下:load-balance l2 | l23 | l34。#支持分擔(dān)模式。
4、mode round-robin:此模式使用輪詢(xún)策略,即順序的在每一個(gè)被bond的網(wǎng)卡上發(fā)送數(shù)據(jù)包,這種模式提供負(fù)載均衡和容錯(cuò)能力。Bond0可以保證bond虛擬網(wǎng)卡和被bond的兩張或多張物理網(wǎng)卡擁有相同的MAC地址,其中bond虛擬網(wǎng)卡的MAC地址是其中一張物理網(wǎng)卡的MAC地址,而bond虛擬網(wǎng)卡的MAC地址是根據(jù)bond自己實(shí)現(xiàn)的一個(gè)算法來(lái)選擇的。
5、mode broadcast
使用廣播策略,數(shù)據(jù)包會(huì)被廣播至所有Slave網(wǎng)卡進(jìn)行傳送。
利用wmware虛擬機(jī)搭建bond測(cè)試環(huán)境,每個(gè)虛擬機(jī)上存在5個(gè)虛擬網(wǎng)卡,其中2個(gè)綁定內(nèi)核(1個(gè)用于ssh登錄,1個(gè)用于和vpp接口連接測(cè)試),其余給vpp綁定。具體如下圖:
1、虛擬機(jī)1配置
#創(chuàng)建bond接口并設(shè)置為up
create bond mode xor load-balance l34 hw-addr 11:22:33:44:55:66 id 2
set interface state BondEthernet2 up
#設(shè)置wan1和wan2up,并加入bond2接口。
set interface state GigabitEthernet13/0/0 up
set interface state GigabitEthernet1b/0/0 up
bond add BondEthernet2 GigabitEthernet13/0/0
bond add BondEthernet2 GigabitEthernet1b/0/0
#配置bond接口ip地址
set interface ip address BondEthernet2 192.168.100.1/24
#設(shè)置到learningvpp2的路由
ip route add 200.1.2.0/24 via 192.168.100.2
#設(shè)置與內(nèi)核ens161連接接口并設(shè)置ip地址。
set interface state GigabitEthernetb/0/0 up
set interface ip address GigabitEthernetb/0/0 200.1.1.1/24
#設(shè)置內(nèi)核ens161接口ip及配置到learning vpp2路由。
ifconfig ens161 up
ifconfig ens161 200.1.1.2/24
ip route add 200.1.2.0/24 via 200.1.1.1 dev ens161
2、虛擬機(jī)2配置
create bond mode xor load-balance l34 hw-addr 11:22:33:44:55:77 id 2
set interface state GigabitEthernet13/0/0 up
set interface state GigabitEthernet1b/0/0 up
set interface state BondEthernet2 up
bond add BondEthernet2 GigabitEthernet13/0/0
bond add BondEthernet2 GigabitEthernet1b/0/0
set interface ip address BondEthernet2 192.168.100.2/24
ip route add 200.1.1.0/24 via 192.168.100.1
set interface state GigabitEthernetb/0/0 up
set interface ip address GigabitEthernetb/0/0 200.1.2.1/24
ifconfig ens33 up
ifconfig ens33 200.1.2.2/24
ip route add 200.1.1.0/24 via 200.1.2.1 dev ens33
上面我們創(chuàng)建bond接口是設(shè)置模式xor,(balance-xor) XOR policy(平衡策略),lb設(shè)置l34(使用ip層+四層hash分擔(dān)因子)。分別使用ping 202.1.2.1和202.1.2.2來(lái)測(cè)試分擔(dān)情況,使用trace來(lái)查看流程。
trace節(jié)點(diǎn)后發(fā)現(xiàn)當(dāng)前版本BondEthernet2-output后面未顯示后面處理邏輯了。查看了一個(gè)trace代碼BondEthernet2-tx 是作為trace 起點(diǎn)來(lái)處理的。當(dāng)手動(dòng)設(shè)置BondEthernet2-tx時(shí)發(fā)現(xiàn)報(bào)錯(cuò)了。導(dǎo)致意思就是當(dāng)前node不支持設(shè)置trace。node節(jié)點(diǎn)flags未置位。
learning_vpp1# trace add BondEthernet2-tx 10
trace add: node 'BondEthernet2-tx' doesn't support per-node tracing. There may be another way to initiate trace on this node.
#但是發(fā)現(xiàn)bond process node 置位了trace,此地一堆問(wèn)號(hào)??
VLIB_REGISTER_NODE (bond_process_node)={
.function=bond_process,
.flags=VLIB_NODE_FLAG_TRACE_SUPPORTED,
.type=VLIB_NODE_TYPE_PROCESS,
.name="bond-process",
};
bond process node節(jié)點(diǎn)置位支持設(shè)置trace,但是bond porcess只是用來(lái)發(fā)送免費(fèi)arp,此flags貌似也沒(méi)有什么用途吧。
疑問(wèn):為什么不直接BondEthernet2-tx增加trace相關(guān)處理代碼,代碼中偏偏作為trace起點(diǎn)??
通過(guò)gdb來(lái)設(shè)置BondEthernet2-tx flags標(biāo)識(shí)位來(lái)支持trace,可以支持trace設(shè)置。
#709是BondEthernet2-tx node索引。
set var vlib_global_main.vlib_mains[0]->node_main.nodes[709]->flags=2 + 1 << 8
1、在learning vpp1上基于內(nèi)核ping200.1.2.1 在learning vpp2上設(shè)置trace流程如下,報(bào)文從bond接口GigabitEthernet13/0/0回應(yīng)。
00:13:21:048851: dpdk-input
GigabitEthernet1b/0/0 rx queue 0
IP4: 11:22:33:44:55:66 -> 11:22:33:44:55:77
ICMP: 200.1.1.2 -> 200.1.2.1
tos 0x00, ttl 63, length 84, checksum 0xf909 dscp CS0 ecn NON_ECN
fragment id 0xaf99, flags DONT_FRAGMENT
ICMP echo_request checksum 0x2aea id 21077
00:13:21:048934: bond-input
src 11:22:33:44:55:66, dst 11:22:33:44:55:77, GigabitEthernet1b/0/0 -> BondEthernet2
00:13:21:048976: ethernet-input
IP4: 11:22:33:44:55:66 -> 11:22:33:44:55:77
00:13:21:049009: ip4-input
00:13:21:049037: ip4-lookup
00:13:21:049066: ip4-local
00:13:21:049091: ip4-icmp-input
00:13:21:049118: ip4-icmp-echo-request
00:13:21:049150: ip4-load-balance
fib 0 dpo-idx 13 flow hash: 0x00000000
ICMP: 200.1.2.1 -> 200.1.1.2
tos 0x00, ttl 64, length 84, checksum 0x1026 dscp CS0 ecn NON_ECN
fragment id 0x977d, flags DONT_FRAGMENT
ICMP echo_reply checksum 0x32ea id 21077
fib 0 dpo-idx 2 flow hash: 0x00000000
ICMP: 200.1.2.1 -> 200.1.1.2
tos 0x00, ttl 64, length 84, checksum 0x1026 dscp CS0 ecn NON_ECN
fragment id 0x977d, flags DONT_FRAGMENT
ICMP echo_reply checksum 0x32ea id 21077
00:13:21:049197: ip4-rewrite
tx_sw_if_index 4 dpo-idx 2 : ipv4 via 192.168.100.1 BondEthernet2: mtu:9000 next:3 flags:[]
00:13:21:049221: BondEthernet2-output
Packet 5
00:13:21:049248: BondEthernet2-tx
src 11:22:33:44:55:77, dst 11:22:33:44:55:66, BondEthernet2 -> GigabitEthernet13/0/0
2、在learning vpp1上基于內(nèi)核ping200.1.2.2,在learning vpp2設(shè)置trace流程,只顯示從內(nèi)核回應(yīng)的reply報(bào)文,上從bond接口GigabitEthernet1b/0/0回應(yīng)。
00:13:17:374058: dpdk-input
GigabitEthernetb/0/0 rx queue 0
00:13:17:374103: ethernet-input
00:13:17:374142: ip4-input
ICMP: 200.1.2.2 -> 200.1.1.2
tos 0x00, ttl 64, length 84, checksum 0x19cf dscp CS0 ecn NON_ECN
fragment id 0xcdd3
ICMP echo_reply checksum 0xbfb id 21076
00:13:17:374169: ip4-lookup
00:13:17:374195: ip4-load-balance
00:13:17:374246: BondEthernet2-output
ICMP echo_reply checksum 0xbfb id 21076
Packet 3
00:13:17:374271: BondEthernet2-tx
src 11:22:33:44:55:77, dst 11:22:33:44:55:66, BondEthernet2 -> GigabitEthernet1b/0/0
上面1,2可以看到報(bào)文在bond下兩個(gè)接口進(jìn)行了分擔(dān)處理。這種驗(yàn)證也比較勉強(qiáng),只有2個(gè)流。理論上應(yīng)該設(shè)置多條流來(lái)驗(yàn)證。環(huán)境因素就不進(jìn)行驗(yàn)證了。
通過(guò)上面場(chǎng)景1的trace流程來(lái)梳理bond的處理邏輯如下所示:
1、華為eth-trunk配置手冊(cè)https://support.huawei.com/enterprise/zh/doc/EDOC1000178154/c1b2412c
2、H3c鏈路聚合配置手冊(cè)http://www.h3c.com/cn/d_201108/723437_30005_0.htm
3、LInux系統(tǒng)bond模式介紹:https://www.cnblogs.com/yanling-coder/p/11867123.html
T之家 7 月 11 日消息,微軟公司在 7 月補(bǔ)丁星期二發(fā)布的 Windows 10、Windows 11 系統(tǒng)累積更新中,修復(fù)了追蹤編號(hào)為 CVE-2024-38112 的零日漏洞。
該零日漏洞由 Check Point Research 的安全專(zhuān)家李海飛(Haifei Li,音譯)于 2023 年 1 月發(fā)現(xiàn),是一個(gè)高度嚴(yán)重的 MHTML 欺騙問(wèn)題,有證據(jù)表明有黑客在過(guò)去 18 個(gè)月里,利用該漏洞發(fā)起惡意攻擊,可以繞過(guò) Windows 10、Windows 11 系統(tǒng)的安全功能。
該專(zhuān)家發(fā)現(xiàn)網(wǎng)絡(luò)攻擊者通過(guò)分發(fā) Windows Internet 快捷方式文件(.url),以欺騙 PDF 等看起來(lái)合法的文件,用戶(hù)一旦點(diǎn)開(kāi)這些文件,就會(huì)下載并啟動(dòng) HTA 以安裝密碼竊取惡意軟件。
Internet 快捷方式文件只是一個(gè)文本文件,其中包含各種配置設(shè)置,如顯示什么圖標(biāo)、雙擊時(shí)打開(kāi)什么鏈接等信息。保存為 .url 文件并雙擊后,Windows 將在默認(rèn)網(wǎng)絡(luò)瀏覽器中打開(kāi)配置的 URL。
不過(guò)攻擊者發(fā)現(xiàn)可以通過(guò)在 URL 指令中使用 mhtml: URI 處理程序,來(lái)強(qiáng)制 Internet Explorer 打開(kāi)指定的 URL,如下圖所示:
IT之家注:MHTML 是一種 "聚合 HTML 文檔的 MIME 封裝" 文件,是 Internet Explorer 中引入的一種技術(shù),可將包括圖像在內(nèi)的整個(gè)網(wǎng)頁(yè)封裝成一個(gè)單一的檔案。
攻擊者使用 mhtml: URI 啟動(dòng) URL 后,Windows 會(huì)自動(dòng)在 Internet Explorer 中啟動(dòng) URL,而不是默認(rèn)瀏覽器。
漏洞研究人員 Will Dormann 稱(chēng),在 Internet Explorer 中打開(kāi)網(wǎng)頁(yè)會(huì)給攻擊者帶來(lái)額外的好處,下載惡意文件時(shí)安全警告較少。
盡管微軟早在兩年前就宣布停止支持該瀏覽器,并以 Edge 代替其所有實(shí)用功能,但這款過(guò)時(shí)的瀏覽器仍可被惡意調(diào)用和利用。
互聯(lián)網(wǎng)高速發(fā)展的今天,我們通過(guò)瀏覽器可以看到各種各樣的網(wǎng)站,包含了各式不同的領(lǐng)域還有內(nèi)容,通過(guò)點(diǎn)擊網(wǎng)站上的標(biāo)簽和欄目我們就能夠很方便地看到網(wǎng)站上顯示的各種數(shù)據(jù),而這些都是建立在HTML這種標(biāo)記語(yǔ)言的基礎(chǔ)上做到的。
HTML的英文全稱(chēng)為Hyper Text Markup Language,中文稱(chēng)作超文本標(biāo)記語(yǔ)言,是一種專(zhuān)門(mén)用來(lái)建立網(wǎng)站的標(biāo)識(shí)語(yǔ)言。其中包括了許多標(biāo)簽將分散的網(wǎng)絡(luò)數(shù)據(jù)連接到一起,聚合同一之后形成了我們現(xiàn)在所看到的網(wǎng)頁(yè)。
看到這里是不是有許多朋友想要知道這個(gè)HTML語(yǔ)言該怎么去學(xué)習(xí)呢?是需要找老師統(tǒng)一學(xué),還是去圖書(shū)館找專(zhuān)業(yè)書(shū)籍自己學(xué)好呢?不用擔(dān)心,因?yàn)榻裉煲o大家推薦的就是一個(gè)專(zhuān)門(mén)為大家提供各種編程語(yǔ)言教程的學(xué)習(xí)網(wǎng)站。
這個(gè)網(wǎng)站名叫 runoob,直接在瀏覽器上搜索即可找到。
圖片來(lái)自RUNOOB網(wǎng)頁(yè)截圖
在首頁(yè)可以看到該欄目的第二個(gè)就是關(guān)于HTML的學(xué)習(xí)教程,點(diǎn)擊左邊的方框可以調(diào)整你的課程進(jìn)度,在第一章節(jié)的教程中很清晰地講解了什么是HTML,以及告訴了你一些關(guān)于網(wǎng)站建立的小知識(shí)。
下方的提示框會(huì)給你提供一些對(duì)HTML零基礎(chǔ)新手的科普,關(guān)于這種標(biāo)記語(yǔ)言應(yīng)該如何進(jìn)行保存,如何查看文件后輟名,如何打開(kāi)代碼文件等等,還會(huì)提供一些專(zhuān)用工具供你學(xué)習(xí)使用。同時(shí)網(wǎng)站會(huì)給你簡(jiǎn)單介紹一些網(wǎng)頁(yè)編程語(yǔ)言的區(qū)別,還有各種用途上的區(qū)分,非常地詳細(xì)。
圖片來(lái)自RUNOOB網(wǎng)頁(yè)截圖
在第三章節(jié)的編輯器一欄里,會(huì)提供給你一些HTML的專(zhuān)用編輯器,例如VS Code,還有sublime text 等實(shí)用工具,在后面會(huì)教你如何將這些HTML必備編輯器下載并安裝,然后在瀏覽器上面運(yùn)行。
通過(guò)插件還有語(yǔ)言編程的格式我們就能夠?qū)W會(huì)如何制作第一步的標(biāo)題了,剛開(kāi)始的一步比較簡(jiǎn)單,相信大家很快就能學(xué)會(huì)如何在網(wǎng)頁(yè)上顯示自己打入的文字了。之后進(jìn)一步的學(xué)習(xí)就是關(guān)于如何調(diào)整文字段落,還有各種標(biāo)識(shí)的使用。
圖片來(lái)自RUNOOB網(wǎng)頁(yè)截圖
在如何進(jìn)行文字排版編輯的方面,教程中也講述得很詳細(xì),包括一些用戶(hù)們常犯的錯(cuò)誤,還有一些網(wǎng)頁(yè)的實(shí)例,甚至是這個(gè)教學(xué)網(wǎng)站上的排版示范都會(huì)進(jìn)行一一講解。
更深入的章節(jié)會(huì)對(duì)如何進(jìn)行圖像排列,傳輸?shù)确矫孢M(jìn)行細(xì)講,教程中把大部分網(wǎng)站會(huì)使用到的技巧還有排版方式都分成了許多個(gè)小片段,方便大家能夠?qū)γ總€(gè)方面針對(duì)性地學(xué)習(xí)。這些內(nèi)容并不多,幾乎每一個(gè)片段都是用很直白的語(yǔ)言進(jìn)行講解,方便所有人都能夠看懂,并且在下方都會(huì)有更詳細(xì)的術(shù)語(yǔ)解析,還有一些比較難懂的點(diǎn)會(huì)舉例解釋。
圖片來(lái)自RUNOOB網(wǎng)頁(yè)截圖
經(jīng)過(guò)十幾章節(jié)的教學(xué)之后,基本上能夠掌握HTML語(yǔ)言的基本用法,還有一些簡(jiǎn)單的操作了,這個(gè)時(shí)候如果想要進(jìn)階學(xué)習(xí)的話(huà)還可以在網(wǎng)站上查找其他的進(jìn)階語(yǔ)言用法,例如CSS, JavaScript等等復(fù)雜一些的語(yǔ)言,相應(yīng)的你也會(huì)學(xué)到更多如何運(yùn)營(yíng)網(wǎng)頁(yè)的方法。
當(dāng)然如果想要自己建立一個(gè)網(wǎng)站的話(huà),還需要更多資源還有設(shè)備,例如高速的網(wǎng)絡(luò)連接保持網(wǎng)頁(yè)的穩(wěn)定性,以及穩(wěn)定的服務(wù)器,用來(lái)保證自己的網(wǎng)頁(yè)24小時(shí)都能保持流暢可用。不過(guò)這些都是在學(xué)會(huì)了如何建立網(wǎng)頁(yè)之后才考慮的事了。
現(xiàn)在網(wǎng)上也有許多編程教學(xué),在網(wǎng)上自學(xué)一門(mén)知識(shí)一門(mén)語(yǔ)言變得非常方便,但是僅僅是擁有資源還是不夠的。學(xué)習(xí)如何建立自己的網(wǎng)站還需要大量的努力以及知識(shí)的積累,通過(guò)不斷的練習(xí)還有實(shí)踐才能自如地使用,只有基礎(chǔ)扎實(shí),建立出來(lái)的網(wǎng)站才能夠長(zhǎng)久。但還需要大家能夠行動(dòng)起來(lái),只有去學(xué)習(xí)去實(shí)踐才能夠真正學(xué)會(huì)東西,希望這個(gè)教學(xué)網(wǎng)站推薦能夠幫到更多人!
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。