关闭

Linux Bridge的镜像端口实现

标签: linuxstructlist数据结构网络dst
4973人阅读 评论(1) 收藏 举报
很多种交换机上都可以配置镜像端口,也就是说所有的流量都要顺便发一份到镜像端口,一般都是在镜像端口上接一个主机,上面开启抓包或者审计程序,保证时刻监控网络流量。镜像端口解决了学习型交换机无法抓包的问题。
    Linux实现了一个软件版本的Bridge,也正是一个交换机,只是可能端口少些,通过brctl  setageingtime <brname> <time>将time设置成0也可以使该软交换机退化成一个Hub。然而我没有在brctl的man手册中找到如何来配置镜像端口的任何信息,于是自己实现了一个。我的实现目前只测试了支持一个镜像端口的情形,当然很容易扩展成支持任意多个。总的来讲,对代码的修改有两处:
0.对基础数据结构的修改
net_bridge_port结构体中增加一个flag,设为M,表示该端口为镜像端口;
1.br_add_if函数增加一个参数
该新增参数表示是否为镜像端口,若是,则设置新增net_bridge_port的M标志
2.修改br_handle_frame_finish函数
此处修改最为关键,主要有下面的逻辑:
...
if (skb) {
    if (dst) {
        if (!dst->dst->flags & M) {
            struct net_bridge_port *p;
            list_for_each_entry(p, &br->port_list, list) {
                if (p->flags & M) {
                    struct sk_buff *skb3 = skb_clone(skb, GFP_ATOMIC);
                    br_forward(dst->dst, skb3);
                }
            }    
        }
        br_forward(dst->dst, skb);
    } else
        br_flood_forward(br, skb);
}
...
以上0,1,2基本就可以实现镜像端口了,方便了网络抓包和网络调试。对于用户态的brctl也需要修改,很简单,只需要能在addif时传入一个M标志即可以。
0
0
查看评论

Linux如何实现镜像端口

在所有高端型号,大多数中端型号以及部分低端型号的交换机/路由器上,都可以配置一个或者多个镜像端口,它是流量分析的利器。然而,Linux上没有现成的技术可以实现镜像端口,当然,我指的不是Linux 3.x(x是几,忘了)以上的内核,这些内核已经支持了镜像,但不够好。起码2.6.35的内核是不能支持的,...
  • dog250
  • dog250
  • 2013-12-22 16:24
  • 8143

Linux 路由 抓包监听 端口镜像

Linux 下 旁路监听、端口镜像、监听桥接网卡……总之想在一个LAN得到整个局域网的流量该怎么办呢? 事情的起因很简单,我们是通过房东的光猫上网的,以前没玩过,很好奇。如下图 通过这几天Google的资料想到了几个办法,但限于猫上裁剪的Linux,能用的不多。  1、ipt...
  • douniwan5788
  • douniwan5788
  • 2012-11-05 14:27
  • 8227

用iptables做端口镜像(复制报文)

有一种做端口镜像的技术,将网卡上所有报文复制到另一个网卡上。
  • wesleyflagon
  • wesleyflagon
  • 2014-08-15 17:48
  • 3163

Linux如何实现镜像端口

在所有高端型号,大多数中端型号以及部分低端型号的交换机/路由器上,都可以配置一个或者多个镜像端口,它是流量分析的利器。然而,Linux上没有现成的技术可以实现镜像端口,当然,我指的不是Linux 3.x(x是几,忘了)以上的内核,这些内核已经支持了镜像,但不够好。起码2.6.35的内核是不能支持的,...
  • mrwangwang
  • mrwangwang
  • 2014-09-10 14:15
  • 1555

linux镜像,端口

  • 2009-04-02 22:05
  • 114KB
  • 下载

Linux如何实现镜像端口

Linux如何实现镜像端口 2013-12-22 16:24 6282人阅读 评论(2) 收藏 举报 版权声明:本文为博主原创,无版权,未经博主允许可以随意转载,无需注明出处,随意修改或保持可作为原创! 目录(?)[+] ...
  • adamska0104
  • adamska0104
  • 2017-07-06 14:14
  • 295

linux常用的内核镜像格式

linux常用的内核镜像格式 Linux内核有多种格式的镜像,包括vmlinux、Image、zImage等。 1.     Linux内核镜像格式1.1 vmlinux  vmlinuz是可引导的、可压缩的内...
  • LoongEmbedded
  • LoongEmbedded
  • 2016-08-31 10:02
  • 1251

linux系统http镜像源的搭建

一、搭建前的准备工作: 1、准备镜像文件并上传到服务器,上传步骤不多说,可以通过sftp、ftp、rz来上传 rhel-server-5.5-x86_64-dvd.iso rhel-server-5.8-x86_64-dvd.iso 2、搭建http环境,这是必要的。有多种软件可以选择:nginx、...
  • lin648446067
  • lin648446067
  • 2014-03-25 14:17
  • 1432

使用jnetpcap监控网络端口

jnetpcap在Win8.1上的配置 使用jnetpcap捕获数据包进行流量检测 get website name from packet using Jnetpcap jnetpcap常规使用 Using jNetPcap to read HTTP packets
  • csdncjh
  • csdncjh
  • 2016-06-29 09:55
  • 329

虚拟机网卡和linux bridge上tap设备的关系

1.  虚拟机进程 使用ps –ef |grepkvm可以看到虚拟机进程信息如下: /usr/libexec/qemu-kvm -nameinstance-0000001d -S -machine pc-i440fx-rhel7.1.0,accel=kvm,usb=off -cpuBr...
  • xiakewudi
  • xiakewudi
  • 2017-08-07 16:41
  • 1194
    个人资料
    • 访问:7059591次
    • 积分:84658
    • 等级:
    • 排名:第18名
    • 原创:1435篇
    • 转载:2篇
    • 译文:0篇
    • 评论:3116条
    文章存档
    最新评论