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

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
12下一頁
最近訪問板塊 發(fā)新帖
查看: 3742 | 回復(fù): 12
打印 上一主題 下一主題

想在內(nèi)核中使用混雜模式監(jiān)視網(wǎng)絡(luò),應(yīng)該在哪里下手? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2012-02-18 20:57 |只看該作者 |倒序?yàn)g覽
各位高手,我想在內(nèi)核中使用混雜模式監(jiān)視網(wǎng)絡(luò),應(yīng)該在哪里下手?
1、為了效率足夠高,所以在內(nèi)核中進(jìn)行
2、使用一網(wǎng)卡接在交換機(jī)上,使用混雜模式監(jiān)聽網(wǎng)絡(luò),不發(fā)包
3、因?yàn)榛祀s模式的包在netfilter之前就處理了,所以不能使用netfilter來進(jìn)行。(看源碼好像是這樣,請(qǐng)指教)
4、因?yàn)閚etpoll只能處理UDP,所以不能使用
5、libcap是用戶態(tài)的,所以不用
6、另一網(wǎng)卡接在交換機(jī)上,正常通訊

那么我怎么做呢?
1、改網(wǎng)卡驅(qū)動(dòng)?
2、改內(nèi)核,比如core.c?仿netpoll寫個(gè)處理程序?
3、其他。。。



論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2012-02-18 21:10 |只看該作者
回復(fù) 1# flyfrogs

你的監(jiān)視是個(gè)啥概念??jī)?nèi)核為你這種需求專門提供了接口,掛個(gè)Hook就是了。
參/net/core/dev.c的ptype_all:
  1. 3076        list_for_each_entry_rcu(ptype, &ptype_all, list) {
  2. 3077                if (ptype->dev == null_or_orig || ptype->dev == skb->dev ||
  3. 3078                    ptype->dev == orig_dev) {
  4. 3079                        if (pt_prev)
  5. 3080                                ret = deliver_skb(skb, pt_prev, orig_dev);
  6. 3081                        pt_prev = ptype;
  7. 3082                }
  8. 3083        }
復(fù)制代碼

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2012-02-18 21:38 |只看該作者
代碼看到了,
/*
*         netif_nit_deliver - deliver received packets to network taps
*         @skb: buffer
*
*         This function is used to deliver incoming packets to network
*         taps. It should be used when the normal netif_receive_skb path
*         is bypassed, for example because of VLAN acceleration.
*/
void netif_nit_deliver(struct sk_buff *skb)
{
        struct packet_type *ptype;

        if (list_empty(&ptype_all))
                return;

        skb_reset_network_header(skb);
        skb_reset_transport_header(skb);
        skb->mac_len = skb->network_header - skb->mac_header;

        rcu_read_lock();
        list_for_each_entry_rcu(ptype, &ptype_all, list) {
                if (!ptype->dev || ptype->dev == skb->dev)
                        deliver_skb(skb, ptype, skb->dev);
        }
        rcu_read_unlock();
}

注釋說
It should be used when the normal netif_receive_skb path is bypassed, for example because of VLAN acceleration
這什么意思,難道不用netif_receive_skb?
怎么使用這個(gè)機(jī)制,能舉個(gè)例子嗎?謝謝

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2012-02-18 21:50 |只看該作者
查了下2.6.35.6的源碼,只有在vlan_hwaccel_do_receive才調(diào)用了netif_nit_deliver,
而vlan_hwaccel_do_receive只在__netif_receive_skb被調(diào)用,
也就是注釋說的netif_nit_deliver只在VLAN acceleration時(shí)調(diào)用。

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2012-02-18 22:19 |只看該作者
看錯(cuò)了,看完再問

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2012-02-18 22:51 |只看該作者
回復(fù) 2# 獨(dú)孤九賤

我有個(gè)問題,在我的HOOK中我處理過了的包,我想讓系統(tǒng)丟棄,而不是讓其他的HOOK繼續(xù)處理,
應(yīng)該怎么做?

就是這個(gè)循環(huán)中
        list_for_each_entry_rcu(ptype, &ptype_all, list) {
                if (ptype->dev == null_or_orig || ptype->dev == skb->dev ||
                    ptype->dev == orig_dev) {
                        if (pt_prev)
                                ret = deliver_skb(skb, pt_prev, orig_dev);
                        pt_prev = ptype;
                }
        }
根據(jù)ret的返回值判斷,如果是NET_RX_DROP則終止循環(huán),
當(dāng)然我不想動(dòng)這個(gè)dev.c文件

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2012-02-18 23:15 |只看該作者
可以向ptype_all注冊(cè)一個(gè)Hook,這樣,這個(gè)循環(huán)就可以調(diào)用你的handler。最常用的鏈路層捕包框架都是這樣子做的。

論壇徽章:
7
丑牛
日期:2013-10-18 14:43:21技術(shù)圖書徽章
日期:2013-11-03 09:58:03辰龍
日期:2014-01-15 22:57:50午馬
日期:2014-09-15 07:04:39丑牛
日期:2014-10-16 14:25:222015年亞洲杯之伊朗
日期:2015-03-16 10:24:352015亞冠之城南
日期:2015-05-31 09:52:32
8 [報(bào)告]
發(fā)表于 2012-02-19 09:02 |只看該作者
先搞清楚什么叫混雜模式。
個(gè)人猜測(cè),就是屬于包過濾機(jī)制。為了提高效率,通常網(wǎng)卡會(huì)對(duì)自己不關(guān)心的數(shù)據(jù)包都過濾掉,現(xiàn)在通常是硬件完成。
處于混雜模式就是要改變過濾策略。接受所有包。

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2012-02-19 18:57 |只看該作者
回復(fù) 7# 獨(dú)孤九賤

這個(gè)hook不能吃掉包
   

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2012-02-19 18:58 |只看該作者
回復(fù) 8# smalloc

我肯定會(huì)打開網(wǎng)卡混雜模式的
   
您需要登錄后才可以回帖 登錄 | 注冊(cè)

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP