Package Usage: go: github.com/jsimonetti/rtnetlink
Package rtnetlink allows the kernel's routing tables to be read and altered.
Network routes, IP addresses, Link parameters, Neighbor setups, Queueing disciplines,
Traffic classes and Packet classifiers may all be controlled.
It is based on netlink messages.
A convenient, high-level API wrapper is available using package rtnl:
https://godoc.org/github.com/jsimonetti/rtnetlink/rtnl.
The base rtnetlink library xplicitly only exposes a limited low-level API to rtnetlink.
It is not the intention (nor wish) to create an iproute2 replacement.
When in doubt about your message structure it can always be useful to look at the
message send by iproute2 using 'strace -f -esendmsg' or similar.
Another (and possibly even more flexible) way would be using 'nlmon' and wireshark.
nlmod is a special kernel module which allows you to capture all (not just rtnetlink)
netlink traffic inside the kernel. Be aware that this might be overwhelming on a system
with a lot of netlink traffic.
At this point use wireshark or tcpdump on the nlmon0 interface to view all netlink traffic.
Have a look at the examples for common uses of rtnetlink.
Add IP address '127.0.0.2/8' to an interface 'lo'
Add a route
Delete IP address '127.0.0.2/8' from interface 'lo'
List all IPv4 addresses configured on interface 'lo'
List all interfaces
List all neighbors on interface 'lo'
List all rules
Set the operational state an interface to Down
Set the hw address of an interface
Set the operational state an interface to Up
18 versions
Latest release: over 1 year ago
352 dependent packages
View more package details: https://packages.ecosystem.code.gouv.fr/registries/proxy.golang.org/packages/github.com/jsimonetti/rtnetlink