Распределение Трафика

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Распределение Трафика

Непрочитанное сообщение terminus » 2009-11-02 18:26:53

Я переделал пример - перенес обработку шейпера на внутренний интерфейс а обраьотку сквида на внешний. Теперь они не будут друг другу мешать.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.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/

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Распределение Трафика

Непрочитанное сообщение terminus » 2009-11-02 18:43:30

:ROFL:
Да ёлы-палы! я не могу больше - теперь новая проблема - сквид же в интернет будет ходить без ограничений и клиент "зарезанный" под 1 мбит будет получать этот мегабит от сквида, а сам сквид будет качать на всю катушку так как его IP нигде не шейпется! :st:

че-то совсем я запарился блин. Надо бы подумать как все это красивее сделать. :fool: :pardon:

---

в общем я не знаю как сквид взаимодействует с трафиком клиента который он перехватывает. Он меняет в этом трафике IP отправителя на свой или нет?
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Nick_mad
сержант
Сообщения: 280
Зарегистрирован: 2008-05-30 12:16:02
Откуда: Киев
Контактная информация:

Re: Распределение Трафика

Непрочитанное сообщение Nick_mad » 2009-11-02 18:56:28

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

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: Распределение Трафика

Непрочитанное сообщение Gamerman » 2009-11-02 19:01:22

Nick_mad писал(а):смотрел только что вывод trafshow на внешнем интерфейск нету ни одного внутреннего ип значит меняет
Логично, что меняет, иначе, какой с него смысл тогда?
Можно резать отдельно трафик для сквида, плюс самим сквидом для своих клиентов.
Глюк глюком вышибают!

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Распределение Трафика

Непрочитанное сообщение terminus » 2009-11-02 19:06:43

Получается интересная ситуация. Как ни крути. Даже, если разделить сквид и шейпер на две независимые машины то будет та же проблема:

Если шейпер стоит до сквида то не получиться ограничить скорость загрузки по HTTP так как сквид будет качать со всей скоростью канала а потом отдавать трафик клиенту через шейпер но это бесполезно...

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

:unknown:
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: Распределение Трафика

Непрочитанное сообщение Gamerman » 2009-11-02 19:13:11

У мене, думаю, была немного похожая ситуация. Хотелось ограничить скорость самого сквида, плюс клиентам со сквида. Ну и себе любимому ничего не ограничивать и сквид не использовать.
Ограничивать сам свид пришлось из-за того, что уж сильно он мне трафик забивал, когда другие в инете были.

Таким образом ограничил сам сквид. Для ограничение от сквида было 2 варианта:
1. ipfw
2. squid pools.

Выбрал первый вариант. Но у меня не было мира и Украины, так что все намного проще.
Хотя, если в сети забацать 2 сквида, один для мира, а другой дял Украины, сделать правила форвардинга согласно таблиц, то должно получиться.
Глюк глюком вышибают!

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Распределение Трафика

Непрочитанное сообщение terminus » 2009-11-02 19:21:18

ну тогда можно подшаманить и оганичить довнлоад сквида - попробовать загнать его трафик в отдельный пайп для мира и отдельный пайп для Украины, но тогда возникает проблема, что или мы зарезаем ему заграницу в 1мбит и все клиенты из всех четырех групп живут с этим, или мы даем ему 5 мбит, но тогда мы не укладываемя в поставленное условие.

низадача... :unknown:
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

utf450
рядовой
Сообщения: 16
Зарегистрирован: 2009-10-15 12:08:19

Re: Распределение Трафика

Непрочитанное сообщение utf450 » 2009-11-04 0:45:31

Вот пример, правда для ADSL надо было и на чел. всего 3-х в основном для торрента

Код: Выделить всё

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
Я тут кое что убрал, но я уже доработал, если нужно строже то пакеты я помечал tagged, так лучше работает.
Если народу много то лучше таблицами или с помощью 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
Тогда конечно squid все заберет.

Nick_mad
сержант
Сообщения: 280
Зарегистрирован: 2008-05-30 12:16:02
Откуда: Киев
Контактная информация:

Re: Распределение Трафика

Непрочитанное сообщение Nick_mad » 2009-11-17 16:46:19

А есть спецы по 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
а дальше те пулы что уже есть

Будет работать такая схема?