-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ipv6 route-map not marking correct routes as a match #15274
Comments
Hello, I met this issue and Mruprich is helping me now. It seems that "consolidated result of func_apply" [1] does not work correctly in this environment. [1] https://github.com/FRRouting/frr/blob/frr-8.5.3/lib/routemap.c#L1691-L1766 |
Can you turn off optimization for the route-map? and see if the problem goes away? |
Hi Donald, I think we tried that at some point but the result was even more strange (I do not have the log for that at the moment but I can get it):
The 1111:1111:1111:1a3f::e003 address was used instead which is the Ipv6 address of the actual outgoing interface. The route-map looks very similar without optimization:
|
Hello Donald, Thank you for your comment. As Michal said, they tried with "no route-map set_src_lo optimization". The configuration with "no route-map set_src_lo optimization".
The configuration without "no route-map set_src_lo optimization" .
There is a requirement we would like to do.
Currently our route-map configuration did not work. |
Hello I have an update. When the prefix-list is configured as "/128", It worked Configured the prefix "/128" as below(*) and tested.
The results were what I expected.
As a current conclusion, If "prefix-list-for-datasync" was configured as IP range (1111:111:1111:1001::/64 le 128), It was not working. It seems to be a bug, How do you think of this? There are current configurations.
|
Just a note, I've been able to reproduce this with FRR-9.1 as well. |
One more note, I can't reproduce this for IPv4, only for IPv6 prefixes... |
Seems to me that the problem is actually with the set src clause. I've been playing around with the setup a bit and the match sequences seem alright in the debug log but for instance the config below, I've been trying to switch around the sequence numbers of the route-map statements and at one point I was getting the source 'fd00:268:70fd:1001::3:e003' for every prefix and I was not able to get the 'fd00:268:70fd:1000::3:e003' prefix there:
I tried to restart FRR and the set src switched to 'fd00:268:70fd:1000::3:e003' again for every prefix :D
Current reproducible config below:
The log for the config above regarding route-maps seems ok to me:
This is why I think that the main issue might be with the applying of the set src rule. |
Thank you Michal for your support.
I understood that
I also understood the situation. Does anyone have an idea for the solution of this issue or a workaround ? |
Hello As for this, Are there any ideas for the solution? |
Just adding another piece of information. Seems like maybe zebra is to blame here? Setting the src wrong in the routing table?
On the other hand, ipv4 table looks fine (taking this from the last example here):
Any pointers as to where could the problem be? Did anyone have any time to take a look at this? |
I tried to take a look at the netlink messages that are being sent from zebra to the kernel and zebra sets the wrong source there:
The RTA_PREFSRC passed to the kernel is the same in both cases, I am just not able to find out, whether bgp is passing a wrong info to zebra or zebra is passing wrong info to the kernel. From the output somewhere above, seems to me like route-map is actually populated correctly so the culprit needs to be somewhere betweeb bgp <-> zebra or zebra <-> kernel. I think I have already tried every possible debug option that I could think of, if you have any other debug options that might help, please let me know. Currently I have these: |
Hi, Thanks and Regards, |
Hi, |
Hello @donaldsharp, I am sorry for bothering you. Would you please take a look at this issue and give me your opinion? |
I tested it again on the recently released 10.0 version so I marked the 'Did you test it on the latest FRRouting/frr master branch?' as true. @donaldsharp I would like to ask again if there is any pointer you could give us, any debug option we haven't used yet, any config option that might be helpful, anything? |
Hello @donaldsharp I have an update for this. If it is trying to use "interface name" instead of "ipv6 address prefix-list", It is working as expected (*).
It seems to be an issue with the "ipv6 address prefix-list" parameter. What do you think of it? |
Hi, could anyone please give us any pointers as to what is missing in the bug? Is there some debug info that we did not provide? Any configuration that is crucial to the debugging process? |
Describe the bug
I am using an ipv6 prefix-list in a route-map and the route map is then using set source on outgoing packets. I believe that FRR is not filtering the outgoing ipv6 correctly. Current configuration:
So as you can see, I have two ipv6 prefix lists, prefix-list-for-datasync for prefix 1111:1111:1111:1001::/64 le 128 and prefix-list-for-internal for prefix 1111:1111:1111:1000::/64 le 128 and sort-of catch-all ::/0 le 128. The route-map should set source address based on these prefix lists. Anything from 1111:1111:1111:1001::/64 le 128 should have a source set as 1111:1111:1111:1001::3:e003, everything else as 1111:1111:1111:1000::3:e003. Route-map output looks good to me:
But, when I try to ping 1111:1111:1111:1001::3:e001, the address from sequence 5 is used instead of sequence 1:
The log says that the first sequence in not a match:
I would really appreciate any insight with this issue. I think the configuration is OK but I might be mistaken in the route-map/prefix-lists usage.
I did not test this on the master branch, unfortunately I can't do that at the moment. Using FRR-8.5.3 now.
Expected behavior
I would expect that the first sequence in the route-map would get a hit at this point.
Versions
EDIT: I had to edit the IP addresses a bit so that they are a bit more anonymous. Sorry.
The text was updated successfully, but these errors were encountered: