精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

在线观看免费一区| 亚洲精品国产偷自在线观看| 一道本成人在线| 日韩电影大全在线观看| 91福利免费视频| 国内精品嫩模av私拍在线观看| 亚洲九九九在线观看| 中文字幕22页| 欧美少妇网站| 国产精品全国免费观看高清| 古典武侠综合av第一页| 一区精品在线观看| 亚洲精品极品| www.久久色.com| 逼特逼视频在线观看| 成人av色网站| 精品久久久久久久久久久久久| 亚洲一区影院| 欧美偷拍视频| 国产精品一卡二| 日韩免费av片在线观看| 久久久久成人网站| 久久裸体网站| 精品视频在线导航| 五月六月丁香婷婷| 日本精品在线中文字幕| 午夜精品久久久久久久久| 中文字幕免费在线不卡| 青草久久伊人| 不卡一区二区中文字幕| 国产在线精品播放| 波多野结衣av无码| 亚洲一卡久久| 久久人人看视频| 99视频只有精品| 日本电影一区二区| 亚洲区一区二区| 欧美做受喷浆在线观看| 99re91这里只有精品| 91精品国产一区二区三区蜜臀 | 黄网av在线| 18欧美亚洲精品| 亚洲欧洲精品一区| 岛国在线大片| 中文字幕免费在线观看视频一区| 欧美日韩一区二区视频在线 | 91蜜桃视频在线| 国产伦精品一区二区| 精品国产乱码一区二区三 | 91精品在线观看视频| 中文字幕免费高清在线观看| 日韩精品福利网| 国产z一区二区三区| 色av性av丰满av| 性xx色xx综合久久久xx| 欧美亚洲成人网| 天堂网免费视频| 人禽交欧美网站| 国产精品永久免费观看| 国产乱码精品一区二区| 国产精品一区二区91| 99视频免费观看| 欧美性猛交 xxxx| 99久久精品一区| 欧美人与性禽动交精品| 国际av在线| 国产精品污www在线观看| 在线观看成人av| 国产成人精品999| 中文字幕精品无| 日本中文字幕中出在线| 日韩精品二区| 色妞久久福利网| 亚洲二区在线播放| 你懂的国产精品永久在线| 欧美日韩成人在线播放| 日本一级黄色大片| 久久久久久夜| 国产伊人精品在线| 午夜精品久久久久久久爽 | 亚洲综合一区二区不卡| 欧美一区二区黄片| 久久老女人爱爱| 亚洲在线播放电影| 草莓视频丝瓜在线观看丝瓜18| 欧美色另类天堂2015| www午夜视频| 91午夜精品| 国内精品美女在线观看| 欧美mv日韩mv国产网站| 免费看黄色aaaaaa 片| 日产精品一区二区| 精品综合久久久久久97| av大片在线免费观看| 麻豆91精品91久久久的内涵| 国产精品二区三区| 成人免费在线观看| 亚洲一区二区三区四区的| 久章草在线视频| 国产精品1区在线| 亚洲欧美中文字幕在线一区| 麻豆网址在线观看| 国产欧美日本| 亚洲影院高清在线| 国产女主播在线写真| 一区二区三区日韩欧美| 久久精品免费网站| 成人高潮a毛片免费观看网站| 在线观看日韩专区| 亚洲黄色一区二区| 国产一区二区三区美女| 青青草原亚洲| av在线理伦电影| 欧美精品在线一区二区| 实拍女处破www免费看| 国产精品a级| 国产主播喷水一区二区| 日韩av资源站| 国产欧美精品在线播放| 超碰成人在线播放| 欧洲亚洲一区二区三区| 久久亚洲国产精品| 四虎影院在线免费播放| 岛国精品在线播放| 糖心vlog在线免费观看| 精品日本视频| 亚洲欧美中文日韩v在线观看| 日韩黄色精品视频| 国产69精品久久久久毛片| 中文字幕色一区二区| 亚洲四虎影院| 一区二区三区国产视频| 亚洲伊人成人网| 成人精品小蝌蚪| av一区二区三区免费观看| 国产视频网站一区二区三区| 日韩在线观看av| 波多野结衣午夜| 国产亚洲综合在线| 女人另类性混交zo| 西瓜成人精品人成网站| 97国产在线视频| 国产激情视频在线播放| 亚洲视频免费在线| 激情黄色小视频| 97精品视频| 91麻豆国产精品| 好操啊在线观看免费视频| 欧美丝袜自拍制服另类| 久久久久久成人网| 久草这里只有精品视频| 亚洲综合第一| 91网站黄www| 九九九九九精品| av中文字幕在线观看第一页| 精品国精品国产| 国产五月天婷婷| 成人av在线资源网站| www在线观看免费| 亚洲v天堂v手机在线| 日韩av手机在线看| av网站在线播放| 欧美精品在线观看一区二区| 无码黑人精品一区二区| 国产成人精品免费视频网站| 日本阿v视频在线观看| 日本欧美韩国国产| 国产成人在线一区二区| 日本免费视频在线观看| 欧美一级生活片| 日韩精品手机在线| 国产婷婷色一区二区三区 | 青青青国内视频在线观看软件| 日韩精品一区二区三区在线观看| 国产精品不卡av| 国产亚洲综合在线| 日本r级电影在线观看| 精品成人在线| 日本欧美色综合网站免费| av av在线| 在线观看不卡| 欧美亚洲精品日韩| 国产精品久久久久久久久久久久久久久| 超薄丝袜一区二区| 无码精品黑人一区二区三区| 日本道色综合久久| 亚洲国产精品免费在线观看| 99亚偷拍自图区亚洲| 黄色aaa级片| 国产精品vip| 亚洲国产日韩欧美| 国产成人av毛片| 国产精品中文字幕久久久| 金瓶狂野欧美性猛交xxxx| 亚洲男人天堂久| 国产精品一级二级| 一本色道久久综合亚洲91| 免费三级在线观看| 久久久久久久久岛国免费| 欧美性猛交乱大交| 久久高清一区| 日韩精品在线视频免费观看| 波多野结衣在线播放一区| 国产精品制服诱惑| 日韩av黄色| 国产不卡在线观看| 不卡av免费观看| 久久夜色撩人精品| 国产高清视频在线观看| 精品av综合导航| 91麻豆国产在线| 色综合久久天天| 国产午夜精品无码| 亚洲天堂成人在线观看| 国产精久久一区二区三区| 成人国产一区二区三区精品| 热久久久久久久久| 日日摸夜夜添夜夜添精品视频| avav在线播放| 在线精品视频在线观看高清| 日本高清一区| 日韩大胆成人| 国产精品一区二区三区免费| 国产精品视频一区视频二区 | 无码一区二区三区| 精品国产老师黑色丝袜高跟鞋| 欧美人妻一区二区| 亚洲视频一区二区免费在线观看| 永久免费观看片现看| 国产亚洲精品超碰| 最近中文字幕免费| 久久一二三国产| 丰满少妇在线观看资源站| caoporm超碰国产精品| 亚洲精品不卡| 欧美高清电影在线| 欧美变态tickling挠脚心| 亚洲天堂网在线观看视频| 91久久精品国产91性色tv| 91免费福利视频| 台湾佬成人网| 2019精品视频| 小视频免费在线观看| 91爱爱小视频k| 日韩激情电影免费看| julia一区二区中文久久94| 懂色av蜜臀av粉嫩av分享吧| 91精品国产综合久久久久久漫画| 国产影视一区二区| 欧美亚洲国产一卡| 中文字幕第一页在线播放| 欧美日韩一二三区| 91精品国产乱码久久久| 欧美精品一级二级| 国产美女裸体无遮挡免费视频| 欧美电影一区| 欧美精品与人动性物交免费看| 婷婷综合福利| 日本精品一区二区三区不卡无字幕| 一区二区三区日本久久久| 欧美午夜免费| 欧美日韩中文字幕一区二区三区| 神马影院我不卡午夜| 日韩一区三区| 国产在线无码精品| 在线免费高清一区二区三区| 黄www在线观看| 青娱乐精品在线视频| 成人亚洲免费视频| 成人午夜在线播放| 国产精品成人一区二区三区电影毛片 | 欧美成人中文字幕| а√在线天堂官网| 国产精品99久久久久久久久| 国产精品一区二区精品视频观看| 不卡视频一区二区三区| 视频福利一区| 一区二区视频国产| 亚洲视频狠狠| 成人午夜激情av| 国产精品一级黄| 免费看污片网站| 亚洲欧洲另类国产综合| 日韩av在线播放观看| 欧美色综合网站| 亚洲免费成人网| 亚洲色图日韩av| 亚洲性图自拍| 国产成人综合av| 亚洲电影一区| 五月天亚洲综合| 一区免费视频| 思思久久精品视频| 99精品偷自拍| 日韩在线观看视频一区二区| 精品久久久免费| 国产成人久久精品77777综合| 国产丝袜视频一区| 羞羞视频在线观看免费| 国产精品99免视看9| 国产精品乱战久久久| 中文字幕一区二区中文字幕 | 国产成人aa精品一区在线播放 | 麻豆国产精品777777在线| 图片区偷拍区小说区| 中文子幕无线码一区tr| 成人午夜视频精品一区| 欧美一级久久久| 91啦中文在线| 热re91久久精品国99热蜜臀| 在线精品自拍| 青青草原国产免费| 日日摸夜夜添夜夜添精品视频| 在线观看免费视频黄| 亚洲视频一二三| 亚洲综合精品国产一区二区三区| 亚洲男人天堂久| 黄色在线观看www| 69视频免费看| 日韩免费在线观看| 91caoporn在线| 欧美性一区二区三区| 亚洲三级av| 老司机av福利| 美女国产一区二区三区| 久久精品国产亚洲av久| 精品国产成人在线| 成人毛片视频免费看| 欧美成人小视频| 97久久中文字幕| 亚洲综合第一| 久久99精品一区二区三区三区| 精品人妻一区二区三区四区| 丁香五六月婷婷久久激情| 亚洲黄色一级大片| 色综合天天狠天天透天天伊人| 国产乱码精品一区二区三区亚洲人 | 欧美激情一级欧美精品| 亚洲天堂中文字幕在线观看| 毛片在线视频观看| 国产成人一级电影| 久久久久久欧美精品se一二三四| 欧美一卡二卡在线观看| 91亚洲天堂| 成人动漫视频在线观看完整版| 伊人情人综合网| 99r国产精品视频| 狠狠躁日日躁夜夜躁av| 两个人的视频www国产精品| www.欧美视频| 视色,视色影院,视色影库,视色网| 国产乱国产乱300精品| 欧美人妻精品一区二区三区| 精品粉嫩aⅴ一区二区三区四区| 黄色影院在线看| 久久精品国产理论片免费| 亚洲欧美日韩国产| 午夜理伦三级做爰电影| 色猫猫国产区一区二在线视频| www.91在线| 91久久国产精品91久久性色| 欧美黄色一区| 中文字幕乱视频| 色天使色偷偷av一区二区| 在线国产91| 91久久精品一区二区别| 亚洲国产欧美国产综合一区| 在线观看福利片| 欧美人妖巨大在线| 亚洲男同gay网站| 久久精品国产理论片免费| 青娱乐精品视频在线| 玖玖爱免费视频| 日韩精品视频免费专区在线播放| 成人精品三级| av日韩在线看| 国产色婷婷亚洲99精品小说| a视频免费在线观看| 性色av一区二区三区免费| 国产精品自拍区| 韩国三级丰满少妇高潮| 精品福利免费观看| 色欧美激情视频在线| 国产亚洲自拍偷拍| 美腿丝袜在线亚洲一区| 国产一级免费av| 亚洲最大中文字幕| 136福利精品导航| 色哟哟精品视频| 亚洲不卡一区二区三区| 在线激情网站| 免费亚洲一区二区| 国产一区激情在线| 日日噜噜噜噜人人爽亚洲精品| 久久夜色撩人精品| 鲁丝一区二区三区| 欧美色综合久久| segui88久久综合9999| 亚洲欧洲一区二区福利| 99精品久久久久久|