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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Маршрутизация на 2 провайдера  (Прочитано 2834 раз)

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

Оффлайн saber

  • Автор темы
  • Участник
  • *
  • Сообщений: 224
    • Просмотр профиля
    • Блог админа
Всем привет.

Нуждаюсь в помощи, видимо я чего-то не понимаю, либо что-то не верно понимаю :(

есть сервер в нём внешний канал (eth1), локальная сеть(eth0), ещё ходит OpenVPN (tun0) для связи с остальными филиалами.

Добавился ещё один внешний провайдер (eth4). для его подключение я сделал так.

в файл

/etc/iproute2/rt_tables
Добавил 2 таблицы


201 T1
202 T2

Создал скрипт, что будет заведовать маршрутизацией.


#!/bin/sh
IP1=217.111.111.99
IP2=94.11.111.81
P1=217.111.111.97
P2=94.11.111.82
IF1=eth1
IF2=eth4
ip route add default via $P1 table T1
ip route add default via $P2 table T2
ip route add default via $P1
ip rule add from $IP1 table T1
ip rule add from $IP2 table T2

после этого сервер отвечает по обоим интерфейсам. также пинги/трацерты с сервера ходят через нужный интерфейс.

ping -I eth4 ya.ru
теперь мне нужно что нужные мне клиенты ходили через этот интерфейс наружу. в iptables.up.rules у меня есть правила НАТа


-A POSTROUTING -s 192.168.5.102 -o eth4 -j MASQUERADE
-A POSTROUTING -s 10.10.10.6 -o eth4 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/255.255.0.0 -o eth1 -j MASQUERADE
-A POSTROUTING -s 10.10.0.0/255.255.0.0 -o eth1 -j MASQUERADE

первыми 2мя строками я хочу чтоб вот 192.168.5.102 и 10.10.10.6 НАТились через нового провайдера, но не судьба, трацерты с них замирают на шлюзе.

таблица маршрутизации вот такая


# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.10.10.2      0.0.0.0         255.255.255.255 UH    0      0        0 tun0
94.73.221.80    0.0.0.0         255.255.255.252 U     0      0        0 eth4
217.111.111.96  0.0.0.0         255.255.255.240 U     0      0        0 eth1
192.168.100.0   10.10.10.2      255.255.255.0   UG    0      0        0 tun0
192.168.6.0     10.10.10.2      255.255.255.0   UG    0      0        0 tun0
192.168.5.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.4.0     10.10.10.2      255.255.255.0   UG    0      0        0 tun0
192.168.3.0     10.10.10.2      255.255.255.0   UG    0      0        0 tun0
192.168.2.0     10.10.10.2      255.255.255.0   UG    0      0        0 tun0
192.168.1.0     10.10.10.2      255.255.255.0   UG    0      0        0 tun0
192.168.0.0     10.10.10.2      255.255.255.0   UG    0      0        0 tun0
10.10.10.0      10.10.10.2      255.255.255.0   UG    0      0        0 tun0
0.0.0.0         217.111.111.97  0.0.0.0         UG    0      0        0 eth1
0.0.0.0         217.111.111.97  0.0.0.0         UG    100    0        0 eth1
0.0.0.0         94.73.221.82    0.0.0.0         UG    100    0        0 eth4

rp_filter я выключил
 вот так в sysctrl
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0

Добавляю маршрут для него в таблицу Т2 (новый провайдер)

ip rule add from 192.168.5.102 table T2
Но трацерты всё также обрываютсяна шлюзе, сниффером я вижу как пакет уходит, но назад не возвращается.

что я мог сделать не верно?
odmin4eg.ru - Мои шпаргалки по ubuntu

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Re: Маршрутизация на 2 провайдера
« Ответ #1 : 13 Мая 2011, 10:20:05 »
что я мог сделать не верно?
А откуда сервер знает - какие пакеты ему куда отправлять?
Шаг за шагом можно достичь цели.

Оффлайн saber

  • Автор темы
  • Участник
  • *
  • Сообщений: 224
    • Просмотр профиля
    • Блог админа
Re: Маршрутизация на 2 провайдера
« Ответ #2 : 13 Мая 2011, 10:23:10 »
я предполагаю, что должен знать по вот этой строкой маршрутизации

ip rule add from 192.168.5.102 table T2а табица Т2 говорит нам что у неё дефаулт гетвей вот такой-то.


или я ошибаюсь? нудно ещё иптейблсами маркировать пакеты?
odmin4eg.ru - Мои шпаргалки по ubuntu

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Re: Маршрутизация на 2 провайдера
« Ответ #3 : 13 Мая 2011, 10:30:06 »
покажите
ip route
sudo iptables-save
Шаг за шагом можно достичь цели.

Оффлайн saber

  • Автор темы
  • Участник
  • *
  • Сообщений: 224
    • Просмотр профиля
    • Блог админа
Re: Маршрутизация на 2 провайдера
« Ответ #4 : 13 Мая 2011, 10:41:24 »
# ip route
10.10.10.2 dev tun0  proto kernel  scope link  src 10.10.10.1
94.73.221.80/30 dev eth4  proto kernel  scope link  src 94.73.221.81
217.111.111.96/28 dev eth1  proto kernel  scope link  src 217.111.111.99
192.168.100.0/24 via 10.10.10.2 dev tun0
192.168.6.0/24 via 10.10.10.2 dev tun0
192.168.5.0/24 dev eth0  proto kernel  scope link  src 192.168.5.1
192.168.4.0/24 via 10.10.10.2 dev tun0
192.168.3.0/24 via 10.10.10.2 dev tun0
192.168.2.0/24 via 10.10.10.2 dev tun0
192.168.1.0/24 via 10.10.10.2 dev tun0
192.168.0.0/24 via 10.10.10.2 dev tun0
10.10.10.0/24 via 10.10.10.2 dev tun0
default via 217.111.111.97 dev eth1
default via 217.111.111.97 dev eth1  metric 100
default via 94.73.221.82 dev eth4  metric 100


# iptables-save
# Generated by iptables-save v1.3.8 on Fri May 13 14:39:36 2011
*mangle
:PREROUTING ACCEPT [1452078:838912369]
:INPUT ACCEPT [695416:257312154]
:FORWARD ACCEPT [747568:580886227]
:OUTPUT ACCEPT [802372:713893579]
:POSTROUTING ACCEPT [1549958:1294784036]
COMMIT
# Completed on Fri May 13 14:39:36 2011
# Generated by iptables-save v1.3.8 on Fri May 13 14:39:36 2011
*filter
:INPUT ACCEPT [695416:257312154]
:FORWARD ACCEPT [747568:580886227]
:OUTPUT ACCEPT [802372:713893579]
-A INPUT -s 202.142.24.179 -j DROP
-A INPUT -s 117.41.228.209 -j DROP
COMMIT
# Completed on Fri May 13 14:39:36 2011
# Generated by iptables-save v1.3.8 on Fri May 13 14:39:36 2011
*nat
:PREROUTING ACCEPT [51698:5088441]
:POSTROUTING ACCEPT [16448:1044964]
:OUTPUT ACCEPT [16274:1036432]
-A PREROUTING -d 217.111.111.99 -p tcp -m tcp --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j DNAT --to-destination 192.168.5.130:80
-A PREROUTING -d ! 192.168.0.0/255.255.0.0 -i eth0 -p tcp -m multiport --dports 80 -j DNAT --to-destination 192.168.5.1:3128
-A POSTROUTING -s 192.168.5.102 -o eth4 -j MASQUERADE
-A POSTROUTING -s 10.10.10.6 -o eth4 -j MASQUERADE
-A POSTROUTING -s 192.168.100.0/255.255.255.0 -o eth4 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/255.255.0.0 -o eth1 -j MASQUERADE
-A POSTROUTING -s 10.10.0.0/255.255.0.0 -o eth1 -j MASQUERADE
-A POSTROUTING -d 192.168.2.1 -p tcp -m tcp --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j SNAT --to-source 217.111.111.99
-A POSTROUTING -d 192.168.5.103 -p tcp -m tcp --dport 1089 -j SNAT --to-source 217.111.111.99
-A POSTROUTING -d 192.168.2.3 -p tcp -m tcp --dport 2223 -j SNAT --to-source 217.111.111.99
COMMIT
# Completed on Fri May 13 14:39:36 2011



Пользователь решил продолжить мысль 13 Мая 2011, 10:49:19:
мне кажется что пинг пошёл в нужное русло. на клиенте видимо кэш маршрутов или чего, на сервере
ip route flush cacheделал неоднократно
« Последнее редактирование: 13 Мая 2011, 10:49:19 от saber »
odmin4eg.ru - Мои шпаргалки по ubuntu

Гарри Кашпировский

  • Гость
Re: Маршрутизация на 2 провайдера
« Ответ #5 : 13 Мая 2011, 10:52:52 »
Цитировать
теперь мне нужно что нужные мне клиенты ходили через этот интерфейс наружу. в iptables.up.rules у меня есть правила НАТа
В ip rule что ?

Оффлайн saber

  • Автор темы
  • Участник
  • *
  • Сообщений: 224
    • Просмотр профиля
    • Блог админа
Re: Маршрутизация на 2 провайдера
« Ответ #6 : 13 Мая 2011, 11:02:32 »
# ip rule

0:      from all lookup local
32763:  from 192.168.5.102 lookup T2
32764:  from 94.73.221.81 lookup T2
32765:  from 217.111.111.99 lookup T1
32766:  from all lookup main
32767:  from all lookup default
odmin4eg.ru - Мои шпаргалки по ubuntu

Гарри Кашпировский

  • Гость
Re: Маршрутизация на 2 провайдера
« Ответ #7 : 13 Мая 2011, 11:09:30 »
Вот и вносите в ip rule подсети, которые будут относиться той или иной таблице маршрутизации.
(Нажмите, чтобы показать/скрыть)

Оффлайн saber

  • Автор темы
  • Участник
  • *
  • Сообщений: 224
    • Просмотр профиля
    • Блог админа
Re: Маршрутизация на 2 провайдера
« Ответ #8 : 13 Мая 2011, 11:26:27 »
ещё вопрос, как сделать, чтоб все кто хочет идти к хосту (av.provider.ru -  антивирусное обновление)  ходили через цепочку Т1
odmin4eg.ru - Мои шпаргалки по ubuntu

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Re: Маршрутизация на 2 провайдера
« Ответ #9 : 13 Мая 2011, 11:30:53 »
приписать маршрут до него через 217.111.111.96
Шаг за шагом можно достичь цели.

Оффлайн saber

  • Автор темы
  • Участник
  • *
  • Сообщений: 224
    • Просмотр профиля
    • Блог админа
Re: Маршрутизация на 2 провайдера
« Ответ #10 : 13 Мая 2011, 11:49:45 »
Да действительно КЭП намекает :))

