国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

OpenFlow(OVS)下的“路由技術(shù)”

zhigoo / 1891人閱讀

摘要:需要修改數(shù)據(jù)包的二層源目地址以及三層包頭的因?yàn)槁酚墒侵鹛D(zhuǎn)發(fā)的,每一跳都需要做這些工作,即使是現(xiàn)在通過(guò)流表轉(zhuǎn)發(fā),中間的轉(zhuǎn)發(fā)器直接轉(zhuǎn)發(fā)報(bào)文,到達(dá)倒數(shù)第一跳的時(shí)候還是需要把數(shù)據(jù)包的目的地址修改為接受端的地址。

前言

熟悉這款設(shè)備的同學(xué),應(yīng)該也快到不惑之年了吧!這應(yīng)該是Cisco最古老的路由器了。上個(gè)世紀(jì)80年代至今,路由交換技術(shù)不斷發(fā)展,但是在這波瀾壯闊的變化之中,總有一些東西在嘈雜的機(jī)房?jī)?nèi)閃閃發(fā)光,像極了工程師的頭頂,充滿了智慧!

Cisco“古董”路由器

本文主要描述了一種將三層路由變成二層交換轉(zhuǎn)發(fā)(以及二層轉(zhuǎn)發(fā)變成三層路由)的實(shí)現(xiàn)方式,以應(yīng)對(duì)OVS(OpenFlow)跨網(wǎng)段路由復(fù)雜的問(wèn)題;當(dāng)然技術(shù)本身是客觀的,具體應(yīng)用還要看場(chǎng)景。

隨著SDN技術(shù)不斷“發(fā)展”,玩路由器交換機(jī)的變成了“傳統(tǒng)網(wǎng)工”,搞控制器、轉(zhuǎn)發(fā)器的才算是正常工作,當(dāng)然任何新技術(shù)的掌握都離開(kāi)對(duì)“歷史”了解或者反芻;也許幾年以后當(dāng)有人聽(tīng)到一條一條的配置ACL、配置路由表是一件很不可思議的事情,因?yàn)槟菚r(shí)所有的配置都是控制器做好模型生成配置自動(dòng)下發(fā)的,點(diǎn)點(diǎn)鼠標(biāo)或者寫(xiě)個(gè)py腳本就可以了

傳統(tǒng)的路由交換機(jī)

OK,言歸正傳,我們先來(lái)了解一下傳統(tǒng)路由、交換的區(qū)別:

交換: 一般指的是同網(wǎng)段內(nèi)分組包的轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)依據(jù):MAC地址

PC視角:當(dāng)兩臺(tái)主機(jī)在同一個(gè)網(wǎng)段,PC1需要訪問(wèn)PC2時(shí),PC1首先會(huì)發(fā)送arp請(qǐng)求報(bào)文,請(qǐng)求PC2的的MAC地址;收到響應(yīng)后,PC1會(huì)把PC2的MAC地址封裝在分組包的目的MAC的位置,然后將分組報(bào)文扔給交換機(jī);PC2也會(huì)做類(lèi)似的動(dòng)作。

交換機(jī)視角:交換機(jī)會(huì)接收網(wǎng)段上的所有數(shù)據(jù)幀;利用接收數(shù)據(jù)幀中的源MAC地址來(lái)建立MAC地址表(源地址自學(xué)習(xí)),使用地址老化機(jī)制進(jìn)行地址表維護(hù)。MAC地址表中查找數(shù)據(jù)幀中的目的MAC地址,如果找到就將該數(shù)據(jù)幀發(fā)送到相應(yīng)的端口,如果找不到,就向除入端口以外的所有的端口發(fā)送;向所有端口轉(zhuǎn)發(fā)廣播幀和多播幀。

路由:一般指不同網(wǎng)段的數(shù)據(jù)包的轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)依據(jù):IP路由

PC視角:當(dāng)兩臺(tái)主機(jī)在不同的網(wǎng)段,PC1需要訪問(wèn)PC2時(shí),PC1首先會(huì)在自己的路由表內(nèi)查詢PC2的IP地址對(duì)應(yīng)的下一跳(一般默認(rèn)是網(wǎng)關(guān))地址,然后再去發(fā)送ARP報(bào)文,請(qǐng)求該下一跳對(duì)應(yīng)的MAC地址;收到響應(yīng)后,PC1會(huì)把該MAC地址封裝在數(shù)據(jù)包的目的MAC的位置(注意此時(shí)的目的IP仍是PC2的IP地址,而不是下一跳IP),然后將數(shù)據(jù)報(bào)文扔給路由器;PC2也會(huì)做類(lèi)似的動(dòng)作。

