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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Выбор шлюза по маркеру пакета.  (Прочитано 1292 раз)

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

Оффлайн K@kTuS

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Выбор шлюза по маркеру пакета.
« : 12 Ноября 2010, 09:09:47 »
Дано: Сервер а правым адресом, на нем почта и DC++. Доступ к почте только из интернета, доступ к DC++ только из локалки через шлюз 10.20.0.1
Задача: Прямыми руками написать iptables, промаркировать пакеты, идущие на сервер по портам 25 и 110, и через iproute2 направлять их через дефолтный шлюз 192.168.6.1, ибо для работы ДЦ прописан роут на этот сервер через шлюз 10.20.0.1
И будет ли работать эта схема, или порты ДЦ тоже нужно маркировать, и делать отдельную таблицу, а роут удалить? Или еще какой-то вариант лучше?
Я понимаю, что нужно сделать, но с iptables у меня пока туго.
Гугл рыл, вики читал, не дошло )))

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: Выбор шлюза по маркеру пакета.
« Ответ #1 : 12 Ноября 2010, 10:45:35 »
Уверен, что без маркировки не обойтись? Может обычного роутинга будет достаточно?

Оффлайн K@kTuS

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Re: Выбор шлюза по маркеру пакета.
« Ответ #2 : 12 Ноября 2010, 11:27:05 »
И каким образом?
route add -host x.x.x.x gw 192.168.6.1
route add -host x.x.x.x gw 10.20.0.1
Таким?
Что то я там портов не наблюдаю...

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: Выбор шлюза по маркеру пакета.
« Ответ #3 : 12 Ноября 2010, 11:30:53 »
А при чём тут порты? если шлюз 192.168.6.1 дефолтный, то ничего на него и поворачивать не надо. А для DC++ сделать роуты на сеть 10.0.0.0/8 и не жужжать. Если дефолтный шлюз не безлимит, то тупо задропить ненужные порты таблесами на сеть не 10.0.0.0/8 (хотя так уже и должно было сделано)

Оффлайн K@kTuS

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Re: Выбор шлюза по маркеру пакета.
« Ответ #4 : 12 Ноября 2010, 11:49:03 »
DC++ не в сети 10.0.0.0\8, оно на правом адресе х.х.х.х но доступно только из сети 10.20.0.0\24 через шлюз 10.20.0.1

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: Выбор шлюза по маркеру пакета.
« Ответ #5 : 12 Ноября 2010, 12:03:20 »
хотите сказать, что и почта и DC++ на одном IP стоят, но доступ к разным ресурсам разрешён через разные интерфейсы?

Оффлайн K@kTuS

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Re: Выбор шлюза по маркеру пакета.
« Ответ #6 : 12 Ноября 2010, 12:28:04 »
хотите сказать, что и почта и DC++ на одном IP стоят, но доступ к разным ресурсам разрешён через разные интерфейсы?
Именно так.
На данный момент накатал скрипт следующего содержания:

#!/bin/sh

ip route flush table dc
ip route flush table mail
ip route add х.х.х.х/32 dev eth1 src 10.20.0.234 table dc
ip route add х.х.х.х/32 dev eth0 src 192.168.6.9 table mail
ip rule add from 192.168.6.9 table mail
ip rule add from 10.20.0.234 table dc
ip rule add fwmark 1 table dc
ip rule add fwmark 2 table mail
iptables -I PREROUTING -t mangle -s 10.20.0.234 -i eth1 -d х.х.х.х/32 -p tcp --dport 4111 -j MARK --set-mark 1
iptables -I PREROUTING -t mangle -s 192.168.6.9 -i eth0 -d х.х.х.х/32 -j MARK --set-mark 2
Что-то нифига не работает. ни почта, ни ДЦ.

