今天跟大家分享一個 UDP 於 Linux Kernel 內的 Race Condition 問題。這問題我以前於 Linux Kernel 3.14 也有採過一樣的雷,但是到今日都還沒有一個很漂亮的解決方案,這邊就快速的跟大家介紹一下這個問題是什麼,以及跟 k8s 有什麼關係
# 發生前提
1. 使用 UDP 這種沒有重送機制的協定
2. Kernel 有開啟 conntrack 此功能
# 發生條件
相同的 Client 短時間內透過 UDP (也許是不同 thread) 送出兩個 UDP 封包到外面,對於 Linux Kernel 來說,會希望透過 conntrack 來追蹤每一條連線,但是底層建立的時候會有一些會有一些機制,因此當兩個封包同時進入的時候,有可能就會因為先後順序導致第二個封包被丟棄
# 可能發生問題
DNS 的請求封包預設情況下會同時透過 UDP 送出 A & AAAA 兩個封包,而這兩個封包如果很巧的採到這個情況,然後你的 A 封包就沒有辦法順利解出 DNS,最後就要等五秒的 timeout 來重新發送
下偏這篇文章就是 weave works 遇到 DNS 5秒 timeout 的問題,然後仔細的將我上面所寫的總結給解釋清楚,每一個步驟發生什麼事情,什麼是 conntrack 以及暫時的 workaround 是什麼
之後會在跟大家分享目前一些解決方法怎麼做
https://www.weave.works/blog/racy-conntrack-and-dns-lookup-timeouts
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
dns lookup 是什麼 在 コバにゃんチャンネル Youtube 的最讚貼文
dns lookup 是什麼 在 大象中醫 Youtube 的最佳解答
dns lookup 是什麼 在 大象中醫 Youtube 的最佳貼文
dns lookup 是什麼 在 網路教學-DNS 協定 的相關結果
說穿了﹐DNS 是用來幫助記憶網路位址的﹐完全是為了遷就人類的記憶思維而 ... 同時﹐DNS 還能提供“反查詢”(reverse lookup) 功能﹐也就是以IP 來查詢 ... ... <看更多>
dns lookup 是什麼 在 【問題】DNS lookup 是什麼? - 巴哈姆特 的相關結果
今天登入後他畫面會出現DNS lookup 失敗請問那是什麼意思? ... loading DNS= domain name server,即是把網址轉成ip的伺服器,是由網絡供應商提供的. ... <看更多>
dns lookup 是什麼 在 什麼是DNS – DNS 簡介 的相關結果
之後,它會回應DNS 查詢,將網域名稱轉譯為IP 地址,以便電腦可以互相通訊。授權DNS 擁有網域的最終授權,並負責提供遞迴DNS 伺服器IP 地址資訊。Amazon Route 53 是一種 ... ... <看更多>