Назад | Перейти на главную страницу

Маршрутизация шлюза по умолчанию для 2-го vlan через туннель (linux / tinc)

Исправлено: это оказалось комбинацией того, что сказал BatchyX (отсутствует маршрут 172.16.101.0/24 на удаленном конце), и tinc на удаленной стороне не удалось запустить сценарий -up (сценарий не был исполняемым).

Так что теперь все работает супер, всем спасибо за помощь :)

================================================== ===========================

Моя проблема на удивление сложна для объяснения, поэтому я разобью ее на более мелкие части, заранее извините за длинный текст :)

У меня есть сервер у хостинг-провайдера, у которого есть общедоступный IP-адрес, на этом сервере работает tinc (программное обеспечение vpn).

Дома у меня есть два vlan, VLAN1 (моя обычная подсеть для компьютеров и т. Д., За NAT) и VLAN20 для моей лаборатории vmware. Окружающая среда.

Я бы хотел настроить так, чтобы моя сеть VLAN20 могла использовать сервер у хостинг-провайдера в качестве своего шлюза (его внешний IP-адрес) вместо внешнего шлюза, который есть у меня дома.

Для этого у меня есть домашний сервер с двумя сетевыми интерфейсами, один nic на VLAN1 и один nic на VLAN20.

Допустим, у меня есть следующие IP-адреса:

Server at hosting provider:
Public IP: 123.123.123.123 (eth0)
Private IP: 10.1.0.1/24  (tun0)

Network at home:
VLAN1 - 192.168.1.0/24  (.1 is the gateway)
VLAN20 - 172.16.101.0/24

Network on server at home:
NIC1 (VLAN1) - 192.168.1.50/24 (eth0)
NIC2 (VLAN20) - 172.16.101.1/24 (eth1)
Tunnel - 10.1.0.2/24 (tun0)

Я настроил tinc, так что мой домашний сервер работает через туннель, я могу пинговать 10.1.0.1 с домашнего сервера и 10.1.0.2 с сервера у хостинг-провайдера.

В дополнение к этому я настроил так, что домашний сервер использует туннель для шлюза по умолчанию, все это работает с фактического домашнего сервера, моя проблема в том, что я не могу получить клиентов в сети VLAN20 для доступа в Интернет.

Проблема в том, что я не могу понять, как настроить маршрутизацию так, чтобы сеть 172.16.101.0/24 использовала шлюз по умолчанию в туннеле.

Маршруты на домашнем сервере следующие:

root@home:/etc/tinc/vpn/hosts# ip route
0.0.0.0/1 dev tun0  scope link
default via 192.168.1.1 dev eth0
10.1.0.0/24 dev tun0  proto kernel  scope link  src 10.1.0.2
123.123.132.123 via 192.168.1.1 dev eth0
128.0.0.0/1 dev tun0  scope link
172.16.101.0/24 dev eth1  proto kernel  scope link  src 172.16.101.1
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.50

/ 1 добавляются, когда туннель работает с:

ip route add 0.0.0.0/1 dev $INTERFACE
ip route add 128.0.0.0/1 dev $INTERFACE

Выполнение трассировки с домашнего сервера до 8.8.8.8:

root@home:/etc/tinc/vpn/hosts# traceroute -s 10.1.0.2 8.8.8.8 -n
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  10.1.0.1  33.681 ms  33.698 ms  33.658 ms
 2  Router_At_Hosting_Provider  34.930 ms  34.907 ms  34.875 ms

Таким образом, «туннельная» подсеть (10.1.0.0) отлично работает со шлюзом по умолчанию через туннель.

Это тоже отлично работает:

root@home:/etc/tinc/vpn/hosts# traceroute -s 172.16.101.1 10.1.0.2 -n
traceroute to 10.1.0.2 (10.1.0.2), 30 hops max, 60 byte packets
 1  10.1.0.2  0.032 ms  0.003 ms  0.005 ms

Но моя проблема в следующем:

root@home:/etc/tinc/vpn/hosts# traceroute -s 172.16.101.1 8.8.8.8 -n
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 3  * * *

Если у кого-то есть указатели на то, где я должен искать, я был бы очень признателен.

(Полный список изменений, внесенных на оба сервера после простой установки debian, находится здесь http://pastebin.com/r3Vsvycq)

Редактировать Я плохо разбираюсь в Visio, но вот моя попытка показать, что я пытаюсь настроить: http://i.stack.imgur.com/ff2R6.png (пока не могу вставить строку, потому что моя репутация недостаточно высока).

В этой конфигурации есть несколько WTF:

ip route add 0.0.0.0/1 dev $INTERFACE
ip route add 128.0.0.0/1 dev $INTERFACE

Помогите себе и замените это ip route change default dev $INTERFACE. Это удалит шлюз по умолчанию на eth1 и заменит его своим собственным. Вы также можете указать предпочтительный исходный адрес на этом маршруте, добавив src 10.1.0.2 в конце.

Если вместо этого вы хотите сохранить маршрут по умолчанию, но добавить свой собственный, просто измените метрику исходного маршрута по умолчанию на 1 или более. Когда вы добавите свой маршрут по умолчанию, он переопределит (но не уничтожит) исходный маршрут по умолчанию.

Кроме того, маршрут к 10.1.0.0/24, когда VPN работает, немного избыточен, поскольку он уже покрыт маршрутом по умолчанию.

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

default dev tun0 scope link src 10.1.0.2
default via 192.168.1.1 dev eth0 metric 1
123.123.132.123 via 192.168.1.1 dev eth0
172.16.101.0/24 dev eth1  proto kernel  scope link  src 172.16.101.1
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.50

Теперь эта таблица маршрутизации верна. Единственная проблема теперь заключается в том, что у вашего сервера нет маршрута к 172.16.101.0/24, поэтому мы попытаемся маршрутизировать его через свой открытый интерфейс. Обратный путь практически нарушен, поэтому traceroute работает, а ping - нет.

Просто добавьте маршрут на удаленном сайте к 172.16.101.0/24 через tun0, и все будет хорошо.