Skip to content

[dpd, mcast] Tighten multicast group and source validation - #364

Open
zeeshanlakhani wants to merge 1 commit into
zl/mcast-p4-countersfrom
zl/mcast-validation
Open

[dpd, mcast] Tighten multicast group and source validation#364
zeeshanlakhani wants to merge 1 commit into
zl/mcast-p4-countersfrom
zl/mcast-validation

Conversation

@zeeshanlakhani

@zeeshanlakhani zeeshanlakhani commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

This work constrains group and SSM source validation based on a variety of specs, linked throughout the PR. Previously, DPD was accepting groups and (S, G) sources that no packet could actually exercise, including ones that can never leave a host/link or, worse, sources a switch can't forward.

Here's the list (the first classifier one was the most obvious):

address verdict spec
ff3x::/32 in ff30::/12 only is SSM RFC 4607 §1; RFC 3306 is ASM
ff3x:: group ID > 0x40000000 accept RFC 4607 §4.3
v6 scopes other than 4/5/8/e reject RFC 7346; no Ethernet realm
class E (240.0.0.0/4) source reject RFC 6890 "Source: False"
0.0.0.0/8 source reject RFC 6890 "Forwardable: False"
100.64.0.0/10 source accept RFC 6598, operator-internal
source/group family mismatch reject (local choice)
232.0.0.0 (SSM null) reject RFC 4607 §4.3
v4-mapped/compat v6 source reject RFC 4291 §2.5.5, aliases IPv4

@zeeshanlakhani zeeshanlakhani changed the title [dpd, mcast] tighten multicast group and source validation [dpd, mcast] Tighten multicast group and source validation Sep 3, 2026
@zeeshanlakhani zeeshanlakhani self-assigned this Sep 4, 2026
@zeeshanlakhani
zeeshanlakhani requested review from FelixMcFelix and taspelund and removed request for FelixMcFelix and taspelund September 6, 2026 04:56
This work constrains group and SSM source validation based on a variety
of specs, linked throughout the PR. Previously, DPD was accepting groups and
(S, G) sources that no packet could actually exercise, including ones
that can never leave a host/link or, worse, sources a switch can't forward.

Here's the list (the first classifier one was the most obvious):

| address                        | verdict | spec                          |
|--------------------------------|---------|-------------------------------|
| ff3x::/32 in ff30::/12 only    | is SSM  | RFC 4607 §1; RFC 3306 is ASM  |
| ff3x:: group ID > 0x40000000   | accept  | RFC 4607 §4.3                 |
| v6 scopes other than 4/5/8/e   | reject  | RFC 7346; no Ethernet realm   |
| class E (240.0.0.0/4) source   | reject  | RFC 6890 "Source: False"      |
| 0.0.0.0/8 source               | reject  | RFC 6890 "Forwardable: False" |
| 100.64.0.0/10 source           | accept  | RFC 6598, operator-internal   |
| source/group family mismatch   | reject  | (local choice)                |
| 232.0.0.0 (SSM null)           | reject  | RFC 4607 §4.3                 |
| v4-mapped/compat v6 source     | reject  | RFC 4291 §2.5.5, aliases IPv4 |
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant