https://github.com/rabbitstack/netmutatus
Linux TCP/IP stack manipulation via Netlink / Netfilter
https://github.com/rabbitstack/netmutatus
Last synced: 7 months ago
JSON representation
Linux TCP/IP stack manipulation via Netlink / Netfilter
- Host: GitHub
- URL: https://github.com/rabbitstack/netmutatus
- Owner: rabbitstack
- License: mit
- Created: 2017-12-23T17:59:50.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-12-25T12:28:51.000Z (about 8 years ago)
- Last Synced: 2024-10-15T23:54:46.622Z (over 1 year ago)
- Language: Ruby
- Homepage:
- Size: 57.6 KB
- Stars: 5
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Netmutatus
**Netmutatus** (still in active development) provides native bindings for `netlink` and `netfilter` Linux subsystems offering the user a neat abstraction layer for creating link devices, `veth` interfaces, manipulating routing tables or handling packet filtering/address translation through `netfilter` interface among other tasks.
- [x] link devices
- [x] veth devices
- [x] addresses
- [ ] bridging
- [ ] routing
- [ ] bonding
- [ ] net namespaces
- [x] netfilter tables
- [ ] netfilter chains
- [ ] netfilter rules
- [ ] MACVLAN
- [ ] VLAN
- [ ] VXLAN
- [ ] neighbours
## Requirements
Ensure `libnl-route`, `libnl`, `libnftnl` and `libmnl` shared objects are present on your system. Most distros already ship
with those libraries, but in any case you can fetch them with the following command if you're on Ubuntu/Debian:
```bash
$ sudo apt-get install libnl-route-3-200 libnl-3-200 libnftnl4 libmnl0
```
Also, make sure to create symbolic links for above libraries to match the name of the shared object expected by `ffi`:
```bash
$ sudo ln -s /lib/x86_64-linux-gnu/libnl-3.so.200 /lib/x86_64-linux-gnu/libnl-3.so
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libnl-route-3.so.200 /usr/lib/x86_64-linux-gnu/libnl-route-3.so
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libnftnl.so.4 /usr/lib/x86_64-linux-gnu/libnftnl.so
$ sudo ln -s /lib/x86_64-linux-gnu/libmnl.so.0 /lib/x86_64-linux-gnu/libmnl.so
```