精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

使用Docker網絡解決方案weave遇到的那些坑

企業動態
Weave 作為 Docker 跨主機集群網絡解決方案的一種,可以用于連接部署在多臺主機上的 Docker 容器, 由于 odp 功能和內核相關模塊結合較為緊密,在實際使用中可能遇到一些和內核相關的坑,本文描述的兩個問題都和內核有關系。

前言

Weave 作為 Docker 跨主機集群網絡解決方案的一種,可以用于連接部署在多臺主機上的 Docker 容器,使用網絡的應用程序不必去配置端口映射等信息,Weave的通信支持加密,所以用戶可以從一個不受信任的網絡連接到主機。Weave 在控制層面和 Calico 類似,在數據層面通過UDP封裝實現 L2 overlay 。 Weave 在 1.2 版本之前都是使用 usersapce 實現,在 weave-1.2版本后, weave 結合了內核的 openvswitch 模塊,實現了 open vSwitch datapath(odp)功能,結合 kernel 的 vxlan 特性,在網絡性能上有較大的提升。 由于 odp 功能和內核相關模塊結合較為緊密,在實際使用中可能遇到一些和內核相關的坑,本文描述的兩個問題都和內核有關系。

坑一:weave fastdp造成虛擬機網絡中斷

1. 問題描述

在 weave 1.2 版本之后,考慮到原先 sleeve 模式的網絡性能較差,增加了 fastdp 的模式,該模式成為了 weave 啟動時的默認模式,在 fastdp 模式中使用了 kernel 中的 openvswitch 模塊,做報文封裝時使用了 vxlan 協議。在使用 qemu-kvm 創建的云主機上, 如果安裝的是 centos7.0 ,內核版本為 kernel-3.10.123 ,在啟動 weave 并使用 fastdp 模式時,會造成 virtio_net 虛擬網卡無法發送數據,進而導致整個虛擬機的網絡中斷的問題。

2. 問題分析

造成網絡斷開的原因是因為觸發了內核的一個 bug ,該內核 bug 的 commit 鏈接地址:https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=8a0cafc9a8131cc545dc9924aed38f7176ee4ad7 。

觸發該 bug 主要是由于 Weave 在初始化時會發送一個 60000 字節的 UDP 數據包進行 PMTU 的探測,并且 Weave 發送使用的套接字為 raw socket ,導致了 virtio_net 使用的內存被污染,表現的現象就是無法通知到宿主機上 vhost 取數據,在接口上看到發送報文的計數始終不會增加。

該問題不是只有 weave 才能觸發,使用普通的應用程序只要在建立 socket 時,使用是 raw socket ,并且在發送數據時,發送的數據大于接口的 MTU 值,接口的 UFO 功能是打開的,都極有可能觸發該問題,造成網絡的中斷。

fastdp 模式的數據流原理

圖1:fastdp 模式的數據流原理

3. 解決方案

有兩種方式可以解決該問題:

1)升級內核,保證內核版本大于等于 3.13 ,

2)關閉虛擬機網卡的 ufo 特性,centos7.1 的 kernel-3.10.229 內核已經修復了該問題。

guest 通知 vhost 讀取數據流程

圖2:guest 通知 vhost 讀取數據流程

坑二:Weave無法使用fastdp模式

1. 問題描述

在內核版本 CentOS Linux (3.10.0-327.10.1.el7.x86_64) 7 (Core) 上 ,weave 版本大約 1.2 ,如果云主機的 MTU 值為 1450 或者小于 1474 , weave 啟動時無法正常的選擇 fast data path模式。在 weave 啟動后一直選擇 sleeve 模式,本應該默認模式為 fastdp ,該問題也和內核的版本相關。

2. 問題分析

Weave的fast data path路徑使用到了 odp 技術,也就是內核中的OVS模塊,在 Container 中直接發送數據包到 ovs 模塊。在啟動 Weave 時,會自動選擇使用 sleeve 模式還是 fastdp 模式,這里通過發送心跳包來決定的,出現該問題時,在云主機通過 docker logs weave 的日志可以看到這樣出錯的信息:fastdp timed out waiting for vxlan heartbeat。

這個 heartbeat 的數據包,是一個 UDP 包,目的端口號為 6784 ,在某些云主機上接口的MTU值為 1454 ,但是在發送 UDP 的 heartbeat 數據包時,發送的是 1474 字節,這樣就會對報文在IP層進行分片,但在主機上發現心跳報文發送不出,當 MTU 的值修改為 1500 后,就可以發送出去,在 MTU 為 1454 的情況下,會出現下面的 ICMP 的錯誤報文。

出現的錯誤icmp報文

圖3: 出現的錯誤icmp報文

出現上面錯誤的 icmp 報文,是內核中的 ip_fragment 函數調用 icmp_send 函數發送的,

  1. if (unlikely(((iph->frag_off & htons(IP_DF)) && !skb->ignore_df) || 
  2.  
  3. (IPCB(skb)->frag_max_size && 
  4.  
  5. IPCB(skb)->frag_max_size > mtu))) { 
  6.  
  7. IP_INC_STATS(dev_net(dev), IPSTATS_MIB_FRAGFAILS); 
  8.  
  9. icmp_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED, 
  10.  
  11. htonl(mtu)); 
  12.  
  13. kfree_skb(skb); 
  14.  
  15. return -EMSGSIZE; 
  16.  

通過上面的代碼可以看出,如果出現上面出錯的 ICMP 報文,下面的判斷條件 iph->frag_off & htons(IP_DF)) && !skb->ignore_df 需要成立,通過對抓取的報文分析可知 iph->frag_off & htons(IP_DF)) 的值為真,那么 skb->ignore_df 值需要為 0 ,這里的關鍵在于 skb->ignore_df 的值是何時賦值為0的。

通過分析 weave 發送心跳包的流程可知,在 vxlan_tnl_send 函數中,對 skb->ignore_df 賦值為 1 ; 在***調用 tunnel 的發送函數 iptunnel_xmit 時,調用了 skb_scrub_packet 函數,在該函數中又重新對 skb->ignore_df 賦值為0.( kernel 版本為:3.10.0-327.el7 ),造成后續發送報文時,發送了 ICMP 目的不可達,并且錯誤碼為 ICMP_FRAG_NEEDED 的報文。

  1. void skb_scrub_packet(struct sk_buff *skb, bool xnet) 
  2.  
  3.  
  4. skb->tstamp.tv64 = 0
  5.  
  6. skb->pkt_type = PACKET_HOST
  7.  
  8. skb->skb_iif = 0
  9.  
  10. skb->ignore_df = 0
  11.  
  12. skb_dst_drop(skb); 
  13.  
  14. secpath_reset(skb); 
  15.  
  16. nf_reset(skb); 
  17.  
  18. nf_reset_trace(skb); 
  19.  
  20. if (!xnet) 
  21.  
  22. return; 
  23.  
  24. skb_orphan(skb); 
  25.  
  26. skb->mark = 0
  27.  

上面代碼是 centos 7 的 3.10.0 - 327.el7 ,而在老一些的內核版本 3.10.0 - 123.el7 上, iptunnel_xmit 調用的是 secpath_reset(skb) 函數,在該函數中并沒有對 skb->local_df (低版本的內核使用的是 local_df )進行重新的初始化,也就是 skb->local_df 值仍舊為1,因此在該版本上不會出現該問題。

  1. static inline void 
  2.  
  3. secpath_reset(struct sk_buff *skb) 
  4.  
  5.  
  6. #ifdef CONFIG_XFRM 
  7.  
  8. secpath_put(skb->sp); 
  9.  
  10. skb->sp = NULL
  11.  
  12. #endif 
  13.  

內核版本不同造成設置不同

圖4:內核版本不同造成設置不同

在新的內核版本中存在該問題,但是內核本身是沒問題的,還是 weave 用戶態的管理 datapath 的程序和內核的適配上有問題(它并不是使用 ovs-switchd ),在 ovs 中的對 tunnel 類型可以設置為 df_default = false 進行分片。

3. 解決方案

保證接口 MTU 值為默認的1500.

總結

Weave 的 odp 功能使用了內核的特性,在使用 weave 的 fastdp 功能時遇到上面兩個問題,都是和內核有著緊密聯系,通過對內核層面的分析,可以定位到問題的根因。在后續遇到類似問題時,可以多從內核的角度進行考慮。

【本文是51CTO專欄機構作者“大U的技術課堂”的原創文章,轉載請通過微信公眾號(ucloud2012)聯系作者】

 戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2017-06-23 11:20:00

DockerWeave內核

2019-12-05 08:44:20

MybatisSQL場景

2015-12-02 15:35:08

Redis Clust遷移解決方案

2024-06-24 00:30:00

2021-08-31 07:57:21

