Skip to content
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

[ebtables] Add multicast drop rule to ebtables #18064

Merged
merged 1 commit into from
Feb 27, 2024

Conversation

Ndancejic
Copy link
Contributor

@Ndancejic Ndancejic commented Feb 7, 2024

Adding rule to ebtables to drop multicast packets in kernel. This was done to address a bug where NS packets were flooding ports with duplicate packets.

Why I did it

ADO: 26395587
Fixes bug where NS packets were flooding ports with duplicate packets

Work item tracking
  • Microsoft ADO (number only): 26395587

How I did it

Added ebtables rule to drop multicast packets

How to verify it

  1. set up testbed with ebtables rule: -A FORWARD -d Multicast -j DROP
  2. tcpdump from eth4
  3. send NS packet from eth8

before this fix, we saw 2 packets received on the tcpdump port. After this fix, we will only see one coming from the basic forwarding

Which release branch to backport (provide reason below if selected)

  • 201811
  • 201911
  • 202006
  • 202012
  • 202106
  • 202111
  • 202205
  • 202211
  • 202305
  • 202311

Tested branch (Please provide the tested image version)

  • 202311

Description for the changelog

Adding ebtables rule to drop multicast packets.

A picture of a cute animal (not mandatory but encouraged)

IMG_3777

Adding rule to ebtables to drop multicast packets in kernel. This was
done to address a bug where NS packets were flooding ports with
duplicate packets.

Signed-off-by: Nikola Dancejic <[email protected]>
@prsunny
Copy link
Contributor

prsunny commented Feb 27, 2024

@Ndancejic , please provide link to sonic-mgmt test PR when ready

@yxieca yxieca merged commit 1bf2f72 into sonic-net:master Feb 27, 2024
19 checks passed
@yxieca
Copy link
Contributor

yxieca commented Feb 27, 2024

@Ndancejic what test has been done with this change? Other than the packet forwarding one you mentioned? Did it impact any other control plane feature?

mssonicbld pushed a commit to mssonicbld/sonic-buildimage that referenced this pull request Feb 27, 2024
Adding rule to ebtables to drop multicast packets in kernel. This was
done to address a bug where NS packets were flooding ports with
duplicate packets.

Signed-off-by: Nikola Dancejic <[email protected]>
@mssonicbld
Copy link
Collaborator

Cherry-pick PR to 202311: #18192

mssonicbld pushed a commit to mssonicbld/sonic-buildimage that referenced this pull request Feb 27, 2024
Adding rule to ebtables to drop multicast packets in kernel. This was
done to address a bug where NS packets were flooding ports with
duplicate packets.

Signed-off-by: Nikola Dancejic <[email protected]>
@Ndancejic
Copy link
Contributor Author

Ndancejic commented Feb 27, 2024

@Ndancejic , please provide link to sonic-mgmt test PR when ready

I checked again at the test coverage and it looks like test_proxy_arp is already covering ipv6 proxy case. And it's currently failing in nightly tests. After this + swss change we should see this case pass example: TfsGit_Schedule_PR_None_BUILD_486526_JOB_3800.t0.202305.NightlyTest_by_Elastictest

I should also mention, this test case already checks that the ToR Mac NS packet is the only one we receive. It's currently failing because we are receiving the 2 packets with different source Macs.

@Ndancejic
Copy link
Contributor Author

@Ndancejic what test has been done with this change? Other than the packet forwarding one you mentioned? Did it impact any other control plane feature?

Mostly ad-hoc testing, I ensured that ndp table entries were being correctly filled in, and that dst interface on ptf still received ns packets from the ToR Mac. I didn't notice any impact on control plane.

@Ndancejic
Copy link
Contributor Author

mssonicbld pushed a commit to mssonicbld/sonic-buildimage that referenced this pull request Feb 28, 2024
Adding rule to ebtables to drop multicast packets in kernel. This was
done to address a bug where NS packets were flooding ports with
duplicate packets.

Signed-off-by: Nikola Dancejic <[email protected]>
@mssonicbld
Copy link
Collaborator

Cherry-pick PR to 202305: #18193

mssonicbld pushed a commit that referenced this pull request Feb 28, 2024
Adding rule to ebtables to drop multicast packets in kernel. This was
done to address a bug where NS packets were flooding ports with
duplicate packets.

Signed-off-by: Nikola Dancejic <[email protected]>
mssonicbld pushed a commit that referenced this pull request Feb 28, 2024
Adding rule to ebtables to drop multicast packets in kernel. This was
done to address a bug where NS packets were flooding ports with
duplicate packets.

Signed-off-by: Nikola Dancejic <[email protected]>
sonic-otn pushed a commit to Weitang-Zheng/sonic-buildimage that referenced this pull request Mar 11, 2024
Adding rule to ebtables to drop multicast packets in kernel. This was
done to address a bug where NS packets were flooding ports with
duplicate packets.

Signed-off-by: Nikola Dancejic <[email protected]>
saksarav-nokia pushed a commit to saksarav-nokia/sonic-buildimage that referenced this pull request Mar 12, 2024
Adding rule to ebtables to drop multicast packets in kernel. This was
done to address a bug where NS packets were flooding ports with
duplicate packets.

Signed-off-by: Nikola Dancejic <[email protected]>
wangxin pushed a commit to sonic-net/sonic-mgmt that referenced this pull request Mar 13, 2024
What is the motivation for this PR?
DHCP broadcast flooding was resolved by this PR: sonic-net/sonic-buildimage#18064. Hence interfaces under Vlan would not received broadcast flooding packets. Remove this verification.

How did you do it?
Removed verification of receiving of DHCP broadcast flooding packets in other_client_ports.

How did you verify/test it?
Run tests.
mssonicbld pushed a commit to mssonicbld/sonic-mgmt that referenced this pull request Mar 13, 2024
…et#11935)

What is the motivation for this PR?
DHCP broadcast flooding was resolved by this PR: sonic-net/sonic-buildimage#18064. Hence interfaces under Vlan would not received broadcast flooding packets. Remove this verification.

How did you do it?
Removed verification of receiving of DHCP broadcast flooding packets in other_client_ports.

How did you verify/test it?
Run tests.
mssonicbld pushed a commit to mssonicbld/sonic-mgmt that referenced this pull request Mar 13, 2024
…et#11935)

What is the motivation for this PR?
DHCP broadcast flooding was resolved by this PR: sonic-net/sonic-buildimage#18064. Hence interfaces under Vlan would not received broadcast flooding packets. Remove this verification.

How did you do it?
Removed verification of receiving of DHCP broadcast flooding packets in other_client_ports.

How did you verify/test it?
Run tests.
mssonicbld pushed a commit to sonic-net/sonic-mgmt that referenced this pull request Mar 13, 2024
What is the motivation for this PR?
DHCP broadcast flooding was resolved by this PR: sonic-net/sonic-buildimage#18064. Hence interfaces under Vlan would not received broadcast flooding packets. Remove this verification.

How did you do it?
Removed verification of receiving of DHCP broadcast flooding packets in other_client_ports.

How did you verify/test it?
Run tests.
mssonicbld pushed a commit to sonic-net/sonic-mgmt that referenced this pull request Mar 13, 2024
What is the motivation for this PR?
DHCP broadcast flooding was resolved by this PR: sonic-net/sonic-buildimage#18064. Hence interfaces under Vlan would not received broadcast flooding packets. Remove this verification.

How did you do it?
Removed verification of receiving of DHCP broadcast flooding packets in other_client_ports.

How did you verify/test it?
Run tests.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants