Я успешно создал VTI через IPSec Site-to-Site туннель между моим домашним маршрутизатором (UBNT Edgerouter) и выделенным сервером (Ubuntu 16.04) в OVH. Я могу маршрутизировать внутренние частные сети каждой стороны через устройство VTI и получать к ним доступ на другом сайте (я могу получить доступ к частным устройствам диапазона сайта B с устройств с NAT (например, с компьютера за маршрутизатором) на сайте A, и это здорово), но У меня проблема с маршрутизацией через него общедоступной сети.
Сайт A: Домашний маршрутизатор:
Публичный основной IP: 89.x.x.81
Частные IP-адреса (домашние устройства с NAT): 10.100.10.1/24
ВТИ: 10.255.12.1/30
~# ip r
default via 89.x.x.1 dev eth0 proto zebra
10.100.10.0/24 dev eth1 proto kernel scope link src 10.100.10.1
10.255.12.0/30 dev vti0 proto kernel scope link src 10.255.12.1
89.x.x.0/22 dev eth0 proto kernel scope link src 89.x.x.81
172.16.0.0/12 dev vti0 proto zebra
~# ip tunnel
vti0: ip/ip remote 51.x.x.136 local 89.x.x.81 ttl inherit nopmtudisc ikey 0 okey 1234
ip_vti0: ip/ip remote any local any ttl inherit nopmtudisc key 0
Сайт B: Сервер в OVH:
Публичный IP: 51.x.x.136
Блок публичных IP-адресов, назначенных / перенаправленных на сервер: 51.x.x.128 / 28 (только .136 настроен на сервере)
Частные IP-адреса (OVH vRack): 172.16.0.1/12
VTI: 10.255.12.2/30
~# ip r
10.100.10.0/24 dev vti0 scope link
10.255.12.0/30 dev vti0 proto kernel scope link src 10.255.12.2
51.x.x.142 dev eth0 scope link
172.16.0.0/12 via 172.16.0.1 dev eth0 scope link
172.16.0.0/12 dev eth0 proto kernel scope link src 172.16.0.1
~# ip tunnel
ip_vti0: ip/ip remote any local any ttl inherit nopmtudisc key 0
vti0: ip/ip remote 89.x.x.81 local 51.x.x.136 ttl inherit nopmtudisc key 1234
Цель:
Настройте один или несколько общедоступных IP-адресов из серверного блока OVH (51.xx128 / 28) через устройство VTI на домашнем маршрутизаторе (затем я сделаю 1: 1 NAT для назначения IP-адреса серверу за маршрутизатором) или непосредственно на устройстве. по возможности за домашним роутером.
Это возможно на VTI, или я должен рассмотреть возможность перехода с VTI на GRE, а затем выполнить следующее: https://serverfault.com/a/557949 ?
Хорошо, я решил это сам несколько дней назад.
Сайт А:
добавил маршрут для общедоступного IP (который я хочу направить домой) через vti0 устройство
~# ip r
...
51.x.x.134 dev vti0 scope link
Сайт Б (на выбор один из двух вариантов):
Маршрутизация общедоступного IP-адреса к домашнему маршрутизатору
Добавить желаемый общедоступный IP-адрес в eth0(или vti0) устройство и создать таблицу маршрутов с отметкой и шлюзом по умолчанию через vti0, затем пометьте исходящий выходной трафик iptables.
или
Маршрутизация общедоступного IP-адреса на устройство за домашним маршрутизатором
Создать DNAT: Public IP-> NATed Device, а затем создать таблицу маршрутизации для шлюза по умолчанию через vti0 для выбранного устройства с NAT (весь трафик с устройства в Интернет направляется через VPN)
Итак, я получил то, что мне было нужно. Следующим шагом является установка правильного выходного IP-адреса с сервера на сайте A (теперь трафик выходит с основного IP-адреса сервера A).
Если мое решение не является лучшим, дайте мне знать.
Есть ли другие способы подтвердить мое предположение? Может быть частный пиринг BGP будет решением ??