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 PR 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, group IDs outside of what hosts may try to allocate, or, worst, 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
232.0.0.0/24 reject RFC 4607 §4.3 (reserved)
ff3x:: group ID < 0x80000000 reject RFC 4607 §1, RFC 3307 §4.3.2
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"
v4-mapped/compat/NAT64 source reject aliases IPv4 / no mcast in it
100.64.0.0/10 source allow RFC 6598, operator-internal
source/group family mismatch reject (local choice)

This PR 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, group IDs outside of what hosts may
try to allocate, or, worst, 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  |
| 232.0.0.0/24                   | reject  | RFC 4607 §4.3 (reserved)      |
| ff3x:: group ID < 0x80000000   | reject  | RFC 4607 §1, RFC 3307 §4.3.2  |
| 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" |
| v4-mapped/compat/NAT64 source  | reject  | aliases IPv4 / no mcast in it |
| 100.64.0.0/10 source           | allow   | RFC 6598, operator-internal   |
| source/group family mismatch   | reject  | (local choice)                |
@zeeshanlakhani zeeshanlakhani changed the title [dpd, mcast] tighten multicast group and source validation [dpd, mcast] Tighten multicast group and source validation Sep 3, 2026
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