本篇文章為大家展示了k8s pod DNS的問題記錄是怎樣的,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于成都網(wǎng)站設計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設、紹興網(wǎng)絡推廣、成都小程序開發(fā)、紹興網(wǎng)絡營銷、紹興企業(yè)策劃、紹興品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供紹興建站搭建服務,24小時服務熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
突然收到,反饋,一個服務短信驗證碼,驗證很慢。第一反應是網(wǎng)絡問題。
默認pod生成的dns 解析配置文件是如下:
由于pod 使用的是,alpine:latest
采用 apk add --update tcpdump 安裝
抓包查看dns 解析過程,抓取所有網(wǎng)絡包: tcpdump -nnvXSs 0 -i any
以下摘自網(wǎng)絡:
/etc/resolv.conf的關鍵字主要有四個,分別是:
nameserver #定義DNS服務器的IP地址其中最終要的就是nameserver,其他都是可選的,可以配置多個,在查詢時,按照nameserver在本文中的次序進行,當?shù)谝粋€dns沒有反應時,才查詢第二個
domain #定義本地域名
聲明主機的域名。很多程序用到它,如郵件體系;當為沒有域名的主機進行DNS查詢時,也要用到。如果沒有域名,主機名將被使用,刪除所有在第一個點( . )前面的內(nèi)容。
search #定義域名的搜索列表
它的多個參數(shù)指明域名查詢次序。當要查詢沒有域名的主機,主機將在由search聲明的域中分離查找。domain和search不能共存;如果同時存在,后面呈現(xiàn)的將會被使用。
sortlist #對返回的域名進行排序
允許將得到域名進行特定的排序。它的參數(shù)為網(wǎng)絡/掩碼對,許可任意的排列次序。
options
以下選項允許你對某些解析變量進行修改,語法類似:options xxx ...,其中xxx可以是如下選項:
debug sets RES_DEBUG in _res.options.
ndots:n
sets a threshold for the number of dots which must appear in a name given to res_query(3) before an initial absolute query will be made. The default for n is 1, meaning that if there are any dots in a name, the name will be tried first as an absolute name before any search list elements are appended to it. The value for this option is silently capped to 15. 這一段看的腦殘了....
timeout:n
解析器在查詢遠程name server時的超時時間,默認是5秒。
attempts:n
設置解析器在查詢name server失敗幾次后放棄該name server,默認上限是5。
rotate
這會導致在查詢時循環(huán)選擇nameserver中列出的服務器,從而負載均衡所有的nameserver,而不是讓所有的客戶端嘗試第一個列出的服務器
no-check-names
禁止現(xiàn)代BIND檢查輸入的主機名和電子郵件中的無效字符
edns0 (since glibc 2.6)
使支持RFC 2671Z中的dns擴展
single-request (since glibc 2.10)
自從版本2.9之后,glibc在執(zhí)行查找IPV4和IPV6時是并行執(zhí)行的,但是一些DNS服務器不能很好的處理這種情況,并顯示請求超時,次選項禁止glibc的并行查找,從而執(zhí)行順序查找
domain和search關鍵字是互相排斥的,如果同時設置了這兩個關鍵字,則最后設置的生效。resolv.conf文件中的search關鍵字的值可以被LOCALDOMAIN環(huán)境變量鎖改變, options關鍵字則可以被環(huán)境變量RES_OPTIONS所改變。
現(xiàn)象解析:
關鍵字`search'與`options ndots:${n}'配合工作,指示resolver在解析域名的時候是否要在用戶傳入的名稱后面添加域名信息,以及添加什么信息。詳細規(guī)則如下:
1. 如果用戶傳入的域名是`絕對'域名,即域名以`.'結(jié)尾(如上面的
www.baidu
.),則查詢的僅是該域名。
2. 如果傳入的域名是`相對'域名,且該域名中包含的`.'的數(shù)目大于或等于option ndots:${n}命令指定的數(shù),則查詢的僅是該域名。
3. 如果不是絕對域名,且傳入的域名包含的`.'的數(shù)目少于option ndots:${n}命令指定的數(shù),則resolver會依次往傳入的域名后追加search列表中的后綴,直到解析出ip地址,或者解析完列表中所有后綴才會停止。
搜索列表利弊?
由上分析可見,如果search列表較長并且查詢了不存在的域名的話,網(wǎng)絡上的dns查詢報文量會急劇增加,并且可能引發(fā)dos攻擊。但是搜索列表的一個好處是對于一些常用的域,我們只要輸入主機名就可以了,不用每次都輸入后面的域名,這在有些時候是挺簡潔的(比如在內(nèi)網(wǎng)中經(jīng)常要訪問不同的機器,search列表便可省很多事)
上述內(nèi)容就是k8s pod dns的問題記錄是怎樣的,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。