基于Quagga快速搭建一个OSPF路由网路测试环境

背景了解

整体思路参考这篇文章:基于 OSPF 的网络拓扑发现算法
辅助理解OSPF图:
???
上图原始链接

暂时考虑两个边界路由:

主要步骤:

1、两台虚拟机,系统都为centos7,且双网卡如何使用Quagga,将你的CentOS设备变成OSPF路由器?亲测可行

理解之后自定义的配置如下:
主机site-A-RTR: 通路IP:10.10.10.1/28 路由IP:172.16.1.1/24
主机site-B-RTR: 通路IP:10.10.10.2/28 路由IP:172.16.2.1/24

环境搭建好了之后,通过wireshark成功抓到了ospf数据包
在这里插入图片描述

针对解析包的话,发现用Pcap4j默认不支持抓取OSPF协议的数据报,建议使用jpcap,

通过调用getDeviceList () 和open-Device() 方法选择网卡并打开设备;通过调用setFilter() 方法将过滤条件设置到IP 层;最后调用processPacket()方法,将协议号字段protocol 设置为89,这样即可捕获OSPF 协议链路状态更新报文。

关于JAVA实现网络拓扑,后面完善后补上

学习过程查询的资料汇总

  1. 理解linux下的 eth0,eth1,eth2,lo 网卡配置
  2. IP数据报格式及如何判断报文类型
  3. Ethernet,TCP,IP协议简介
  4. 网络拓扑自动发现的方法很多,但归结起来主要有以下三种:基于SNMP的网络拓扑发现方法;基于通用协议的网络拓扑发现方法;基于路由协议的网络拓扑发现方法。

关于pcap4j

伯克利包过滤(Berkeley Packet Filter,BPF)语言

  1. pcap4j-api
  2. pacap4 download
  3. BPF过滤规则参考
  4. OSI七层模型的每一层都有哪些协议

伯克利包过滤(Berkeley Packet Filter,BPF)语言
libpcap支持一种功能非常强大的过滤语言——“伯克利包过滤”语法。使用BPF过滤规则,你可以确定该获取和检查哪些流量,忽略哪些流量。BPF让你能够通过比较第2、3、4层协议中各个数据字段值的方法对流量进行过滤。BPF中内置了一些“基元”来指代一些常用的协议字段。可以用“host”、"prot"之类的基元写出非常简洁的BPF过滤规则,也可以检测位于指定偏移量上的字段(甚至可以是一个位)的值。BPF过滤器也可以由详尽的条件链和嵌套的逻辑“与”、“或”操作组成。

BPF基元
现在,构造一个BPF过滤器的最简单的办法就是使用BPF“基元”来指定协议、协议元素或者其他抓包规则。基元通常是由一个id(名称或序号)再加上一个或多个限定符组成的。

type限定符:规定了id名或id序号指的是哪种类型的数据,可能的type有host、net、prot和protrange
dir限定符:规定了流量是从id流进还是流出的(或两种兼有)。可能的dir有src、dst、ser or dst、src and dst、addr1、addr2、addr3和addr4
Proto限定符:规定了所匹配的协议。可能的proto有:ether、fddi、tr、wlan、ip、ip6、arp、rarp、decnet、tcp和udp
最常用的BPF基元要数“host id”,它是用来过滤与某台主机相关的流量的,其中id一栏中应该填上一个地址或主机名。输入“tcp and host 10.10.10.10”这样的过滤规则,将值获取流入/流出得做10.10.10.10的TCP流量,其他的所有帧都会被过滤掉。

举例说明:假设我们现在希望仅仅获取IP地址为192.168.0.1的计算机与除IP地址10.1.1.1之外的其他所有计算机在138、139和445端口上发送的所有通信,下面这个BPF过滤规则就能完成上述任务:

‘host 192.168.0.1 and not host 10.1.1.1 and (port 138 or port 139 or port 445)’
常用的BPF基元有

	• host id , dst host id , src host id
	• net id , dst net id , src net id
	• ether host id , ether dst host id , ether src host id
	• port id , dst port id , src port id
	• gateway id , ip proto id , ether proto id
	• tcp, udp, icmp, arp
	• vlan id
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值