亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1756 | 回復: 0
打印 上一主題 下一主題

[網絡子系統(tǒng)] 關于nat還原的問題 [復制鏈接]

論壇徽章:
8
羊年新春福章
日期:2015-03-19 02:03:312015亞冠之北京國安
日期:2015-06-16 22:04:45程序設計版塊每日發(fā)帖之星
日期:2015-06-23 22:20:00每日論壇發(fā)貼之星
日期:2015-06-23 22:20:002015亞冠之首爾
日期:2015-06-24 19:18:072015亞冠之廣州恒大
日期:2015-08-06 10:29:442015亞冠之柏太陽神
日期:2015-11-02 11:21:0515-16賽季CBA聯(lián)賽之遼寧
日期:2015-12-09 15:05:02
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2014-10-12 10:38 |只看該作者 |倒序瀏覽
本帖最后由 firocu 于 2014-10-12 14:36 編輯

最簡單的路由器 在postrouting 做了snat(masquade)那么回來的報文怎么unsnat呢?
我看了九賤的帖子,一筆帶過了。 我不太懂的地方是在nat_packet這個函數里面在發(fā)現是rely的報文,要判斷ct→status & IPS_DST_NAT 為真 才修改skb里的IP port,我不清楚reply的報文何時給ct→status打的DST_NAT的標記位,看代碼好象是prerouting的ip_nat_setup_info這個函數,可是我看到必須改了ct的tuple才能給ct→status打標記位,反復的修改ct,我覺得自己想的不對。


================答案3.17的代碼和原來沒多大變化就是函數名字變了===========
發(fā)包-POSTROUTING ->SNAT ->修改ct: nf_nat_setup_info-> ct->status |= IPS_SRC_NAT;->修改skb:nf_nat_packet

收報-PREOUTING-> DNAT->修改skb:nf_nat_packet
{
    enum nf_nat_manip_type mtype = HOOK2MANIP(hooknum);   //因為是在PREROUTING, 所以是DNAT, 我以前一直以為, de-snat在postrouting中做的.                                                                                          
                                                                                                                                                      
    if (mtype == NF_NAT_MANIP_SRC)                                                                                                                    
        statusbit = IPS_SRC_NAT;                                                                                                                     
    else                                                                                                                                             
        statusbit = IPS_DST_NAT;        //到這里                                                                                                              
                                                                                                                                                      
    /* Invert if this is reply dir. */                                                                                                               
    if (dir == IP_CT_DIR_REPLY)                                                                                                                       
        statusbit ^= IPS_NAT_MASK;        //翻轉一下變成SNAT                                                                                                     
                                                                                                                                                      
    /* Non-atomic: these bits don't change. */                                                                                                        
    if (ct->status & statusbit) {                 //正好和發(fā)包是的   ct->status |= IPS_SRC_NAT;匹配了, 開始de-snat.                                                                                                
        struct nf_conntrack_tuple target;
}



您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP