Hello 9fans.

I'm thinking of writing a NAT implementation for plan 9. I have searched the archives and I'm not quite sure how to get started.

As I see it there could be three ways of approaching this:

1. User space implementation using ipmux
2. User space using pkt interfaces in ipifc. 
3. Kernel using something like sources/dho/nfil

Do you have any advices on how to capture packets and how to send them out again after replacing src/dst addr and port?

Are there any ways of testing NAT in a virtual machine? Right now I'm using vmware and it would be nice to be able to test it without setting up a real machine with two Ethernet interfaces.

-Patrick Kristiansen