br一点点改动

本文探讨了新内核桥的改动,重点讲解了桥接接口如何在br_add_if时动态挂入br_handle_frame,并在__netif_receive_skb_core中的调用过程。此外,还介绍了br的IP机制,它通过brnf_call_iptables来控制,允许通过PROC进行动态配置。由于PPPOE头部在netfilter中无法直接获取,因此需要调整/proc/sys/net/bridge/bridge-nf-filter-pppoe-tagged参数。
摘要由CSDN通过智能技术生成

新内核桥的一点点改动

1.

桥是在br_add_if动态的挂入br_handle_frame

在__netif_receive_skb_core中rx_handler = rcu_dereference(skb->dev->rx_handler)得到调用

2.

br的ip机制非常强大,是通过brnf_call_iptables来决定是否开启,可通过PROC动态配置。

关于PPPOE头部在netfilter无法取到,需要调整这个值/proc/sys/net/bridge/bridge-nf-filter-pppoe-tagged

下面是br挂入的PREROUTING

static unsigned int br_nf_pre_routing(void *priv,
                      struct sk_buff *skb,
                      const struct nf_hook_state *state)
{
  

    if (!brnf_call_iptables && !br->nf_call_iptables)
        return NF_ACCEPT;

    if (!IS_IP(skb) && !IS_VLAN_IP(skb) && !IS_PPPOE_IP(skb))
        return NF_ACCEPT;


    nf_bridge = nf_bridge_info_get(skb);
    nf_bridge->ipv4_daddr = ip_hdr(skb)->daddr;

    skb->protoc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值