Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: Synergie в Jun 08, 2006, 18:02



Титла: Squid + виртуални мрежови карти
Публикувано от: Synergie в Jun 08, 2006, 18:02
Имам следния проблем. На един компютър имам 1 мрежова карта с 2 IP адреса. Squid е настроен да приема incoming connections и на 2-те IP-та(както си прави по подразбиране). Проблемът е в това че когато се конектна от някой външен компютър към проксито outgoing адреса винаги ми е 1 вият от 2та(този на primary network interface). Например ако имам следните IP-та на мрежовата:

1. 192.168.0.1 - primary
2. 192.168.0.2 - secondary

И задам на външния компютър проксито да бъде 192.168.0.2 или 192.168.0.1 след това винаги излизам през 192.168.0.1. Целта ми е когато влизам през 192.168.0.2 да излизам през него. Не съм сигурен че това изобщо може да се конфигурира в Squid. Предполагам обаче че има начин да се конфигурират routing таблиците по някакъв начин. Ако някой може да ми помогне ще му бъда много благодарен.


Титла: Squid + виртуални мрежови карти
Публикувано от: nothing в Jun 08, 2006, 18:08
Сменяш си изходящия адрес с това
tcp_outgoing_address x.x.x.x acl_rule
Като ще ти смени изходящия адрес с х.х.х.х при изпълнение на acl_rule условието, което си дефинирал преди това.
Пример

acl rule1 src 123.123.123.0/255.255.255.0
tcp_outgoing_address x.x.x.x rule1

Когато влизаш в проксито от мрежа 123.123.123.0 ще излизаш с адрес х.х.х.х


Титла: Squid + виртуални мрежови карти
Публикувано от: Synergie в Jun 08, 2006, 18:18
Само че аз не питах това. Incoming address-a е адреса на който squid слуша, а не source IP-то на TCP пакета. Въпросът ми няма нищо общо с IP-то на компютъра който се опитва да се конектне към проксито. ИП-то на външния компютър може да е всякакво въпросъте е че ИП-то на проксито е 192.168.0.2 и целта ми е когато сложа за прокси това ИП на външния компютър, самото прокси да прави request-a към уеб сървъра през 192.168.0.2 а не през 192.168.0.1(което е default network interface). Пак повтарям и 2те ИП-та са на 1 мрежова. Някакви идеи?


Титла: Squid + виртуални мрежови карти
Публикувано от: nothing в Jun 08, 2006, 18:53
"самото прокси да прави request-a към уеб сървъра през 192.168.0.2 а не през 192.168.0.1"

Мисля, че точно това и написах, ако не е - не разбирам за какво става въпрос...


Титла: Squid + виртуални мрежови карти
Публикувано от: Synergie в Jun 08, 2006, 22:23
Цитат (nothing @ Юни 08 2006,19:53)
"самото прокси да прави request-a към уеб сървъра през 192.168.0.2 а не през 192.168.0.1"

Мисля, че точно това и написах, ако не е - не разбирам за какво става въпрос...

Ами не си написал това. Ти си написал че ако влизам от някаква мрежа например 192.168.0.0/24 мога да укажа да излизам от 192.168.0.2 като си направя ацл. Обаче аз винаги влизам от едно и също ИП например 192.168.0.3 и в единия случай използвам 192.168.0.2 за прокси а в другия случай 192.168.0.1. В примера който си ми дал независимо кое от 2те проксита използвам ще излизам през 192.168.0.2 защото имам нетуърк адрес 192.168.0. Обаче на мен целта ми е когато изплзвам за прокси 192.168.0.2 да излизам с това ИП и когато използвам за прокси 192.168.0.1 да излизам през него. Аз и в двата случая съм с 192.168.0.3 :xclam:


Титла: Squid + виртуални мрежови карти
Публикувано от: в Jun 09, 2006, 11:01
Цитат
Ами не си написал това. Ти си написал че ако влизам от някаква мрежа например 192.168.0.0/24 мога да укажа да излизам от 192.168.0.2 като си направя ацл. Обаче аз винаги влизам от едно и също ИП например 192.168.0.3 и в единия случай използвам 192.168.0.2 за прокси а в другия случай 192.168.0.1. В примера който си ми дал независимо кое от 2те проксита използвам ще излизам през 192.168.0.2 защото имам нетуърк адрес 192.168.0. Обаче на мен целта ми е когато изплзвам за прокси 192.168.0.2 да излизам с това ИП и когато използвам за прокси 192.168.0.1 да излизам през него. Аз и в двата случая съм с 192.168.0.3


Ами като си нагласиш през браузъра за proxy 192.168.0.1 какво се случва ? И дай инфо за netstat -an след това !


Титла: Squid + виртуални мрежови карти
Публикувано от: nothing в Jun 09, 2006, 11:57
Чрез АЦЛ правиш проверка през кое ИП влизаш.
С tcp_outgoing_address определяш кой ще ти е изходящия адрес на проксито.

Пример:
Влизам ли през 192.168.0.2?
ДА: направи ми изходящия адрес да е 192.168.0.2
НЕ: остави си всичко както е

С повече не мога да помогна :)
Предавам се.


Титла: Squid + виртуални мрежови карти
Публикувано от: Synergie в Jun 09, 2006, 14:12
Цитат (nothing @ Юни 09 2006,12:57)
Чрез АЦЛ правиш проверка през кое ИП влизаш.
С tcp_outgoing_address определяш кой ще ти е изходящия адрес на проксито.

Пример:
Влизам ли през 192.168.0.2?
ДА: направи ми изходящия адрес да е 192.168.0.2
НЕ: остави си всичко както е

С повече не мога да помогна :)
Предавам се.

Хмм честно казано оставам с впечатлението че ти самият не си наясно с АЦЛ. Ето ти какво пише като коментар в squid.conf за tcp_outgoing_address:

#  TAG: tcp_outgoing_address
#       Allows you to map requests to different outgoing IP addresses
#       based on the username or sourceaddress of the user making
#       the request.

Тука някъде да виждаш based on the incoming IP address? Incoming ip address-a ти е адреса който задаваш в http_port в конфигурационния файл(на който слуша squid). Sourceaddress е ИП-то на компютъра от което се конектваш към проксито :xclam: Разбираш ли каква е разилката между Incoming и Source address? В примера Incoming адреса e 192.168.0.2 а source address-a е 192.168.0.3. Целта е outgoing адреса да бъде също .2 а не .1 както се оказва на практика(или .1 когато incominga e .1).


Иначе, когато се конектвам към 192.168.0.1 излизам през него защото това е default IP-to. Същото се вижда и в routing таблицата. Аз мога да я модифицирам така че да излизам през друго ИП. Например мога да сложа винаги да излизам през .2 но това не ми върши работа защото в този случай като използвам 192.168.0.1 за прокси ще излизам през 192.168.0.2.


Титла: Squid + виртуални мрежови карти
Публикувано от: Synergie в Jun 09, 2006, 17:26
Разбрах как става цялата работа :D. Лошото е че малко ще се изгърбя. От къде започна всичко - ако все пак на някого му е интересно. В tinyproxy-то когато задам outgoing address 0.0.0.0 то автоматично селектира адреса на който съм се свързал да бъде адреса през който излизам. Очаквах нещо подобно в squid и докато се водех по инерцията не разгледах добре типовете АЦЛ. Та този който ми върши работа е acl aclname myip :crazy:. Лошото в случая е че излиза че трябав да направя по един ацл за всяко ИП. Ако някой се сеща друг начин ще се радвам да го сподели :)