国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何優(yōu)化去程的路由而保留原有的回程路由

馬哥Linux運(yùn)維 ? 來(lái)源:馬哥Linux運(yùn)維 ? 作者:馬哥Linux運(yùn)維 ? 2022-09-22 09:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

方案二個(gè)人感覺是一個(gè)更好的配置方案,并且其中的 wireguard 配置方式也在方案一中使用,步驟更簡(jiǎn)潔明確一些。所以推薦沒有耐心看完的同學(xué)直接看方案二。

奇怪的環(huán)境產(chǎn)生奇怪的需求——現(xiàn)在有一臺(tái)機(jī)器去程只有移動(dòng)能夠直連,電信和聯(lián)通都會(huì)繞日走 ntt(tnt),一到了晚上就會(huì)產(chǎn)生劇烈的抖動(dòng)以及嚴(yán)重丟包,那么是是否有辦法去優(yōu)化一下呢?使用一臺(tái)移動(dòng)網(wǎng)絡(luò)的機(jī)器作為中轉(zhuǎn)是一個(gè)方法,但是這樣的話,所有的流量都會(huì)經(jīng)過這臺(tái)中轉(zhuǎn)的機(jī)器,這臺(tái)機(jī)器的速度成為了這個(gè)網(wǎng)絡(luò)中的瓶頸,而且流量也會(huì)加倍消耗。既然我們只是去程繞路,那么是否有辦法只優(yōu)化去程的路由而保留原有的回程路由呢?在實(shí)際的互聯(lián)網(wǎng)中“非對(duì)稱路由”非常常見,即A 到 B 和 B 到 A 走了不同的路徑,而我們要想實(shí)現(xiàn)這個(gè)效果則需要先建立一個(gè)虛擬的網(wǎng)絡(luò),然后再在這個(gè)網(wǎng)絡(luò)中配置路由,我這里使用了 wireguard 作為建立虛擬內(nèi)網(wǎng)的工具。

三臺(tái)機(jī)器上的非對(duì)稱路由

環(huán)境準(zhǔn)備

在這個(gè)實(shí)驗(yàn)中使用了三臺(tái)機(jī)器 :

本地機(jī)器 A wireguard 網(wǎng)內(nèi) ip 為 192.168.51.5 169.254.1.5

去程不錯(cuò)但是帶寬較小的機(jī)器 B 192.168.51.1 169.254.1.1

去程繞路但是回程不繞且?guī)捿^大的機(jī)器 C 192.168.51.2 169.254.1.2

需要實(shí)現(xiàn)的效果是 A 訪問 C 路徑為 A->B->C->A

在安裝好 wireguard 后需要生成密鑰且開啟包轉(zhuǎn)發(fā) :

$aptinstallwireguardwireguard-tools
$wggenkey|teeprivatekey|wgpubkey>publickey

$echo"net.ipv4.ip_forward=1">>/etc/sysctl.conf
$echo"net.ipv6.conf.default.forwarding=1">>/etc/sysctl.conf
$echo"net.ipv6.conf.all.forwarding=1">>/etc/sysctl.conf
$sysctl-p

兩兩之間建立連接

下面直接貼一下三臺(tái)機(jī)器的 wireguard 配置,注意一點(diǎn) 需要設(shè)置 Table=off,即禁止 wireguard 直接修改路由表 , 且這里使用的是鏈路本地地址建立的連接。另外,三臺(tái)機(jī)器彼此之間要兩兩連接 (對(duì)應(yīng)單獨(dú)的一個(gè)配置文件), 也就是說(shuō)需要自己寫 6 個(gè)配置文件

節(jié)點(diǎn) A 與節(jié)點(diǎn) B 配置文件 :

[Interface]
PrivateKey=
ListenPort=27000
PostUp=ipaddradd169.254.1.5/32peer169.254.1.1/32dev%i
PostDown=ipaddrdel169.254.1.5/32peer169.254.1.1/32dev%i
Table=off
#B
[Peer]
PublicKey=
AllowedIPs=0.0.0.0/0
Endpoint=
PersistentKeepalive=10

節(jié)點(diǎn) A 與節(jié)點(diǎn) C 配置文件 :

[Interface]
PrivateKey=
ListenPort=27001
PostUp=ipaddradd169.254.1.5/32peer169.254.1.2/32dev%i
PostDown=ipaddrdel169.254.1.5/32peer169.254.1.2/32dev%i
Table=off
#C
[Peer]
PublicKey=
AllowedIPs=0.0.0.0/0
Endpoint=
PersistentKeepalive=10

節(jié)點(diǎn) B 與節(jié)點(diǎn) A 配置文件 :

[Interface]
PrivateKey=
ListenPort=27000
PostUp=ipaddradd169.254.1.1/32peer169.254.1.5/32dev%i
PostDown=ipaddrdel169.254.1.1/32peer169.254.1.5/32dev%i
Table=off
#A
[Peer]
PublicKey=
AllowedIPs=0.0.0.0/0

節(jié)點(diǎn) B 與節(jié)點(diǎn) C 配置文件 :

[Interface]
PrivateKey=
ListenPort=26002
PostUp=ipaddradd169.254.1.1/32peer169.254.1.2/32dev%i
PostDown=ipaddrdel169.254.1.1/32peer169.254.1.2/32dev%i
Table=off
#C
[Peer]
PublicKey=
AllowedIPs=0.0.0.0/0
Endpoint=

節(jié)點(diǎn) C 與節(jié)點(diǎn) A 配置文件 :

[Interface]
PrivateKey=
ListenPort=27001
PostUp=ipaddradd169.254.1.2/32peer169.254.1.5/32dev%i
PostDown=ipaddrdel169.254.1.2/32peer169.254.1.5/32dev%i
Table=off
#A
[Peer]
PublicKey=
AllowedIPs=0.0.0.0/0

節(jié)點(diǎn) C 與節(jié)點(diǎn) B 配置文件 :

[Interface]
PrivateKey=
ListenPort=26002
PostUp=ipaddradd169.254.1.2/32peer169.254.1.1/32dev%i
PostDown=ipaddrdel169.254.1.2/32peer169.254.1.1/32dev%i
Table=off
#thk
[Peer]
PublicKey=
AllowedIPs=0.0.0.0/0
Endpoint=

ip 分配與靜態(tài)路由

在建立了兩兩之間的連接之后,我們還需要在每臺(tái)機(jī)器上創(chuàng)建一個(gè) dummy 網(wǎng)卡 (也可以寫到 postup 里面),用來(lái)獲取到發(fā)給自己的包。

以機(jī)器 A 為例,BC 上也要進(jìn)行同樣的操作 (記得改 ip)

#iplinkdeldummy
$iplinkadddummytypedummy
$ipaddradd192.168.50.5/32devdummy
$iplinksetdummyup

此時(shí) 192.168.50.5(A) 到 192.168.50.2(C) 是還沒有路由的,不過我們希望去程經(jīng)過節(jié)點(diǎn) B,那么我們?cè)?A 上設(shè)置靜態(tài)路由 :

$iprouteadd192.168.51.2/32dev[AB之間連接對(duì)應(yīng)的wireguard接口名]
#或者iprouteadd192.168.51.2/32via169.254.1.1

然后還需要在節(jié)點(diǎn) B 上設(shè)置到 C 的靜態(tài)路由 :

$iprouteadd192.168.51.2/32dev[BC之間連接對(duì)應(yīng)的wireguard接口]
#或者iprouteadd192.168.51.2/32via169.254.1.2

此時(shí),在 A 上 pingC,在 B 上抓包,我們便能得到如下結(jié)果 :

08b53b46-39bb-11ed-9e49-dac502259ad0.pngPING C

在 B 上只能看見單向的數(shù)據(jù)流,而 A 是可以得到回應(yīng)的,再在 C 上抓包看看 :

C 上分別查看兩個(gè)接口 B-C 與 C-A 的接口

08c0e98c-39bb-11ed-9e49-dac502259ad0.pngB-C 08d0f408-39bb-11ed-9e49-dac502259ad0.pngC-A

可以發(fā)現(xiàn)一點(diǎn),實(shí)際上 B 作為路由進(jìn)行轉(zhuǎn)發(fā)時(shí),源 ip 是什么是無(wú)所謂的,只需要有目的 ip 即可,而目的 ip 的路由方式通過靜態(tài)路由指定了,那么在 C 上則會(huì)收到來(lái)自于 A 的鏈路本地地址 (169.254.1.5) 的包,而 C 與 A 直接連接,且 wireguard 創(chuàng)建了到 169.254.1.5 的連接,所以 C 的響應(yīng)是可以不經(jīng)過 B 直接走到 A 的。這樣就實(shí)現(xiàn)了一個(gè)非對(duì)稱的路由。現(xiàn)在的設(shè)置下,A 主動(dòng)訪問 C 時(shí)會(huì)經(jīng)過 B,C 還沒辦法主動(dòng)的連接 A,因?yàn)檫€沒有設(shè)置 C 到 A 的靜態(tài)路由,我們可以重復(fù)一遍前面的步驟,在 C 上與 B 上指定到 A 的靜態(tài)路由,也可以直接讓 C 訪問 A 而不經(jīng)過 A。不過由于該需求中我只需要 A 能夠主動(dòng)訪問到 C 即可,所以不再進(jìn)行這些設(shè)置。

