LinuxForum.Fans
Тема

Нужна помощь по IPTABLES (перенаправление трафика на другой gateway)

Автор: Fast_Deer 12 сообщений 7442 просмотров
#304129

Здравствуйте!
Собственно сабж. Подробности:
есть роутер с дыумя интерфейсами: WAN1 и WAN2. На WAN2 (W2) поднята локалка от второго прова (статик IP, vlan1), прописан маршрут. Проверил - пакеты ходят во вторую сеть (tracert сеть 2го прова), но интернет по дефолту настроен на основного прова (WAN1, PPPoE) и соответственно, все ходят через него, а там канал не очень широкий (в домашке 3 компа и сервак). Мне нужно завернуть трафик с определенных машин моей локалки (по IP адресу) через W2, а также (если это возможно) по определенным портам оставить на основном WAN (W1) - это нужно для доступа некоторые ресурсы провайдеров.
Это вообще реально сделать? В интернете нарыл интересные моменты через маркировку пакетов, но не знаю как это реализовать.
буду очень благодарен за помощь

#304132

именно через маркировку. Щас нет возможности выложить.
Но суть такова что создаете таблицы rt_tables и метите пакеты в forward.

#304163
Kettler написал:

я видел похожие правила на других форумах, но это почти не то что мне надо ибо фраза

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

меня вполне не устраивает! Мне не надо открывать порты снаружи во внутреннюю сеть, а просто перенаправить трафик (желательно любой) с 2х компов внутренней сети на другой шлюз внутри роутера (то есть в интернет).
Я в сабже не силен (по мне так это вообще язык программирования, который не осилишь за неделю) и поэтому прошу помощи тех кто с этим разобрался.
Немного упрощу задачу так как за второй интернет уплачено на 3 месяца вперед, но не юзается. Пойдем от простого к сложному:
- нужно с 2х компов сети (по IP) завернуть весь трафик на WAN2, то есть чтоб эти 2 компа ходили через второго прова в интернет. При этом дефолтным шлюзом будет адрес WAN1 (первого прова).
- нужен скрипт/команда возвращающая трафик в дефолтный шлюз. Нужно это для того чтоб быстро вручную сбросить настройки в дефолт при проблемах у второго прова.
- уже по возможности можно будет разбираться с трафиком по портам

#304213

мммм. Смотрим.
Берём выше изложенную статью за основу.

Создаем в файле /etc/iproute2/rt_tables записи на таблицу на одного провайдера:

text
echo 122 prov_2 >> /etc/iproute2/rt_tables

Добавляем в iproute маршруты по провайдерам:

text
ip route add default via 62.62.62.61 table prov_2
ip rule add fwmark 2 table prov_2

62.62.62.61 - тут ваш гетвей от второго прова!

Теперь добавляем правила для маршрутизации по источнику

text
ip rule add from 128.128.128.2 table prov_2

тут айпи адрес вашего клиента из сети 128.128.128.2

text
ip route flush cache

Чистим кеш.

Для правильной обратной связи

text
iptables -t mangle -N PROV
iptables -t mangle -A PROV -i eth1 -j CONNMARK --set-mark 2
iptables -t mangle -A PREROUTING -i eth2 -m state --state ESTABLISHED -j CONNMARK --restore-mark
iptables -t mangle -A FORWARD -i eth1 -m state --state NEW -j PROV

eth1 эт сетевая второго прова.

Всё как то так. Но камни будут обязательно.

#304472

Спасибо тебе добрый человек!
Фактически заработало слету: tracert с клиентской машины показал проход через новый шлюз, www.speedtest.net - увеличение скорости в 4 раза. При этом сервак остался на старом интернете.
Теперь бы узнать команду возвращающую настройки на дефолтный шлюз.
PS.: Отписался в личку - есть еще несколько вопросов касающейся этой темы

#305560
Fast Deer написал:
Спасибо тебе добрый человек!
Фактически заработало слету: tracert с клиентской машины показал проход через новый шлюз, www.speedtest.net - увеличение скорости в 4 раза. При этом сервак остался на старом интернете.
Теперь бы узнать команду возвращающую настройки на дефолтный шлюз.
PS.: Отписался в личку - есть еще несколько вопросов касающейся этой темы

щас погоди покумекаю как лучше)

#305561

напомни чуть позже в личку.

Надо будет источник указывать не через

text
ip rule add from 128.128.128.2 table prov_2

а в FORWARD так будет проще.

#305614

вместо

text
ip rule add from 128.128.128.2 table prov_2

вот это

text
iptables -t mangle -I PREROUTING -s 128.128.128.2 -j MARK --set-mark 2

Остальное всё тоже самое. Проверьте для начало это.

#305615

Для более точно решения нужна ещё информация.

#305742

Какая инфа нужна? Применение переменнх не катит? - тут я уж сам подставлю нужные значения или объявлю их в качеств переменных, чтоб не писать по много раз.
А вариант через удаление маршрутов (ip rule del... ) и очистки кеша не прокатит? то есть там будет больше 2-3 строк?

#306531

может сработает так

text
ip rule del from 128.128.128.2 table prov_2
Войдите или зарегистрируйтесь, чтобы ответить.