路由器視角:當(dāng)路由器收到一個(gè)IP數(shù)據(jù)包,路由器就會(huì)找出數(shù)據(jù)包的三層包頭中的目的IP地址,然后拿著目的IP地址到自己的路由表中進(jìn)行查詢,找到“最匹配”的路由條目后,將數(shù)據(jù)包根據(jù)路由條目所指示的出接口或者下一跳IP轉(zhuǎn)發(fā)出去,這就是IP路由(當(dāng)然路由器還會(huì)做一些額外的工作:將數(shù)據(jù)包的三層包頭的TTL減一,修改數(shù)據(jù)包的二層源MAC地址為自己出接口的MAC,修改數(shù)據(jù)包的二層目的MAC地址為下一跳的MAC);而每一臺(tái)路由器都會(huì)在本地維護(hù)一個(gè)路由表(Routing Table),路由表中裝在著路由器獲知的路由條目,路由條目由路由前綴(路由所關(guān)聯(lián)的目的地址)、路由信息的來(lái)源、出接口或者下一跳IP等元素構(gòu)成;路由器通過(guò)靜態(tài)配置或者動(dòng)態(tài)的方式獲取路由條目并維護(hù)自己的路由表。

OpenFlow的出現(xiàn)

當(dāng)OpenFlow出現(xiàn)以后,路由器、交換機(jī)統(tǒng)一變成了轉(zhuǎn)發(fā)器,轉(zhuǎn)發(fā)依據(jù):流表
OK,我們先看一下流表長(zhǎng)啥樣:

root@ubuntu:~# ovs-ofctl dump-flows br2
NXST_FLOW reply (xid=0x4):
cookie=0x0, duration=16080.313s, table=0, n_packets=1, n_bytes=42, idle_age=15691, priority=200,arp,arp_tpa=2.2.2.0/24 actions=output:100
cookie=0x0, duration=15964.186s, table=0, n_packets=1, n_bytes=42, idle_age=15691, priority=100,arp,arp_tpa=1.1.1.0/24 actions=output:1
cookie=0x0, duration=15985.113s, table=0, n_packets=5, n_bytes=490, idle_age=15692, priority=200,icmp,nw_dst=2.2.2.0/24 actions=output:100
cookie=0x0, duration=15802.910s, table=0, n_packets=5, n_bytes=490, idle_age=15692, priority=100,icmp,nw_dst=1.1.1.0/24 actions=output:1

當(dāng)然有人稱流表為ACL,這也可以理解,都有著強(qiáng)大的匹配域以及Action,流表的Pipeline可以算是其特色(性能暫時(shí)先不care);到此為止,MAC表、路由表在轉(zhuǎn)發(fā)器上面已經(jīng)統(tǒng)統(tǒng)看不到了,你能看到只有上面的流表。

就OVS來(lái)說(shuō),如果把Bridge配置成Secure模式,默認(rèn)是沒(méi)有什么流表的;如果現(xiàn)在我們把OVS配置成一臺(tái)普通的傳統(tǒng)二層交換機(jī),只需要增加幾條關(guān)于ARP、ICMP的流表,就可以Ping通了(可以參考以上示例),這還是比較簡(jiǎn)單的。

當(dāng)然可能有些人說(shuō)還有更簡(jiǎn)單的:只需把Bridge配置Standalone模式或者增加一條默認(rèn)action=NORMAL的流表就可以了。但是如果這樣的話,所有的流量又回到傳統(tǒng)的二層三層轉(zhuǎn)發(fā)去了,作為新時(shí)代的OVS,這符合我的個(gè)性啊,如果這樣的話,這活還是交給Linux Bridge來(lái)干吧。

但是問(wèn)題來(lái)了,如果把OVS配置成一臺(tái)有路由器功能的轉(zhuǎn)發(fā)器,這就比較困難了;因?yàn)橥ㄟ^(guò)上文分析路由轉(zhuǎn)發(fā)過(guò)程相對(duì)來(lái)說(shuō)還是比較復(fù)雜的,需要做的工作如下:

需要一個(gè)類(lèi)似網(wǎng)關(guān)的設(shè)備(Device),來(lái)響應(yīng)ARP請(qǐng)求:當(dāng)然可以在新增OVS時(shí)自動(dòng)生成的設(shè)備上配置網(wǎng)關(guān)地址,也可以增加多帶帶的設(shè)備專(zhuān)門(mén)作為網(wǎng)關(guān)。
需要修改數(shù)據(jù)包的二層源目MAC地址以及三層包頭的TTL:因?yàn)槁酚墒侵鹛D(zhuǎn)發(fā)的,每一跳都需要做這些工作,即使是現(xiàn)在通過(guò)流表轉(zhuǎn)發(fā),中間的轉(zhuǎn)發(fā)器直接轉(zhuǎn)發(fā)報(bào)文,到達(dá)倒數(shù)第一跳的時(shí)候還是需要把數(shù)據(jù)包的目的MAC地址修改為接受端的MAC地址。

