On 12/6/24 2:55 PM, martin.kal...@canonical.com wrote:
> On Fri, 2024-12-06 at 10:31 +0100, Dumitru Ceara wrote:
>> On 12/6/24 10:29 AM, martin.kal...@canonical.com wrote:
>>> Hi Dumitru,
>>>
>>> On Fri, 2024-12-06 at 10:01 +0100, Dumitru Ceara wrote:
>>>> On 8/23/24 2:58 PM, Martin Kalcok via discuss wrote:
>>>>> Hello OVN enthusiasts o/
>>>>> I noticed that when periodic IPv6 Router Advertisements are
>>>>> enabled
>>>>> on LRP [0], they wont get forwarded to the external networks.
>>>>> I’m
>>>>> just wondering if it’s intentional, or a bug. I have following
>>>>> simple setup:
>>>>
>>>> Hi Martin,
>>>>
>>>> I think this bug report fell through the cracks but MJ brought it
>>>> up
>>>> again during yesterday's IRC meeting.  Thanks for that, MJ!
>>>>
>>>>>
>>>>> alice  |       |        ovn-host
>>>>>        |       |
>>>>>   eth1 -------- eth1 -- SW-EXT --- R1
>>>>>        |       |
>>>>>
>>>>> * alice is external host connected via physical network
>>>>> * ovn-host runs OVN+OVS services
>>>>> * SW-EXT is LS
>>>>> * R1 is LR with interface plugged to SW-EXT
>>>>>
>>>>> Below are (what I think) relevant details:
>>>>>
>>>>> # ovs-vsctl show
>>>>> 7c17d701-cc3d-4804-8094-5f92e090daa8
>>>>>     Bridge br-ext
>>>>>         Port br-ext
>>>>>             Interface br-ext
>>>>>                 type: internal
>>>>>         Port patch-ext-patch-to-br-int
>>>>>             Interface patch-ext-patch-to-br-int
>>>>>                 type: patch
>>>>>                 options: {peer=patch-br-int-to-ext-patch}
>>>>>         Port eth1
>>>>>             Interface eth1
>>>>>     Bridge br-int
>>>>>         fail_mode: secure
>>>>>         datapath_type: system
>>>>>         Port br-int
>>>>>             Interface br-int
>>>>>                 type: internal
>>>>>         Port patch-br-int-to-ext-patch
>>>>>             Interface patch-br-int-to-ext-patch
>>>>>                 type: patch
>>>>>                 options: {peer=patch-ext-patch-to-br-int}
>>>>>     ovs_version: “3.4.0"
>>>>>
>>>>> # ovn-nbctl show
>>>>> switch aaa80b25-8168-4944-bcb9-aede4d3f4c94 (SW-EXT)
>>>>>     port lsp-ext
>>>>>         type: router
>>>>>         router-port: lrp-ext
>>>>>     port ext-patch
>>>>>         type: localnet
>>>>>         addresses: ["unknown"]
>>>>> router d75c995e-4d9b-4bd1-af18-9cd24c248f44 (R1)
>>>>>     port lrp-ext
>>>>>         mac: "00:00:02:00:00:01"
>>>>>         ipv6-lla: "fe80::200:2ff:fe00:1"
>>>>>         networks: ["10.42.234.1/24", "fd12:3456:789a:1::/64”]
>>>>>
>>>>> # ipv6_ra options on “lrp-ext” in NB
>>>>> ipv6_ra_configs     : {address_mode=slaac, max_interval=“4",
>>>>> min_interval=“3", send_periodic="true”}
>>>>>
>>>>> # the same options correctly translated to SB options in
>>>>> “port_binding” table
>>>>> options             : {ipv6_ra_address_mode=slaac,
>>>>> ipv6_ra_max_interval="4", ipv6_ra_min_interval="3”,
>>>>> ipv6_ra_prefixes="fd12:3456:789a:1::/64", ipv6_ra_prf=MEDIUM,
>>>>> ipv6_ra_send_periodic="true”,
>>>>> ipv6_ra_src_addr="fe80::200:2ff:fe00:1",
>>>>> ipv6_ra_src_eth="00:00:02:00:00:01", l3gateway-chassis=movn1,
>>>>> peer=lsp-ext}
>>>>>
>>>>> I can see that the packets are generated by controller:
>>>>>
>>>>> Aug 23 10:00:17 movn1 ovn-controller[19122]:
>>>>> ovs|00161|vconn(ovn_pinctrl0)|DBG|unix:/var/snap/microovn/commo
>>>>> n/ru
>>>>> n/switch//br-int.mgmt: sent (Success): OFPT_PACKET_OUT (OF1.5)
>>>>> (xid=0x3de): in_port=CONTROLLER actions=set_field:0x2-
>>>>>> metadata,set_field:0x1->reg14,set_field:0x10/0x10-
>>>>>> reg10,resubmit(CONTROLLER,8) data_len=110 Aug 23 10:00:17
>>>>>> movn1
>>>>> ovn-controller[19122]:
>>>>> icmp6,vlan_tci=0x0000,dl_src=00:00:02:00:00:01,dl_dst=33:33:00:
>>>>> 00:0
>>>>> 0:01,ipv6_src=fe80::200:2ff:fe00:1,ipv6_dst=ff02::1,ipv6_label=
>>>>> 0x00
>>>>> 000,nw_tos=0,nw_ecn=0,nw_ttl=255,nw_frag=no,icmp_type=134,icmp_
>>>>> code
>>>>> =0 icmp6_csum:893b
>>>>>
>>>>> However listening on “eth1” either on “alice” or on “ovn-host”,
>>>>> the
>>>>> RAs never show up. Note that if I plug another LSP into SW-EXT,
>>>>> those RAs show up on an interface bound to that LSP.
>>>>> I did a little bit of digging and found that these RA packets
>>>>> are
>>>>> dropped by a rule that’s supposed to prevent leaking of “local
>>>>> only” traffic through localnet ports [1].
>>>>
>>>> I think this was intentional (CC Ihar) to cover the case when a
>>>> distributed OVN router (without any gateway ports) has periodic
>>>> RA
>>>> enabled and is connected to the fabric via a localnet switch.
>>>
>>> Thanks for providing more context. I originally missed the
>>> explanation
>>> in the commit that introduced this change [2].
>>>
>>>>
>>>>> The reason why I think this is unintentional is that solicited
>>>>> RAs
>>>>> in reply to NS requests from “alice” are answered to the
>>>>> external
>>>>> network without any issues.
>>>>>
>>>>
>>>> This part is indeed problematic.  Ihar, what do you think, should
>>>> we
>>>> block solicited RAs too?  Can we make it so only one chassis
>>>> sends
>>>> them out?
>>>>
>>>>> What would be the best approach to fixing this?
>>>>>
>>>>
>>>> Martin, MJ, if I understand correctly, the router port where
>>>> you're
>>>> trying to enable periodic RAs is a gateway port (so it will be
>>>> bound
>>>> to
>>>> exactly on chassis).  Maybe a way forward is to change the
>>>> behavior
>>>> introduced in [1] and only enforce it if the router is not a
>>>> gateway
>>>> router and if the router port originating the RA is not a gateway
>>>> port.
>>>>
>>>> Would that work?
>>>
>>> Yes, this sounds good to me. Our specific use-case is indeed to
>>> make
>>> this work primarily for GW routers. However, would it be possible
>>> to
>>> also exempt Distributed Gateway Ports? Those also reside only on
>>> one
>>> chassis at a time. 
>>>
>>
>> Yes, that's what I meant when I said "is not a gateway port" (I'm
>> never
>> 100% sure about the correct terminology even after all this time :)
>> ).
> 
> no worries :D I just wanted to ensure that we are on the same page.
> 
>>
>> Would you happen to have time to propose a patch that does that?
>>
> 
> Yes, MJ has her eyes on this fix and now with your clarification
> there's a clear way forward. As she mentioned, this is one of the
> blockers for BGP unnumbered integration, so we aim to fix this before
> code freeze.
> 

FWIW, this is a bug fix in my opinion so it can go in at any time.

Regards,
Dumitru

_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to