Jump to content
  • 0

Ограничение скорости сегмента по условию


ShadoW
 Share

Question

Всем привет! :-)

Можно ли реализовать штатными средствами следующее:

Пример:

Есть два сегмента - Домашний и Гостевой и т.д.
а) Если никого нет в Домашнем сегменте, не ограничивать скорость Гостевого сегмента.
б) ТОЛЬКО при появлении устройств(а) в Домашнем сегменте, включать ограничение скорости установленное в Гостевом сегменте.

Спасибо.

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

На пальцах и на вскидку в текущей, т.е. из коробки, не получится, а на пальцах при наличие OPKG (Entware) возможно :

1. любыми доступными средствами "arp -a" или "cat /proc/net/arp" или другими (любое устройство первым делом по текущему IP получит MAC адрес устройства) - получите записи (вам интересно IP и интерфейс)

/proc/3003/net # cat arp
IP address       HW type     Flags       HW address            Mask     Device
192.168.1.10     0x1         0x2         xx:xx:xx:xx:f5:47     *        br0
192.168.1.100    0x1         0x2         xx:xx:xx:xx:e2:a8     *        br0
/proc/3003/net # arp -a
? (192.168.1.10) at xx:xx:xx:xx:f5:47 [ether] on br0
? (192.168.1.100) at xx:xx:xx:xx:e2:a8 [ether] on br0
/proc/3003/net

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

2. тут уже можно использовать прошивку с командой "traffic-shape rate 5000" для нужного интерфейса, у вас их должно быть две для гостевого интерфейса одна с ограниченной скоростью другая убирает ее "no traffic-shape"

(config)> interface CdcEthernet0 traffic-shape rate 50000
....
(config)> interface CdcEthernet0 no traffic-shape
...
(config)> 

или так же вам понадобится использовать приложение "ndmq"

/ # ndmq -p 'interface CdcEthernet0 traffic-shape rate 50000' -P message
"CdcEthernet0" interface rate limited to 50000 kbit/s.
/ #

3. данный скрипт вписать в cron

Примечание - проблема с определением "спящих" устройств например смартфонов они в arp будут, и даже на ping будут отвечать.

Edited by vasek00
  • Thanks 1
Link to comment
Share on other sites

  • 0

Понятно конечно, что через OPKG это можно сделать, но интересно было бы это иметь так сказать из коробки.

Попробую это предложить в Теме по развитию. Может будет кому интересно и народ проголосует.

 

Но все равно спасибо! :-)

Link to comment
Share on other sites

  • 0

В общем написал скриптик (с комментариями). Приложу его сюда, может кому сгодится.

ВАЖНО:

скрипт нужно положить в /opt/script/ (если указываете другой каталог, то не забудьте изменить его путь в 3 пункте! в команде rm)

1.Для работы скрипта требуется установить следующие пакеты: bashnet-tools-arp, coreutils-date

2. Все настройки по ограничению скорости применяются до перезагрузки роутера! (конфиг текущих настроек роутера произведенных скриптом не сохраняется, кроме тех случае, когда были сделаны изменения в CLI или Web интерфейсе во время работы скрипта!!!)

3. Для правильной работы скрипта в /opt/etc/init.d/rc.unslung добавить строчку: rm /opt/script/previousSegments.txt

4. Ну и засовываем его в cron.

Все директории можно изменить сделав соответствующие поправки и в сам скрипт.

 

P.S. Там специфические настройки ограничения сегментов, которые по желанию можете изменить. Так же у скрипта есть пара параметров по работе с логом (есть справка, думаю разберетесь). Вроде все. :-)

Да, чуть не забыл, если разработчики заметят это сообщение, то одна просьбочка - может добавите в сегмент Home Ограничение скорости, как и в других сегментах, а то не очень удобно получается. 

А, ну и вторая просьбочка :-)  - все же рассмотреть предложение этого функционала, так сказать из "коробки". :-)

 

 

traffic-shape

Edited by ShadoW
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...