Пользователь решил продолжить мысль 13 Мая 2011, 12:03:47:
Делаю вот так, но всёравно идёт через новый шлюз.
route add 217.74.111.47 gw 217.111.111.97 eth1

таблицу надо указывать для подобных правил?
« Последнее редактирование: 13 Мая 2011, 12:03:47 от saber »
odmin4eg.ru - Мои шпаргалки по ubuntu

Оффлайн saber

  • Автор темы
  • Участник
  • *
  • Сообщений: 224
    • Просмотр профиля
    • Блог админа
Re: Маршрутизация на 2 провайдера
« Ответ #11 : 26 Мая 2011, 06:25:50 »
ещё вопрос, вот ходит маршрутизация одного клиента по таблице T2
И он перестал видеть тех ребят

192.168.100.0/24 via 10.10.10.2 dev tun0
192.168.6.0/24 via 10.10.10.2 dev tun0
192.168.5.0/24 dev eth0  proto kernel  scope link  src 192.168.5.1
192.168.4.0/24 via 10.10.10.2 dev tun0
192.168.3.0/24 via 10.10.10.2 dev tun0
192.168.2.0/24 via 10.10.10.2 dev tun0
192.168.1.0/24 via 10.10.10.2 dev tun0
192.168.0.0/24 via 10.10.10.2 dev tun0
10.10.10.0/24 via 10.10.10.2 dev tun0


вопрос почему?

то есть при попытках трассировки. он по таблице Т2 выходит во второй канал тырнета, хотя должен пойти по tun0 из Главной таблицы
odmin4eg.ru - Мои шпаргалки по ubuntu

Оффлайн Lion-Simba

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: Маршрутизация на 2 провайдера
« Ответ #12 : 26 Мая 2011, 08:12:57 »
то есть при попытках трассировки. он по таблице Т2 выходит во второй канал тырнета, хотя должен пойти по tun0 из Главной таблицы
Потому что Главная таблица им не рассматривается. У вас есть правило:
from 192.168.5.102 lookup T2
по которому этот клиент обязан руководствоваться таблицей T2. В таблице Т2 очевидно определен "шлюз по умолчанию" (маршрут на 0.0.0.0) с выходом в интеррнет. Таким образом маршрутизация любого пакета, попавшего в Т2 будет успешной и в таблицу Main согласно правилу:
from all lookup main
он просто не попадет.

Посему вариантов два:
1. Добавить маршруты на tun0 в таблцу Т2.
2. Добавить маршруты на tun0 в отдельную таблицу (скажем, TUNS) и добавить правило
from all lookup TUNS
так, чтобы оно находилось выше правил для T1 и Т2.
Оказываю индивидуальную платную техподдержку широкого профиля. Обращаться в ЛС или Jabber.

