NAT (от англ. Network Address Translation — «преобразование сетевых адресов») — это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных пакетов. Также имеет названия IP Masquerading, Network Masquerading и Native Address Translation.
Дано:
Сетевая карточка eth0 подключенная с помощью PPPoE к интернету и eth1 подключенная к сети с адресом 172.20.0.1 в которой будет подключена сеть с адресами 172.20.0.* в которой нужно раздать интернет.
Для начала включим форвардинг:
Код
$ sudo echo 1 > /proc/sys/net/ipv4/ip_forward
Чтобы форвардинг автоматически включался при запуске системы открываем файл /etc/sysctl.conf:
Код
$ sudo nano /etc/sysctl.conf
И раскоментируем/добавим строчку:
Код
net.ipv4.ip_forward = 1
Затем включаем NAT:
Код
$ sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Где ppp0 название вашего интерфейса через который выходите в интернет.
Чтобы NAT работал после перезагрузки, делаем следующее:
Сохраняем настройки iptables в файл:
Код
$ sudo iptables-save > /etc/iptables.up.rules
И добавляем в конец файла /etc/network/interfaces:
Код
$ sudo nano /etc/network/interfaces
Эту строчку, для автоматической подгрузки правил:
Код
pre-up iptables-restore < /etc/iptables.up.rules
Так же в этот файл добавляем правила роутинга:
Код
up route add -net 172.20.0.0 netmask 255.255.255.0 dev eth1
up route add -net 0.0.0.0 netmask 255.255.255.255 dev eth0
up route add -net 0.0.0.0 netmask 255.255.255.255 dev eth0
Назначаем статический IP и шлюз соответсвенно, на принимающей машине: