會探討到這部分的原因是,我們需要對 iptables 進行 domain name 的過濾,但由於 iptables 只允許輸入 IP address,所以在輸入時,iptables 會馬上進行 DNS query 的查詢,這會遇到許多情況:
- 網路不通,DNS查詢不到
- DNS成功查詢到對應的 IP,但會有許多個 IP 同時進到 iptables rule 中
- DNS mapping 到的 IP 可能隨時都會變動,因此如果 IP 有變動到時,iptables 可能不會即時地進行更新。
這邊提供一個指令叫做 nslookup,在 windows 和 Linux 都有這個工具,如果是在板子上使用到 busybox,則應該裡面開啟後也會有。
以下是使用 MAC OSX 的範例圖:
當然,你可能會發現到每次查詢結果都不太相同,這個可以去試看看。
再說說其他關於 Linux 上 DNS 的設定好了,有個檔案叫做 resolv.conf,他會放在 /etc/ 底下,一般的 Ubuntu(Linux) 或板子上應該都會有這個東西,他可以對 DNS 給予一些設定上的參數,例如 DNS Server 的 IP 等等之類的,不過我在 Ubuntu 發現到他說,這個檔案是自己產生的,叫我不要去更改它,而我也還不知道如何去修改產生的部分就是了。
至於板子的部分,可以透過更改這個檔案,去修改 Server IP、給予最大查詢次數限制 和 查詢 TImeout 等等之類的,詳細的內容可以參考下面這個連結:
http://man7.org/linux/man-pages/man5/resolv.conf.5.html
關於 TImeout 和如何修改,Stackoverflow 有人發問,可以參考參考
http://stackoverflow.com/questions/21449510/what-will-timeout-value-specified-in-etc-resolv-conf-do
最後,在修改完,記得可能要重新開啟 DNS 的部分,設定檔才會被設定進去。
沒有留言:
張貼留言