IP addresses management¶
Using the view¶
The addresses view provides access to all the addresses registered in the DB, as well as methods to create and remove them:
eth0 = ndb.interfaces['eth0']
# create an address
(ndb
.addresses
.create(address='10.0.0.1', prefixlen=24, index=eth0['index'])
.commit())
# remove it
(ndb
.addresses['10.0.0.1/24']
.remove()
.commit())
# list addresses
(ndb
.addresses
.summary()) # see also other view dump methods
Using interfaces¶
One can use interface objects to inspect addresses as well:
(ndb
.interfaces['eth0']
.ipaddr
.summary()) # see also other view dump methods
Or to manage them:
(ndb
.interfaces['eth0']
.add_ip('10.0.0.1/24') # add a new IP address
.del_ip('172.16.0.1/24') # remove an existing address
.set('state', 'up')
.commit())
Accessing one address details¶
Access an address as a separate RTNL object:
print(ndb.addresses['10.0.0.1/24'])
Please notice that address objects are read-only, you may not change them, only remove old ones, and create new.