odhcpd icon indicating copy to clipboard operation
odhcpd copied to clipboard

Support a list of clients (IPv6 addresses) to advertise to

Open ihipop opened this issue 1 year ago • 11 comments

By default, the RA message will be sent using multicast so that every node on the link can use them

there is some security condition that I only want some of the devices to receive the RA message, and only these devices can have IPv6 address

The radvd and other production routers support this feature

can we have this feature too?

ihipop avatar Jun 28 '24 03:06 ihipop

Firewall.

Block solicitations from clients (add client ips to it)

config rule
	option src 'lan'
	option name 'block_recv'
	option family 'ipv6'
	list proto 'icmp'
	list dest_ip 'ff02::1'
	list dest_ip 'ff02::2'
	option target 'DROP'
	list icmp_type 'multicast-router-solicitation'
	list icmp_type 'router-solicitation'

Block RA from odhcpd to multicast addr

config rule
	option dest 'lan'
	option name 'block_send'
	option family 'ipv6'
	list proto 'icmp'
	list src_ip 'fe80::xxxx:xxff:fexx:xxxx' # routers fe80 ipv6 link addr.
	list dest_ip 'ff02::1'
	option target 'DROP'
	list icmp_type 'multicast-router-advertisement'
	list icmp_type 'router-advertisement'

odhcpd still unicast replies to router solicitations from non-blocked addresses.

systemcrash avatar Oct 23 '25 00:10 systemcrash

but the RA message still broadcast through multicast? I will try if this works,thank for the tips

ihipop avatar Oct 23 '25 01:10 ihipop

It basically works. The issue is that it blocks the transmission of Router Advertisements (RA), preventing devices from immediately detecting that the network can provide IPv6 services. If immediate triggering is needed, the simplest operation is to disconnect and reconnect to the network. I think it would be better if there were a unicast option, similar to RADVD & juniper

ihipop avatar Oct 31 '25 04:10 ihipop

You have just observed the effect of unicast by virtue of blocking multicast. When devices connect to the (IPv6) network, they multicast an RA solicit.

systemcrash avatar Oct 31 '25 13:10 systemcrash

You have just observed the effect of unicast by virtue of blocking multicast. When devices connect to the (IPv6) network, they multicast an RA solicit.

yes it is,and without RA multicast send by the router periodicity,the default router / PIO will expire after their liefetime end

with RA send by the router periodicity with unicast,all allowed clients gets the default router / PIO renewed properly,which is the purpose of this issue

ihipop avatar Oct 31 '25 13:10 ihipop

I can see the value of unicast replies (RFC7772, battery-saving, the kind of thing that Cisco and Juniper support), and we should probably add support for that at some point (and I guess an ideal implementation would do things like consider whether a multicast RA is imminent, etc).

I am not convinced by the security argument though... So I'm not convinced ATM that we should add further complications in the form of client lists...

Alphix avatar Nov 04 '25 15:11 Alphix

I can see the value of unicast replies (RFC7772, battery-saving, the kind of thing that Cisco and Juniper support), and we should probably add support for that at some point (and I guess an ideal implementation would do things like consider whether a multicast RA is imminent, etc).

I am not convinced by the security argument though... So I'm not convinced ATM that we should add further complications in the form of client lists...

@Alphix

The security concerns in a home network are not as complex as those in enterprise environments. Sometimes, the goal is simply to prevent certain clients from obtaining PIO Methods like packet sniffing or monitoring are not under consideration here. The focus is solely on intercepting unintended configuration behaviors that occur when unauthorized clients receive RA multicast messages. Currently, odhcpd already supports unicast replies to client Router Solicitation messages—this is existing behavior. The approach mentioned by @systemcrash essentially works by filtering out multicast RAs while preserving unicast responses.

Additionally, this is merely a suggestion and not a demand that "since radvd has it, we should too." It is simply an exploration of possibilities based on certain real-world use cases.

Thank you for your time and reply.

ihipop avatar Nov 05 '25 01:11 ihipop

The security concerns in a home network are not as complex as those in enterprise environments. Sometimes, the goal is simply to prevent certain clients from obtaining PIO Methods like packet sniffing or monitoring are not under consideration here. The focus is solely on intercepting unintended configuration behaviors that occur when unauthorized clients receive RA multicast messages.

Yeah, I was merely reacting to your initial message which mentioned "security".

Currently, odhcpd already supports unicast replies to client Router Solicitation messages—this is existing behavior.

Ah, good, I didn't even check.

The approach mentioned by @systemcrash essentially works by filtering out multicast RAs while preserving unicast responses.

I might be overlooking something, but wouldn't it be better to segregate those clients onto a separate network, like how people often create separate networks (using e.g. VLANs and/or separate ESSIDs) for e.g. IoT devices?

For example, I have separate networks at home with IPv4-only, IPv6-only and IPv4/IPv6 (for testing).

Alphix avatar Nov 05 '25 06:11 Alphix

I might be overlooking something, but wouldn't it be better to segregate those clients onto a separate network, like how people often create separate networks (using e.g. VLANs and/or separate ESSIDs) for e.g. IoT devices?

For example, I have separate networks at home with IPv4-only, IPv6-only and IPv4/IPv6 (for testing).

Yeah, If the user's AP supports binding SSIDs to isolated VLANs, that is naturally the most accurate and "secure" method.

However, it also requires more investment in AP equipment. Ordinary home networks might just have a regular AP that doesn't support binding VLANs to SSIDs.

Additionally, some broadcast data from entertainment devices like TV screen mirroring(DLNA,SSDP) cannot cross broadcast networks.

Sometimes, performing these small operations within a single broadcast domain is actually a balance between cost and convenience.

ihipop avatar Nov 05 '25 07:11 ihipop

I might be overlooking something, but wouldn't it be better to segregate those clients onto a separate network, like how people often create separate networks (using e.g. VLANs and/or separate ESSIDs) for e.g. IoT devices? For example, I have separate networks at home with IPv4-only, IPv6-only and IPv4/IPv6 (for testing).

Yeah, If the user's AP supports binding SSIDs to isolated VLANs, that is naturally the most accurate and "secure" method.

However, it also requires more investment in AP equipment. Ordinary home networks might just have a regular AP that doesn't support binding VLANs to SSIDs.

Not sure I follow? If a user wants to segregate wireless clients to their own network, a separate SSID is enough. If a user wants to segregate wireless and wired clients, a separate SSID + a VLAN (e.g. eth0.2) and/or specific ethernet port (e.g. eth2) can be bridged. That's all standard features in OpenWrt...

Or you mean if OpenWrt is used on the router and there's a separate AP device which isn't OpenWrt based?

Additionally, some broadcast data from entertainment devices like TV screen mirroring(DLNA,SSDP) cannot cross broadcast networks.

Yeah, that requires using something like mdns-repeater...

Alphix avatar Nov 05 '25 07:11 Alphix

I know That's all standard features OpenWrt but to isolate the network broadcast ( IPv4-only, or both) with different wireless clients:

In software way: AP(s) of separated SSID must have a separate VLAN subnet ,not common with cheap dumb APs ( have to buy advnaced AP(s) ,not cheap)

In hardrdware way: (cheap dumb) AP(s) of separateed SSID must physically connect to openwrt port or to a VLAN switch(not cheap), more AP(s) needs to buy to fulfil the coverage (not cheap)

with the ability of send RA via unicast to a certain list of clients, this (some clients get IPv6, some are not) could be done with any cheap dumb APs

ihipop avatar Nov 05 '25 07:11 ihipop