為什么使用了鏈路本地地址

為什么在配置文件中使用了 169 開頭的地址,而不是直接用 192 開頭的地址建立連接并參與后續(xù)的路由設(shè)置呢?因?yàn)椋ㄖ辽偈窃谖疫@種配置方式下),ip addr add xxx peer xxx 建立點(diǎn)對(duì)點(diǎn)連接時(shí),會(huì)自動(dòng)添加一條路由規(guī)則,會(huì)和我們后續(xù)添加的手動(dòng)路由沖突。所以我只能退一步,使用另一個(gè)地址來(lái)建立點(diǎn)對(duì)點(diǎn)連接,然后用新的地址來(lái)設(shè)置靜態(tài)路由。wireguard 工作在網(wǎng)絡(luò)層,大概不支持不設(shè)置 ip 直接通過 mac 來(lái)連接 ?

只用兩臺(tái)機(jī)器實(shí)現(xiàn)非對(duì)稱路由

上一節(jié)實(shí)現(xiàn)了三臺(tái)機(jī)器組建的網(wǎng)絡(luò)的非對(duì)稱路由,那么能否更進(jìn)一步,借助現(xiàn)有的“流量轉(zhuǎn)發(fā)”服務(wù),實(shí)現(xiàn)兩臺(tái)機(jī)器建立非對(duì)稱路由呢?這樣我們便不再需要第三臺(tái)服務(wù)器轉(zhuǎn)發(fā)去程,且優(yōu)質(zhì)線路在流量轉(zhuǎn)發(fā)服務(wù)中也常見一些,且由于只有去程走了轉(zhuǎn)發(fā),實(shí)際上是花不了多少錢的。

個(gè)人測(cè)試下來(lái),這個(gè)方案也很容易實(shí)現(xiàn)。以本地機(jī)器 A 與遠(yuǎn)程機(jī)器 C 為例,每臺(tái)機(jī)器上都要設(shè)置兩個(gè) wireguard 接口,分別對(duì)應(yīng)通過端口轉(zhuǎn)發(fā)建立的 wireguard 以及直接連接建立的 wireguard。

命名如下 :

a1 本地對(duì)應(yīng)的通過流量轉(zhuǎn)發(fā)建立的 wireguard 連接的接口 169.254.2.1 192.168.51.3

a2 本地對(duì)應(yīng)的通過直接連接建立的 wireguard 連接的接口 169.254.2.2 192.168.51.3

c1 遠(yuǎn)程對(duì)應(yīng)的通過流量轉(zhuǎn)發(fā)建立的 wireguard 連接接口 169.254.2.3 192.168.51.2

c2 遠(yuǎn)程對(duì)應(yīng)的通過直接連接建立的 wireguard 連接接口 169.254.2.4 192.168.51.2

配置文件如下,注意這里沒有用ip addr add peer的命令,而完全采用靜態(tài)路由來(lái)實(shí)現(xiàn),也不再需要 dummy 設(shè)備,而是直接使用了后面需要用的 ip。對(duì),沒寫錯(cuò),其實(shí)并沒有規(guī)定一個(gè) ip 只能分配給一個(gè)接口,只需要我們后面靜態(tài)路由別寫錯(cuò)就好,上一節(jié)采用三臺(tái)服務(wù)器的方案也可以這樣的配置形式,而不是用 dummy 接口。

a1 配置

[Interface]
PrivateKey=
Address=192.168.51.3/32
PostUp=iprouteadd192.168.51.2/32dev%i
#PostDown=
Table=off
#hkg
[Peer]
PublicKey=
AllowedIPs=0.0.0.0/0
Endpoint=[填寫端口轉(zhuǎn)發(fā)服務(wù)的地址]:14967
PersistentKeepalive=10

a2 配置a1 和 a2 只有 endpoint ip、端口不一樣

[Interface]
PrivateKey=
Address=192.168.51.3/32
#PostUp=
#PostDown=
Table=off
#hkg
[Peer]
PublicKey=
AllowedIPs=0.0.0.0/0
Endpoint=[C的地址]:14967
PersistentKeepalive=10

c1、c2 配置,注意c1 和 c2 只有端口不一樣

[Interface]
PrivateKey=
ListenPort=27002
Address=192.168.51.2/32
PostUp=iprouteadd192.168.51.3/32dev%i#c2配置文件進(jìn)行該設(shè)置,指定直連
#PostDown=
Table=off
#local
[Peer]
PublicKey=
AllowedIPs=0.0.0.0/0

然后配置靜態(tài)路由

本地機(jī)器上,去程通過 a1(經(jīng)過流量轉(zhuǎn)發(fā)) ip route add 192.168.51.2/32 dev a1

遠(yuǎn)程機(jī)器上,回程直連 ip route add 192.168.51.2/32 dev c2

之后我們嘗試在本地ping 192.168.51.2看看效果

08e14f9c-39bb-11ed-9e49-dac502259ad0.png

延遲降低到了 30ms,而之前去程繞日 ntt 延遲有 70ms,并且抖動(dòng)劇烈,可以看出效果還是很明顯的。

總結(jié)

目前的方案感覺依舊不是最優(yōu)解,用鏈路本地地址建立連接再添加 dummy 設(shè)備多少有些繁瑣,計(jì)算機(jī)網(wǎng)絡(luò)上還有很多我沒搞清楚的,且這個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)較少,在較多 (>3) 路由節(jié)點(diǎn)的情況下,是否能直接這樣簡(jiǎn)單的配置還是一個(gè)問題。不過關(guān)于這方面的資料實(shí)在是太少了,而當(dāng)前的配置方法雖然比較麻煩,但是也不是不能用,還望大家多多指教,有更好的連接方式請(qǐng)留下評(píng)論給我一點(diǎn)提示。

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 路由
    +關(guān)注

    關(guān)注

    0

    文章

    284

    瀏覽量

    43696
  • 移動(dòng)網(wǎng)絡(luò)

    關(guān)注

    2

    文章

    463

    瀏覽量

    34553
  • 機(jī)器
    +關(guān)注

    關(guān)注

    0

    文章

    798

    瀏覽量

    41877

原文標(biāo)題:如何使用 WireGuard 組建非對(duì)稱路由

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    低端路由器和高端路由的區(qū)別

    類似的疑問--“為什么一樣的功能,這款路由器這么貴,另外一款又這么便宜”、“為什么JCG的路由器這么貴?TP-LINK的這么便宜?”、“這兩款路由器的主要參數(shù)都一樣,為什么性能卻相差
    發(fā)表于 06-26 14:11

    請(qǐng)問替換協(xié)調(diào)器在不重啟這些路由節(jié)點(diǎn)的情況能讓協(xié)調(diào)器C2控制所有的路由節(jié)點(diǎn)嗎

    協(xié)調(diào)器發(fā)送給路由節(jié)點(diǎn)的控制指令一直是Router Request請(qǐng)求他的短地址,而這些路由節(jié)點(diǎn)沒有一個(gè)轉(zhuǎn)發(fā),或者發(fā)路由回復(fù)。斷點(diǎn)調(diào)試的
    發(fā)表于 08-19 07:11

    為什么lwip dhcp功能有的路由器能成功有的路由器不成功?

    lwip dhcp功能有的路由器能成功有的路由器不成功,網(wǎng)上說(shuō)是lwip dhcp的option不全,將電腦的dhcp的option添加進(jìn)去就可以了,修改lwip的源碼,但不知道怎么做
    發(fā)表于 09-29 22:10

    路由控制和路由選擇

    我們可以使用路由策略來(lái)控制路由的引入、分發(fā)、選擇過程;可以使用策略路由來(lái)改變數(shù)據(jù)包的默認(rèn)的轉(zhuǎn)發(fā)行為和轉(zhuǎn)發(fā)路徑。通過路由策略和策略路由,我們可
    發(fā)表于 06-24 16:23 ?2次下載

    靜態(tài)路由協(xié)議概述

    課程說(shuō)明 . 1課介紹. 1課目標(biāo). 1相關(guān)資料. 1第一節(jié) 路由協(xié)議概述 11.1 概述. . 21.2 路由協(xié)議簡(jiǎn)介 21.3 靜態(tài)路由
    發(fā)表于 06-24 17:40 ?10次下載

    基于移動(dòng)IP的路由優(yōu)化研究

    移動(dòng)IP 是一種簡(jiǎn)單且可擴(kuò)展的全球IP 移動(dòng)性的解決方案,但是“三角路由”一直是移動(dòng)IP 中需要解決的一個(gè)關(guān)鍵問題。文章首先針對(duì)現(xiàn)有“三角路由”問題的優(yōu)化方案進(jìn)行了研
    發(fā)表于 01-22 12:44 ?15次下載

    基于DynamipsGUI的網(wǎng)絡(luò)路由優(yōu)化實(shí)驗(yàn)設(shè)計(jì)

    策略路由是網(wǎng)絡(luò)優(yōu)化的常用方法。利用DynamipsGUI搭建網(wǎng)絡(luò)環(huán)境,配置路由策略,模擬了報(bào)文大小分別為60、500和1800三種數(shù)據(jù)報(bào)文從路由器轉(zhuǎn)發(fā)時(shí),
    發(fā)表于 07-26 11:25 ?16次下載
    基于DynamipsGUI的網(wǎng)絡(luò)<b class='flag-5'>路由</b><b class='flag-5'>優(yōu)化</b>實(shí)驗(yàn)設(shè)計(jì)

    避免路由斷裂的優(yōu)化AODV路由協(xié)議

    移動(dòng)自組織網(wǎng)絡(luò)( Mobile Ad Hoc NETwork.MANET)是一種自組織、對(duì)等式、多跳無(wú)線移動(dòng)網(wǎng)絡(luò),網(wǎng)絡(luò)中的節(jié)點(diǎn)具有主機(jī)和路由器的功能。該網(wǎng)絡(luò)應(yīng)用在沒有基礎(chǔ)設(shè)施的環(huán)境下,通過節(jié)點(diǎn)自己
    發(fā)表于 01-29 10:31 ?0次下載
    避免<b class='flag-5'>路由</b>斷裂的<b class='flag-5'>優(yōu)化</b>AODV<b class='flag-5'>路由</b>協(xié)議

    無(wú)線路由器的設(shè)置優(yōu)化指南

    無(wú)線路由器現(xiàn)在是家庭必備產(chǎn)品,我們?cè)谑褂眠^程中也可能遇到眾多的小問題,比如網(wǎng)速忽然變慢等,其實(shí)很多情況下并不是路由器配置的問題,很大的可能是其他家電設(shè)備或其他路由器信號(hào)干擾導(dǎo)致的,那么我們要怎么
    的頭像 發(fā)表于 03-21 15:34 ?4686次閱讀

    路由和硬路由的區(qū)別

    路由的費(fèi)用較軟路由大,一個(gè)300元的軟路由的功能就可以與萬(wàn)元級(jí)別的硬路由相媲美,對(duì)于預(yù)算較少的用戶來(lái)說(shuō),使用軟路由比硬
    發(fā)表于 03-26 09:23 ?1.6w次閱讀

    路由如何進(jìn)入bios

    路由是指利用臺(tái)式機(jī)或服務(wù)器配合軟件形成路由解決方案,主要靠軟件的設(shè)置,達(dá)成路由器的功能;路由則是以特
    發(fā)表于 03-26 10:00 ?8740次閱讀

    如何優(yōu)化您的無(wú)線路由

    星創(chuàng)易聯(lián)教你如何優(yōu)化您的無(wú)線路由
    發(fā)表于 11-08 14:53 ?1849次閱讀

    如何優(yōu)化您的無(wú)線路由

    優(yōu)化您的無(wú)線路由器應(yīng)該知道什么 重新定位您的路由器、更新其固件和添加新天線通常會(huì)增強(qiáng)信號(hào)。將某些類型的流量分類到雙頻路由器的不同頻段和信道上將減少
    發(fā)表于 11-25 15:48 ?2130次閱讀
    如何<b class='flag-5'>優(yōu)化</b>您的無(wú)線<b class='flag-5'>路由</b>器

    什么是路由表?IP路由表包含了哪些要素?

    路由表:簡(jiǎn)單點(diǎn)說(shuō)路由表就是路由器用于指導(dǎo)數(shù)據(jù)包如何轉(zhuǎn)發(fā)的表項(xiàng),記錄了往目的IP的下一跳哪里(如下圖)。
    的頭像 發(fā)表于 12-04 09:36 ?1.7w次閱讀
    什么是<b class='flag-5'>路由</b>表?IP<b class='flag-5'>路由</b>表包含了哪些要素?

    恒訊科技分析:常用的vps路由測(cè)試的工具和方法

    VPS(虛擬私人服務(wù)器)路由測(cè)試是評(píng)估服務(wù)器網(wǎng)絡(luò)性能的重要環(huán)節(jié),以下是一些常用的工具和方法: 1、BestTrace:這是一款路由追蹤客戶端軟件,可以測(cè)試VPS的
    的頭像 發(fā)表于 08-08 22:54 ?1530次閱讀