How to enable IP Forwarding

Check if IP Forwarding is enabled. Simple way to check and enable IP Forwarding in LINUX 

We have to query the sysctl kernel value net.ipv4.ip_forward to see if forwarding is enabled or not:

Using sysctl:

    sysctl net.ipv4.ip_forward
    net.ipv4.ip_forward = 0

or just checking out the value in the /proc system:

    cat /proc/sys/net/ipv4/ip_forward
    0

As we can see in both the above examples this was disabled (as show by the value 0).

Enable IP Forwarding on the fly
As with any sysctl kernel parameters we can change the value of net.ipv4.ip_forward on the fly (without rebooting the system):

    # sysctl -w net.ipv4.ip_forward=1

or

    # echo 1 > /proc/sys/net/ipv4/ip_forward

the setting is changed instantly; the result will not be preserved after rebooting the system.

Permanent setting using /etc/sysctl.conf
If we want to make this configuration permanent the best way to do it is using the file /etc/sysctl.conf where we can add a line containing net.ipv4.ip_forward = 1

    /etc/sysctl.conf:
    net.ipv4.ip_forward = 1

if you already have an entry net.ipv4.ip_forward with the value 0 you can change that 1.

To enable the changes made in sysctl.conf you will need to run the command:

    # sysctl -p /etc/sysctl.conf

On RedHat based systems this is also enabled when restarting the network service:

    # service network restart