Hoi, Good to hear, Chunhui. Happy to hear you got this working without too much trouble in the end!
groet, Pim On Mon, Mar 7, 2022 at 9:38 AM Chunhui Zhan <chun...@emmuni.com> wrote: > It looks like it is a hardware issue on the pc2. I change the pc2 xl710 > card and both the tcpdump and the ospfd now see the multicast hello packets > on the lcp loopback interface. > > Chunhui > > On Sat, Mar 5, 2022 at 9:34 AM Chunhui Zhan <chun...@emmuni.com> wrote: > >> Pim: >> My configuration is kind of much more complex to use gre over wireguard >> to connect home and office. Here are the vpp configuration of pc2 which >> has the trouble. (PC 1 is the same configuration except a public >> wireguard address) >> >> Basically, loop1 ---> gre ---> wirguard (office) ------> wireguard(home) >> --> grp-->loop1 >> ospfd listened on the lcp loop1 on each end. >> >> set interface state TenGigabitEthernet3/0/0 up >> set interface ip address TenGigabitEthernet3/0/0 192.168.1.249/24 >> ip route add 0.0.0.0/0 via 192.168.1.1 >> wireguard create listen-port 51000 private-key ****** src 192.168.1.249 >> set interface state wg0 up >> set interface ip address wg0 172.16.0.200/16 >> wireguard peer add wg0 public-key ********* endpoint x.x.x.x allowed-ip >> 172.16.0.100/32 dst-port 51000 persistent-keepalive 25 >> >> create loopback interface mac 2a:ab:3c:4d:5e:6f instance 1 >> set int mtu 1360 loop1 >> set int l2 learn loop1 disable >> set int state loop1 up >> set int ip addr loop1 10.10.0.200/31 >> >> create gre tunnel src 172.16.0.200 dst 172.16.0.100 teb >> set int state gre0 up >> >> create bridge-domain 100 learn 1 forward 1 uu-flood 1 flood 1 arp-term 0 >> set int l2 bridge loop1 100 bvi >> >> set int l2 bridge gre0 100 1 >> >> lcp lcp-sync on >> lcp lcp-auto-subint on >> >> lcp create TenGigabitEthernet3/0/0 host-if ensf0 >> lcp create loop1 host-if loop1 >> ip route add 192.168.230.0/24 via 10.10.0.201 >> ip route add 10.0.0.0/24 via 10.10.0.201 >> >> I attached the ospfd.conf in the previous email. Here is the bird.conf >> The bird.conf >> protocol ospf v2 ospf4 { >> debug all; >> ipv4 { export where source = RTS_DEVICE; import all; }; >> area 0 { >> interface "lo" { stub yes; }; >> interface "loop1" { type broadcast; cost 5; }; >> }; >> } >> >> Best, >> Chunhui >> >> On Sat, Mar 5, 2022 at 12:09 AM Pim van Pelt <p...@ipng.nl> wrote: >> >>> Hoi, >>> >>> As an aside, you'll probably want an interface type of pointopoint (as >>> opposed to broadcast) on a /31 OSPF link, as there can only be two >>> participants. >>> I don't understand how you configured VPP. Can you share the VPP >>> commands you used to create the topology? >>> >>> This little snippet of VPP configuration implements the topology you >>> described: OSPF and OSPFv3 over a GRE v4 underlay: >>> >>> vpp# lcp create GigabitEthernet10/0/1 host-if e1 >>> >>> vpp# set interface state GigabitEthernet10/0/1 up >>> >>> vpp# set interface ip address GigabitEthernet10/0/1 >>> 2001:678:d78:200:0:0:1:01/124 >>> >>> vpp# set interface ip address GigabitEthernet10/0/1 192.168.10.17/31 >>> >>> vpp# create gre tunnel src 192.168.10.17 dst 192.168.10.16 >>> >>> gre0 >>> >>> vpp# set interface state gre0 up >>> >>> vpp# set interface ip address gre0 10.0.0.1/31 >>> >>> vpp# lcp create gre0 host-if gre0 tun >>> >>> And then in Linux for BIRD2: >>> >>> protocol ospf v2 ospf4 { >>> >>> ipv4 { export where source = RTS_DEVICE; import all; }; >>> >>> area 0 { >>> >>> interface "loop0" { stub yes; }; >>> >>> interface "gre0" { type pointopoint; cost 5; bfd off; }; >>> >>> }; >>> >>> } >>> >>> >>> protocol ospf v3 ospf6 { >>> >>> ipv6 { export where source = RTS_DEVICE; import all; }; >>> >>> area 0 { >>> >>> interface "loop0" { stub yes; }; >>> >>> interface "gre0" { type pointopoint; cost 5; bfd off; }; >>> >>> }; >>> >>> } >>> >>> >>> root@vpp0-1:/etc/bird# ip -br a >>> >>> lo UNKNOWN 127.0.0.1/8 ::1/128 >>> >>> loop0 UP 192.168.10.1/32 2001:678:d78:200::1/128 >>> fe80::dcad:ff:fe00:0/64 >>> >>> e0 DOWN >>> >>> e1 UP 192.168.10.17/31 >>> 2001:678:d78:200::1:1/124 fe80::5054:ff:fe01:1001/64 >>> >>> e2 UP 192.168.10.18/31 >>> 2001:678:d78:200::2:1/124 fe80::5054:ff:fe01:1002/64 >>> >>> e3 DOWN >>> >>> gre0 UP 10.0.0.1/31 fe80::fd16:4fa7:d382:6eed/64 >>> >>> >>> >>> root@vpp0-1:/etc/bird# ping 10.0.0.0 >>> >>> PING 10.0.0.0 (10.0.0.0) 56(84) bytes of data. >>> >>> 64 bytes from 10.0.0.0: icmp_seq=1 ttl=64 time=2.82 ms >>> >>> 64 bytes from 10.0.0.0: icmp_seq=2 ttl=64 time=3.90 ms >>> >>> 64 bytes from 10.0.0.0: icmp_seq=3 ttl=64 time=3.64 ms >>> >>> 64 bytes from 10.0.0.0: icmp_seq=4 ttl=64 time=1.83 ms >>> >>> ^C >>> >>> --- 10.0.0.0 ping statistics --- >>> >>> 4 packets transmitted, 4 received, 0% packet loss, time 3003ms >>> >>> rtt min/avg/max/mdev = 1.833/3.048/3.897/0.806 ms >>> >>> >>> root@vpp0-1:/etc/bird# birdc show ospf nei ospf4 >>> >>> BIRD 2.0.7 ready. >>> >>> ospf4: >>> >>> Router ID Pri State DTime Interface Router IP >>> >>> 192.168.10.0 1 Full/PtP 36.196 gre0 10.0.0.0 >>> >>> root@vpp0-1:/etc/bird# birdc show ospf nei ospf6 >>> >>> BIRD 2.0.7 ready. >>> >>> ospf6: >>> >>> Router ID Pri State DTime Interface Router IP >>> >>> 192.168.10.0 1 Full/PtP 35.241 gre0 >>> fe80::9045:a0b1:9634:358c >>> >>> root@vpp0-1:/etc/bird# >>> >>> groet, >>> Pim >>> >>> On Sat, Mar 5, 2022 at 4:23 AM Chunhui Zhan <chun...@emmuni.com> wrote: >>> >>>> Note that if I dont use the loopback -- lcp --tunnel interfaces, just >>>> use the plain physical interface to connect the two routers, both frr and >>>> bird are working ok. >>>> >>>> It smells a little bit fishy here. >>>> >>>> On Fri, Mar 4, 2022 at 4:27 PM Chunhui Zhan <chun...@emmuni.com> wrote: >>>> >>>>> Hi, Pim, >>>>> I disable the ping_plugin.so, now the icmp passed through the >>>>> interface. >>>>> >>>>> I could not make frr work, so tried bird2, but got same results as >>>>> frr. The ospf hello packet was not picked up one of the peer router. >>>>> Here is my test topology >>>>> >>>>> pc1 loop1 ---lcp---vpp1 loopback === gre tunnel ==== vpp2 >>>>> loopback---lcp---loop1 pc2 >>>>> 10.10.0.201/31 >>>>> 10.10.0.200/31 >>>>> >>>>> on pc1 tcpdump: both the hello packet are in and the bird show the >>>>> state as Init >>>>> bird> show ospf neighbors >>>>> ospf4: >>>>> Router ID Pri State DTime Interface Router IP >>>>> 127.0.0.200 1 Init/Other 34.845 loop1 10.10.0.200 >>>>> >>>>> on pc2, tcpdump show both hello packet are send and receive from the >>>>> interface, but the bird log only show send the hello packet, not recv any. >>>>> so on pc2, the neighor is empty, the bird log contradict with the >>>>> tcpdump. >>>>> >>>>> Any idea here? >>>>> Thanks. >>>>> Chunhui >>>>> >>>>> pc2 bird log, only send, no recv packets >>>>> 2022-03-05 00:20:21.998 <TRACE> ospf4: HELLO packet sent via loop1 >>>>> 2022-03-05 00:20:31.997 <TRACE> device1: Scanning interfaces >>>>> 2022-03-05 00:20:31.999 <TRACE> ospf4: HELLO packet sent via loop1 >>>>> 2022-03-05 00:20:41.997 <TRACE> device1: Scanning interfaces >>>>> 2022-03-05 00:20:41.998 <TRACE> kernel4: Scanning routing table >>>>> 2022-03-05 00:20:41.998 <TRACE> kernel4: Pruning table master4 >>>>> 2022-03-05 00:20:41.998 <TRACE> kernel6: Pruning table master6 >>>>> 2022-03-05 00:20:41.998 <TRACE> ospf4: HELLO packet sent via loop1 >>>>> >>>>> but on pc2(10.10.0.200) tcpdump, clearly show the hello packets send >>>>> also recv hello from pc1(10.10.0.201). >>>>> 00:10:01.999053 2a:ab:3c:4d:5e:6f (oui Unknown) > 01:00:5e:00:00:05 >>>>> (oui Unknown), ethertype IPv4 (0x0800), length 78: (tos 0xc0, ttl 1, id >>>>> 30153, offset 0, flags [none], proto OSPF (89), length 64) >>>>> 10.10.0.200 > ospf-all.mcast.net: OSPFv2, Hello, length 44 >>>>> Router-ID 127.0.0.200, Backbone Area, Authentication Type: none (0) >>>>> Options [External] >>>>> Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.254, Priority 1 >>>>> >>>>> 00:10:09.994781 2a:ab:3c:4d:5e:7f (oui Unknown) > 01:00:5e:00:00:05 >>>>> (oui Unknown), ethertype IPv4 (0x0800), length 82: (tos 0xc0, ttl 1, id >>>>> 63898, offset 0, flags [none], proto OSPF (89), length 68) >>>>> 10.10.0.201 > ospf-all.mcast.net: OSPFv2, Hello, length 48 >>>>> Router-ID 127.0.0.201, Backbone Area, Authentication Type: none (0) >>>>> Options [External] >>>>> Hello Timer 10s, Dead Timer 40s, Mask 255.255.255.254, Priority 1 >>>>> Designated Router 10.10.0.201 >>>>> Neighbor List: >>>>> 127.0.0.200 >>>>> >>>>> >>>>> the bird.conf basically are same here. >>>>> protocol ospf v2 ospf4 { >>>>> debug all; >>>>> ipv4 { export where source = RTS_DEVICE; import all; }; >>>>> area 0 { >>>>> interface "lo" { stub yes; }; >>>>> interface "loop1" { type broadcast; cost 5; }; >>>>> }; >>>>> } >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> On Fri, Mar 4, 2022 at 1:01 AM Pim van Pelt <p...@ipng.nl> wrote: >>>>> >>>>>> +vpp-dev >>>>>> >>>>>> I wasn't aware of a mailinglist outage, but I'm sure it'll solve >>>>>> itself soon enough :-) putting the list back on CC. >>>>>> >>>>>> VPP has a ping plugin, which you are recommended to turn off when >>>>>> using Linux controlplane - see the note all the way at the bottom here: >>>>>> >>>>>> https://s3-docs.fd.io/vpp/22.06/developer/plugins/lcp.html?highlight=ping >>>>>> >>>>>> Leaving the ping plugin on will allow VPP to respond to pings itself >>>>>> (ie not punt them into the TAP device for Linux to see), but as you >>>>>> observed, higher level tools, like FRR, will not receive the packets in >>>>>> this case. >>>>>> You didn't specify it very clearly, but for other readers, I assume >>>>>> when you said 'running FRR, ... only see the hello broadcast packets' , >>>>>> that you meant to run OSPF and you saw hello multicast packets. >>>>>> Incidentally, I don't know why FRR insists on pinging its neighbors >>>>>> before >>>>>> establishing an OSPF adjacency - it seems unnecessary, and even >>>>>> undesirable >>>>>> to me. >>>>>> >>>>>> groet, >>>>>> Pim >>>>>> >>>>>> On Fri, Mar 4, 2022 at 1:15 AM Chunhui Zhan <chun...@emmuni.com> >>>>>> wrote: >>>>>> >>>>>>> Hi, Pim, >>>>>>> The vpp-dev mail group is down, so I DM you here: >>>>>>> >>>>>>> I am using vpp 21.10 plus your private lcp repo >>>>>>> github.com/pimvanpelt/lcpng.git/ >>>>>>> >>>>>>> I have a loopback interface 10.10.0.200/31 as bvi on two different >>>>>>> boxes, and gre tunnel them together. The loopback interfaces are lcp to >>>>>>> the hosts. >>>>>>> >>>>>>> I could ssh from one host loopback to another box, icmp ping works >>>>>>> too. But the icmp reply is directly coming from the loopback on the vpp, >>>>>>> the icmp packet was not forwarded to the host interface(verified through >>>>>>> tcpdump). >>>>>>> Running frr on the lcp host interface failed, only see the hello >>>>>>> broadcast packets. >>>>>>> >>>>>>> Does the lcp not work on the loopback interface. >>>>>>> >>>>>>> Thanks. >>>>>>> Chunhui >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Pim van Pelt <p...@ipng.nl> >>>>>> PBVP1-RIPE - http://www.ipng.nl/ >>>>>> >>>>> >>> >>> -- >>> Pim van Pelt <p...@ipng.nl> >>> PBVP1-RIPE - http://www.ipng.nl/ >>> >>> >>> >>> -- Pim van Pelt <p...@ipng.nl> PBVP1-RIPE - http://www.ipng.nl/
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#20971): https://lists.fd.io/g/vpp-dev/message/20971 Mute This Topic: https://lists.fd.io/mt/89555183/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-