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

Chinaunix

標題: NF_INET_POST_ROUTING處如何獲取目的mac [打印本頁]

作者: 澤畔無材    時間: 2014-05-13 10:14
標題: NF_INET_POST_ROUTING處如何獲取目的mac
本帖最后由 澤畔無材 于 2014-05-13 15:58 編輯

在玩netfilter時遇到的一個問題,我本機是一個網(wǎng)關(guān), 我的hook點在NF_INET_POST_ROUTING,而dnat是在NF_IP_PRE_ROUTING就處理了的。
在我的hook里檢查發(fā)往內(nèi)網(wǎng)的包,發(fā)現(xiàn)dst ip的確已經(jīng)被改正了,但是mac仍然是網(wǎng)關(guān)的mac,想問下數(shù)據(jù)包的mac是何時被改正為內(nèi)網(wǎng)機子的mac呢?在這個hook里能否獲取到真正的目標的mac?
作者: potato916305    時間: 2014-05-13 13:06
mac_header = skb->mac_header.........

就會這點..
作者: 澤畔無材    時間: 2014-05-13 13:53
回復 2# potato916305
直接這么看已經(jīng)在帖中說過了,看到的是網(wǎng)關(guān)的mac,并不是最后真正的目標PC的mac。
在NF_INET_POST_ROUTING處貌似還沒有將正確的mac拷到skb里。


   
作者: szlzzyli    時間: 2014-05-13 15:15
在網(wǎng)關(guān)做路由轉(zhuǎn)發(fā)的時候才會由網(wǎng)關(guān)加入你要的目的MAC地址吧···
作者: 澤畔無材    時間: 2014-05-13 15:57
回復 4# szlzzyli
對的,我的機子就是網(wǎng)關(guān),可能帖子里沒說清楚。

   
作者: 澤畔無材    時間: 2014-05-20 17:16
今天抽空查了下,使用neigh_lookup查找arp表就可以獲取到ip對應的mac了~
作者: guanglongxishui    時間: 2014-05-20 22:57
DNAT后,在NF_INET_POST_ROUTING這個hook點上是不能得到內(nèi)網(wǎng)的MAC地址的。

int ip_output(struct sk_buff *skb)
{
        return NF_HOOK_COND(PF_INET, NF_INET_POST_ROUTING, skb, NULL, dev,
                           ip_finish_output,
                            !(IPCB(skb)->flags & IPSKB_REROUTED));
}

報文目的mac在被換成內(nèi)網(wǎng)mac是在ip_finish_output函數(shù)完成的,該函數(shù)是在你hook函數(shù)被執(zhí)行后執(zhí)行的。

根據(jù)路由后得到的下一跳ip地址,從arp表里查到相應的MAC地址,替換skb的目的MAC發(fā)送出去。


作者: liudeyi545    時間: 2014-12-30 20:20
您好,請問您的問題解決了嗎?我與到了一個和您相似的問題,我想獲取本機發(fā)出去的ARP包的n原MAC地址,可是也不成功,不知道怎么辦呢?可以麻煩您幫我看一下嗎?謝謝了!我的求助帖地址: http://www.72891.cn/thread-4165048-1-1.html   謝謝您了
作者: ken1980    時間: 2015-07-03 17:09
在IP發(fā)送流程后會調(diào)用hh_output,通過鄰居子系統(tǒng)獲取
作者: nu_teller    時間: 2015-07-05 22:25
bingo回復 6# 澤畔無材


   




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2