Пользователь решил продолжить мысль 13 Ноября 2010, 14:17:52:
Сейчас сделал так:
#!/bin/sh
ip route flush table dc
ip rule add fwmark 1 table dc
ip route add х.х.х.х/32 via 10.20.0.1 dev eth1 table dc
iptables -t mangle -A PREROUTING -d х.х.х.х/32 -p tcp --dport 4111 -j MARK --set-mark 1
Но всё равно не работает.
« Последнее редактирование: 14 Ноября 2010, 12:30:01 от K@kTuS »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: Выбор шлюза по маркеру пакета.
« Ответ #7 : 13 Ноября 2010, 22:54:40 »
А пакеты от клиента локальной сети идут или с этой же машины на которой маркируешь пакеты?
Если с этой же машины, то пакеты в цепочку PREROUTING не попадают

Оффлайн K@kTuS

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Re: Выбор шлюза по маркеру пакета.
« Ответ #8 : 14 Ноября 2010, 12:29:15 »
Комп, на котором это всё делается - клиент. с него и соединение должно идти на х.х.х.х:4111

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: Выбор шлюза по маркеру пакета.
« Ответ #9 : 14 Ноября 2010, 13:14:15 »
Ну так вектор я уже дал. Пакеты с локалхоста не попадают в цепочку PREROUTING, а значит надо маркировать в OUTPUT

Оффлайн K@kTuS

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Re: Выбор шлюза по маркеру пакета.
« Ответ #10 : 14 Ноября 2010, 15:28:06 »
#!/bin/sh
ip route flush table dc
ip rule add fwmark 1 table dc
ip route add х.х.х.х/32 via 10.20.0.1 dev eth1 table dc
iptables -t mangle -A OUTPUT -d х.х.х.х/32 -p tcp --dport 4111 -j MARK --set-mark 1
Тоже безрезультатно.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: Выбор шлюза по маркеру пакета.
« Ответ #11 : 14 Ноября 2010, 16:38:45 »
Может полностью всё просмотрим?
ip route list dc
sudo iptables-save

Оффлайн K@kTuS

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Re: Выбор шлюза по маркеру пакета.
« Ответ #12 : 14 Ноября 2010, 16:49:56 »
:/etc/network# ip route list table dc
109.x.x.x via 10.20.0.1 dev eth1

:/etc/network# iptables-save
# Generated by iptables-save v1.4.4 on Sun Nov 14 18:43:10 2010
*mangle
:PREROUTING ACCEPT [7895:623555]
:INPUT ACCEPT [5184:397939]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [593:48685]
:POSTROUTING ACCEPT [637:54709]
-A OUTPUT -d 109.x.x.x/32 -p tcp -m tcp --dport 4111 -j MARK --set-xmark 0x1/0xffffffff
-A OUTPUT -d 109.x.x.x/32 -p udp -m udp --dport 4111 -j MARK --set-xmark 0x1/0xffffffff
COMMIT
# Completed on Sun Nov 14 18:43:10 2010

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: Выбор шлюза по маркеру пакета.
« Ответ #13 : 14 Ноября 2010, 16:54:53 »
а счётчики-тона правилах капают?

Пользователь решил продолжить мысль 14 Ноября 2010, 16:57:21:
а ещё бы посомтреть основную таблицу маршрутизации
ip route list
« Последнее редактирование: 14 Ноября 2010, 16:57:21 от fisher74 »

Оффлайн K@kTuS

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Re: Выбор шлюза по маркеру пакета.
« Ответ #14 : 14 Ноября 2010, 17:02:30 »
я со счетчиками еще не работал...

Пользователь решил продолжить мысль 14 Ноября 2010, 17:04:18:
:/etc/network# ip route list
192.168.6.0/24 dev eth0  proto kernel  scope link  src 192.168.6.9
10.20.0.0/16 dev eth1  proto kernel  scope link  src 10.20.0.234
169.254.0.0/16 dev eth1  scope link  metric 1000
default via 192.168.6.1 dev eth0  metric 5
default via 10.20.0.1 dev eth1  metric 10
« Последнее редактирование: 14 Ноября 2010, 17:04:18 от K@kTuS »

 

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