Есть ли способ пересылать пакеты из сети A в сеть B (точно так же, как маршрутизатор) без изменения IP-адреса источника (и наоборот, из сети B в сеть A), а также без применения правил формирования трафика?
Решение должно быть реализовано во FreeBSD.
Я погуглил о формировании трафика во FreeBSD и нашел ALTQ, но я не уверен, можно ли пересылать пакеты с помощью ALTQ transparently
или не.
Если это возможно, то вполне вероятно, что я смогу настроить сеть с сервером Squid (для кеширования и более важного регистрация загрузки / выгрузки пользователя) и ALTQ (или что-то еще) для управления их пропускной способностью. Итак, моя сетевая архитектура будет:
Интернет <==> SquidServer <==> TrafficshapingServer <==> LocalNetwork
Но если TrafficShaping заменяет SourceIP пакетов своим IP-адресом, логи Squid становятся бесполезными. потому что Squid не знал, какой пакет с какого IP-адреса (весь Squid видит IP-адрес TrafficShaping)
Конечно, маршрутизаторы обычно не меняют IP-адреса источника / назначения; это делают только маршрутизаторы с NAT. Так что просто не используйте NAT, и все будет нормально.
Я не знаком с этим, но готов поспорить, что TrafficShaper, о котором вы говорите, использует NAT, в первую очередь, чтобы гарантировать возврат трафика по правильному пути. В противном случае вы, вероятно, столкнетесь с проблемой асинхронной маршрутизации, которая приведет к сбою.
Одна вещь, которую вы можете захотеть изучить, - это вставить X-Forwarded-For заголовок на сервере squid. На самом деле это немного более надежный метод отслеживания источника в среде прокси, поскольку он вставляет данные в фактические данные вместо того, чтобы полагаться на информацию заголовка IP.