Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Iptables два клиента на двух провайдеров  (Прочитано 1542 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Dimaxwell

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Всем привет! Помогите с проблемой :)
Есть роутер на базе ubuntu и два провайдера:
ppp0
ppp1

также есть два клиента за роутером.
Задача - как научить одного клиента ходить за интернетом к одному провайдеру, а второго клиента - ко второму?

Оффлайн Jerromo

  • Новичок
  • *
  • Сообщений: 35
    • Просмотр профиля
Re: Iptables два клиента на двух провайдеров
« Ответ #1 : 18 Января 2009, 02:06:22 »
с помощью iproute2. создать две таблицы, одного пропускать через первую, второго через вторую.

чтиво:
http://www.opennet.ru/docs/RUS/LARTC/
http://www.opennet.ru/base/net/iproute2_cebka.txt.html

Оффлайн Dimaxwell

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Re: Iptables два клиента на двух провайдеров
« Ответ #2 : 18 Января 2009, 13:14:40 »
ppp0 - 192.168.0.2 (default route) - по умолчанию все идет через него
ppp1 - 10.0.0.2 (defaultroute закомментирован в конфиге pptp-client)
клиент 192.168.0.10 - который должен ходить через провайдера ppp1 (table provider2)
Выполнил следующее:
iptables -t mangle -A PREROUTING -s 192.168.0.10 -j MARK --set-mark 1
iptables -t nat -A POSTROUTING -m mark --mark 1 -j MASQUERADE
(при таких правилах инет работает и все идет через ppp0)
добавляю:
ip ro add default via 10.0.0.2 dev ppp1 table provider2
ip ru add fwmark 1 table provider2
ip ro flush cache

Инет продолжает работать, но все равно через ppp0
Пробовал менять mangle -A FORWARD
эффект тотже.

Вопрос как отрабатывает iptables -j MASQUERADE? по дефолтной таблице?
Пробовал заменять -j MASQURADE на -j SNAT --to-source 10.0.0.2 - интернет на клиенте пропадал. Создается впечатление что пакеты продолжают уходить по дефолтной таблице.
« Последнее редактирование: 18 Января 2009, 13:16:57 от Dimaxwell »

Оффлайн Jerromo

  • Новичок
  • *
  • Сообщений: 35
    • Просмотр профиля
Re: Iptables два клиента на двух провайдеров
« Ответ #3 : 19 Января 2009, 21:41:34 »
1. iptables к таблицам отношения не имеет.
2. адреса 10.0.0.2 и 192.168.0.2 это что? шлюзы или ip интерфейсов?
3. клиент 192.168.0.10 совпадает с подсетью провайдера ?!
4. и где интерфейс за которым клиент?

предполагаю если 10.0.0.2 это шлюз, а клиент будет с адресом, хотя бы, 172.16.0.10 :

iptables -t mangle -A PREROUTING -s 172.16.0.10 -j MARK --set-mark 1
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp1 -j MASQUERADE

ip route add 172.16.0.0/12 dev <здесь интерфейс с клиентом> table provider2
ip route add 10.0.0.0/8 dev ppp1 table provider2
ip route add default via 10.0.0.2 dev ppp1 table provider2
ip rule add fwmark 1 table provider2
ip route flush cache
« Последнее редактирование: 19 Января 2009, 21:49:31 от Jerromo »

 

Страница сгенерирована за 0.026 секунд. Запросов: 23.