刚才看了些关于内核数据包转发的文章,结果不同的人写的都不一样啊,我都不知道该信谁了。我想问下关于 netfilter 框架里的5个 hook
PREROUTING
FORWARD
INPUT
OUTPUT
POSTROUTING
我现在知道在 PREROUTING 之后,
如果dstIP是本机,就走 INPUT ;
如果不是本机则走 FORWARD 。
而我现在想知道路由是发生在那里呢?
对于dstIP不是本机的数据包,路由发生在 FORWARD 之前还是之后?
对于dstIP是本机的数据包,路由发生在 OUTPUT 之前还是之后?
有谁知道哪里能查到比较权威的资料么?
先谢谢了!!!
1
scys 2015-02-04 17:41:10 +08:00 1
|
2
Draplater 2015-02-04 19:33:34 +08:00 via Android 1
|
3
qq446015875 OP |
4
qq446015875 OP |
5
ryd994 2015-02-04 22:11:11 +08:00
对于dstIP不是本机的数据包,路由当然发生在 FORWARD 之前啦,不然怎么知道是FORWARD
对于dstIP是本机的数据包,怎么会是 OUTPUT 呢?INPUT的话,当然也是在路由后,不然怎么知道? |
6
efi 2015-02-04 22:13:40 +08:00
|
7
onemoo 2015-02-04 22:49:28 +08:00
接5L的回答
对于destIP是本机的数据包,也是在route后才知道是本机的啊,但是再出本机的时候还要路由一次,这样才能确定把包给谁,所以发生在OUTPUT之前。 |