The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Squid, определённый интерфейс для выхода в интернет"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Маршрутизация, NAT / Linux)
Изначальное сообщение [ Отслеживать ]

"Squid, определённый интерфейс для выхода в интернет"  +/
Сообщение от Sarius (ok) on 03-Апр-09, 12:41 
Здравствуйте.
На сервере есть 3 сетевых интерфейса, 2 из них для выхода в Интернет.
eth0 локальная сеть.
eth1 должен использоваться для отправки почты и сайта.
eth2 для доступа пользователей в интернет.

Доступ в интернет организован с помощью NAT и прозрачного Squid следующим образом:
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
-A POSTROUTING -o eth0 -j SNAT --to-source IP_eth2

default gw на сервере - это eth1, соответственно сквид начинает работать именно через него.
Пытался использовать в настройках squid параментр tcp_outgoing_address, но он его игнорировал.

В итоге остановился на таком решении:

iptables -A OUTPUT -t mangle -p tcp --dport 80 -j MARK --set-mark 1
ip rule add fwmark 1 table saturn.out
ip route add default via GWIP_ETH2 dev eth2 table saturn.out
ip route flush cache

Теперь трафик со squid идёт на нужный интерфейс, но остаются сомнения о верности такого решения.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Squid, определённый интерфейс для выхода в интернет"  +/
Сообщение от Nib (??) on 03-Апр-09, 15:29 
Squid можно явно указать через какой ip/интерфейс ходить наружу:
tcp_outgoing_address out_ip


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Squid, определённый интерфейс для выхода в интернет"  +/
Сообщение от Sarius (ok) on 03-Апр-09, 16:53 
>Squid можно явно указать через какой ip/интерфейс ходить наружу:
>tcp_outgoing_address out_ip

По каким-то причинам это не работает. Трафик продолжает идти по дефолтному маршруту.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Squid, определённый интерфейс для выхода в интернет"  +/
Сообщение от kam (ok) on 03-Апр-09, 22:52 
>>Squid можно явно указать через какой ip/интерфейс ходить наружу:
>>tcp_outgoing_address out_ip
>
>По каким-то причинам это не работает. Трафик продолжает идти по дефолтному маршруту.
>

Всё верно ибо маршрутизация :) Параметр сквида tcp_outgoing_address позволяет задать адрес источника, но это не означает что траффик пойдёт во второй канал автоматически. Маршрут до адреса назначения всё равно проходит через шлюз по умолчанию. Поэтому траффик во второй канал нужно заворачивать ручками и называется это Policy Based Routing. Что вы и сделали. Поэтому решение из вашего первоначального поста абсолютно верное.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Squid, определённый интерфейс для выхода в интернет"  +/
Сообщение от Oyyo on 04-Апр-09, 09:18 
>[оверквотинг удален]
>>
>>По каким-то причинам это не работает. Трафик продолжает идти по дефолтному маршруту.
>>
>
>Всё верно ибо маршрутизация :) Параметр сквида tcp_outgoing_address позволяет задать адрес источника,
>но это не означает что траффик пойдёт во второй канал автоматически.
>Маршрут до адреса назначения всё равно проходит через шлюз по умолчанию.
>Поэтому траффик во второй канал нужно заворачивать ручками и называется это
>Policy Based Routing. Что вы и сделали. Поэтому решение из вашего
>первоначального поста абсолютно верное.

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

было бы удобней назначить дефолтный маршрут через eth2
а для отправки почты и чегото там "сайта" завернуть на eth1

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "Squid, определённый интерфейс для выхода в интернет"  +/
Сообщение от mercury email on 28-Май-11, 15:50 
>>Squid можно явно указать через какой ip/интерфейс ходить наружу:
>>tcp_outgoing_address out_ip
> По каким-то причинам это не работает. Трафик продолжает идти по дефолтному маршруту.

Если физически каналы находятся в разных сетевых картах, то надо настраивать хитрую маршрутизацию. Без хитрой маршрутизации получится лишь в том случае, если повесить на одну сетевую карту 2 IP этих каналов и выбирать, через какой IP работать вашим сервисам.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Squid, определённый интерфейс для выхода в интернет"  +/
Сообщение от Max email(??) on 03-Апр-11, 16:23 
>[оверквотинг удален]
> через него.
> Пытался использовать в настройках squid параментр tcp_outgoing_address, но он его игнорировал.
> В итоге остановился на таком решении:
> iptables -A OUTPUT -t mangle -p tcp --dport 80 -j MARK --set-mark
> 1
> ip rule add fwmark 1 table saturn.out
> ip route add default via GWIP_ETH2 dev eth2 table saturn.out
> ip route flush cache
> Теперь трафик со squid идёт на нужный интерфейс, но остаются сомнения о
> верности такого решения

А можно поподробнее о том, как это сделать???

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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