route2 и несколько провайдеров

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

TonnyBennet
Сообщения: 230
ОС: Ubuntu Server 9.10

route2 и несколько провайдеров

Сообщение TonnyBennet »

Здравствуйте.

На шлюзе локальной сети (UbuntuServer) настроена маршрутизация через 2-х провайдеров. Всё работает отлично. Получается запустить часть локальной сети через одного провайдера, а часть через другого. Но есть маленький вопрос:

Два провайдера. Две таблицы маршрутизации (не считая тех, что по-умолчанию). Несколько правил маршрутизации.

В каждой из таблиц есть маршрут:

Код:

127.0.0.0/8 dev lo scope link realm 6


iptables маркерует все пакеты из сети 127.0.0.0/8. Есть правило, по которому все пакеты с меткой, а соответственно из сети, 127.0.0.0/8 маршрутизировать только по одной таблице маршрутизации.

Но работает это всё как-то не так как хотелось бы. Если в таблице маршрутизации main удалить маршрут по-умолчанию, то локальные приложения перестают выходить в интернет.

Мне нужно заворачивать пакеты с локальной машины в нужную мне таблицу маршрутизации и соответственно выпускать в мир через определённого провайдера. Скажите пожалуйста как это сделать доступными средствами.
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: route2 и несколько провайдеров

Сообщение Bluetooth »

ip rule add from адрес_машины table таблица_нужного_провайдера
Спасибо сказали:
TonnyBennet
Сообщения: 230
ОС: Ubuntu Server 9.10

Re: route2 и несколько провайдеров

Сообщение TonnyBennet »

Bluetooth писал(а):
06.12.2012 21:51
ip rule add from адрес_машины table таблица_нужного_провайдера


Какой из адресов машины вписывать? 127.0.0.1? 192.168.0.10? <внешний_адрес_первого_провайдера>? <внешний_адрес_второго_провайдера>?

P.S. ip rule просматривает метки, выставленные в iptables

Код:

:~$ ip rule 0: from all lookup local 32751: from all fwmark 0x71 lookup inet_don 32752: from all fwmark 0x70 lookup inet_don 32753: from all fwmark 0x6f lookup inet_don 32754: from all fwmark 0x6e lookup inet_don 32755: from all fwmark 0x6d lookup inet_don 32756: from all fwmark 0x6c lookup inet_don 32757: from all fwmark 0x6b lookup inet_don 32758: from all fwmark 0x6a lookup inet_don 32759: from all fwmark 0x69 lookup inet_don 32760: from all fwmark 0x68 lookup inet_don 32761: from all fwmark 0x67 lookup inet_don 32762: from all fwmark 0x66 lookup inet_don 32763: from all fwmark 0x65 lookup inet_don 32764: from <внешний_адрес_второго_провайдера> lookup inet_enforta 32765: from <внешний_адрес_первого_провайдера> lookup inet_don 32766: from all lookup main 32767: from all lookup default

Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: route2 и несколько провайдеров

Сообщение Bluetooth »

TonnyBennet писал(а):
07.12.2012 16:14
Какой из адресов машины вписывать? 127.0.0.1? 192.168.0.10? <внешний_адрес_первого_провайдера>? <внешний_адрес_второго_провайдера>?

Хм. А какую машину надо завернуть на провайдера нужного? Если любую машину в локальной сети - то таким способом, как я сказал(указать ее адрес в локальной сети). А если машину которая все это маршрутизирует, то тут, наверное, лучше всего заворачивать указанием дефолтного маршрута через нужного прова в таблице машрутизации main.
Спасибо сказали:
TonnyBennet
Сообщения: 230
ОС: Ubuntu Server 9.10

Re: route2 и несколько провайдеров

Сообщение TonnyBennet »

Bluetooth писал(а):
08.12.2012 15:24
TonnyBennet писал(а):
07.12.2012 16:14
Какой из адресов машины вписывать? 127.0.0.1? 192.168.0.10? <внешний_адрес_первого_провайдера>? <внешний_адрес_второго_провайдера>?

Хм. А какую машину надо завернуть на провайдера нужного? Если любую машину в локальной сети - то таким способом, как я сказал(указать ее адрес в локальной сети). А если машину которая все это маршрутизирует, то тут, наверное, лучше всего заворачивать указанием дефолтного маршрута через нужного прова в таблице машрутизации main.


Именно ту машину, которая занимается маршрутизацией. Но опять же если верить правилам, через все правила пройдёт пакет не попавший не под одно из них он всё равно передастся в интернет т.к. под правила таблицы main попадёт каждый пакет?
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: route2 и несколько провайдеров

Сообщение Bluetooth »

TonnyBennet писал(а):
08.12.2012 15:35
Bluetooth писал(а):
08.12.2012 15:24
TonnyBennet писал(а):
07.12.2012 16:14
Какой из адресов машины вписывать? 127.0.0.1? 192.168.0.10? <внешний_адрес_первого_провайдера>? <внешний_адрес_второго_провайдера>?

Хм. А какую машину надо завернуть на провайдера нужного? Если любую машину в локальной сети - то таким способом, как я сказал(указать ее адрес в локальной сети). А если машину которая все это маршрутизирует, то тут, наверное, лучше всего заворачивать указанием дефолтного маршрута через нужного прова в таблице машрутизации main.


Именно ту машину, которая занимается маршрутизацией. Но опять же если верить правилам, через все правила пройдёт пакет не попавший не под одно из них он всё равно передастся в интернет т.к. под правила таблицы main попадёт каждый пакет?

в Вашем случае на main попадет каждый непомеченный пакет, кроме пакетов с адресов <внешний_адрес_первого_провайдера> и <внешний_адрес_второго_провайдера>.
Спасибо сказали:
TonnyBennet
Сообщения: 230
ОС: Ubuntu Server 9.10

Re: route2 и несколько провайдеров

Сообщение TonnyBennet »

А какой обратный адрес у пакета, сформированного на локальной машине? К примеру из локальной сети приходит пакет к службе прокси-сервера. У этого пакета обратный адрес - адрес компа локальной сети. Прокси-сервер формирует пакет и отправляет его в интернет. По идее у данного пакета должен быть обратный адрес того внешнего интерфейса через который он будет отправлен в интернет, что бы получатель этого пакета знал куда отправить ответ. Т.о. обратный адрес в пакете, отправленном с маршрутизатора, будет адрес внешнего интерфейса через который он ушёл. А этот адрес для маршрутизатора определяет таблица main. И если я не хочу, чтобы до таблицы не main дошли какие-нибудь посторонние пакеты, то мне в iptables нужно убивать все не промаркированные пакеты, идущие из локальной сети в интернет.

По-моему логично сформулировал.
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: route2 и несколько провайдеров

Сообщение Bluetooth »

А какой обратный адрес у пакета, сформированного на локальной машине?

В зависимости от того, через провайдера пойдет инфа, такой и будет обратный адрес.
А вот решить, через какой пойти - тут поможет шлюз по умолчанию в таблице main.

По-моему логично сформулировал.
Читается тяжело, но, кажется, все верно :)
Спасибо сказали:
TonnyBennet
Сообщения: 230
ОС: Ubuntu Server 9.10

Re: route2 и несколько провайдеров

Сообщение TonnyBennet »

К слову сказать в SQUID можно выбирать через какой внешний интерфейс отправлять запросы в мир. И эта настройка никак не зависит от маршрута по умолчанию в таблице main.
Спасибо сказали: