ideas and challenges on testing a experiences testing quagga

23
1 Ideas and Challenges on testing a routing protocol Experiences testing Quagga Martin Winter May 26, 2016

Upload: others

Post on 15-Jun-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ideas and Challenges on testing a Experiences testing Quagga

1

Ideas and Challenges on testing a routing protocol Experiences testing Quagga

Martin Winter May 26, 2016

Page 2: Ideas and Challenges on testing a Experiences testing Quagga

Who is OpenSourceRouting ?

‣  Who is Open Source Routing ? •  www.opensourcerouting.org •  Project by NetDEF (Network Device Education Foundation) -  www.netdef.org

-  Non-Profit Company based in California

•  Working on Quagga Routing

‣  Who is Martin Winter ? •  Co-Founder of NetDEF •  Focusing on Testing Quagga •  Previously worked for Equipment Vendor & large ISP

2

Page 3: Ideas and Challenges on testing a Experiences testing Quagga

3

Building Tools Tools used for “building”

Page 4: Ideas and Challenges on testing a Experiences testing Quagga

Compiler VMs

4

‣  Build in VMs: Simple Reset ‣  Build on specific distro and version •  Different versions of libraries used

‣  Different CPU Architectures

Page 5: Ideas and Challenges on testing a Experiences testing Quagga

Static Analysis: Clang-Analyzer

5

Page 6: Ideas and Challenges on testing a Experiences testing Quagga

Static Analysis: Clang-Analyzer

6

BUT: Expect a lot of bad warnings…

Page 7: Ideas and Challenges on testing a Experiences testing Quagga

Static Analysis: Coverity Scan

7

Page 8: Ideas and Challenges on testing a Experiences testing Quagga

Static Analysis: Coverity Scan

8

Nice: Finds some Copy & Paste errors!

Page 9: Ideas and Challenges on testing a Experiences testing Quagga

Code Coverage

9

? [this slide is left blank – we don’t do this yet]

Page 10: Ideas and Challenges on testing a Experiences testing Quagga

10

Testing Tools Tools used for Testing

Page 11: Ideas and Challenges on testing a Experiences testing Quagga

RFC Compliance Tests

11

Interoperability with Cisco/Juniper ≠ RFC Compliance Test

Hint: •  BGP Transitive Attributes •  Error Handling

Page 12: Ideas and Challenges on testing a Experiences testing Quagga

RFC Compliance Test: Ixia ANVL

12

Page 13: Ideas and Challenges on testing a Experiences testing Quagga

Protocol Fuzzer

13

012301234567890123456789012345678901+-+-+-+-+-+-+-+-+|Version|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|MyAutonomousSystem|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|HoldTime|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|BGPIdentifier|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|OptParmLen|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|||OptionalParameters(variable)|||+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

BGP OPEN Message Format (RFC 4271)

Page 14: Ideas and Challenges on testing a Experiences testing Quagga

Protocol Fuzzer: Spirent SPS-8000

14

Page 15: Ideas and Challenges on testing a Experiences testing Quagga

Protocol Performance & Scale

15

Example – Scale using external routes in OSPF

Test traffic sent to an IP on each external route

Page 16: Ideas and Challenges on testing a Experiences testing Quagga

16

Protocol Performance & Scale

Page 17: Ideas and Challenges on testing a Experiences testing Quagga

17

Protocol Performance & Scale

Example – Scale using internal routes in OSPF

Test traffic sent to an IP on each link in matrix

Page 18: Ideas and Challenges on testing a Experiences testing Quagga

18

Protocol Performance & Scale (Result from old Quagga 0.99.22)

Page 19: Ideas and Challenges on testing a Experiences testing Quagga

19

Protocol Performance & Scale (Result from old Quagga 0.99.22)

Page 20: Ideas and Challenges on testing a Experiences testing Quagga

20

Protocol Performance & Scale

‣  How to summarize result? (Pass/Fail)

‣  Testing in VM or physical machine?

‣  Tools for testing?

•  ExaBGP for BGP

•  no tools for OSPF/ISIS/RIP/PIM/….

Page 21: Ideas and Challenges on testing a Experiences testing Quagga

21

Automate (incl Result Parsing!)

Page 22: Ideas and Challenges on testing a Experiences testing Quagga

22

Links

•  NetDEF CI System https://ci.netdef.org

•  Quagga RFC Compliance Reports https://www.opensourcerouting.org/compliance-test-results/

•  More details on our testing: https://www.opensourcerouting.org/2016/05/whitepaper-how-opensourcerouting-tests-quagga

Page 23: Ideas and Challenges on testing a Experiences testing Quagga

23

Questions ?

Martin Winter [email protected] Network Device Education Foundation (NetDEF) www.netdef.org / www.opensourcerouting.org