Здравствуйте.
Имеется несколько локальных сетей /24. Между сетями настроены VPN тунели. Сервер pptpd.
Для примера возьму две сети: 192.168.0.0/24 с шлюзом 192.168.0.10 (pr-mail); 192.168.4.0/24 с шлюзом 192.168.4.1 (st-mail). Шлюзы под Ubuntu Server.
pr-mail:
eth0: 192.168.0.10 ---> интерфейс в сторону локальной сети
ppp0: <Внешний адрес> ---> интерфейс в сторону провайдера
ppp1: 192.168.2.1
ppp2: 192.168.2.1
ppp3: 192.168.2.1
ppp4: 192.168.2.1
st-mail:
eth0: 192.168.4.1 ---> интерфейс в сторону локальной сети
eth1: <Внешний адрес> ---> интерфейс в сторону провайдера
eth1:1 10.20.244.54 ---> доп. адрес на сетевой для работы IP телефонии
ppp1: 192.168.2.4 --> интерферс в сторону сети 192.168.0.0/24
Клинеты из локальных сетей попадают в интернет по средствам NAT и позрачного прокси. В соседние сети пакеты просто маршрутизируются.
Клиенты одной сети могут работать по удалёнке на серверах другой сети, звонить сотрудникам по IP телефонии, копировать файлы в сетевые папки и т.д.
- RDP
- IP телефония
- SSH
- SMB-доступ к файлам
- печать на сетевые принтеры
Вопрос о приоритезации трафика стал когда начала работать IP телефония (сервер Elastix в каждой сети). Как только кто-то качает - канал занят - звук пропадает и подёргивается.
Собственно, что хотелось бы сделать и что не понятно:
Хочется сделать что бы голос был стабилен и не прерывался, закачки больших файлов не прерывали работу по SSH и RDP.
Насколько я понял из статей в интернете приоритезация настраивается для каждого интерфейса, т.е. для интерфейсов моего VPN сервера и интерфейсов локальных сетей нужно указать что-то типа порядка приоритезации: трафика:
1. VoIP
2. RDP
3. SSH
4. Other
А вот как быть с интерфейсами смотрящими в интернет?
Какие пакеты нужно использовать? Есть ли какие-нибудь практические рекомендации по данному вопросу?
ToS и QoS на маршрутизаторах Ubuntu
Модераторы: SLEDopit, Модераторы разделов
-
TonnyBennet
- Сообщения: 230
- ОС: Ubuntu Server 9.10
-
Bluetooth
- Сообщения: 4395
- Статус: Блюзовый
- ОС: Debian Squeeze amd64
-
TonnyBennet
- Сообщения: 230
- ОС: Ubuntu Server 9.10
Re: ToS и QoS на маршрутизаторах Ubuntu
Создал несколько правил на основе htb. Просто ограничить полосу пропускания получается. А вот выставление приоритета на VoIP не работает.
Как проверяю: на шлюзе pr-mail прописал несколько правил:
Интерфейс который смотрит в локальную сеть eth0:
eth0
eth0-2.full_100Mbit
eth0-2:10.voip
eth0-2:10.default
Связь с другим сервером через интерфейс ppp2
ppp2
ppp2-2
ppp2-2:10.voip
ppp2-2:20.default
На втором шлюзе прописал аналогичные правила.
Шлюз pr-mail раздаёт внешний канал в 15Мбит/с. Запускаю загрузку торента. В классе по-умолчанию eth0-2:10.default указана скорость 10Мбит/с - торент качает порядка 1,2 МБ/с - класс работает. Но если в момент закачки позвонить через IAX2 канал на другой сервер телефонии собеседника слышно прерывисто, хотя он меня слышит отлично. Т.е. мне кажется что не работает правило, и в класс voip трафик не попадает.
Подскажите пожалуйста как правильно сделать: указывать в классах только максимально допустимую скорость CEIL или указвать и гарантированную полосу? В сети многие пишут что RATE работает некорректно. По идее мне нужно выделить гарантированные полосы для ssh, VoIP, RDP а остальное можно делить по принципу: кто первый встал того и тапки.
И нужно ли писать правила для GREv1 протокола на внешнем интерфейсе шлюза? (т.к. трафик между сетями передаётся через VPN)
Как проверяю: на шлюзе pr-mail прописал несколько правил:
Интерфейс который смотрит в локальную сеть eth0:
eth0
Код:
DEFAULT=20
R2Q=1
eth0-2.full_100Mbit
Код:
RATE=100Mbit
CEIL=100Mbit
eth0-2:10.voip
Код:
RATE=2Mbit
CEIL=4Mbit
BRUST=512Kb
PRIO=1
LEAF=sfq
RULE=*:4569
eth0-2:10.default
Код:
RATE=10Mbit
CEIL=10Mbit
LEAF=sfq
PRIO=10
Связь с другим сервером через интерфейс ppp2
ppp2
Код:
DEFAULT=20
R2Q=1
ppp2-2
Код:
RATE=2Mbit
ppp2-2:10.voip
Код:
#VoIP трафик
RATE=1Mbit
CEIL=2Mbit
BRUST=512Kb
PRIO=1
LEAF=sfq
RULE=*:4569
ppp2-2:20.default
Код:
RATE=50Kbit
CEIL=2Mbit
LEAF=sfq
PRIO=5
На втором шлюзе прописал аналогичные правила.
Шлюз pr-mail раздаёт внешний канал в 15Мбит/с. Запускаю загрузку торента. В классе по-умолчанию eth0-2:10.default указана скорость 10Мбит/с - торент качает порядка 1,2 МБ/с - класс работает. Но если в момент закачки позвонить через IAX2 канал на другой сервер телефонии собеседника слышно прерывисто, хотя он меня слышит отлично. Т.е. мне кажется что не работает правило, и в класс voip трафик не попадает.
Подскажите пожалуйста как правильно сделать: указывать в классах только максимально допустимую скорость CEIL или указвать и гарантированную полосу? В сети многие пишут что RATE работает некорректно. По идее мне нужно выделить гарантированные полосы для ssh, VoIP, RDP а остальное можно делить по принципу: кто первый встал того и тапки.
И нужно ли писать правила для GREv1 протокола на внешнем интерфейсе шлюза? (т.к. трафик между сетями передаётся через VPN)
-
TonnyBennet
- Сообщения: 230
- ОС: Ubuntu Server 9.10
Re: ToS и QoS на маршрутизаторах Ubuntu
Также при компиляции и запуске htb появляется ошибка
find: warning: you have specified the -maxdepth option after a non-option argument (, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.
В сети пишут что ничего серьёзного и всё должно работать. Всё равно немного смущает.
Upd.
Нашёл решение здесь: http://kovyrin.net/2006/04/06/5min-guide-t...ux-shaping-htb/
Проблема 3:
может возникнуть предупреждение об ошибке типа:
find: warning: you have specified the -maxdepth option after a non-option argument (, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.
В данном случае зайдите в файл htb.init и уберите знак # в строке HTB_BASIC=”yes”. В моей версии это была 412-я строка.
find: warning: you have specified the -maxdepth option after a non-option argument (, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.
В сети пишут что ничего серьёзного и всё должно работать. Всё равно немного смущает.
Upd.
Нашёл решение здесь: http://kovyrin.net/2006/04/06/5min-guide-t...ux-shaping-htb/
Проблема 3:
может возникнуть предупреждение об ошибке типа:
find: warning: you have specified the -maxdepth option after a non-option argument (, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.
В данном случае зайдите в файл htb.init и уберите знак # в строке HTB_BASIC=”yes”. В моей версии это была 412-я строка.