Про форвардинг пакетов между сетевыми интерфейсами

У меня есть компьютер, в котором существует несколько сетевых интерфейсов (т.е. подключено несколько сетевых карт).

Как сделать так, чтобы пакет, приходящий на один сетевой интерфейс, автоматически форвардился на все остальные согласно таблице маршрутизации.

Или наоборот, как сделать так, чтобы пакет, приходящий на один сетевой интерфейс, не пробрасывался на остальные.

Решение:

Смотрим состояние:

cat /proc/sys/net/ipv4/ip_forward

1 - форвардинг на все интерфейсы.

0 - отключение форвардинга.

Соответственно, для отключения форвардинга нужно выполнить:

sudo sysctl -w net.ipv4.ip_forward=0

Для включения форвардинга между сетевыми интерфейсами нужно выполнить:

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



Еще одна история.

У меня есть компьютер, в котором два сетевых интерфейса.

eth0 (192.168.1.10 статический) - это локальная сеть. К ней подключена некая железка.

usb0 (192.168.42.199 динамический) - это сетевой интерфейс, создается телефоном HTC, если там выбрать опцию - Интернет-модем (выход в Интернет через телефон), при этом сам телефон получает интернет по wifi или 3g.

Мне надо, чтобы выход в интернет получила некая железка с адресом 192.168.1.100, подключенная к eth0.

Решение:

Смотрим текущие настройки iptables:

$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   

Применяем следующие правила:

sudo iptables -t nat -A POSTROUTING -s 192.168.1.100 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i usb0 -m state --state RELATED,ESTABLISHED -j ACCEPT

Смотрим новые настройки iptables:

$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             state NEW,RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination