免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2394 | 回复: 5
打印 上一主题 下一主题

[网络子系统] linux桥接,数据包还能经过forward链吗?【以解决】 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-11-16 18:09 |只看该作者 |倒序浏览
本帖最后由 knight8267 于 2012-11-22 17:36 编辑

测试机是CentOS6.2操作系统, 内核版本为 2.6.32.220.e16..  32位双CPU
在测试时,把两个网口桥接在一起,两端网线分别连接一台客户端和和一台服务器,然后在forward链上加了一条规则,在客户端连接服务器时,规则不起作用。

如客户端的ip是192.168.100.245, 服务器端的ip地址是192.168.100.253, 中间的设备不配ip

但是网上说透明防火墙使用iptables和ebtables进行过滤数据包,可以从物理层传到IP层,会经过forward连,这怎么解释呢?
还有提到ebtables,我没有用到它配置规则。而且我的设备上没有ebtables命令,会不会是内核不支持ebtables?


期待大家的讨论。谢谢

论坛徽章:
0
2 [报告]
发表于 2012-11-16 19:32 |只看该作者
这个不是很清楚哦!

论坛徽章:
0
3 [报告]
发表于 2012-11-18 13:46 |只看该作者
dev.c中int netif_receive_skb(struct sk_buff *skb)有调用桥的处理函数:

skb = handle_bridge(skb, &pt_prev, &ret, orig_dev);
        if (!skb)
                goto out;


发现有如下宏定义:
#if defined(CONFIG_BRIDGE) || defined (CONFIG_BRIDGE_MODULE)
...
...
static inline struct sk_buff *handle_bridge(struct sk_buff *skb,
                                            struct packet_type **pt_prev, int *ret,
                                            struct net_device *orig_dev)
{
        struct net_bridge_port *port;

        if (skb->pkt_type == PACKET_LOOPBACK ||
            (port = rcu_dereference(skb->dev->br_port)) == NULL)
                return skb;

        if (*pt_prev) {
                *ret = deliver_skb(skb, *pt_prev, orig_dev);
                *pt_prev = NULL;
        }

        return br_handle_frame_hook(port, skb);
}
#else
#define handle_bridge(skb, pt_prev, ret, orig_dev)        (skb)
#endif


CentOS6.2 LiveCD版上面内核编译没有定义上面的两个宏, 不知道这样分析对不对? 手头上暂时没有编译源代码,还不能确定。

论坛徽章:
0
4 [报告]
发表于 2012-11-19 18:22 |只看该作者
2.6.32的内核应该是过的

论坛徽章:
0
5 [报告]
发表于 2012-11-21 15:15 |只看该作者
2.6.18测试
会经过

论坛徽章:
0
6 [报告]
发表于 2012-11-22 17:34 |只看该作者
问题解决了,是CentOS6.2操作系统上面bridge模块是动态加载的,
如果创建一个桥设备brctl addbr br0, 之后就会把brigde.ko加载上,再把两个网卡加上, 这时候只能在二层转发,到不了三层(我在FORWARD链上面加DROP策略后不阻断,所以我这样推断), 而且系统上面没有安装etables的命令, ebalbes.ko、ebtable_broue.ko、ebt_redirct.ko、ebtable_filter.ko等模块都没有加载 上。

当我手动加载这些模块后,我所加的三层上面的策略就可以生效了。

这是实际测试的结果,
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP