Тинк на 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 be
10.1.6.0/24 tinc0`, а не на ip 172.16.0.5 .. таким образом, когда вы завершаете tincd и tinc0 теряет свой ip, этот маршрут не удаляется, поскольку tinc0 все еще там. Так что это переживает перезапуски Tincd или аналогичные.
Я объединю это с моим ответом позже, чтобы люди поняли проблему / рабочий процесс.