一切皆交換的世界

在OpenFlow的世界所有的網(wǎng)絡(luò)設(shè)備都是轉(zhuǎn)發(fā)器或者稱為交換機(jī),執(zhí)行簡(jiǎn)單的轉(zhuǎn)發(fā)轉(zhuǎn)發(fā)動(dòng)作; OK,那我們能不能將跨網(wǎng)段訪問(wèn)的路由轉(zhuǎn)發(fā)變換成普通的二層轉(zhuǎn)發(fā)呢?答案是YES!

下面我們通過(guò)一個(gè)示例來(lái)實(shí)現(xiàn)這個(gè)想法:
首先我們要解決的第一個(gè)問(wèn)題就是網(wǎng)關(guān)的問(wèn)題:如何取消對(duì)網(wǎng)關(guān)的ARP請(qǐng)求?這個(gè)在Linux平臺(tái)下并不是一件難事,只需一條命令:

root@ubuntu:~# ip route add 0.0.0.0/0 dev eth0 scope link
(同時(shí)注意arp_ignore需要是0或1)

Link路由是可以直接arp目標(biāo)地址的,而不是arp下一跳地址。意思就是說(shuō),目標(biāo)地址是屬于跟本地直連的二層鏈路上,不跨三層。既然是不跨三層的鏈路,arp就可以暢行無(wú)阻,而標(biāo)準(zhǔn)中又沒(méi)有規(guī)定arp協(xié)議包的請(qǐng)求源和請(qǐng)求目標(biāo)必須是同一個(gè)網(wǎng)段的地址(甚至都沒(méi)有掩碼約束),所以說(shuō),一個(gè)以下的arp請(qǐng)求是有效的:

驗(yàn)證得到了響應(yīng):

細(xì)心的童鞋可以發(fā)現(xiàn)上面的命令實(shí)際上解決了我們的兩個(gè)問(wèn)題,網(wǎng)關(guān)的問(wèn)題解決了,另外由于源主機(jī)直接請(qǐng)求目的主機(jī)的MAC地址,所以封裝的時(shí)候也直接封裝了目的主機(jī)的MAC,省去了我們?cè)诘箶?shù)第一跳修改數(shù)據(jù)包的目的MAC為目的主機(jī)的工作。

最后剩下一個(gè)問(wèn)題就是防環(huán)的TTL的問(wèn)題,這個(gè)處理起來(lái)也比較簡(jiǎn)單一些,我們可以在流表中加入actions=dec_ttl(1), output:100,在每一跳中自動(dòng)減小TTL。

然后在接收端的PC上面做類(lèi)似的操作,中間的OVS添加相關(guān)ARP以及業(yè)務(wù)流的流表,就實(shí)現(xiàn)了跨網(wǎng)段的“交換”。

Little Tips

通過(guò)以上描述,已經(jīng)實(shí)現(xiàn)了跨網(wǎng)段的路由向交換的轉(zhuǎn)換,另外也可以實(shí)現(xiàn)所謂二層交換向路由的轉(zhuǎn)換,比如10.0.0.100/24 訪問(wèn)10.0.0.200/24,按照我們的想當(dāng)然是應(yīng)該走二層轉(zhuǎn)發(fā)的,也就是直接請(qǐng)求目的主機(jī)的MAC地址,然后封裝、發(fā)送;

但是由于種種原因,目的主機(jī)10.0.0.200/24可能跟源主機(jī)是跨三層網(wǎng)絡(luò)的,那現(xiàn)在怎么辦呢?OK,可以在源主機(jī)上面增加一條明細(xì)路由把10.0.0.200/24指向默認(rèn)網(wǎng)關(guān),在目的主機(jī)上面增加一條明細(xì)路由把10.0.0.100/24指向默認(rèn)網(wǎng)關(guān),然后再ping一下,有木有看到自己的嘴角上揚(yáng)呢!

交換機(jī)本就應(yīng)該做二層轉(zhuǎn)發(fā)的事情,其他的分布式出去吧!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/42324.html

相關(guān)文章

  • OpenFlow(OVS)下的路由技術(shù)

    摘要:需要修改數(shù)據(jù)包的二層源目地址以及三層包頭的因?yàn)槁酚墒侵鹛D(zhuǎn)發(fā)的,每一跳都需要做這些工作,即使是現(xiàn)在通過(guò)流表轉(zhuǎn)發(fā),中間的轉(zhuǎn)發(fā)器直接轉(zhuǎn)發(fā)報(bào)文,到達(dá)倒數(shù)第一跳的時(shí)候還是需要把數(shù)據(jù)包的目的地址修改為接受端的地址。 前言 熟悉這款設(shè)備的同學(xué),應(yīng)該也快到不惑之年了吧!這應(yīng)該是Cisco最古老的路由器了。上個(gè)世紀(jì)80年代至今,路由交換技術(shù)不斷發(fā)展,但是在這波瀾壯闊的變化之中,總有一些東西在嘈雜的機(jī)房...

    cyqian 評(píng)論0 收藏0
  • OpenFlow(OVS)下的路由技術(shù)

    摘要:需要修改數(shù)據(jù)包的二層源目地址以及三層包頭的因?yàn)槁酚墒侵鹛D(zhuǎn)發(fā)的,每一跳都需要做這些工作,即使是現(xiàn)在通過(guò)流表轉(zhuǎn)發(fā),中間的轉(zhuǎn)發(fā)器直接轉(zhuǎn)發(fā)報(bào)文,到達(dá)倒數(shù)第一跳的時(shí)候還是需要把數(shù)據(jù)包的目的地址修改為接受端的地址。 前言 熟悉這款設(shè)備的同學(xué),應(yīng)該也快到不惑之年了吧!這應(yīng)該是Cisco最古老的路由器了。上個(gè)世紀(jì)80年代至今,路由交換技術(shù)不斷發(fā)展,但是在這波瀾壯闊的變化之中,總有一些東西在嘈雜的機(jī)房...

    ityouknow 評(píng)論0 收藏0
  • 基于OVN的Kubernetes網(wǎng)絡(luò)架構(gòu)解析

    摘要:它最基本的功能是實(shí)現(xiàn)了虛擬交換機(jī),可以把虛擬網(wǎng)卡和虛擬交換機(jī)的端口連接,這樣一個(gè)交換機(jī)下的多個(gè)網(wǎng)卡網(wǎng)絡(luò)就打通了,類(lèi)似的功能。最基礎(chǔ)的分布式虛擬交換機(jī),這樣可以將多臺(tái)機(jī)器上的容器組織在一個(gè)二層網(wǎng)絡(luò)下,看上去就好像所有容器接在一臺(tái)交換機(jī)上。 【編者的話】Kubernetes經(jīng)過(guò)了幾年的發(fā)展,存在著很多的網(wǎng)絡(luò)方案。然而網(wǎng)絡(luò)虛擬化在Kubernetes出現(xiàn)前就一直在發(fā)展,其中基于OpenVsw...

    dingding199389 評(píng)論0 收藏0
  • UCloud 虛擬網(wǎng)絡(luò)VPC技術(shù)演進(jìn)之路

    摘要:在實(shí)踐中,我們開(kāi)發(fā)并上線了網(wǎng)關(guān)和負(fù)載均衡網(wǎng)關(guān)。而負(fù)載均衡網(wǎng)關(guān)則支持無(wú)縫替換傳統(tǒng)交換機(jī)實(shí)現(xiàn)網(wǎng)關(guān)集群,支持一致性,并支持根據(jù)任意字段,內(nèi)存和端口來(lái)計(jì)算哈希,支持協(xié)議。網(wǎng)絡(luò)作為信息時(shí)代的重要載體,在云服務(wù)的快速發(fā)展下形成了獨(dú)具特色的虛擬網(wǎng)絡(luò)服務(wù)架構(gòu)和模式。12月19日,2020中國(guó)云網(wǎng)絡(luò)峰會(huì)于北京順利召開(kāi),會(huì)上UCloud虛擬網(wǎng)絡(luò)VPC負(fù)責(zé)人陳煌棟給大家?guī)?lái)了演講《UCloud VPC技術(shù)演進(jìn)之路...

    Tecode 評(píng)論0 收藏0
  • ovs實(shí)踐--openFlow跨網(wǎng)段組網(wǎng)

    摘要:支持協(xié)議,所以可以很方便的通過(guò)編程實(shí)現(xiàn)大規(guī)模網(wǎng)絡(luò)的自動(dòng)化,被大量運(yùn)用于網(wǎng)絡(luò)中。流表中,優(yōu)先級(jí)高的優(yōu)先匹配,并執(zhí)行匹配規(guī)則的。 sdn (software defines network) 看了些相關(guān)的資料,這里記錄一下自己對(duì)sdn的理解,能力有限,如有錯(cuò)誤歡迎指正。 sdn軟件定義網(wǎng)絡(luò),目的是想要利用軟件來(lái)模擬網(wǎng)絡(luò)設(shè)備,如交換機(jī),路由器之類(lèi)的。 為什么需要這么做? 一個(gè)主要原因是云計(jì)算...

    zr_hebo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<