The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Два провайдена + локалка, Linux исключительно iptables+route?"
Отправлено Bzz, 13-Окт-09 00:41 
Вопрос такой.
Система Федора 9
eth0 - интерфейс с внешним ип. через него инет от первого провайдера. ип 194.х.х.16 (248)
eth1 - интерфейс локальный в него приходит вся локалка 10.0.0.0 и 10.0.1.0
eth2 - интерфейс локальный в него приходит ADSL модем, который работает как роутер. Т.е на нем есть инет по умолчанию всегда от второго провайдера. 192.168.1.0

На eth1 два адреса 10.0.0.0 и 10.0.1.0 алиасом, соответственно приходят две локалки через свич.

Задача. В инет 10.0.0.0 все идут через eth2, а 10.0.1.0 через eth1
Вторая задача. Хочу все это сделать скриптом с помощью route и iptables без iproute2. Потому, что мне нравится логика, когда все прописываешь поэтапно в въезжаешь в каждую деталь. Во-вторых хочется для себя разобраться полностью как это все делается сначала так, без упрощающих утилит.

Я пока сделал так:
1. iptables все политики на DENY . Затем на инпут и оутпут цепочках ип каждого интерфейса разрешил ходить куда им положено.
2. в FORWARD зафорвардил все подсети, т.е дал им свободные маршруты во все направления, фактически.
iptables -A FORWARD -s 194.44.x.x/255.255.255.248 -j ACCEPT (ип что дан провайдеру свободно форвардится в любом направлении) и остальные правила в этом стиле как для 194.44.х.х, так и локальных подсетей
3. В роуте поставил
route add default gw 194.x.x.17 dev eth0

4. Затем в iptables
iptables -t nat -A POSTROUTING -s 10.0.0.10 -j MASQUERADE

С этого шага все заработало с 10.0.0.10 компа можно ходить в инет через превого провайдера, добавляя сюда правила добавляем пользователей которые получают доступ.

Далее надо часть пробросить через второго прова.
И вот тут начались проблемы.

5. В инете прочитал что надо сделать так, добавить дефаулт гв для второго пути:
route add default gw 192.168.1.1 (адрес модема) dev eth2
route add default gw 194.х.х.17 (адрес гв прова) dev eth0

Логика, что все приходящее на eth2 роутится через модем. Однако ничего сам собой не вышло.
Я начал адаптироваться и поменял правила в FORWARDе.

iptables -A FORWARD -s 10.0.1.0/255.255.255.0 -d 192.168.1.0/255.255.255.0 -j ACCEPT
И в этом стиле остальные.
Таким образом отрезал 10.0.1.0 подсеть от возможности вообще ходить через шлюз первого провайдера, а только дав возможность ходить через 192.168.1.0 подсеть т.е. через модем.

Сработало, на удивление. Компы из 10.0.1.0 подсети выходят в инет через второго прова.

Но два дефаултных роута сюдя по всему был плохой совет. Потому, что система стала работать  как-то через жопу, периодически если извне заходишь и не видны становятся хостящие ресурсы и т.д.

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


Я думаю следующий шаг улучшить это дело - это разнатить подсети полностью по интерфейсам. Что-то вроде как:
iptables -t nat -A POSTROUTING -s 10.0.0.0/255.255.255.0 -o eth0 -j SNAT 194.x.x.17
iptables -t nat -A POSTROUTING -s 10.0.1.0/255.255.255.0 -o eth2 -j SNAT 192.168.1.1
Не знаю, может ошибся - завтра на серве проверю.
И затем в FORWARDe тоже подсети зажать, чтобы могли ходить только по задуманному туннелю.
Но как правильно route и default gw прописать пока нигде не нашел.


Помогите разобраться с сабжем. Для меня это дело - хобби. И интересует не столько конфиг. Я его буду так вот по чуть-чуть отшлифовывать и напишу сам. Сколько въехать в саму логику процесса.

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру