Включение IP маршрутизации (forwarding)

Материал из База знаний проекта Russian Fedora

Перейти к: навигация, поиск

Для включения IP форвардинга отредактируйте файл /etc/sysctl.conf:

# Controls IP packet forwarding
net.ipv4.ip_forward = 1

Затем вы можете проверить ваши настройки:

/sbin/sysctl -p 

Возможно так же временное (до перезагрузки, например) включение транзита трафика командой

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

Ещё один вариант включения постоянного транзита трафика, равнозначный редактированию /etc/sysctl.conf, это в файле /etc/sysconfig/network прописать:

FORWARD_IPV4=YES

Содержание

Простейший шлюз

Ноут подключен по wi-fi (wlan0 192.168.1.130) к шлюзу 192.168.1.1. К ноуту шнуром подключен комп, которому нужно дать доступ в интернет.

На компе присваиваем IP 192.168.2.2

ifconfig eth0 192.168.2.2

и добавляем маршрут по умолчанию

ip ro add default via 192.168.2.1

На ноуте задаем IP 192.168.2.1

ifconfig eth0 192.168.2.1

маршрут по умолчанию

ip ro add default via 192.168.1.1

и правила файервола

iptables -I FORWARD -s 192.168.2.0/24 -j ACCEPT
iptables -I FORWARD -d 192.168.2.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j MASQUERADE

Решение временное, при перезагрузке не сохранится.

Примечание: правило, использующее MASQUERADE лучше подойдет для внешнего адреса, назначающегося динамически, так как при пересылке пакетов программа всегда определяет текущий адрес сетевого интерфейса, назначенного прокси (внешним). Для статического же внешнего адреса лучше подойдет использование Source NAT (SNAT):

iptables -t nat -A POSTROUTING -o $IFOUT -s $LANIN/$MASKIN -j SNAT --to $ADROUT

где $IFOUT - внешний интерфейс (например, wlan0), $LANIN/$MASKIN - внуренняя сеть с маской (например, 192.168.2.0/255.255.255.0), $ADROUT - внешний адрес шлюза (например, 192.168.1.130)

Сохранение правил

Для сохранения правил выполнить команду:

# iptables-save >/etc/sysconfig/iptables

Правила сохранятся в файле /etc/sysconfig/iptables

Загрузка модулей

Для лучшей работы шлюза со специфическими протоколами, например, ftp, могут понадобиться соответствующие модули (ip_nat_ftp, ip_nat_irc etc), загрузка которых вызывается через файл /etc/sysconfig/iptables-config

Дополнительные материалы