国产日韩精品一区二区_欧美一级片在线播放_久久精品中文字幕电影_久久视频精品在线_亚洲国产成人久久综合一区_久久精品国产精品_国产视频精品免费播放_在线视频中文亚洲_亚洲午夜未满十八勿入免费观看全集_精品亚洲一区二区_国产原创欧美精品_国产色综合天天综合网_九九久久国产精品_欧美极品少妇xxxxⅹ裸体艺术_亚洲国产精品人人爽夜夜爽_尤物九九久久国产精品的分类

卓世科技榮膺甲子光年“2025中國AI Agent領域最具商業潛力榜”全球核心路由器市場需求強勁復蘇 Q3增幅高達68%從 Galaxy Z TriFold 看三星如何用“減法”設計重構大屏體驗聲網對話式 AI 引擎2.0 讓 AI 更懂開口時機 支持預注冊聲紋識別與電話外呼全系皆四驅 領克10 EM-P新增千里浩瀚H5版型:16.58萬起奇瑞墨甲交付第1000只機器狗 將投入家庭陪伴、廠區看護索尼ZV-E10M2相機升值!官方解鎖4K 120p、FHD 240p智繪金融,網行天下 2025華為金融網絡創新峰會成功舉辦徠芬入局洗地機,還能再創“增長神話”嗎?激增141%,預計2025年全球Mini LED電視出貨將突破1300萬臺聯影智能交出答卷AI醫療行業迎來爆發期城市數據基礎設施建設圓桌:打破數據孤島,釋放數據價值阿爾卑斯攜慧湃一體化解決方案亮相第21屆產品創新數字化國際峰會IAR云就緒平臺擴展對瑞薩RH850/U2x的支持,賦能新一代汽車電子開發西門子和nVent將發布專為英偉達 AI智算中心構建的聯合參考架構全球新能源車型銷量TOP20中中國占17席 小米SU7第八理想高管:從理想ONE之后我們再也不玩三缸機了 代價太大一句話完成支付!支付寶“智能眼鏡AI付”上線Rokid開發平臺小鵬汽車2026年產品規劃大揭秘:將推出10余款車型飛豬《2025年租車自駕游報告》:租車用戶規模擴大近三成
  • 首頁 > 數據存儲頻道 > 數據庫頻道 > 操作系統與開源

    UCloud基于Linux內核新特性的下一代外網網關設計及相關開源工作

    2019年03月27日 15:03:09 來源:中文科技資訊

      UCloud外網網關是為了承載外網IP、負載均衡等產品的外網出入向流量,當前基于Linux內核的OVS/GRE tunnel/netns/iptables等實現,很好地支撐了現有業務。同時,我們也在不斷跟蹤開源社區的新技術發展,并將之用于下一代外網網關的設計。這些新特性可將系統性能和管理能力再提上一檔,滿足未來幾年的需求。在方案設計研發過程中發現,新特性存在不少缺陷和Bug,為此我們向開源社區回饋了10多個patch,并融入到kernel 5.0版本中,幫助完善kernel功能并提升穩定性。

      當前業界的多租戶外網網關很多都是基于OpenFlow的OpenvSwitch(OVS)方案,然而隨著內核路由轉發功能的不斷完善,利用內核原生路由轉發方式進行設計多租戶外網網關系統成為一種可能。在這種方式下能有效的使用傳統iproute2路由工具以及iptables、nftables等Firewall工具,并且隨著SwitchDev技術的興起,未來將網關系統遷移到Linux Switch上也成為一種可能。

      現有kernel 3.x的不足

      當前廣泛使用的內核版本為3.x系列,例如CentOS 7全系列標準支持的內核為3.10版本,Fedora/Ubuntu等Linux發行版也有大量使用。在3.x系列內核下存在著IP tunnel管理復雜、租戶隔離性能損耗等問題。

      1. IP tunnel管理復雜

      Linux內核創建IP tunnel設備來建立點對點的隧道連接,創建時需指定tunnel dst和 tunnel key。因為宿主機之間兩兩建立連接,面向宿主機的目的地址眾多,這樣就會導致網關節點上需要創建成千上萬的tunnel設備,在大規模業務環境下,tunnel的管理將變得及其復雜。

      2. 多租戶隔離導致的性能下降

      a. 公有云需要實現多租戶隔離以確保用戶間的安全和隱私。由于VPC網絡下不同租戶的內網地址可以重合,導致路由也有重合的可能性,此時需要通過大量的策略路由去隔離租戶的路由規則,由于策略路由的鏈表屬性,性能會隨著鏈表長度的增加而急劇下降。

      b. 由于Firewall和NAT的實現基于同樣鏈式的iptables,性能損耗同樣可觀。

      3. netns帶來性能開銷

      通過netns實現租戶路由和Firewall規則的隔離,但是netns會引入虛擬網卡和協議棧重入開銷,使整體性能下降20%左右。

      三項內核新技術

      為了解決原有方案存在的困擾,我們調研了大量行業主流方案和內核上游的新動向,發現Lightweight tunneling(輕量級隧道,簡稱lwtunnel)、Virtual Routing Forwarding(虛擬路由轉發,簡稱VRF)以及nftable & netfilter flow offload(流卸載)三項內核新技術的特性,可以幫助規避原方案存在的缺陷。

      1. Lightweight tunneling

      Linux內核在4.3版本中引入了輕量級隧道Lightweight tunneling,它提供了通過route方式設置tunnel屬性的方法,這樣可以避免管理大量的tunnel設備。

      創建隧道設備時指定external模式,利用路由設置的輕量級隧道通過tun設備發送報文。

      2. Virtual Routing Forwarding

      Linux內核在4.3版本中引入了VRF的初步支持,并在4.8版本形成完備版本。Virtual Routing Forwarding虛擬路由轉發,可以將一臺Linux Box的物理路由器當多臺虛擬路由器使用,能很好的解決租戶路由隔離問題,避免直接使用策略路由。因此,可以將不同租戶的網卡加入租戶所屬的虛擬路由器中來實現多租戶的虛擬路由。

      3. flow offload

      Nftables是一種新的數據包分類框架,旨在替代現存的{ip,ip6,arp,eb}_tables。在nftables中,大部分工作是在用戶態完成的,內核只知道一些基本指令(過濾是用偽狀態機實現的)。nftables的一個高級特性就是映射,可以使用不同類型的數據并映射它們。例如,我們可以映射iif device到專用的規則集合(之前創建的存儲在一個鏈中)。由于是hash映射的方式,可以完美的避免鏈式規則跳轉的性能開銷。

      Linux內核在版本4.16引入了flow offload功能,它為IP forward提供了基于流的卸載功能。當一條新建連接完成首回合原方向和反方向的報文時,完成路由,Firewall和NAT工作后,在處理反方向首報文的forward hook,根據報文路由、NAT等信息創建可卸載flow到接收網卡ingress hook上。后續的報文可以在接收ingress hook上直接轉發,不需要再進入IP stack處理。此外,將來flow offload還將支持hardware offload模式,這將極大提高系統轉發性能。

      方案設計與優化實踐

      通過對上述三項新技術的研究,我們發現可以嘗試設計一套基于路由的方式,實現多租戶overlay網絡的外網網關。在方案設計過程中,我們也碰到了諸如lwtunnel和flow offload功能不足,以及VRF和flow offload不能一起有效的工作等問題。最終我們都設法解決了,并針對這些內核的不足提交patch給Linux開源社區。

      1. lwtunnel發送報文tunnel_key丟失

      問題描述:我們利用lwtunnel路由方式發送報文時,創建了一個external類型的gretap tunnel,我們將命令設置了id為1000,但是發送成功報文中沒有tunnel_key字段。

      問題定位:我們研究iproute2代碼,發現由于TUNNEL_KEY flag并沒有開放給用戶態,所以iproute2工具并沒有對lwtunnel路由設置TUNNEL_KEY,導致報文不會創建tunnel_key字段。

      提交patch:我們給內核和用戶態iproute2分別提交patch來解決這一問題:

      iptunnel: make TUNNEL_FLAGS available in uapi

      https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git/commit/?

      id=1875a9ab01dfa96b06cb6649cb1ce56efa86c7cb

      iproute: Set ip/ip6 lwtunnel flags

      https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/commit/?id=3d65cefbefc86a53877f1e6461a9461e5b8fd7b3

      提交patch后,可以通過以下方式設置路由。

      ip r r 2.2.2.11 via 1.1.1.11 dev tun encap ip id 1000 dst 172.168.0.1 key

      2. lwtunnel對指定key的IP tunnel無效

      問題發現:為了能有效隔離租戶路由,我們給每個租戶創建一個基于tunnel_key的gretap tunnel設備。如下圖,創建一個tunnel_key 1000的gretap tunnel設備,把tunnel設備加入租戶所屬VRF,tunnel設備能有效地接收報文,但并不能發送報文。

      問題定位:研究內核發現,IP tunnel在非external模式下即使指定了輕量級隧道路由,發送報文也沒有使用它,導致報文路由錯誤被丟棄。

      提交patch:

      ip_tunnel: Make none-tunnel-dst tunnel port work with lwtunnel

      https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d71b57532d70c03f4671dd04e84157ac6bf021b0

      提交patch后,在未指定tunnel_dst的非external模式IP tunnel下,能使用輕量級隧道路由進行發送報文。

      3. external IP tunnel ARP無法正常運行

      問題描述:鄰居IP tunnel進行了ARP請求,但是本端的ARP回應報文的隧道頭中并沒帶tunnel_key字段。

      問題定位:研究代碼發現,tunnel收到了對端的ARP 請求,在發送報文ARP回復的時候會復制請求報文的tunnel信息,但是遺漏了所有tun_flags。

      提交patch:

      iptunnel: Set tun_flags in the iptunnel_metadata_reply from src

      https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7bdca378b2301b1fc6a95c60d6d428408ae4e39e

      4. Flow offload不能與DNAT有效工作

      問題描述:Firewall創建規則從eth0收到目的地址2.2.2.11的報文,DNAT為10.0.0.7, flow offload無法工作。

      問題定位:分析發現,客戶端1.1.1.7 —> 2.2.2.7 DNAT到server 10.0.0.7,第一個reply反向報文(syc+ack)使用了錯的目的地址獲取反向路由

      daddr = ct->tuplehash[!dir].tuple.dst.u3.ip

      此時dir為反方向,所以daddr獲取為原方向的目的地址,這個值是2.2.2.7, 但是由于被DNAT過,真正的路由不應該通過2.2.2.7去獲取,而是應該根據10.0.0.7這個值去獲取

      addr = ct->tuplehash[dir].tuple.src.u3.ip

      提交patch:

      netfilter: nft_flow_offload: Fix reverse route lookup

      https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a799aea0988ea0d1b1f263e996fdad2f6133c680

      5. Flow offload不能與VRF有效工作

      問題描述:將網卡eth0和eth1加入VFR后,flow offload不起作用。

      問題定位:查看代碼發現,原方向和反方向首報文進入協議堆棧后skb->dev會設置為vrf device user1,創建flow offload規則的iif就是user1。但是offload規則下發在eth0和eth1的ingress hook上,所以后續報文在eth0和eth1的ingress hook上不能匹配flow規則。

      提交patch:

      netfilter: nft_flow_offload: fix interaction with vrf slave device

      https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=10f4e765879e514e1ce7f52ed26603047af196e2

      最終,我們根據兩個方向查找路由的結果,設置flow offload規則的iif和oif信息來解決此問題。

      6. VRF PREROUTING hook重入問題

      問題描述:配置網卡加入VRF,firewall ingress方向規則為接收目的地址2.2.2.11 、TCP 目的端口22的報文,egress方向規則為丟棄TCP 目的端口 22的報文。出現異常結果: 收到目的地址2.2.2.11 TCP 22目的端口的報文卻被丟棄。

      問題定位:研究發現網卡加入VRF后收到的報文會兩次進入PREROUTING hook,因為在進入IP stack時會進第一次PREROUTING hook,然后被VRF設備接管后會再次進入PREROUTING hook。上述規則第一次在rule-1000-ingress chain中dst nat為10.0.0.7,第二次由于報文被DNAT后會錯誤的進入rule-1000-egress,導致報文被丟棄。

      提交patch:我們給內核加了一個支持判斷網卡類型的match項目,讓用戶態避免可知的第二次無效重入,內核態和用戶態nftables分別提交了如下的patch:

      netfilter: nft_meta: Add NFT_META_I/OIFKIND meta type

      https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git/commit/?id=0fb4d21956f4a9af225594a46857ccf29bd747bc

      meta: add iifkind and oifkind support

      http://git.netfilter.org/nftables/commit/?id=512795a673f999fb04b84dbbbe41174e9c581430

      使用方法:

      nft add rule firewall rules-all meta iifkind "vrf" counter accept

      原型驗證

      最終,我們成功地利用lwtunnel、VRF和flow offload實現多租戶外網網關的原型驗證。驗證過程如下:

      1. 首先創建原型環境。

      a. netns cl模擬外網client, 地址為1.1.1.7,tunnel src 172.168.0.7,配置發送路由;

      b. netns ns1模擬租戶1,內網地址為10.0.0.7,外網地址為 2.2.2.11,tunnel src 172.168.0.11 tunnel_key 1000,配置發送路由;

      c. netns ns2模擬租戶2,內網地址為10.0.0.7,外網地址為 2.2.2.12,tunnel src 172.168.0.12 tunnel_key 2000,配置發送路由;

      d. Host模擬外網網關,tunnel src 172.168.0.1,創建租戶VRF user1和use2,創建租戶IP tunnel tun1和tun2,配置轉發路由。

      原型環境圖如下:

      2. 創建firewall規則:

      a. 租戶1入向允許TCP目的端口22和ICMP訪問,出向禁止訪問外部TCP 22目的端口;

      b. 租戶2入向允許TCP端口23和ICMP訪問,出向禁止訪問外部TCP 23目的端口;

      c. 在租戶tun1和tun2設備上支持flow offload。

      最終,client可以通過2.2.2.11成功訪問user1 tcp 22端口服務,user1不能訪問client tcp 22端口服務;client可以通過2.2.2.12成功訪問user2 tcp 23端口服務,user1不能訪問client tcp 23端口服務。

      待后續hardware offload功能完善以及網卡廠商支持后,我們會做進一步的開發驗證。

      寫在最后

      以上是本項目涉及的部分核心問題,這些patch特性都可以在Linux kernel 5.0版本里獲取。我們把這期間為Linux kernel社區貢獻的patch整理成了一份列表,希望能為開發者提供幫助,讀者可以在

      https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/?qt=author&q=wenxu%40ucloud.cn地址閱覽完整patch list。

      Linux作為成熟的開源套件,一直是云廠商使用的主流操作系統,但在技術的更新迭代過程中,一些新特性在實際應用上也會存在穩定性、兼容性等方面的問題。我們在研究使用上游技術的同時,也一直積極探索、豐富開源技術功能,幫助提高開源技術穩定性。并將產出持續回饋給社區,與社區共同構建一個繁榮的開源生態。

      文章內容僅供閱讀,不構成投資建議,請謹慎對待。投資者據此操作,風險自擔。

    海報生成中...

    [No.S013]

    最新新聞

    熱門新聞

    即時

    全球頂級AI創作社區回歸!海藝AI國內首發“全民娛樂化創作

    海藝AI的模型系統在國際市場上廣受好評,目前站內累計模型數超過80萬個,涵蓋寫實、二次元、插畫、設計、攝影、風格化圖像等多類型應用場景,基本覆蓋所有主流創作風格。

    新聞

    市場占比高達35.8%,阿里云引領中國AI云增長

    9月9日,國際權威市場調研機構英富曼(Omdia)發布了《中國AI云市場,1H25》報告。中國AI云市場阿里云占比8%位列第一。

    企業IT

    華為坤靈發布IdeaHub千行百業體驗官計劃,助力中小企

    9月24日,華為坤靈召開“智能體驗,一屏到位”華為IdeaHub千行百業體驗官計劃發布會。

    3C消費

    雅馬哈推出兩款高端頭戴耳機YH-4000與YH-C3000

    雅馬哈昨日宣布推出兩款頭戴式耳機,分別是平板振膜的YH-4000和動圈原理的YH-C3000。

    研究

    IDC:2025上半年全球智能家居清潔機器人出貨量同比暴

    IDC今日發布的《全球智能家居清潔機器人設備市場季度跟蹤報告,2025年第二季度》顯示,上半年全球智能家居清潔機器人市場出貨1,2萬臺,同比增長33%,顯示出品類強勁的市場需求。

    国产日韩精品一区二区_欧美一级片在线播放_久久精品中文字幕电影_久久视频精品在线_亚洲国产成人久久综合一区_久久精品国产精品_国产视频精品免费播放_在线视频中文亚洲_亚洲午夜未满十八勿入免费观看全集_精品亚洲一区二区_国产原创欧美精品_国产色综合天天综合网_九九久久国产精品_欧美极品少妇xxxxⅹ裸体艺术_亚洲国产精品人人爽夜夜爽_尤物九九久久国产精品的分类
    亚洲欧美清纯在线制服| 亚洲美女偷拍久久| 欧美第一黄网| 亚洲欧洲黄色网| 亚洲码欧美码一区二区三区| 国产精品二区三区| 欧美高清电影在线看| 日韩电影在线播放| 国产电影一区二区三区| 91探花在线观看| 精品日产乱码久久久久久仙踪林| 日韩一区二区在线观看视频播放| 亚洲男人的天堂网| 91在线品视觉盛宴免费| 欧美色图亚洲自拍| 国产欧美日韩在线视频| 亚洲高清在线视频| 九色精品免费永久在线| 在线看国产精品| 色999久久久精品人人澡69| 亚洲风情在线资源| 色婷婷激情一区二区三区| 亚洲国产成人在线| 性欧美1819sex性高清大胸| 日本一区二区三区视频在线看| 国产精品国精产品一二| 日韩欧美国产精品| 国产精品偷伦一区二区| 日本一区二区综合亚洲| 青椒成人免费视频| 国产精品久久久久久久久久免费| 亚洲国产成人va在线观看天堂| 精品国精品自拍自在线| 日韩欧美精品久久| 99精品在免费线中文字幕网站一区| 最近免费中文字幕视频2019| 日韩国产在线观看一区| 亚洲乱码一区二区三区在线观看| 东热在线免费视频| 亚洲午夜免费电影| 99久久精品久久久久久清纯| 国产在线精品一区二区三区不卡| 国产精品久久久久久一区二区三区| 中文字幕日本乱码精品影院| 国产三级伦理在线| 91社区在线观看| 精品51国产黑色丝袜高跟鞋| 欧美激情中文字幕在线| 麻豆传媒一区二区| 日韩精品一区二区久久| 国产精品成人一区| 欧美日韩精品专区| 成人一二三区视频| 国产成人无遮挡在线视频| 国产精品久久久久久久第一福利| 国产亚洲一区二区三区在线播放| 午夜精品福利一区二区三区蜜桃| 久久青青色综合| 欧美视频国产精品| 自拍视频在线看| 欧美激情国产高清| 国产成都精品91一区二区三| 麻豆精品久久| 国产麻豆精品视频| 在线播放一区二区精品视频| 色噜噜狠狠狠综合曰曰曰| 国产精品ⅴa在线观看h| 红桃成人av在线播放| 亚洲国产国产亚洲一二三| 国产精品一区二区男女羞羞无遮挡| 国产精品久久久久一区二区三区| 欧美激情1区2区3区| 天堂蜜桃91精品| 51精品视频一区二区三区| 亚洲欧美日韩在线播放| 久久伊人精品一区二区三区| 欧美性做爰毛片| 欧美日韩中国免费专区在线看| 高清欧美性猛交xxxx黑人猛| 亚洲狼人在线| 久久国产精品首页| 日韩午夜在线视频| 欧美综合77777色婷婷| 亚洲韩国一区二区三区| 北条麻妃99精品青青久久| 综合激情成人伊人| 久久久精品区| 亚洲一区二区三区高清| 天堂av一区二区| 欧美日韩一区视频| 国产成人a级片| 99久久综合| 97成人超碰免| 欧美日韩精品系列| 久久综合另类图片小说| av综合网址| 成人毛片免费看| 狠狠一区二区三区| 欧美系列日韩一区| 91九色视频在线观看| 国产在线播精品第三| 在线观看91精品国产入口| 在线一区欧美| 欧美在线观看视频在线| 日本高清成人免费播放| 日本久久一区二区三区| 久久免费视频1| 日韩精品中文字幕一区二区三区| 97免费在线视频| 亚洲视频在线观看视频| 久久婷婷蜜乳一本欲蜜臀| 网友自拍一区| 久久青草视频| 欧美性猛交xxxx久久久| 欧美一区欧美二区| 欧美激情视频一区二区三区| 亚洲欧美在线免费观看| 日韩中文字幕在线视频| 日本在线观看大片免费视频| 精品奇米国产一区二区三区| 成人午夜电影在线观看| 欧美电影h版| 久久女同互慰一区二区三区| 成人做爰www免费看视频网站| 婷婷在线视频观看| 欧美伦理免费在线| 一区二区三区四区在线观看视频| 在线观看亚洲成人| 精品久久久91| 日韩有码片在线观看| 国产96在线亚洲| 久久久爽爽爽美女图片| 粉嫩高潮美女一区二区三区| 99久久久无码国产精品| 成人福利视频在线观看| 亚洲综合日本| 欧美日韩综合视频网址| 欧美午夜网站| 国产精品99久久久久久久| 免费精品视频在线| 久久66热re国产| 欧美一二三视频| 国产成人自拍视频在线观看| 亚洲色欲色欲www在线观看| 国产精品国产三级国产普通话三级| 国产欧美一区二区三区在线| 国内精品伊人| 成人欧美一区二区三区在线观看| 国产精品免费一区二区三区| 欧美精品video| 日韩国产一区久久| 亚洲免费伊人电影| 北条麻妃久久精品| 精品无人区一区二区三区竹菊| 国产亚洲一区二区三区在线观看| 色哦色哦哦色天天综合| 97久久视频| 亚洲国产精品一区二区www| 国产女人18毛片水18精品| 九九热精品在线| melody高清在线观看| 日韩欧美视频一区| 久久99久久99| 欧美一级久久|