Распределение Трафика
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: Распределение Трафика
Я переделал пример - перенес обработку шейпера на внутренний интерфейс а обраьотку сквида на внешний. Теперь они не будут друг другу мешать.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: Распределение Трафика
Да ёлы-палы! я не могу больше - теперь новая проблема - сквид же в интернет будет ходить без ограничений и клиент "зарезанный" под 1 мбит будет получать этот мегабит от сквида, а сам сквид будет качать на всю катушку так как его IP нигде не шейпется!
че-то совсем я запарился блин. Надо бы подумать как все это красивее сделать.
---
в общем я не знаю как сквид взаимодействует с трафиком клиента который он перехватывает. Он меняет в этом трафике IP отправителя на свой или нет?
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
-
- сержант
- Сообщения: 280
- Зарегистрирован: 2008-05-30 12:16:02
- Откуда: Киев
- Контактная информация:
Re: Распределение Трафика
смотрел только что вывод trafshow на внешнем интерфейск нету ни одного внутреннего ип значит меняет
- Gamerman
- капитан
- Сообщения: 1723
- Зарегистрирован: 2009-05-17 21:01:23
- Откуда: Украина, Ужгород - Днепр
- Контактная информация:
Re: Распределение Трафика
Логично, что меняет, иначе, какой с него смысл тогда?Nick_mad писал(а):смотрел только что вывод trafshow на внешнем интерфейск нету ни одного внутреннего ип значит меняет
Можно резать отдельно трафик для сквида, плюс самим сквидом для своих клиентов.
Глюк глюком вышибают!
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: Распределение Трафика
Получается интересная ситуация. Как ни крути. Даже, если разделить сквид и шейпер на две независимые машины то будет та же проблема:
Если шейпер стоит до сквида то не получиться ограничить скорость загрузки по HTTP так как сквид будет качать со всей скоростью канала а потом отдавать трафик клиенту через шейпер но это бесполезно...
Если сквид поставить до шейпера то мы получим, что шейпер бесполезен так как трафик пойдет только на IP сквида и ограничить скорость загрузки можно только для него, но не для клиента который за ним.
Если шейпер стоит до сквида то не получиться ограничить скорость загрузки по HTTP так как сквид будет качать со всей скоростью канала а потом отдавать трафик клиенту через шейпер но это бесполезно...
Если сквид поставить до шейпера то мы получим, что шейпер бесполезен так как трафик пойдет только на IP сквида и ограничить скорость загрузки можно только для него, но не для клиента который за ним.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
- Gamerman
- капитан
- Сообщения: 1723
- Зарегистрирован: 2009-05-17 21:01:23
- Откуда: Украина, Ужгород - Днепр
- Контактная информация:
Re: Распределение Трафика
У мене, думаю, была немного похожая ситуация. Хотелось ограничить скорость самого сквида, плюс клиентам со сквида. Ну и себе любимому ничего не ограничивать и сквид не использовать.
Ограничивать сам свид пришлось из-за того, что уж сильно он мне трафик забивал, когда другие в инете были.
Таким образом ограничил сам сквид. Для ограничение от сквида было 2 варианта:
1. ipfw
2. squid pools.
Выбрал первый вариант. Но у меня не было мира и Украины, так что все намного проще.
Хотя, если в сети забацать 2 сквида, один для мира, а другой дял Украины, сделать правила форвардинга согласно таблиц, то должно получиться.
Ограничивать сам свид пришлось из-за того, что уж сильно он мне трафик забивал, когда другие в инете были.
Таким образом ограничил сам сквид. Для ограничение от сквида было 2 варианта:
1. ipfw
2. squid pools.
Выбрал первый вариант. Но у меня не было мира и Украины, так что все намного проще.
Хотя, если в сети забацать 2 сквида, один для мира, а другой дял Украины, сделать правила форвардинга согласно таблиц, то должно получиться.
Глюк глюком вышибают!
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: Распределение Трафика
ну тогда можно подшаманить и оганичить довнлоад сквида - попробовать загнать его трафик в отдельный пайп для мира и отдельный пайп для Украины, но тогда возникает проблема, что или мы зарезаем ему заграницу в 1мбит и все клиенты из всех четырех групп живут с этим, или мы даем ему 5 мбит, но тогда мы не укладываемя в поставленное условие.
низадача...
низадача...
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
-
- рядовой
- Сообщения: 16
- Зарегистрирован: 2009-10-15 12:08:19
Re: Распределение Трафика
Вот пример, правда для ADSL надо было и на чел. всего 3-х в основном для торрента
Я тут кое что убрал, но я уже доработал, если нужно строже то пакеты я помечал tagged, так лучше работает.
Если народу много то лучше таблицами или с помощью VPN + MPD+PF+скрипт, хотя если все статично, то смотрите сами.
для squid ничего делать не надо все режется с помощью PF. Если конечно не пропишите так.
Тогда конечно squid все заберет.
Код: Выделить всё
ext_if = "rl0"
int_if = "rl1"
icmp_types="echoreq"
local_net = "192.168.1.0/24"
direktor_ip = "192.168.1.10"
user1_ip = "192.168.1.11"
ukr_ip="{ x.x.0.0/16, дальше сами }"
################ Options ####################
# Timeout Options
set skip on lo0
set optimization aggressive
set loginterface $ext_if
set block-policy drop
set require-order yes
################ Normaliztation ############################
scrub on $ext_if all random-id min-ttl 254 max-mss 1452 reassemble tcp fragment reassemble
## max-mss 1452 (для ADSL)
################ Queueing EXT_IF ##################################
altq on $ext_if bandwidth 1024Kb hfsc queue { ack, dns, def }
queue ack bandwidth 20% priority 7 qlimit 500 hfsc (realtime 20%)
queue dns bandwidth 5% priority 6 qlimit 500 hfsc (realtime 5%)
queue def bandwidth 75% priority 5 qlimit 2000 hfsc (linkshare 25%) { q_http, q_http_ukr, q_torent }
queue q_http bandwidth 10% priority 3 qlimit 300 hfsc (realtime 10%)
queue q_http_ukr bandwidth 20% priority 4 qlimit 300 hfsc (realtime 20%)
queue q_torent bandwidth 1% priority 0 qlimit 500 hfsc (upperlimit 90% default)
################ Queueing INT_IF ##################################
altq on $int_if hfsc bandwidth 100Mb queue { local_net, inet_ext }
queue local_net bandwidth 98Mb hfsc (default)
queue inet_ext bandwidth 960Kb hfsc { director_down, user1_down, direktor_down_ukr, user1_down_ukr }
queue direktor_down bandwidth 10% hfsc (upperlimit 20%)
queue user1_down bandwidth 10% hfsc (upperlimit 20%)
queue direktor_down_ukr bandwidth 50% hfsc (upperlimit 95%)
queue user1_down_ukr bandwidth 50% hfsc (upperlimit 95%)
################ Translation ###############################
nat on from !($ext_if) to any -> $ext_if
################ Filtering #################################
# loopback
#antispoof log quick for lo0 inet
#pass quick on lo0 all
# block inet6
block in quick inet6
# silently drop broadcasts cable modem noise
block in quick on $ext_if from any to 255.255.255.255
# block and log everything by default
block log on $ext_if all
# block anything coming from source we have no back routes for
block in from no-route to any
# Block and log outgoing packets that don't have our address as source,
# they are either spoofed or something is misconfigured NAT disabled,
# (for instance), we want to be nice and don't send out garbage.
block out log quick on $ext_if from ! $ext_if to any
block on $int_if all
# pass out all ICMP connections and keep state
pass inet proto icmp all icmp-type $icmp_types keep state
############### OUT EXT ##################
pass out quick on $ext_if inet proto { udp tcp } from ($ext_if) to any port 53 keep state queue (dns)
pass out quick on $ext_if from ($ext_if) to $ukr_ip flags S/SA modulate state queue (q_http_ukr, ack)
pass out on $ext_if from ($ext_if) to any flags S/SA modulate state queue (q_http, ack)
pass out on $ext_if proto tcp from ($ext_if) to any port >1024 flags S/SA modulate state queue (q_torent, ack)
############### IN EXT ##################
pass quick on $int_if from $direktor_ip to $ukr_ip queue direktor_down_ukr
pass quick on $int_if from $user1_ip to $ukr_ip queue user1_down_ukr
pass on $int_if from $direktor_ip to any queue direktor_down
pass on $int_if from $user1_ip to any queue user1_down
### Если надо с локалки что-то #####
pass quick on $int_if proto tcp from $local_net to $local_net port { 22, 53, 80 } queue local_net
Если народу много то лучше таблицами или с помощью VPN + MPD+PF+скрипт, хотя если все статично, то смотрите сами.
для squid ничего делать не надо все режется с помощью PF. Если конечно не пропишите так.
Код: Выделить всё
pass quick on $int_if proto tcp from $local_net to $local_net port { 22, 53, 80, 3128 } queue local_net
-
- сержант
- Сообщения: 280
- Зарегистрирован: 2008-05-30 12:16:02
- Откуда: Киев
- Контактная информация:
Re: Распределение Трафика
А есть спецы по squid, подскажите. Есть вот такое, как подправить к выполнению задачи (конфиг не весь)
так может первым (по списку) поставить пул который принимает укр трафик без ограничения типа так
а дальше те пулы что уже есть
Будет работать такая схема?
Код: Выделить всё
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl intranet src 10.10.10.0/255.255.255.0
acl mayak src "/usr/local/etc/squid/acl/mayak" # Група 1
acl abk src "/usr/local/etc/squid/acl/abk" #Група 2
acl mayakdst src "/usr/local/etc/squid/acl/mayakdst" #Група 3
acl dir src "/usr/local/etc/squid/acl/dir" #Група 4
acl ua dst "/usr/local/etc/squid/acl/ua" #Список укр сетей
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 8443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow mayak
http_access allow abk
http_access allow mayakdst
http_access allow dir
http_access deny all
icp_access allow all
http_port 10.10.10.250:3128
hierarchy_stoplist cgi-bin ?
# DELAY POOL PARAMETERS
# -----------------------------------------------------------------------------
delay_pools 4
delay_class 1 2 #mayak
delay_access 1 allow mayak
delay_access 1 deny all
delay_parameters 1 125000/125000 -1/-1
delay_class 2 2 #abk
delay_access 2 allow abk
delay_access 2 deny all
delay_parameters 2 187000/187000 32000/2000000
delay_class 3 2 #mayakdst
delay_access 3 allow mayakdst
delay_access 3 deny all
delay_parameters 3 125000/125000 -1/-1
delay_class 4 1 #dir
delay_access 4 allow dir
delay_access 4 deny all
delay_parameters 4 187000/187000
Код: Выделить всё
delay_class 1 1 #ua-ix
delay_access 1 allow all ua #выше описан список укр сетей
delay_access 1 deny all
delay_parameters 1 12000000/12000000 #Скорость близкая к 100M/bit
Будет работать такая схема?