Ответить на ваш комментарий о том, какие интерфейсы переносят локальный трафик, на самом деле сложно, потому что это зависит от того, что вы подразумеваете под локальным трафиком.
Что означает «местное»
Самое простое значение «локального трафика» - это трафик, который не покидает машину, на которой он был создан (например, две программы на одной машине общаются друг с другом). Этот трафик все идет через вот. Это то, что люди имеют в виду, когда говорят на местном (и о чем я думал, когда отвечал).
Следующим самым простым значением будет «IP-трафик, предназначенный для машин в одной подсети». Это будет трафик с адресом назначения в локальной подсети. Самым простым способом подсчета этого будет либо таблица маршрутизации (если Mac OS X подсчитывает статистику трафика по маршруту, маршруты через различные шлюзы будут давать вам нелокальный трафик), либо с помощью правила брандмауэра. Это, вероятно, не хочет, чтобы кто-то имел в виду, когда они говорят "местный трафик".
Другим значением будет «IP-трафик, предназначенный для машин в этом (физическом) расположении». Например, в моем офисе у нас есть несколько подсетей, между которыми есть маршрутизаторы, но трафик из одной подсети в другую по-прежнему явно локальный. С этим определением вам необходимы знания сети, чтобы отличать локальный трафик от нелокального.
Другим значением будет «IP-трафик, предназначенный для компьютеров в моей организации». Это разумное значение в зависимости от того, как настроена ваша сеть (например, возможно, у вас есть быстрое оптоволокно между вашими местоположениями, но ваши интернет-соединения намного медленнее, или плата за ГБ). Требует глубокого знания сети, чтобы понять, будет ли пункт назначения локальным или нет, а с такими вещами, как VPN, может изменяться со временем.
Наконец, «интернет-трафик» не является противоположностью любым из них. Иногда, например, то, что выглядит как локальный компьютер в вашем сегменте Ethernet, на самом деле через VPN, через Интернет (это не сумасшествие, это очень полезно, когда удаленным пользователям необходимо использовать различные службы Windows). Трафик внутри вашей организации может легко передаваться через Интернет VPN.
Обман в простых сетях
Если сеть очень простая, поскольку имеется только одна внутренняя подсеть, только один маршрутизатор, и весь трафик, не относящийся к этой внутренней подсети, является интернет-трафиком, вы можете обмануть и решить эту проблему. Это, вероятно, относится к подавляющему большинству домашних сетей, а также ко многим сетям малого бизнеса.
Использование правил брандмауэра
В простой сетевой настройке вы, вероятно, можете сделать некоторые предположения и получить достаточно точный ответ, считая трафик как нелокальный, если:
- MAC-адрес получателя является MAC-адресом шлюза по умолчанию; и
- IP-адрес назначения , а не IP-адрес шлюза по умолчанию
альтернативный вариант:
- IP-адрес назначения не входит в подсеть сетевого интерфейса, маршрут по умолчанию исчезает
Вероятно, вы можете создать правило брандмауэра для подсчета любого из них. По крайней мере, с Linux iptables вы можете, и я уверен, что BSD pf, и, вероятно, Mac OS X.
Альтернативный подход: SNMP
Наконец, если вы не можете использовать правило брандмауэра (так как для этого требуется root), вы можете надеяться, что шлюз по умолчанию отвечает общедоступному сообществу SNMP, изучит все его интерфейсы и найдет тот, у которого отключена подсеть. IP-адрес, а затем предположим, что это интернет-ссылка. Затем вы можете запросить у маршрутизатора счетчик трафика на этом интерфейсе.
Конечно, вы обнаружите, что многие SOHO-маршрутизаторы не поддерживают SNMP, а те, которые, вероятно, не поддерживают его.