Оффлайн saber

  • Автор темы
  • Участник
  • *
  • Сообщений: 224
    • Просмотр профиля
    • Блог админа
Re: Маршрутизация на 2 провайдера
« Ответ #13 : 30 Мая 2011, 08:11:52 »
получается ещё вариант

# ip ru
0:      from all lookup local
32763:  from 192.168.5.102 lookup T2
32764:  from 94.11.111.81 lookup T2
32765:  from 217.111.111.99 lookup T1
32766:  from all lookup main
32767:  from all lookup default

В теории можно from all lookup main понять выше чем Т2 и Т1 например дать номер 1000.


по поводу предыдущего овтета, всю голову сломал, хочу добавить в т2 маршруты до тун0

Вот так добавлдяю
ip route add 192.168.100.0/24 via 10.10.10.2 dev tun0 table T2вот так пробовал
ip route add 192.168.100.0/24 dev tun0 table T2
Ничего не меняется, пакеты так и продолжают уходить наружу

odmin4eg.ru - Мои шпаргалки по ubuntu

Оффлайн Lion-Simba

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: Маршрутизация на 2 провайдера
« Ответ #14 : 30 Мая 2011, 09:17:06 »
получается ещё вариант

# ip ru
0:      from all lookup local
32763:  from 192.168.5.102 lookup T2
32764:  from 94.11.111.81 lookup T2
32765:  from 217.111.111.99 lookup T1
32766:  from all lookup main
32767:  from all lookup default

В теории можно from all lookup main понять выше чем Т2 и Т1 например дать номер 1000.
Нет, так нельзя.

Тогда все пакеты будут уходить по дефолтному маршруту из main:
...
default via 217.111.111.97 dev eth1
default via 217.111.111.97 dev eth1  metric 100
default via 94.73.221.82 dev eth4  metric 100


Вот так добавлдяю
ip route add 192.168.100.0/24 via 10.10.10.2 dev tun0 table T2
Вот так правильно. После добавления маршрута делали
ip route flush cache?
Оказываю индивидуальную платную техподдержку широкого профиля. Обращаться в ЛС или Jabber.

 

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