輪詢鎖多線編程Java

2021-10-18 07:58:33

MyBatis Plu數據庫批量插入

2010-12-24 12:49:39

2013-05-27 09:21:05

虛擬化IT企業應用

2017-08-03 09:37:35

SparkStreamKafkaDirect

2016-12-30 11:10:32

Hadoop開發JVM

2009-10-27 15:35:08

2013-05-13 10:03:04

git

2011-10-14 10:37:47

虛擬機 負載

2010-10-20 16:01:29

網絡管理解決方案網絡管理

2011-08-09 17:30:48

2018-10-24 19:59:45

Kubernetes混合云云擴展

2011-03-07 15:36:10

2016-07-09 13:17:12

銳捷網絡智慧機場解決方案

2009-01-20 14:51:08

視頻監控以太網光纖

2018-10-12 14:34:13

點贊
收藏

51CTO技術棧公眾號

日韩精品视频在线观看网址| 亚洲精品乱码久久久久久黑人| 日韩美女免费视频| 蜜桃av免费在线观看| 成人黄色91| 午夜成人免费视频| 亚洲 国产 欧美一区| 国产男男gay网站| 1024日韩| yellow中文字幕久久| 中文在线字幕观看| 欧亚一区二区| 亚洲成av人片在线| 亚洲v国产v| 少妇av在线播放| 日本va欧美va欧美va精品| 欧美激情性做爰免费视频| 亚洲第一成人网站| 欧洲精品99毛片免费高清观看| 欧美午夜xxx| 天天操天天干天天玩| 日中文字幕在线| 国产盗摄视频一区二区三区| 国产精品电影观看| 香蕉视频一区二区| 永久91嫩草亚洲精品人人| 亚洲人高潮女人毛茸茸| jjzz黄色片| 精品一区二区三区在线观看视频| 色狠狠一区二区| 免费看国产曰批40分钟| 爆操欧美美女| 国产精品午夜久久| 欧美1o一11sex性hdhd| 亚洲精品.www| 国产在线视视频有精品| 国产精品视频男人的天堂| 国产精品乱子伦| 亚洲激情成人| 久久久久国产精品www| 午夜剧场免费在线观看| 色综合久久一区二区三区| 亚洲偷欧美偷国内偷| www.88av| 都市激情亚洲欧美| 精品国产123| 免费在线观看日韩av| 国产在线视频欧美一区| 69成人精品免费视频| 自拍偷拍21p| 国产一区二区主播在线| 色综合久久久久久久| 少妇高潮喷水久久久久久久久久| 操喷在线视频| 午夜久久福利影院| 国产av国片精品| www在线观看黄色| 亚洲va国产天堂va久久en| 男人c女人视频| 99久久精品免费看国产小宝寻花 | 91在线免费看片| av高清一区二区| 国产黄色精品视频| 国产精品国模大尺度私拍| 性网爆门事件集合av| 粉嫩av一区二区三区在线播放| 99国产在线视频| 免费看av毛片| 91网址在线看| 亚欧精品在线| 在线播放免费av| 亚洲第一福利视频在线| 日韩在线综合网| 欧美日韩五码| 欧美久久婷婷综合色| 免费不卡av网站| 国产一区二区三区不卡av| 日韩av影片在线观看| 亚洲欧美视频在线播放| 欧美日韩黑人| 欧美尺度大的性做爰视频| 日本三级理论片| 视频一区欧美精品| 亚洲国产精品一区制服丝袜| 国产91高潮流白浆在线麻豆| 99久久99久久| 天天操天天操天天| 国产调教视频一区| 久久久一二三四| 久久香蕉一区| 黑人欧美xxxx| 日本中文字幕观看| 成年人免费视频播放| 99精品视频在线观看免费播放| 久久精品国产亚洲7777| 成人国产免费电影| 国产成人精品综合在线观看| 国产伦精品一区二区三区四区视频 | 国产精品视屏| 亚洲黄色免费电影| 91在线免费视频| 亚洲国产精品久久久久爰性色 | 女人天堂在线| 日韩一区在线免费观看| 日日鲁鲁鲁夜夜爽爽狠狠视频97 | 日本欧美在线视频免费观看| 洋洋成人永久网站入口| 成人欧美视频在线| 国产无码精品在线观看| 欧美亚洲一级| 成人h猎奇视频网站| 人妻精品一区一区三区蜜桃91| xfplay精品久久| 在线观看国产一区| 亚洲av少妇一区二区在线观看| 一道本一区二区三区| 中文字幕最新精品| 日韩三级免费看| 老鸭窝一区二区久久精品| 国产精品免费视频一区二区| av在线二区| 亚洲国产成人av| 97福利一区二区| 欧美一区免费看| 成人午夜视频网站| 天天爱天天做天天操| 免费观看欧美大片| 精品福利二区三区| 亚洲熟女www一区二区三区| 日本欧美在线观看| 久久久久久久久久久一区| 日韩影视在线| 91精品国产综合久久香蕉的特点| 国产三级av在线播放| 亚洲巨乳在线| 国产精品.com| 免费大片黄在线| 欧美日韩午夜在线视频| x88av在线| 久久精品一区二区三区中文字幕| 国产欧美一区二区三区不卡高清| a免费在线观看| 91精品国产综合久久久蜜臀粉嫩| 五月婷六月丁香| 日韩电影在线看| 日本一区二区高清视频| 北岛玲heyzo一区二区| 日韩极品精品视频免费观看| 久久久久久久久久一区二区三区| 国产精品综合一区二区三区| aaa免费在线观看| 亚洲美女色播| 久久久精品视频在线观看| 亚洲天堂国产精品| 亚洲图片激情小说| 人妻巨大乳一二三区| 欧美精品导航| 国产精品国产精品| 国产激情在线播放| 亚洲精品日韩在线| 999视频在线| 中文字幕一区在线观看| 国内av一区二区| 欧美日韩一区二区三区四区在线观看| 国产厕所精品在线观看| 岛国av免费在线观看| 日韩av在线网| 波多野结衣激情视频| 国产精品嫩草99a| www.偷拍.com| 亚洲毛片播放| 色播五月综合| 日韩免费在线电影| 欧美激情a∨在线视频播放| 天堂网在线观看视频| 在线看一区二区| 尤物在线免费视频| 国产91对白在线观看九色| 久久综合色视频| 激情综合网站| 91免费在线观看网站| 91超碰在线| 一区二区av在线| a天堂在线观看视频| 五月婷婷综合网| 免费观看a级片| 国产一区二区电影| 欧美老熟妇喷水| 久久理论电影| 国产一区二区三区免费不卡| 精品肉辣文txt下载| 久久99久国产精品黄毛片入口| 污污网站免费在线观看| 欧美日韩一区视频| 日韩精品一区三区| 中文字幕在线免费不卡| 人妻无码中文久久久久专区| 蜜臀av性久久久久av蜜臀妖精| 国产精品69久久久| 日韩欧美字幕| 久久99精品久久久久久三级 | 日本午夜在线亚洲.国产| 精品美女在线观看视频在线观看| 亚洲第一区中文字幕| 一级黄色片免费看| 午夜成人在线视频| 成人免费视频网站入口::| 国产亚洲欧洲一区高清在线观看| 韩国三级hd中文字幕有哪些| 日韩成人免费在线| 日韩成人手机在线| 99九九热只有国产精品| 欧美日韩另类丝袜其他| jizz国产精品| 91免费在线视频| 亚洲一区二区三区四区| 69久久夜色精品国产69乱青草| 国产剧情在线| 在线播放国产精品| 天堂成人在线| 精品久久久网站| 国产精品国产三级国产普通话对白 | 久久99久国产精品黄毛片色诱| 欧美在线观看www| 欧美日韩精品| 亚洲成人动漫在线| 99热国内精品| 亚洲精品白虎| jizzjizz欧美69巨大| 麻豆传媒一区二区| 青青视频一区二区| 国产伦理一区二区三区| 天堂va在线高清一区| 成人性生交大片免费看视频直播 | 99精品欧美一区二区三区| 久久69成人| 国产精品久久久久久久久| 成人天堂yy6080亚洲高清| 26uuu亚洲国产精品| av成人影院在线| 性日韩欧美在线视频| 白白色在线观看| 久久久亚洲精选| av资源一区| 97在线视频免费看| 日本不卡免费高清视频在线| 欧美中文在线字幕| 成人勉费视频| 国产精品7m视频| 91精品国产66| 91九色视频导航| 精品国产亚洲一区二区三区大结局 | 曰韩不卡视频| 国产精品国产三级国产在线观看| 一区二区三区不卡在线| 久久神马影院| 中文字幕av久久| 黄色成人91| 国产午夜大地久久| 久久免费高清| 自拍偷拍21p| 国产乱码字幕精品高清av| 日本wwwxx| 99久久精品免费观看| 精品无码一区二区三区| 中文字幕av一区二区三区| 日本一级特级毛片视频| 一区二区三区欧美日韩| 日韩成年人视频| 91搞黄在线观看| 国产精品久久久久久久免费看| 日韩手机在线导航| 午夜福利理论片在线观看| 亚洲午夜女主播在线直播| 色网站免费在线观看| 久久91亚洲精品中文字幕奶水| a毛片不卡免费看片| 国产精品成av人在线视午夜片| **国产精品| 久久久久久久免费| 欧美电影一区| 国产欧美日韩网站| 免费在线观看成人| 国产清纯白嫩初高中在线观看性色| 91亚洲精华国产精华精华液| 亚洲图片第一页| 亚洲一级二级三级在线免费观看| 午夜影院免费在线观看| 7777精品伊人久久久大香线蕉完整版 | 精品在线观看一区| 亚洲成a天堂v人片| 亚洲综合精品国产一区二区三区| 精品三级在线观看| av在线首页| 69**夜色精品国产69乱| 日韩免费在线电影| 久久久久久久久久久久久久一区| 天天超碰亚洲| 欧美精品99久久| 国产一区二区0| 老熟妇一区二区| 亚洲国产日韩a在线播放性色| 国产精品51麻豆cm传媒| 精品粉嫩超白一线天av| 欧美成人hd| 日韩女在线观看| 国产伦精品一区二区三区在线播放| 亚洲成人一区二区三区| 亚洲久久在线| 中文字幕1区2区| 中文字幕欧美一区| 在线观看 亚洲| 亚洲国产成人久久| 影音先锋中文在线视频| 国产精品免费电影| 免费av一区| 国产不卡一区二区视频| 国产一区二区视频在线播放| 日本一道本视频| 一本色道久久综合亚洲91| 俄罗斯嫩小性bbwbbw| 久久精品人人爽| 男人亚洲天堂| 天堂一区二区三区| 老**午夜毛片一区二区三区| 图片区偷拍区小说区| 亚洲男人天堂一区| 国产精品久久欧美久久一区| 在线观看欧美日韩| 亚洲成人激情社区| 欧美亚洲另类久久综合| 国产午夜久久| 欧产日产国产精品98| 亚洲一区二区在线观看视频| 99热这里只有精品在线观看| 久久精品亚洲一区| 国产中文欧美日韩在线| 中国成人亚色综合网站| 麻豆精品视频在线观看免费| 韩国女同性做爰三级| 欧美优质美女网站| www视频在线观看免费| 国产精品福利网站| 北条麻妃国产九九九精品小说| 国产一级片黄色| 国产亚洲精品免费| 欧美日韩 一区二区三区| 国产香蕉精品视频一区二区三区| 国产精品高清乱码在线观看| 日韩av一区二区三区在线| 蜜臀久久久99精品久久久久久| 一区二区三区在线观看免费视频| 日本高清不卡在线观看| 国产51人人成人人人人爽色哟哟| 国产精品对白刺激| 日韩一区二区中文| 午夜免费福利网站| 一区二区理论电影在线观看| 免费av一级片| 欧美亚洲在线观看| 欧美丝袜丝交足nylons172| 欧美女同在线观看| 亚洲精品成人少妇| 手机av在线免费观看| 日本欧美黄网站| 色综合天天综合网中文字幕| 国产精品999.| 午夜免费久久看| av中文字幕在线| 99影视tv| 亚洲免费影视| 欧美xxxooo| 亚洲第一中文字幕| 免费亚洲电影| 日本不卡一区二区三区四区| 粉嫩在线一区二区三区视频| 精品在线播放视频| 综合网中文字幕| 99a精品视频在线观看| 国产精品97在线| 国产精品久久夜| 蜜臀久久99精品久久久| 日本精品一区二区三区在线| 欧美hentaied在线观看| 在线看黄色的网站| 在线免费精品视频| 亚洲精品天堂| 日韩欧美亚洲日产国| 成人性生交大片免费看视频在线| av大全在线观看| 美女999久久久精品视频| 亚洲欧洲av| 巨乳女教师的诱惑| 欧美性猛交xxxx乱大交退制版| 羞羞的视频在线观看| 欧美日韩亚洲综合一区二区三区激情在线 | 中文字幕免费高清网站| 欧美插天视频在线播放| 国产videos久久| 国产精九九网站漫画|