Тинк на OPNsense

Имея такой вид сетевого макета https://imgur.com/rhLepAU я могу заставить его работать, используя mode=switch с tinc, но не используя mode=routed

Это детали сети

На кванте это маршруты / конфиг (подсказка, внешний IP был скрыт до 1.1.1.1)

netstat -rn4
Routing tables

Internet:
Destination        Gateway            Flags     Netif Expire
default            1.1.1.1     UGS      vtnet0
8.8.8.8            1.1.1.1     UGHS     vtnet0
10.1.5.0/24        link#2             U        vtnet1
10.1.5.1           link#2             UHS         lo0
10.1.6.0/24        tinc0              US        tinc0
127.0.0.1          link#4             UH          lo0
172.16.0.0/24      link#7             U         tinc0
172.16.0.5         link#7             UHS         lo0
1.1.1.0/29  link#1             U        vtnet0
1.1.1.1     link#1             UHS         lo0


ifconfig vtnet1 | grep inet
    inet 10.1.5.1 netmask 0xffffff00 broadcast 10.1.5.255

ifconfig tinc0 | grep inet
    inet 172.16.0.5 netmask 0xffffff00 broadcast 172.16.0.255

с этой записью хоста Tinc

Address=1.1.1.1 655
Subnet=10.1.5.0/24
Cipher=aes-256-cbc
Digest=sha256
-----BEGIN RSA PUBLIC KEY-----
...
-----END RSA PUBLIC KEY-----

на ракете (подсказка, внешний ip был запутан до 2.2.2.2)

netstat -rn4
Routing tables

Internet:
Destination        Gateway            Flags     Netif Expire
default            2.2.2.2      UGS      vtnet0
8.8.8.8            2.2.2.2      UGHS     vtnet0
10.1.5.0/24        tinc0              US        tinc0
10.1.6.0/24        link#2             U        vtnet1
10.1.6.1           link#2             UHS         lo0
2.2.2.0/29   link#1             U        vtnet0
2.2.2.2      link#1             UHS         lo0
127.0.0.1          link#4             UH          lo0
172.16.0.0/24      link#7             U         tinc0
172.16.0.6         link#7             UHS         lo0

ifconfig vtnet1 | grep inet
    inet 10.1.6.1 netmask 0xffffff00 broadcast 10.1.6.255

ifconfig tinc0 | grep inet
    inet 172.16.0.6 netmask 0xffffff00 broadcast 172.16.0.255

с этой записью хоста Tinc

Address=2.2.2.2 655
Subnet=10.1.6.0/24
Cipher=aes-256-cbc
Digest=sha256
-----BEGIN RSA PUBLIC KEY-----
...
-----END RSA PUBLIC KEY-----

Более подробная информация

При выполнении ping -S 10.1.5.1 10.1.6.1 от квантовой до ракетной, я вижу на FW, что пакет ICMP проходит через брандмауэр, но никогда не достигает ракеты, блока или прохода.

Вопрос

Что не так с моей настройкой, почему не работает режим mode=routed?

1 ответ

Решение

Обдумав это некоторое время, я обнаружил, что две проблемы, которые сложились, удерживали меня от более раннего решения:

1. Это на самом деле opnsense вещь

Это то, что у меня было / вам понадобится:для обоих

  • Установите https://github.com/EugenMayer/tinc-opnsense, см. README
  • Следуйте инструкциям, чтобы создать свою сеть, используйте /usr/local/etc/tinc/example как шаблон, если вам нравится

квант

  • Вам необходимо создать Gateway Rocket, который настроен на прохождение tinc0 с помощью "dynamic" (не вводите поле IP на Gateway, см. Проблему ниже и ОБНОВЛЕНИЕ)
  • Вам нужен маршрут до 10.1.6.0/24 через TINCGW
  • Добавьте ваш интерфейс tinc0 в раздел Interface, назовите его TINCLAN. Вы можете настроить IPv4-адрес или нет, не имеет значения. Если вы это сделаете, используйте ваш сконфигурированный адрес. Это позволило вам создать правила FW для TINCLAN, которые нам понадобятся. Подсказка: интерфейс был создан как tinc0, а не как tun0, так как иначе вы не могли бы добавить его в opnsense, так как все tun* отфильтрованы (устаревшая ошибка)
  • Правило FW, чтобы разрешить TINCLAN 2 TINCLAN
  • Правило FW для предоставления доступа к локальной сети TINCLAN 2 ( Lan 10.1.5.0/24)

ракета

  • Вам необходимо создать Gateway Rocket, который настроен для прохождения tinc0 с помощью "dynamic" (не вводите IP-адрес в поле "Gateway", проблема ниже и ОБНОВЛЕНИЕ)
  • Вам нужен маршрут до 10.1.5.0/24 через TINCGW
  • Добавьте ваш интерфейс tinc0 в раздел Interface, назовите его TINCLAN. См квант выше
  • Правило FW "dest TINCLAN" на вкладке TINCLAN, чтобы разрешить TINCLAN 2 TINCLAN
  • ПРАВИЛО FW "dest LAN" на вкладке TINCLAN, чтобы разрешить TINCLAN 2 LAN ( Lan - 10.1.6.0/24)

Проблема с этим / одурачил меня: когда вы перезапускаете tincd, интерфейс tinc0 теряет свой IP и маршрут удаляется автоматически, запуск tincd не будет их читать. Либо вам нужно opnsense, чтобы заставить их повторно применить, перезапустить сервер или, скорее всего, но эти маршруты в нерабочее время. И все же найти идеальное решение для этого я не закончил, но, возможно, это также выходит за рамки этого вопроса.

Когда вы запустили tincd и установили Route после этого, все должно работать.

2. Опечатка, не важно (глупый второй вопрос, но преподал мне урок)

Я на самом деле поместил подсеть 10.0.6.0 / 24, а не 10.1.6.0/24 в файл rocket hosts/rocket - который блокировал пакеты на уровне tinc

ОБНОВЛЕНИЕ 1

Наконец, я также решил проблему сбоя / очевидной настройки для 1. Что вам нужно, так это

  • При создании шлюза TINCGW не вводите IP-адрес шлюза в поле "Шлюз", поэтомуs dynamic. This way the route is created to be10.1.6.0/24 tinc0`, а не на ip 172.16.0.5 .. таким образом, когда вы завершаете tincd и tinc0 теряет свой ip, этот маршрут не удаляется, поскольку tinc0 все еще там. Так что это переживает перезапуски Tincd или аналогичные.

Я объединю это с моим ответом позже, чтобы люди поняли проблему / рабочий процесс.

Другие вопросы по тегам