1

У меня есть сотовый интернет с AT & T. Все подключаются к точке доступа Wi-Fi, к которой мой Raspberry Pi подключен как сервер DNS/DCHP/Gateway.

На моем Pi я использую dnsmasq, чтобы дать каждому устройству статический IP-адрес, если он есть в списке. Затем я использую iptables, чтобы установить правила для каждого устройства (для подсчета пропускной способности и ограничения, если оно закончилось), это пример двух устройств.

Chain FORWARD (policy ACCEPT)
target     prot opt source             destination
usb-w      all  --  0.0.0.0/0          192.168.1.3
usb-w      all  --  192.168.1.3        0.0.0.0/0       MAC 00:11:22:33:44:55
tab        all  --  0.0.0.0/0          192.168.1.4
tab        all  --  192.168.1.4        0.0.0.0/0       MAC 66:77:88:99:AA:BB
Local      all  --  0.0.0.0/0          0.0.0.0/0

Chain Local (2 references)
target     prot opt source               destination
ACCEPT     all  --  192.168.1.0/24       192.168.1.0/24
REJECT     all  --  192.168.1.0/24       0.0.0.0       reject-with icmp-port-unreachable

Chain usb-w (2 references)
target     prot opt source               destination
Local      all  --  0.0.0.0/0            0.0.0.0/0

Chain tab (2 references)
target     prot opt source               destination
ACCEPT      all  --  0.0.0.0/0            0.0.0.0/

В сценарии PHP я регистрирую количество байтов пользовательских таблиц и обнуляю его. Если устройство превысило установленный предел, то таблица пользователей изменится на Локальную таблицу. Это работало хорошо некоторое время.

Тогда два месяца назад мы начали идти над шапкой AT & T много. Проходя этап устранения неполадок, я обнаружил, что, например, я записал 10 ГБ использования, но AT & T и их интернет-устройство говорят, что я использовал 20 ГБ.

После разговора с ними по телефону (говорят, что это я) я запустил тест загрузки. Я загрузил файл debian-live-8.4.0-i386-cinnamon-desktop.iso с сайта Debian, подключенного напрямую к устройству AT & T и снова подключенного к pi. И я узнал, что мой Пи использует двойные данные.

Так как я могу решить это? Получение платы за перерасход дорого, в этом месяце счет составляет более 600 долларов.

1 ответ1

0

Для меня нет ничего очевидного в твоих правилах. Я собирался опубликовать это как комментарий, но это слишком долго.

Я бы подошел к этому иначе - попробуйте использовать wireshark на сетевой карте, которая подключается к телефону.

Выключите все устройства, использующие сеть, и отправляйте и получайте, начиная с отдельных пакетов. Я предлагаю пинг с установленной полезной нагрузкой, используя флаг -s в Linux; Я не помню флаг окон. Отправьте известный пакет, получите пакет обратно и проверьте ваш сценарий и Wireshark на наличие расхождений. Если есть что-то, что вы сможете увидеть в Wireshark, если вы передаете 2x, получаете 2x или у вашего php-скрипта есть проблемы. При необходимости увеличьте размер переноса до большего, но известного значения. При необходимости переключитесь с ping на ftp или http, так как проблема может зависеть от протокола. например, ICMP и UDP не требуют соединения, а TCP - нет - TCP может запрашивать повторные передачи на уровне протокола, два других - нет (UDP может, но на уровне приложения)

У Wireshark должен быть «верный» ответ, если только у самого телефона нет проблем с повторной передачей. У вас, вероятно, есть инструмент измерения данных на телефоне, сбросьте его перед этим тестированием, чтобы увидеть, начинает ли он значительно отделяться от вашего подсчета wireshark и php.

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

Если вы соберете эти данные, то, скорее всего, ответ будет представлен сам, но если не опубликовать результаты.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .