Hi Brian, But I still have not understood what state you consider an error and where do you expect a warning?
On Wed, Apr 10, 2019 at 7:56 PM Brian Topping <brian.topp...@gmail.com> wrote: > > Hi Alexander, > > The “error” I had before was the lack of a warning. I think the usability of > BIRD would be improved if there was a warning for the state that I described. > > Thanks, Brian > > > On Apr 10, 2019, at 6:17 AM, Alexander Zubkov <gr...@qrator.net> wrote: > > > > Hi Brian, > > > > It is a bit more information, but it does not help fully still. You are > > saying: > > > >> With the patch, I use the configuration as shown and it peers as before, > >> but the RIB is properly formed: > > > > But I can not understand what error did you have before. If you showed > > original bgp configuration, tcpdump and result of commands like "show > > protocols all", "show route all" and pointed out what pieces you find > > wrong, it would be helpful. > > It also seems to me that in your first message you could mix up router > > ids and neigbours' ips. > > > > On Sun, Apr 7, 2019 at 12:23 AM Brian Topping <brian.topp...@gmail.com> > > wrote: > >> > >>> On Apr 6, 2019, at 1:38 PM, Alexander Zubkov <gr...@qrator.net> wrote: > >>> > >>> Hi Brian, > >>> > >>> Can you give specific examples of what is happening? Configuration > >>> samples, show running route information from cli, etc. > >> > >> Hi Alexander, I can give it a shot here. Apologies for the previous direct > >> reply. > >> > >> These are the configs after application of the patch that I referenced > >> below. > >> > >> BIRD BGP: > >> > >>> router id UP.STREAM.143.113; > >>> > >>> protocol bgp bgp_metal_gw01 { > >>> local as ASLOCAL; > >>> neighbor 10.10.0.41 as ASN; # See description below > >>> passive yes; > >>> ipv4 { > >>> next hop self; > >>> import filter { > >>> bgp_origin = ORIGIN_IGP; > >>> dest = RTD_BLACKHOLE; > >>> accept; > >>> }; > >>> export none; > >>> }; > >>> } > >> > >> MetalLB: > >> > >>> apiVersion: v1 > >>> kind: ConfigMap > >>> data: > >>> config: | > >>> peers: > >>> - peer-address: UP.STREAM.143.113 > >>> router-id: 10.10.0.41 > >>> peer-asn: ASLOCAL > >>> my-asn: ASLOCAL > >> > >> > >> Without the patch, the BIRD neighbor address is *also* UP.STREAM.143.113. > >> This is broken, but because MetalLB was using the primary interface that > >> was returned by Go standard library, I realized via tcpdump that BIRD > >> wasn’t allowing the connection without the neighbor address matching the > >> socket source address being used by MetalLB. At that point, the session > >> was established with no warnings or errors, but the behavior I described > >> previously was the result. Relevant trace from that previous configuration: > >> > >>> UP.STREAM.143.125.bgp > UP.STREAM.143.113.40871: Flags [P.], cksum > >>> 0x5bf5 (correct), seq 87:150, ack 71, win 16384, options [nop,nop,TS val > >>> 1618696452 ecr 1215190272], length 63: BGP > >>> Keepalive Message (4), length: 19 > >>> Update Message (2), length: 44 > >>> Origin (1), length: 1, Flags [T]: IGP > >>> 0x0000: 00 > >>> AS Path (2), length: 6, Flags [T]: 30475 > >>> 0x0000: 0201 0000 770b > >>> Next Hop (3), length: 4, Flags [T]: UP.STREAM.143.125 > >>> 0x0000: adf8 8f7d > >>> Updated routes: > >>> 0.0.0.0/0 > >>> 00:02:53.744295 IP (tos 0xc0, ttl 1, id 38102, offset 0, flags [DF], > >>> proto TCP (6), length 210) > >>> UP.STREAM.143.113.40871 > UP.STREAM.143.125.bgp: Flags [P.], cksum > >>> 0x7ba4 (incorrect -> 0x443f), seq 71:229, ack 150, win 502, options > >>> [nop,nop,TS val 1215190314 ecr 1618696452], length 158: BGP > >>> Update Message (2), length: 84 > >>> Origin (1), length: 1, Flags [T]: IGP > >>> 0x0000: 00 > >>> AS Path (2), length: 10, Flags [T]: ASLOCAL ASLOCAL > >>> 0x0000: 0202 0000 2963 0000 2963 > >>> Next Hop (3), length: 4, Flags [T]: UP.STREAM.143.113 > >>> 0x0000: adf8 8f71 > >>> Community (8), length: 4, Flags [OTP]: NO_EXPORT > >>> 0x0000: ffff ff01 > >>> Updated routes: > >>> ANN.CIDR.96.10/32 > >>> ANN.CIDR.96.11/32 > >>> ANN.CIDR.96.8/32 > >>> ANN.CIDR.96.9/32 > >>> ANN.CIDR.96.0/32 > >>> ANN.CIDR.97.1/32 > >>> Update Message (2), length: 51 > >>> Origin (1), length: 1, Flags [T]: IGP > >>> 0x0000: 00 > >>> AS Path (2), length: 6, Flags [T]: ASLOCAL > >>> 0x0000: 0201 0000 2963 > >>> Next Hop (3), length: 4, Flags [T]: UP.STREAM.143.113 > >>> 0x0000: adf8 8f71 > >>> Updated routes: > >>> ANN.CIDR.96.0/24 > >>> ANN.CIDR.97.0/24 > >>> Update Message (2), length: 23 > >>> End-of-Rib Marker (empty NLRI) > >> > >> With the patch, I use the configuration as shown and it peers as before, > >> but the RIB is properly formed: > >> > >>> [root@gw01 ~]# birdc show route > >>> BIRD 2.0.2 ready. > >>> Table master4: > >>> 0.0.0.0/0 unicast [bgp_handy_125 21:22:05.177] * (100) > >>> [ASUPSTREAMi] > >>> via UP.STREAM.143.125 on eno1 > >>> unicast [bgp_handy_126 21:22:04.771] (100) > >>> [ASUPSTREAMi] > >>> via UP.STREAM.143.126 on eno1 > >>> ANN.CIDR.96.10/32 blackhole [bgp_metal_gw01 16:01:32.784 from > >>> 10.10.0.41] * (100) [i] > >>> 10.9.255.0/24 unicast [backbone 21:22:00.909] * I (150/10) > >>> [UP.STREAM.143.113] > >>> dev vti19 > >>> ANN.CIDR.96.11/32 blackhole [bgp_metal_gw01 16:01:32.784 from > >>> 10.10.0.41] * (100) [i] > >>> ANN.CIDR.96.8/32 blackhole [bgp_metal_gw01 16:01:32.784 from > >>> 10.10.0.41] * (100) [i] > >>> ANN.CIDR.96.9/32 blackhole [bgp_metal_gw01 16:01:32.784 from > >>> 10.10.0.41] * (100) [i] > >>> ANN.CIDR.96.0/24 blackhole [public_nets_proto 21:22:00.809] * (500) > >>> ANN.CIDR.97.0/24 blackhole [public_nets_proto 21:22:00.809] * (500) > >>> ANN.CIDR.96.0/32 blackhole [bgp_metal_gw01 16:01:32.784 from > >>> 10.10.0.41] * (100) [i] > >>> ANN.CIDR.97.1/32 blackhole [bgp_metal_gw01 16:01:32.784 from > >>> 10.10.0.41] * (100) [i] > >>> 10.10.0.0/22 unicast [backbone 21:22:00.909] * I (150/10) > >>> [UP.STREAM.143.113] > >>> dev eno2 > >> > >> > >> Does that help? > >> > >> >