Как такое может быть?
Ловлю трафик при помощи MS Network Monitor на клиенте. Ловлю тот же трафик при помощи tcpdump на сервере. Сравниваю пакеты — а их содержимое разное!
Конкретно:
У меня на клиенте SIP communicator регистрируется на сервере, где крутится opensips. Для этого посылает запрос REGISTER, в котором содержатся всякие заголовки (наподобие HTTP запроса).
Так вот, заголовок Contact, в пакете, захваченном на клиенте, содержит локальный приватный ИП адрес (192.168....). А вот тот же заголовок в, казалось бы, том же пакете, захваченном на сервере, уже содержит внешний ИП адрес роутера.
У меня два возможных объяснения:
1) между клиентом и сервером работает ещё какой-то агент, о котором я не знаю и который выполняет подмены
2) сам opensips работает на таком низком уровне, что операции, выполняемые им над пакетами, становятся видны для программы tcpdump.
Меня особенно интересует второй вариант — возможен ли он? opensips позиционируется как «прокси», может быть это, как раз и означает, что он работает с пакетами как бы прямо в сетевой карте или в сети? Или это бред?
Если такое возможно, то можно ли как-то обойти это, то есть, осуществить захват пакетов до обработки в прокси?