Page 1 of 1
DHCP IPv6 Dynamic Binding (PPP) - Make Static
Posted: Wed Apr 10, 2024 8:11 am
by washcroft
Hello,
We're running IPv6 over PPP, but we'd like to make the prefixes dynamically assigned to PPP clients/sessions static so that:
(a) they get the same prefix every time they connect, and
(b) a different PPP client/session isn't dynamically assigned the same prefix as one who is temporarily not connected
The Make Static button on the DHCPv6 binding should do this, but it complains about it being a dynamic server. How else can a dynamically assigned binding be reserved/made static?
Thanks!
ROS v7.11
Screenshot 2024-04-10 060642.png
Re: DHCP IPv6 Dynamic Binding (PPP) - Make Static
Posted: Wed Apr 10, 2024 11:58 am
by mkx
Is the prefix pool ... which DHCPv6 uses to fetch prefixes for clients ... a dynamic (i.e. fetched from upstream DHCPv6 server) or a static one?
Re: DHCP IPv6 Dynamic Binding (PPP) - Make Static
Posted: Wed Apr 10, 2024 12:04 pm
by washcroft
No, the pool itself is static.
Re: DHCP IPv6 Dynamic Binding (PPP) - Make Static
Posted: Wed Apr 10, 2024 12:06 pm
by mkx
Show config ... the /ipv6/dhcp-server/export part at least.
Re: DHCP IPv6 Dynamic Binding (PPP) - Make Static
Posted: Wed Apr 10, 2024 12:33 pm
by washcroft
Thanks for helping.
/ipv6/dhcp-server> export
# 2024-04-10 10:24:21 by RouterOS 7.11
# software id = 19FD-8JXB
#
# model = CCR2004-16G-2S+
# serial number = xxxx
/ipv6/dhcp-server> print
Flags: D - DYNAMIC
Columns: NAME, INTERFACE, ADDRESS-POOL, PREFERENCE, LEASE-TIME
# NAME INTERFACE ADDRESS-POOL PREFERENCE LEASE-TIME
0 D <pppoe-sn_dsnw2845b478> <pppoe-sn_dsnw2845b478> static-only 255 1d
1 D <pppoe-sn_dsnw2845b110> <pppoe-sn_dsnw2845b110> IPV6 PD POOL 255 3d
/ipv6/pool> export
# 2024-04-10 10:24:47 by RouterOS 7.11
# software id = 19FD-8JXB
#
# model = CCR2004-16G-2S+
# serial number = xxxx
/ipv6 pool
add name="IPV6 PPPOE POOL" prefix=2a05:b100::/54 prefix-length=64
add name="IPV6 PD POOL" prefix=2a05:b100:800::/47 prefix-length=56
/ipv6/pool> print
Columns: NAME, PREFIX, PREFIX-LENGTH
# NAME PREFIX PREFIX-LENGTH
0 IPV6 PPPOE POOL 2a05:b100::/54 64
1 IPV6 PD POOL 2a05:b100:800::/47 56
/ipv6/address> export
# 2024-04-10 10:26:31 by RouterOS 7.11
# software id = 19FD-8JXB
#
# model = CCR2004-16G-2S+
# serial number = xxx
/ipv6 address
add address=2a04:1701:7::2 interface=ether1
/ipv6/address> print
Flags: D - DYNAMIC; G - GLOBAL, L - LINK-LOCAL
Columns: ADDRESS, INTERFACE, ADVERTISE
# ADDRESS INTERFACE ADVERTISE
0 DL fe80::f413:6638:9600:3d0b/64 WG-HALE-LAB2-OZY no
1 DL fe80::2c88:5dff:fe28:eec5/64 Loopback Bridge no
2 DL fe80::4aa9:8aff:fe43:6150/64 OLT MGMT Bridge no
3 DL fe80::4aa9:8aff:fe43:615f/64 sfp-sfpplus2 no
4 DL fe80::4aa9:8aff:fe43:615f/64 ONT MGMT VLAN 101 no
5 DL fe80::4aa9:8aff:fe43:615f/64 ONT INTERNET VLAN 201 no
6 DL fe80::4aa9:8aff:fe43:615f/64 GUEST WIFI VLAN 202 no
7 DL fe80::4aa9:8aff:fe43:615f/64 TV WIFI VLAN 203 no
8 DL fe80::4aa9:8aff:fe43:615f/64 SW MGMT VLAN 701 no
9 DL fe80::4aa9:8aff:fe43:614f/64 ether1 no
10 DL fe80::4aa9:8aff:fe43:615d/64 ether15 no
11 G 2a04:1701:7::2/64 ether1 yes
12 DL fe80::f0:60/64 <pppoe-sn_dsnw2845b478> no
13 DG 2a05:b100::f0:60/64 <pppoe-sn_dsnw2845b478> no
14 DL fe80::f0:64/64 <pppoe-sn_dsnw2845b110> no
15 DG 2a05:b100:0:2::f0:64/64 <pppoe-sn_dsnw2845b110> no
16 DL fe80::892:10ff:fe1f:bc08/64 bridge1 no
Re: DHCP IPv6 Dynamic Binding (PPP) - Make Static
Posted: Wed Apr 10, 2024 2:29 pm
by mkx
So far I didn't stumble upon setup where DHCPv6 server was dynamic, so I'm a bit lost here. In your case, how does DHCPv6 server pppoe-sn_dsnw2845b110 get created?
Since pools are all static, you should be able to create static DHCPv6 serve as well ... and in that case, you should be able to make leases static as well.
Re: DHCP IPv6 Dynamic Binding (PPP) - Make Static
Posted: Tue Apr 16, 2024 9:58 am
by jhbarrantes
Can you delegate the prefixes just by DHCPv6 Server? I mean, once the PPP session is stablished with your client you run the DHCPv6 Server on top of this interface, and client will request the PD using DHCPv6 Client. In the server side, you and do then static bindings to the prefixes delegated. I don't know if that is 100% what you need, but definitely can be done. Another option will be maybe to create a PPPoE server binding that associate your client with a given prefix from this pool. Not sure if this can be done, didn't try.
Find below an example. My provider delivers me IPv4 over a PPP conenction called "internet", and then I request the prefix from this interface, using DHCPv6. Then, with the dynamic pool created, I can sub-delegate part of this prefix with my own DHCPv6 server for remote routers (provide IPv6 to some LTE devices without IPv6 deployed in the middle of nowhere). This final binding you see as dynamic in the top level tab can be made static by just pressing "Make Static" option.
ipv6-pd.png
Regards!
Re: DHCP IPv6 Dynamic Binding (PPP) - Make Static
Posted: Tue Apr 16, 2024 10:57 am
by washcroft
So far I didn't stumble upon setup where DHCPv6 server was dynamic, so I'm a bit lost here. In your case, how does DHCPv6 server pppoe-sn_dsnw2845b110 get created?
Since pools are all static, you should be able to create static DHCPv6 serve as well ... and in that case, you should be able to make leases static as well.
The DHCPv6 server is created dynamically by the PPP server, upon a PPP client/session being connected, they are given their own DHCPv6 server with the relevant V6 pools as configured in the PPP server profile. The DHCPv6 server is automatically removed when the PPP session ends.
Re: DHCP IPv6 Dynamic Binding (PPP) - Make Static
Posted: Tue Apr 16, 2024 10:59 am
by washcroft
Can you delegate the prefixes just by DHCPv6 Server? I mean, once the PPP session is stablished with your client you run the DHCPv6 Server on top of this interface, and client will request the PD using DHCPv6 Client. In the server side, you and do then static bindings to the prefixes delegated. I don't know if that is 100% what you need, but definitely can be done. Another option will be maybe to create a PPPoE server binding that associate your client with a given prefix from this pool. Not sure if this can be done, didn't try.
As above, that's what happens dynamically for each PPP session - but the DHCPv6 servers cannot be created as static / in advance because the PPP "interfaces" don't exist until the PPP session is established (and the sessions come and go).
Re: DHCP IPv6 Dynamic Binding (PPP) - Make Static
Posted: Wed Apr 17, 2024 11:27 am
by jhbarrantes
Ahh! I get your point, I have been able to replicate your issue. As the DHCP Server is created dinamicaly out of the PPPoE session, neither DHCPv6 server or DHCPv6 binding to pool can be converted into static. However, you can still convert the PPPoE session to a static one (associated to the user) and see if that gets the job done. I have done a quick test and it seems it does, but I only tested with one router and restarting the server server/client gets the same prefix delegated (but oviously there are no others claiming for that).
For converting the PPPoE session to static you just need to go to first tab "Interface" at PPP locate your user, open the dynamic seesion and hit copy, then save it. Next time the same user will connect, it will pick up this one. It is the only way I can imagine this can be done (appart from manually splitting the IPv6 pool per user, which is not really handy).
If you got an infra with more users, can you test that? I guess somehow ppp session, dhcp-server and ipv6 server binging should be interconnected, and maybe just fixing the first one the rest always stay giving the same prefixes.
I later I have some time, I will put a second router and see what happens when playing with two or more sessions.
Kind regards!