Python netlink library. The main goal of the project is to implement complete NETLINK_ROUTE family as well as several other families (NETLINK_NETFILTER etc.)
Current feature status see in STATUS.md
More samples you can read in the project documentation. Low-level interface:
from pyroute2 import IPRoute
# get access to the netlink socket
ip = IPRoute()
# print interfaces
print ip.get_links()
# stop working with netlink and release all sockets
ip.release()
High-level transactional interface, IPDB:
from pyroute2 import IPDB
# local network settings
ip = IPDB()
# create bridge and add ports and addresses
# transaction will be started with `with` statement
# and will be committed at the end of the block
with ip.create(kind='bridge', ifname='rhev') as i:
i.add_port(ip.em1)
i.add_port(ip.em2)
i.add_ip('10.0.0.2/24')
The project contains several modules for different types of netlink messages, not only RTNL.
make install or pip install pyroute2
Python >= 2.6
- test reqs (optional): python-coverage, python-nose
- plugin reqs (optional): * ptrace: python-ptrace