
Я успешно создал VTI через туннель Site-to-Site IPSec между моим домашним маршрутизатором (UBNT Edgerouter) и выделенным сервером (Ubuntu 16.04) в OVH. Я могу маршрутизировать внутренние частные сети каждой стороны через устройство VTI и получать к ним доступ на другом сайте (я могу получать доступ к устройствам частного диапазона сайта B с устройств NAT (например, с компьютера за маршрутизатором) на сайте A, и это здорово), но у меня возникла проблема с маршрутизацией публичной сети через него.
Участок A: Домашний маршрутизатор:
Основной публичный IP: 89.xx81
Частные 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.xx136
Блок публичных IP-адресов, назначенных/направленных на сервер: 51.xx128/28 (на сервере настроен только .136)
Частные IP-адреса (OVH vRack): 172.16.0.1/12
ВТИ: 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?
решение1
Ладно, я решил эту проблему самостоятельно несколько дней назад.
Участок А:
добавил маршрут для публичного IP (который я хочу направить к домашнему) черезvti0устройство
~# ip r
...
51.x.x.134 dev vti0 scope link
Участок B (выбор одного из двух вариантов):
Маршрутизация публичного IP-адреса на домашний маршрутизатор
Добавить желаемый публичный IP-адресeth0(илиvti0) устройство и создайте таблицу маршрутизации с отметкой и шлюзом по умолчанию черезvti0, затем отметьте исходящий трафикiptables.
или
Направьте публичный IP-адрес на устройство за домашним маршрутизатором
СоздатьДНКАТ: Публичный IP->NAT-устройство, а затем создать таблицу маршрутизации для шлюза по умолчанию черезvti0для выбранного NAT-устройства (весь трафик от устройства к Интернету направляется черезVPN)
Итак, я получил то, что мне было нужно. Следующий шаг — задать правильный выходной IP-адрес с сервера на сайте A (теперь трафик выходит с основного IP-адреса сервера на сайте A).
Если мое решение не является наилучшим, пожалуйста, дайте мне знать.
Есть ли другие способы реализовать мое предположение? Возможно, частный пиринг BGP станет решением??