<menu id="gmukm"><object id="gmukm"></object></menu>
  • <tt id="gmukm"><blockquote id="gmukm"></blockquote></tt>
    <bdo id="gmukm"><button id="gmukm"></button></bdo>

    dns緩存nscd原理及相關知識

    [| 不指定 2016/06/12 15:05]
    | |
        由于sshd是支持包轉發的。所以最近配置了一些規則,將指定uid的包轉發到指定目標。通過統計包數量,發現tcp的數據是正常的,但dns請求包不生效,還是走原路徑。tcpdump抓包發現確實是發到系統配置的resolver那里去了。看了眼sshd的代碼,是使用了libc里面的res_query方法來做域名解析的。像gethostbyaddr也是使用的這個方法。考慮到可能是這里發生的問題,于是用strace抓包看了一眼。發現該方法是先去連接/var/run/nscd/socket。如果成功,則發送域名解析請求,然后由nscd服務進行dns解析。所以按uid來抓包會失效。

        nscd是一個緩存服務。會緩存passwd、hosts、resolv三類信息。和dnsmasq類似。先試圖停掉nscd服務再進行嘗試,果然進程在試圖連接/var/run/nscd/socket失敗后,轉為連接resolv.conf里指定的server,可以成功被iptables轉發。


        定位了具體問題原因后,開始尋找更多解決方案。停掉nscd固然最簡單,但會導致整個系統都失去dns緩存,對性能還是有一定影響的。于是尋找優化一些的方案。思路是對于指定進程繞過nscd機制。


        研究了一下。發現nscd為了避免自己的請求發送給自己導致死循環,調用了一個__nss_disable_nscd方法。調用該方法后即可關閉nscd機制。于是改動了一下sshd源碼,重新編譯了一個。再次重試。果然ok了。












    Tags: ,
    by snooda | 分類: 網絡 | 評論(0) | 引用(0) | 閱讀(5499)
    發表評論
    表情
    emotemotemotemotemot
    emotemotemotemotemot
    emotemotemotemotemot
    emotemotemotemotemot
    emotemotemotemotemot
    打開HTML
    打開UBB
    打開表情
    隱藏
    記住我
    昵稱   密碼   游客無需密碼
    網址   電郵   [注冊]
                   

     
    色琪琪av男人的天堂-琪琪see色原网色原网站-天天谢天天谢天天要-欧美成人视频 <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>