Задать вопрос

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
  • Вопрос задан
  • 2342 просмотра
Подписаться 4 Простой 4 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Специалист по информационной безопасности + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик + ИИ
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия DevOps-инженер + ИИ
    5 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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
Ответ написан
@xibir
linux c++
Обычно достаточно двух вещей
sysctl -w net.ipv4.ip_forward=1 # у вас уже сделано
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Ответ написан
Ваш ответ на вопрос

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

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