Недавно я обнаружил существование интерфейсов Linux TUN / TAP и все еще пытаюсь понять их. Я думаю, что понял основную концепцию - создаются псевдоустройства, которые эмулируют сетевой интерфейс, и вместо передачи данных на оборудование они передаются в пользовательскую программу.
Как бы вы указали несвязанной программе использовать этот туннель?
Например, до создания туннеля моя система содержит только eth0 и lo, обычный интерфейс Ethernet (подключенный к моей локальной сети) и интерфейс обратной связи. После того, как программа создает и настраивает туннель, у меня появляется новый интерфейс gr0, которому я дал IP-адрес, который находится в моей локальной сети, но не используется (поэтому мы все в одной подсети). Как бы я заставил несвязанную программу использовать этот «туннель»? Скажем, у меня было простое клиент-серверное приложение для передачи сообщений Python, использующее TCP-соединение, как я могу настроить его для использования туннеля?
Я прошу прощения, если я упустил что-то основное, но, как обычно, мне удалось запутаться в схеме вещей. Опять же, все, что я хочу, это чтобы простая программа TCP использовала этот туннель.
Спасибо!
источник