Пересылка трафика с сетевого интерфейса на интерфейс нулевого уровня

Пересылка трафика с сетевого интерфейса на интерфейс нулевого уровня

Среда

  • Ubuntu 18.04.3 LTS
  • ZeroTier 1.4.6 (последний стабильный пакет)
  • Wine 4.17 (последний пакет разработки)

Я пытаюсь организовать сеанс Red Alert 3 LAN (используя Wine) на своей системе и хотел бы использовать zerotier, поскольку я использую настройку CGNAT.

Zerotier отлично работает, подключаясь к другим системам в той же сети (zerotier). Но я не могу видеть других игроков в сетевом лобби. Используя Wireshark, я смог обнаружить, что пакеты udp, необходимые RA3 для правильной работы, передавались только на интерфейс LAN и вообще не пересылались на сетевой интерфейс zerotier.

Моя следующая попытка(и) заключалась в использовании инструмента, заставляющего Wine использовать интерфейс нулевого уровня.

  1. небольшая программа связывания на языке C, которую можно загрузить с помощью LD_PRELOAD
  2. использование скрипта для создания пространств имен и привязки к ним интерфейсов
  3. используя firejail

    Причины, по которым они потерпели неудачу в том же порядке:

  4. Потому что он не поддерживал UDP

  5. Поначалу это работало. Но это было нестабильно и непоследовательно. Иногда другой игрок видел меня в лобби, но я не мог видеть его. А иногда было наоборот. Кроме того, мне приходилось запускать это как root, что не очень хорошо при использовании Wine. Так что эта опция не помогла, но помогла мне понять несколько вещей.
  6. Он смог привязаться к этому интерфейсу, но, к сожалению, я не смог использовать тот же IP (он генерирует другой IP в той же подсети), и я не получил вывод, как при использовании варианта № 2. Я даже попытался добавить IP-адрес в сетевой интерфейс нулевого уровня из my.zerotier.comпользовательского интерфейса. Это не помогло.

Кроме этого я пробовал много конфигураций iptables, но это не помогло. Я также включил пересылку ipv4 через sysctl. Я все еще думаю, что это можно решить через iptables.Этотэто последняя попытка, которую я имею на данный момент (в виде bash-скрипта)

Связанный контент