sudo -u postgres psql -d maasdb -c "
SELECT count(*)
from maasserver_staticipaddress
left join maasserver_interface_ip_addresses on maasserver_staticipaddress.id = maasserver_interface_ip_addresses.staticipaddress_id
left join maasserver_interface on maasserver_interface.id = maasserver_interface_ip_addresses.interface_id
where maasserver_staticipaddress.ip is NULL and maasserver_interface.type = 'unknown' and maasserver_staticipaddress.alloc_type = 6;
"
from maasserver_staticipaddress
left join maasserver_interface_ip_addresses on maasserver_staticipaddress.id = maasserver_interface_ip_addresses.staticipaddress_id
left join maasserver_interface on maasserver_interface.id = maasserver_interface_ip_addresses.interface_id
where maasserver_staticipaddress.ip is NULL and maasserver_interface.type = ‘unknown’ and maasserver_staticipaddress.alloc_type = 6;
"
count
So i got a subnet allocated(172.21.68.64/27) and a maas owned dynamic range(172.21.68.71 - 172.21.68.94) which would yield 24 IPs and the Used IP addresses is only showing 11. One of the IP is pingable(172.21.68.76) and the rest are not. SO i’m wondering why i get this “No more IPs available in subnet” error.
Do you mean clean the neighbors/discovered through the UI? I’m not able to find a button in the UI to do that.
Do you mean clean the ARP table in the Rack server using arp -d? I only see two entries there, the eth1 is the dhcp facing interface.
root@lxmasracknpes03:~# arp -a |grep eth1
? (172.21.68.79) at c4:cb:e1:ab:17:31 [ether] on eth1 lxmasracknpes04-pxe.example.com (172.21.68.68) at 00:50:56:a8:f7:62 [ether] on eth1
? (172.21.68.69) at c4:cb:e1:ab:17:30 [ether] on eth1
root@lxmasracknpes03:~#
btw, i’m only having IP exhaustion at the “Deploy” action, inlisting/commissioning shows no issue.
We notice that if we reserve small chunk of IPs instead of setting the whole range, we don’t face the out of IP issue.
Like for subnet 172.21.68.64/27, instead of having to set an ip dynamic range of 172.21.68.65 - 172.21.68.94 we set it like this and it works. Is this the good practice going forward?