firecracker-microvm / firecracker-microvm/firecracker

[Feature Request] Migrate networking documentation to nftables

Open
#4,874 4 comments 0 reactions 1 assignee Claimed by @Manciukic View on GitHub
Status: Parked
Dominant language
Rust
Stars
36.7k
Forks
2.6k
Avg merge
3d 3h
Merged PRs (30d)
58

Description

# Feature Request

The backing kernel module for iptables (x_tables) is extremely not recommended by the Linux netfilter team, so the iptables command now on most distros is deprecated and only the nft command is recommended that uses the new nftables kernel module, plus the iptables-nft command is also available that uses the legacy iptables syntax and converts it to then call nft.

As such, it's important to update Firecracker's networking documentation to use nftables.

## Describe the desired solution

Update the following docs:
- https://github.com/firecracker-microvm/firecracker/blob/main/docs/network-setup.md
- https://github.com/firecracker-microvm/firecracker/blob/main/docs/snapshotting/network-for-clones.md, this time with the "optimal" setup I proposed in https://github.com/firecracker-microvm/firecracker/discussions/4720

## Describe possible alternatives

The least-effort path but also a pretty bad one is to replace iptables with iptables-nft in the examples.

## Additional context

I'm currently performing a [large refactor](https://github.com/kanpov/fcnet/tree/nftables) of `fcnet`, which is a Rust-based Firecracker networking backend, and porting it from iptables CLI calls to nftables via libnftables-json, so as soon as I complete that and figure out all the nft calls necessary, I'll contribute these doc changes to Firecracker .

## Checks

- [x] Have you searched the Firecracker Issues database for similar requests?
- [x] Have you read all the existing relevant Firecracker documentation?
- [x] Have you read and understood Firecracker's core tenets?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.