Skip to content

SNAT46 and DNAT64 exists, but SNAT64 and DNAT46 are missing? #1038

@tercenya

Description

@tercenya

A quick tour suggests that only some parts of NAT64/NAT46 were added (#28, loxilb-io/loxilb-ebpf#5): if I'm reading it correctly, SNAT46 is implemented for the return of packets that come in via DNAT64, but the reverse (SNAT64 for packets that come in via DNAT46) appear to be missing (maybe? - my C is rusty...).

--

Use-case:

I have a k8s cluster that's running an IPv6 underlay, which prevents IPv4 or dualstack in the backend, so I attempted to create a IPv4 Gateway on an external, dual-homed kube-powered loxilb. The kube-loxilb controller gets stuck in a crash-resync loop, the LB never becomes ready due to ipFamily errors.

Debugging this with loxicmd create lb 192.168.10.2 --endpoints=fd00::c0ff:ee00:babe:1 --tcp=8080:8080 gives an api: Error occur : malformed-service nat46 error, which is simply disallowed by loxilb proper.

--

I wasn't sure who wanted this issue: loxilb fails gracefully (yea!), kube-loxilb doesn't (boo!), and loxilb-ebpf is likely the missing implementation (ugh!). If DNAT46 and SNAT64 were implemented, the other two would readily support full NAT64/NAT46 in either direction?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions