Linux. Перенаправление всего трафика между интерфейсами?

Есть маленькая сеть. В ней сервер с двумя интернет портами eth0 и eth1. Между роутером и сервером поднят GRE-тонель.
Подскажите как сделать так, что бы весь трафик идущий на сервер с роутера с интерфейса gre0 направлялся в интернет через интерфейс eth1 и обратно?

На сервере:
net.ipv4.ip_forward = 1

iptables сервера:
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -P FORWARD ACCEPT

Добавлено:
Интерфейс сервера eth0 являлся основным, сервер должен использовать интернет от провайдера 1 (eth0 <-> роутер <-> интернет от 1 провайдера), а интерфейс eth1 нужен только для того, чтобы туда направить трафик из gre0, и ничего другого

66fc5a0bb30bb106456646.png

Решение:
# Все пакеты c интерфейса gre0 посылать в таблицу 1000
ip rule add iif gre0 table 1000

# Все пакеты из таблицы 1000 посылать в интерфейс eth1
ip route add default dev eth1 table 1000


# И тоже самое только в другую сторону

# Все пакеты c интерфейса eth1 посылать в таблицу 1001
ip rule add iif eth1 table 1001

# Все пакеты из таблицы 1001 посылать в интерфейс gre0
ip route add default dev gre0 table 1001
  • Вопрос задан
  • 845 просмотров
Пригласить эксперта
Ответы на вопрос 2
ValdikSS
@ValdikSS
ip route add default dev eth1 table 1000
ip route add ip.диапазон.для.gre dev gre0 table 1000
ip rule add from ip.диапазон.для.gre lookup 1000
Ответ написан
Обычно достаточно двух вещей
sysctl -w net.ipv4.ip_forward=1 # у вас уже сделано
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы