netenglabs / suzieq

Using network observability to operate and design healthier networks
https://www.stardustsystems.net/
Apache License 2.0
788 stars 104 forks source link

is there any assert that catches mtu failures in ospf-ibgp #235

Open jopietsch opened 4 years ago

jopietsch commented 4 years ago

THIS IS THE WRONG OUTPUT see my comment below for the actual output that we want to catch.

Is your feature request related to a problem? Please describe. I'd like to find these these mtu failures in an assert

inesh  12:48 PM
(suzieq-7LyZwL87-py3.7) ddutt@ddutt-yoga:~/work/suzieq$ suzieq/cli/suzieq-cli path show --src="172.16.1.101" --dest="172.16.2.104" --namespace=ospf-ibgp
    pathid  hopCount  namespace   hostname        iif       vrf  overlay mtuMatch   mtu  is_l2               timestamp
0        1         0  ospf-ibgp  server101      bond0   default    False      NaN  9000  False 2020-08-10 01:10:50.469
1        1         1  ospf-ibgp     leaf01  vlan13-v0  evpn-vrf    False     True  9000  False 2020-08-10 01:10:49.080
2        1         2  ospf-ibgp     leaf03     bond02   default    False     True  9000   True 2020-08-10 01:10:47.935
3        1         3  ospf-ibgp  server104      bond0   default    False     True  9000   True 2020-08-10 01:10:47.935
4        2         0  ospf-ibgp  server101      bond0   default    False      NaN  9000  False 2020-08-10 01:10:50.469
5        2         1  ospf-ibgp     leaf02  vlan13-v0  evpn-vrf    False     True  9000  False 2020-08-10 01:10:49.080
6        2         2  ospf-ibgp     leaf03     bond02  evpn-vrf    False     True  9000   True 2020-08-10 01:10:47.935
7        2         3  ospf-ibgp  server104      bond0   default    False     True  9000   True 2020-08-10 01:10:47.935
8        3         0  ospf-ibgp  server101      bond0   default    False      NaN  9000  False 2020-08-10 01:10:50.469
9        3         1  ospf-ibgp     leaf01  vlan13-v0  evpn-vrf    False     True  9000  False 2020-08-10 01:10:49.080
10       3         2  ospf-ibgp     leaf04     bond02   default    False     True  9000   True 2020-08-10 01:10:47.935
11       3         3  ospf-ibgp  server104      bond0   default    False     True  9000   True 2020-08-10 01:10:47.935
12       4         0  ospf-ibgp  server101      bond0   default    False      NaN  9000  False 2020-08-10 01:10:50.469
13       4         1  ospf-ibgp     leaf02  vlan13-v0  evpn-vrf    False     True  9000  False 2020-08-10 01:10:49.080
14       4         2  ospf-ibgp     leaf04     bond02  evpn-vrf    False     True  9000   True 2020-08-10 01:10:47.935
15       4         3  ospf-ibgp  server104      bond0   default    False     True  9000   True 2020-08-10 01:10:47.935
anubisg1 commented 4 years ago

unless i am not understanding what you are asking... why is that important?

if MTU is not matching, OSPF won't form a neighborship. therefore ospf assert will already catch that issue. in the case the user is specifically configuring "ip ospf mtu-ignore" , then the user is aware of such miss match

rather than checking miss matches into ospf or ibgp, wouldn't make sense to check it on the interfaces?

jopietsch commented 4 years ago

2 things. First, I put the wrong example. it should be:

(suzieq-7LyZwL87-py3.7) ddutt@ddutt-yoga:~/work/suzieq$ suzieq/cli/suzieq-cli path show --src="172.16.1.101" --dest="172.16.1.103" --namespace=dual-evpn
    pathid  hopCount  namespace   hostname     iif      vrf  overlay mtuMatch   mtu  is_l2               timestamp
0        1         0  dual-evpn  server101   bond0  default    False      NaN  9000   True 2020-08-10 02:05:23.142
1        1         1  dual-evpn     leaf01  bond01  default    False    False  1500   True 2020-08-10 02:05:23.142
2        1         2  dual-evpn     leaf03  bond01  default     True    False  1500   True 2020-08-10 02:05:23.148
3        1         3  dual-evpn  server103   bond0  default    False    False  9000   True 2020-08-10 02:05:23.252
4        2         0  dual-evpn  server101   bond0  default    False      NaN  9000   True 2020-08-10 02:05:23.142
5        2         1  dual-evpn     leaf02  bond01  default    False    False  1500   True 2020-08-10 02:05:23.142
6        2         2  dual-evpn     leaf03  bond01  default     True    False  1500   True 2020-08-10 02:05:23.254
7        2         3  dual-evpn  server103   bond0  default    False    False  9000   True 2020-08-10 02:05:23.252
8        3         0  dual-evpn  server101   bond0  default    False      NaN  9000   True 2020-08-10 02:05:23.142
9        3         1  dual-evpn     leaf01  bond01  default    False    False  1500   True 2020-08-10 02:05:23.142
10       3         2  dual-evpn     leaf04  bond01  default     True    False  1500   True 2020-08-10 02:05:23.148
11       3         3  dual-evpn  server103   bond0  default    False    False  9000   True 2020-08-10 02:05:23.148
12       4         0  dual-evpn  server101   bond0  default    False      NaN  9000   True 2020-08-10 02:05:23.142
13       4         1  dual-evpn     leaf02  bond01  default    False    False  1500   True 2020-08-10 02:05:23.142
14       4         2  dual-evpn     leaf04  bond01  default     True    False  1500   True 2020-08-10 02:05:23.254
15       4         3  dual-evpn  server103   bond0  default    False    False  9000   True 2020-08-10 02:05:23.148

2nd, Dinesh is working on path show, and in this (correct) example, it is saying that there is an MTU mismatch problem, but we don't catch it in an assert. Anything that we know is wrong should be caught in an assert; having to run a path show to find a problem is not the right experience.