阅读:3591回复:24
哪位知道怎样处理ADSL传来的数据包(PPPoE)(80分)?
为了支持ADSL,要对ADSL的数据包处理,根据拦截到的数据包,突然发现不是IP包,这是不是就是PPPoE的包,它是怎样的数据格式,我发现在45 00好象是ip头的前面和mac的后面有8个字节,而且在mac的protocol部分好象是88 ..
哪位大侠知道它的数据格式,还有如果我要进行FW的处理,应该怎么取出再还原?谢谢!急呀! |
|
最新喜欢:![]() |
沙发#
发布于:2002-07-04 21:29
知道了,前面是以太网封装,8863,8864,后面是ppp的包,不过我对ppp不了解,怎么把ppp的数据恢复成ip包?哪位知道,请指点,或者哪位知道哪有这方面的资料,呵呵,没让我看RFC哦,太长了!
谢谢啦 :) //苦命钻研中... |
|
板凳#
发布于:2002-07-04 21:50
奇怪,不可能吧。应该都是IP包头吧。
|
|
|
地板#
发布于:2002-07-04 21:55
不是,我看了收到的包,是pppoe的包,有mac头,不过里面的protocol字段是8863 or 8864(一是发现,一是会话),我还向里分析了,有ver, type ,code ,session_id,length,之后好象就是ppp的包了,我对ppp不太了解,所以正在看它的结构呢!
gjp了解ppp吗?或者哪有关于pppoe的文章,最好是pppoe的包与ip包的相互转换的文章或程序!谢了! |
|
地下室#
发布于:2002-07-04 22:14
不是,我看了收到的包,是pppoe的包,有mac头,不过里面的protocol字段是8863 or 8864(一是发现,一是会话),我还向里分析了,有ver, type ,code ,session_id,length,之后好象就是ppp的包了,我对ppp不太了解,所以正在看它的结构呢! 去掉第一层的 以太封装,去掉第二层的 PPP封装 ,剩下的就是网络层的。。。。。IP 等。。。。。。。。 RFC 你是看定了。。。。。。。。 :) |
|
|
5楼#
发布于:2002-07-05 09:08
你还是看一下RFC2516吧。
PPPoe的以太网帧如下: ......................................1 ..................0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 ..................+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ..................|.......DESTINATION_ADDR........| ..................|..........(6 octets)...........| ..................|...............................| .................. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ..................|.........SOURCE_ADDR...........| ..................|..........(6 octets)...........| ..................|...............................| ..................+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ..................| ETHER_TYPE (2 octets) | ..................+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ..................~...............................~ ..................~...........payload.............~ ..................~ ..............................~ ..................+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ..................|...........CHECKSUM............| ..................+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 其中的ETHER_TYPE为either 0x8863 (Discovery Stage) 或 0x8864 (PPP Session Stage). 其中的PayLoad如下: ........................1...................2...................3 ....0.1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 ....+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ....|..VER..|.TYPE..|......CODE.....|..........SESSION_ID...........| ....+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ....|............LENGTH.............|...........payload.............~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
|
6楼#
发布于:2002-07-05 09:15
........................1...................2...................3
....0.1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 ....+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ....|..VER..|.TYPE..|......CODE.....|..........SESSION_ID...........| ....+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ....|............LENGTH.............|...........payload.............~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 呵呵,这些数据我已经用sofeice看到了,可是 这里的payload是什么?是ppp包吗?哪里有ppp包的格式? 怎么把ppp的包转换成ip包?谢谢! |
|
7楼#
发布于:2002-07-05 11:13
[quote]不是,我看了收到的包,是pppoe的包,有mac头,不过里面的protocol字段是8863 or 8864(一是发现,一是会话),我还向里分析了,有ver, type ,code ,session_id,length,之后好象就是ppp的包了,我对ppp不太了解,所以正在看它的结构呢! 去掉第一层的 以太封装,去掉第二层的 PPP封装 ,剩下的就是网络层的。。。。。IP 等。。。。。。。。 RFC 你是看定了。。。。。。。。 :) [/quote] 我是知道是这样的,可是我从45 00 看到source ip , destination ip,可是这根本不是ip头呀,它是不是把ip头给压缩了?还是怎么回事! |
|
8楼#
发布于:2002-07-05 11:15
........................1...................2...................3 \" 去掉第一层的 以太封装,去掉第二层的 PPP封装 ,剩下的就是网络层的。。。。。IP 等。。。。。。。。 RFC 你是看定了。。。。。。。。 \" 哪里有ppp包的格式???--------- RFC 1661? 怎么把ppp的包转换成ip包???---- 没有,所谓的换成!他只是将 IP 包当 数据!去掉PPP封装就是。 这里的payload是什么?----- 在以太封装格式”看来“是数据,但实际是PPP 包!!!-----------去掉以太封装后,就是PPP 包! 同样的在这个PPP 包中也有payload!你同去掉其PPP封装,就是你的网烙层(IP 等)的包!!!(!道理与在以太封装中取PPP包是一样的!) :o :o :o |
|
|
9楼#
发布于:2002-07-05 11:22
[quote][quote]不是,我看了收到的包,是pppoe的包,有mac头,不过里面的protocol字段是8863 or 8864(一是发现,一是会话),我还向里分析了,有ver, type ,code ,session_id,length,之后好象就是ppp的包了,我对ppp不太了解,所以正在看它的结构呢! 去掉第一层的 以太封装,去掉第二层的 PPP封装 ,剩下的就是网络层的。。。。。IP 等。。。。。。。。 RFC 你是看定了。。。。。。。。 :) [/quote] 我是知道是这样的,可是我从45 00 看到source ip , destination ip,可是这根本不是ip头呀,它是不是把ip头给压缩了?还是怎么回事! [/quote] swift 兄: 不好意思,我在看你第一贴时,我的理解有点”浅“了。。。 嘿嘿。。。还是”RFC 你是看定了。。。。。。。。“ :) PPP 的封装,中有字段选择是否,起用”压缩等其他功能“。。。。。。。 :o |
|
|
10楼#
发布于:2002-07-05 11:38
magicx兄,你知道它的怎么压缩的吗?
是不是也把ip数据给压缩了,还是只压缩了ip头? tcp头呢? |
|
11楼#
发布于:2002-07-05 12:15
magicx兄,你知道它的怎么压缩的吗? 应该是把 PPP 包中的payload。。。。。。。。 当数据压缩吧,PPP “不关心” payload 中是什么。。。。 PPP也不用“关心”。。。。 嘿嘿。。。 swift 兄: 还是看RFC(原文)1661 (PPP ?)吧。。。。 RFC 2516 (PPPOE)。。。 不然,可能会被我误道哦?前面的,也是我自己的看RFC原文,及自己的理解。。。 另: 你有试验的环境否? 偶这里没有啊,可我有兴趣。 :( 以后还要向swift兄 你请教啊! |
|
|
12楼#
发布于:2002-07-05 12:37
magicx兄,我这里有环境,RFC 2516 (PPPOE)我已经看完了,正在看1661,如果有什么问题可以与你商量否?呵呵 :)
my mail: littlecat_zhao@eyou.com QQ:14147140 |
|
13楼#
发布于:2002-07-05 14:01
magicx兄,我这里有环境,RFC 2516 (PPPOE)我已经看完了,正在看1661,如果有什么问题可以与你商量否?呵呵 :) 嘿嘿,swift 兄:我开始可是冲着你分来的哦! ;) 现在,能有swift 兄你,这样的“后台”顾问,也算是赚大拉! :D 你的进度,如此之快? :o 晚上我给你,发中文的 RFC 2516 (贿赂你 :))。 偶这里没有试验的环境啊(技术上?只能停留在很浅的层面),可我有兴趣。 :o以后多多,指教啊! :o |
|
|
14楼#
发布于:2002-07-05 15:16
hoho,好哦,
呵呵,先给你50分先,其实的留着先 :) 其实我是用的EtherNet300进行拨号,我用ndis hook拦截数据包, 发送的包都是ip包,接收的包却都是pppoe的包,所以处理起来比较费劲!希望可以找到一个共同进步的brother,呵呵! |
|
15楼#
发布于:2002-07-05 16:10
hoho,好哦, swift 兄: \"我用ndis hook拦截数据包,发送的包都是ip包,接收的包却都是pppoe的包\"--------ndis hook? 自己的名词? “发送的包都是ip包”---那应该只是 hook了协议层的吧 :)。 还有ndis中的中间层,微断口,你是否也hook? 另: 数据流是否为 你发 IP ----》(你的“ndis” hook---》)EtherNet300D 的 微断口(在这里将IP -》PPPOE。)---》 下一层的微断口。。。。。。。。。 而你收为 EtherNet300D 的 微断口(PPPOE包) --》 到你的“ndis” hook? :) |
|
|
16楼#
发布于:2002-07-05 16:20
其实不应该叫ndis hook,不过网上这么说,准确的说是:通过注册假协议的方法进行hook
发送的时候是这样的, 接收的时候却是先到我这里再到pppoe driver,所以很麻烦, 你能跑到pppoe driver receive的上面吗? pppoe driver是用IMD实现的,我不知道怎样hook它上面的接口? 如果能hook它上面的receive接口就好了,有方法吗? |
|
17楼#
发布于:2002-07-05 16:44
其实不应该叫ndis hook,不过网上这么说,准确的说是:通过注册假协议的方法进行hook 你的另一贴“怎么判断系统已经被ndis hook过一次了?(50分)”中说: 1,IMD安装有问题,不能支持PPPoE --- 为何,兄台可否,详细点? pppoe driver是用IMD实现的??? 即为:“注册假协议”,怎么是“接收的时候却是先到我这里再到pppoe driver(IMD)”??? swift 兄你有实验环境,可否给我,解惑??? :( :( :( 其他的问题我也仔细点想想。。。 晚上在来。。。你还这里否 ??? 此次我来此处真是收获不少。。。 :) [编辑 - 7/5/02 by magicx] |
|
|
18楼#
发布于:2002-07-05 18:03
封装在PPP包中的IP数据包的协议类型代码为0021,0021后面就是IP包内容,不过这时,IP的源地址是建立PPP连接时动态分配的IP地址(与本机静态IP地址不同),这是否是造成你没有找到IP地址的原因呢?
|
|
19楼#
发布于:2002-07-05 19:25
为了支持ADSL,要对ADSL的数据包处理,根据拦截到的数据包,突然发现不是IP包,这是不是就是PPPoE的包,它是怎样的数据格式,我发现在45 00好象是ip头的前面和mac的后面有8个字节,而且在mac的protocol部分好象是88 .. 你如果只HOOKING TCP/IP的话,你不可能会有机会处理PPPOE协议 因为 PPPOE的IMD驱动程序是透明在进过他的时候已经过滤掉了。 你不会连PPPOE的协议驱动也HOOKING了吧。 |
|
|
上一页
下一页