/NAT

A Linux kernel module that does network address translation

Primary LanguageC

*****NAT Kernel Module*****
*******************************
Author: Gaurav Tungatkar

Description:
Linu kernel module that does network address translation. WAN side IP address,
LAN subnet and NAT entry timeout are configurable parameters via procfs.
Start stop using sysfs.

Simple timeout strategy to remove NAT table entries, does not do connection
tracking.

Pre-routing and Post routing netfilter hooks to change the IP addresses and
recalculate checksums.
 
Instructions to compile:
1. Go to project/ folder.
2. make

Instructions to run:
1. insmod project/knat.ko


Limitations:
1. Limitations: Port numbers to be used in translation are taken by incrementing a global variable.
2. If timeout is specified very less, and timeout occurs during an existing TCP connection, that connection will break, since NAT table entry will be removed.
3. Does not support FTP.