- Форум
- /
- IT и телекоммуникации
- /
- Конфигурация сетевого оборудования
- /
- Настройка Juniper NHTB (Next-Hop Tunnel Binding) MultiPoint IPSec VPN (VDual Hub & Spokes) + OSPF
Настройка Juniper NHTB (Next-Hop Tunnel Binding) MultiPoint IPSec VPN (VDual Hub & Spokes) + OSPF
Rendering Error in layout Widget/Social: Call to a member function exists() on null. Please enable debug mode for more information.
Меньше
Больше
- Сообщений: 50
- Спасибо получено: 15
9 года 11 мес. назад - 9 года 10 мес. назад #108
от PNV
PNV создал тему: Настройка Juniper NHTB (Next-Hop Tunnel Binding) MultiPoint IPSec VPN (VDual Hub & Spokes) + OSPF
В данной статье описывается построение IPSec VPN туннелей на основе технологии Juniper NHTB (Next-Hop Tunnel Binding) c резервированием внешних каналов передачи данных на узле Hub (Virtual Dual Hub), c использованием динамической маршрутизации OSPF между Hub и Spoke узлами.
Суть технологии Next-Hop Tunnel Binding заключается в использовании отдельной таблицы туннелей NHTB, помимо основной таблицы маршрутизации inet.0. Маршрутизатор сопоставляет эти две таблицы для направления трафика в нужный туннель.
Построение IPSec туннелей с использованием технологии NHTB даёт некоторые преимущества по сравнению с обычными IPSec туннелями:
1) Возможность использования единственного туннельного интерфейса в режиме multipoint на Hub-узле (например интерфейс st0.0 type p2mp) для построения множества VPN-туннелей с Spoke-узлами. Тогда как при постороении обычных IPSec туннелей на Hub-узле необходимо выделять отдельный туннельный интерфейс для каждого Spoke-узла, что влечет за собой аппаратаные ограничения по кол-ву используемых туннельных интерфейсов;
2) Возможность использования динамической маршрутизации между Hub и Spoke узлами (например OSPF);
А также имеет свои недостатки:
1) Использование технологии NHTB при построении туннеля возможно только, если в качестве Hub и Spoke узлов используется устройство Juniper (версия JunOS не ранее 9.5);
2) Невозможность прямого прохождения трафика Spoke-to-Spoke. Трафик между Spoke узлами всегда проходит через Hub узел (в отличии от Cisco DMVPN);
3) Необходимость создания на Hub узле отдельных IKE (IKE Gateway) и IPSec (ipsec vpn) настроек для каждого из Spoke узлов (в отличии от Cisco DMVPN, где на Hub узле создается один единственный IPSec и IKE профиль для всех Spoke узлов);
Рассмотрим по шагам настройки Hub и Spoke маршрутизаторов.
1. Настройка Hub-узла (SRX240h версия JunOS 10.4R4.5)
1.1 Настройка интерфейсов и security zones.
Создаем зоны: trust, Internet и VPN. Для зон Internet и VPN разрешаем порт IKE, для установления туннелей с Spoke-узлами. А для зоны VPN разрешаем ещё и протокол OSPF, для организации динамической маршрутизации с Spoke-узлами.
1.2 Настройка VPN-туннелей с Spoke-узлами.
Для каждого из Spoke-узлов создаем свои отдельные настройки ike gateway и ipsec vpn.
1.3 Настраиваем маршрутизацию.
При настройке OSPF необходимо учесть, что для каждого из туннельных интерфейсов st0.1 и st0.2 необходимо создавать свою ospf area, т.к. в одной и той же area c двумя туннельными интерфейсами до одних и тех же neighbors, маршрутизация работать не будет, т.е. туннельные (spokes) ospf neighbors будут постоянно переходить из состояния init -> exchange -> full -> down -> init и так далее по циклу. Вероятно это одна из недоработок версии Junos 10.4R4.5, хотя в более поздних версиях данная проблема остается. В связи с этой недоработкой придется также создавать политику для экспорта локальной подключенной сети (10.0.0.0/24) в OSPF-протокол, т.к. нельзя будет просто отнести один и тот же интерфейс локальной сети ge-0/0/3 сразу к двум OSPF area.
2. Настройка Spoke1 (Juniper SRX100b версия JunOS 10.4R9.2)
2.1 Настройка интерфейсов и security zones.
Создаем зоны: trust, Internet и VPN. Для зон Internet и VPN разрешаем порт IKE, для установления туннелей с Hub-узлом. А для зоны VPN разрешаем ещё и протокол OSPF, для организации динамической маршрутизации с Hub-узлом.
2.2 Настройка VPN-туннелей с Hub.
Для каждого из каналов до Hub-узла (ISP1 и ISP2) создаем отдельные настройки ike gateway и ipsec vpn.
2.3 Настраиваем маршрутизацию.
Настройка OSPF делается аналогично Hub-узлу, за исключением того, что экспортируем LAN Spoke1 (10.0.1.0/24). Тип туннельных интерфейсов также делаем p2mp (point-to-multipoint), хотя это и Spoke-узел, т.к. без этого OSPF работать не будет.
3. Настройка Spoke2 (Juniper SRX100b версия JunOS 10.4R9.2)
3.1 Настройка интерфейсов и security zones.
Создаем зоны: trust, Internet и VPN. Для зон Internet и VPN разрешаем порт IKE, для установления туннелей с Hub-узлом. А для зоны VPN разрешаем ещё и протокол OSPF, для организации динамической маршрутизации с Hub-узлом.
3.2 Настройка VPN-туннелей с Hub.
Для каждого из каналов до Hub-узла (ISP1 и ISP2) создаем отдельные настройки ike gateway и ipsec vpn.
3.3 Настраиваем маршрутизацию.
Настройка OSPF делается аналогично Hub-узлу, за исключением того, что экспортируем LAN Spoke2 (10.0.2.0/24). Тип туннельных интерфейсов также делаем p2mp (point-to-multipoint), хотя это и Spoke-узел, т.к. без этого OSPF работать не будет.
На этом настройка оборудования закончена, теперь можно проверять работоспособность.
4. Проверяем состояние VPN-туннелей и динамической маршрутизации.
проверка состояния IKE-туннеля (1-я фаза)проверка состояния IPSec-туннеля (2-я фаза)проверка работы NHTBпроверка состояния OSPF-neighbors и маршрутовВ таблице OSPF Spoke1 мы видим, что протокол OSPF автоматически выбрал приоритетными маршруты до удалённых локальных сетей Spoke2 и Hub ч/з интерфейс st0.1. При "падении" канала ISP1 на Hub-узле, OSPF neighbor c IP-адресом 10.254.0.1 перейдет в состояние down, и маршрутизация автоматически будет осуществляться ч/з интерфейс st0.2, т.е. по каналу ISP2 до Hub-узла. И при просмотре маршрутов на Spoke1 будет уже вот такая таблица:
Суть технологии Next-Hop Tunnel Binding заключается в использовании отдельной таблицы туннелей NHTB, помимо основной таблицы маршрутизации inet.0. Маршрутизатор сопоставляет эти две таблицы для направления трафика в нужный туннель.
Построение IPSec туннелей с использованием технологии NHTB даёт некоторые преимущества по сравнению с обычными IPSec туннелями:
1) Возможность использования единственного туннельного интерфейса в режиме multipoint на Hub-узле (например интерфейс st0.0 type p2mp) для построения множества VPN-туннелей с Spoke-узлами. Тогда как при постороении обычных IPSec туннелей на Hub-узле необходимо выделять отдельный туннельный интерфейс для каждого Spoke-узла, что влечет за собой аппаратаные ограничения по кол-ву используемых туннельных интерфейсов;
2) Возможность использования динамической маршрутизации между Hub и Spoke узлами (например OSPF);
А также имеет свои недостатки:
1) Использование технологии NHTB при построении туннеля возможно только, если в качестве Hub и Spoke узлов используется устройство Juniper (версия JunOS не ранее 9.5);
2) Невозможность прямого прохождения трафика Spoke-to-Spoke. Трафик между Spoke узлами всегда проходит через Hub узел (в отличии от Cisco DMVPN);
3) Необходимость создания на Hub узле отдельных IKE (IKE Gateway) и IPSec (ipsec vpn) настроек для каждого из Spoke узлов (в отличии от Cisco DMVPN, где на Hub узле создается один единственный IPSec и IKE профиль для всех Spoke узлов);
Рассмотрим по шагам настройки Hub и Spoke маршрутизаторов.
1. Настройка Hub-узла (SRX240h версия JunOS 10.4R4.5)
1.1 Настройка интерфейсов и security zones.
Создаем зоны: trust, Internet и VPN. Для зон Internet и VPN разрешаем порт IKE, для установления туннелей с Spoke-узлами. А для зоны VPN разрешаем ещё и протокол OSPF, для организации динамической маршрутизации с Spoke-узлами.
ВНИМАНИЕ: Спойлер!
ge-0/0/3 {
description LAN;
unit 0 {
family inet {
address 10.0.0.1/24 {
}
}
}
ge-0/0/13 {
description ISP1;
unit 0 {
family inet {
address 1.1.1.1/30 {
}
}
}
ge-0/0/14 {
description ISP2;
unit 0 {
family inet {
address 2.2.2.1/30 {
}
}
}
st0 {
unit 1 {
multipoint;
family inet {
address 10.254.0.1/24;
}
}
unit 2 {
multipoint;
family inet {
address 10.253.0.1/24;
}
}
security
zones {
security-zone trust {
host-inbound-traffic {
system-services {
all;
}
protocols {
all;
}
}
interfaces {
ge-0/0/3.0;
}
}
security-zone Internet {
host-inbound-traffic {
system-services {
ike;
ping;
}
}
interfaces {
ge-0/0/13.0;
ge-0/0/14.0;
}
}
security-zone VPN {
host-inbound-traffic {
system-services {
ping;
ike;
}
protocols {
ospf;
}
}
interfaces {
st0.1;
st0.2;
1.2 Настройка VPN-туннелей с Spoke-узлами.
Для каждого из Spoke-узлов создаем свои отдельные настройки ike gateway и ipsec vpn.
ВНИМАНИЕ: Спойлер!
security {
ike {
proposal spokes {
description spokes;
authentication-method pre-shared-keys;
dh-group group2;
authentication-algorithm sha1;
encryption-algorithm 3des-cbc;
lifetime-seconds 28800;
}
policy spokes {
mode aggressive;
description spokes;
proposals spokes;
pre-shared-key ascii-text "$9aUPfz3nC.PtO1IrlM8X-wgaZj"; ## SECRET-DATA
}
gateway Spoke1-ISP1 {
ike-policy spokes;
dynamic hostname spoke1.isp1;
external-interface ge-0/0/13;
}
gateway Spoke2-ISP1 {
ike-policy spokes;
dynamic hostname spoke2.isp1;
external-interface ge-0/0/13;
}
gateway Spoke1-ISP2 {
ike-policy spokes;
dynamic hostname spoke1.isp2;
external-interface ge-0/0/14;
}
gateway Spoke2-ISP2 {
ike-policy spokes;
dynamic hostname spoke2.isp2;
external-interface ge-0/0/14;
}
ipsec {
proposal Spokes {
description Spokes;
protocol esp;
authentication-algorithm hmac-sha1-96;
encryption-algorithm 3des-cbc;
lifetime-seconds 3600;
}
policy Spokes {
description Spokes;
perfect-forward-secrecy {
keys group2;
}
proposals Spokes;
vpn Spoke1-ISP1 {
bind-interface st0.1;
ike {
gateway Spoke1-ISP1;
ipsec-policy Spokes;
}
}
vpn Spoke2-ISP1 {
bind-interface st0.1;
ike {
gateway Spoke2-ISP1;
ipsec-policy Spokes;
}
}
vpn Spoke1-ISP2 {
bind-interface st0.2;
ike {
gateway Spoke1-ISP2;
ipsec-policy Spokes;
}
}
vpn Spoke2-ISP2 {
bind-interface st0.2;
ike {
gateway Spoke2-ISP2;
ipsec-policy Spokes;
}
}
flow {
tcp-mss {
ipsec-vpn {
mss 1350;
}
}
1.3 Настраиваем маршрутизацию.
При настройке OSPF необходимо учесть, что для каждого из туннельных интерфейсов st0.1 и st0.2 необходимо создавать свою ospf area, т.к. в одной и той же area c двумя туннельными интерфейсами до одних и тех же neighbors, маршрутизация работать не будет, т.е. туннельные (spokes) ospf neighbors будут постоянно переходить из состояния init -> exchange -> full -> down -> init и так далее по циклу. Вероятно это одна из недоработок версии Junos 10.4R4.5, хотя в более поздних версиях данная проблема остается. В связи с этой недоработкой придется также создавать политику для экспорта локальной подключенной сети (10.0.0.0/24) в OSPF-протокол, т.к. нельзя будет просто отнести один и тот же интерфейс локальной сети ge-0/0/3 сразу к двум OSPF area.
ВНИМАНИЕ: Спойлер!
routing-options {
static {
route 0.0.0.0/0 {
qualified-next-hop 1.1.1.2 {
metric 253;
}
qualified-next-hop 2.2.2.2 {
metric 254;
}
}
router-id 10.0.0.1;
}
ospf {
external-preference 110;
export Export-OSPF;
reference-bandwidth 1g;
area 0.0.0.0 {
interface ge-0/0/3;
}
area 10.254.0.0 {
interface st0.1 {
interface-type p2mp;
dynamic-neighbors;
}
}
area 10.253.0.0 {
interface st0.2 {
interface-type p2mp;
dynamic-neighbors;
policy-options {
policy-statement Export-OSPF {
term Export-Connected-Networks {
from {
protocol direct;
route-filter 10.0.0.0/24 orlonger;
}
then accept;
}
2. Настройка Spoke1 (Juniper SRX100b версия JunOS 10.4R9.2)
2.1 Настройка интерфейсов и security zones.
Создаем зоны: trust, Internet и VPN. Для зон Internet и VPN разрешаем порт IKE, для установления туннелей с Hub-узлом. А для зоны VPN разрешаем ещё и протокол OSPF, для организации динамической маршрутизации с Hub-узлом.
ВНИМАНИЕ: Спойлер!
fe-0/0/3 {
description LAN;
unit 0 {
family inet {
address 10.0.1.1/24 {
}
}
}
fe-0/0/7 {
description WAN;
unit 0 {
family inet {
address 11.1.1.1/30 {
}
}
}
st0 {
unit 1 {
multipoint;
family inet {
address 10.254.0.11/24;
}
}
unit 2 {
multipoint;
family inet {
address 10.253.0.11/24;
}
}
security
zones {
security-zone trust {
host-inbound-traffic {
system-services {
all;
}
protocols {
all;
}
}
interfaces {
ge-0/0/3.0;
}
}
security-zone Internet {
host-inbound-traffic {
system-services {
ike;
ping;
}
}
interfaces {
fe-0/0/7.0;
}
}
security-zone VPN {
host-inbound-traffic {
system-services {
ping;
ike;
}
protocols {
ospf;
}
}
interfaces {
st0.1;
st0.2;
2.2 Настройка VPN-туннелей с Hub.
Для каждого из каналов до Hub-узла (ISP1 и ISP2) создаем отдельные настройки ike gateway и ipsec vpn.
ВНИМАНИЕ: Спойлер!
security {
ike {
proposal Hub {
description Hub;
authentication-method pre-shared-keys;
dh-group group2;
authentication-algorithm sha1;
encryption-algorithm 3des-cbc;
lifetime-seconds 28800;
}
policy Hub {
mode aggressive;
description Hub;
proposals Hub;
pre-shared-key ascii-text "$9aUPfz3nC.PtO1IrlM8X-wgaZj"; ## SECRET-DATA
}
gateway HUB-ISP1 {
ike-policy Hub;
address 1.1.1.1;
dead-peer-detection {
interval 10;
threshold 2;
}
local-identity hostname spoke1.isp1
external-interface fe-0/0/7;
}
gateway HUB-ISP2 {
ike-policy Hub;
address 2.2.2.1;
dead-peer-detection {
interval 10;
threshold 2;
}
local-identity hostname spoke1.isp2
external-interface fe-0/0/7;
}
ipsec {
proposal Hub {
description Hub;
protocol esp;
authentication-algorithm hmac-sha1-96;
encryption-algorithm 3des-cbc;
lifetime-seconds 3600;
}
policy Hub {
description Hub;
perfect-forward-secrecy {
keys group2;
}
proposals Hub;
vpn Hub-ISP1 {
bind-interface st0.1;
ike {
gateway Hub-ISP1;
ipsec-policy Hub;
}
}
vpn Hub-ISP2 {
bind-interface st0.2;
ike {
gateway Hub-ISP2;
ipsec-policy Hub;
}
}
flow {
tcp-mss {
ipsec-vpn {
mss 1350;
}
}
2.3 Настраиваем маршрутизацию.
Настройка OSPF делается аналогично Hub-узлу, за исключением того, что экспортируем LAN Spoke1 (10.0.1.0/24). Тип туннельных интерфейсов также делаем p2mp (point-to-multipoint), хотя это и Spoke-узел, т.к. без этого OSPF работать не будет.
ВНИМАНИЕ: Спойлер!
routing-options {
static {
route 0.0.0.0/0 next-hop 11.1.1.2;
}
router-id 10.0.1.1;
}
ospf {
external-preference 110;
export Export-OSPF;
reference-bandwidth 100m;
}
area 10.254.0.0 {
interface st0.1 {
interface-type p2mp;
dynamic-neighbors;
}
}
area 10.253.0.0 {
interface st0.2 {
interface-type p2mp;
dynamic-neighbors;
policy-options {
policy-statement Export-OSPF {
term Export-Connected-Networks {
from {
protocol direct;
route-filter 10.0.1.0/24 orlonger;
}
then accept;
}
3. Настройка Spoke2 (Juniper SRX100b версия JunOS 10.4R9.2)
3.1 Настройка интерфейсов и security zones.
Создаем зоны: trust, Internet и VPN. Для зон Internet и VPN разрешаем порт IKE, для установления туннелей с Hub-узлом. А для зоны VPN разрешаем ещё и протокол OSPF, для организации динамической маршрутизации с Hub-узлом.
ВНИМАНИЕ: Спойлер!
fe-0/0/3 {
description LAN;
unit 0 {
family inet {
address 10.0.2.1/24 {
}
}
}
fe-0/0/7 {
description WAN;
unit 0 {
family inet {
address 12.1.1.1/30 {
}
}
}
st0 {
unit 1 {
multipoint;
family inet {
address 10.254.0.12/24;
}
}
unit 2 {
multipoint;
family inet {
address 10.253.0.12/24;
}
}
security
zones {
security-zone trust {
host-inbound-traffic {
system-services {
all;
}
protocols {
all;
}
}
interfaces {
ge-0/0/3.0;
}
}
security-zone Internet {
host-inbound-traffic {
system-services {
ike;
ping;
}
}
interfaces {
fe-0/0/7.0;
}
}
security-zone VPN {
host-inbound-traffic {
system-services {
ping;
ike;
}
protocols {
ospf;
}
}
interfaces {
st0.1;
st0.2;
3.2 Настройка VPN-туннелей с Hub.
Для каждого из каналов до Hub-узла (ISP1 и ISP2) создаем отдельные настройки ike gateway и ipsec vpn.
ВНИМАНИЕ: Спойлер!
security {
ike {
proposal Hub {
description Hub;
authentication-method pre-shared-keys;
dh-group group2;
authentication-algorithm sha1;
encryption-algorithm 3des-cbc;
lifetime-seconds 28800;
}
policy Hub {
mode aggressive;
description Hub;
proposals Hub;
pre-shared-key ascii-text "$9aUPfz3nC.PtO1IrlM8X-wgaZj"; ## SECRET-DATA
}
gateway HUB-ISP1 {
ike-policy Hub;
address 1.1.1.1;
dead-peer-detection {
interval 10;
threshold 2;
}
local-identity hostname spoke2.isp1
external-interface fe-0/0/7;
}
gateway HUB-ISP2 {
ike-policy Hub;
address 2.2.2.1;
dead-peer-detection {
interval 10;
threshold 2;
}
local-identity hostname spoke2.isp2
external-interface fe-0/0/7;
}
ipsec {
proposal Hub {
description Hub;
protocol esp;
authentication-algorithm hmac-sha1-96;
encryption-algorithm 3des-cbc;
lifetime-seconds 3600;
}
policy Hub {
description Hub;
perfect-forward-secrecy {
keys group2;
}
proposals Hub;
vpn Hub-ISP1 {
bind-interface st0.1;
ike {
gateway Hub-ISP1;
ipsec-policy Hub;
}
}
vpn Hub-ISP2 {
bind-interface st0.2;
ike {
gateway Hub-ISP2;
ipsec-policy Hub;
}
}
flow {
tcp-mss {
ipsec-vpn {
mss 1350;
}
}
3.3 Настраиваем маршрутизацию.
Настройка OSPF делается аналогично Hub-узлу, за исключением того, что экспортируем LAN Spoke2 (10.0.2.0/24). Тип туннельных интерфейсов также делаем p2mp (point-to-multipoint), хотя это и Spoke-узел, т.к. без этого OSPF работать не будет.
ВНИМАНИЕ: Спойлер!
routing-options {
static {
route 0.0.0.0/0 next-hop 12.1.1.2;
}
router-id 10.0.2.1;
}
ospf {
external-preference 110;
export Export-OSPF;
reference-bandwidth 100m;
}
area 10.254.0.0 {
interface st0.1 {
interface-type p2mp;
dynamic-neighbors;
}
}
area 10.253.0.0 {
interface st0.2 {
interface-type p2mp;
dynamic-neighbors;
policy-options {
policy-statement Export-OSPF {
term Export-Connected-Networks {
from {
protocol direct;
route-filter 10.0.2.0/24 orlonger;
}
then accept;
}
На этом настройка оборудования закончена, теперь можно проверять работоспособность.
4. Проверяем состояние VPN-туннелей и динамической маршрутизации.
проверка состояния IKE-туннеля (1-я фаза)
root@spoke1> show security ike security-associations
Index Remote Address State Initiator cookie Responder cookie Mode
4194981 1.1.1.1 UP 298095fdc7bb5ce5 66a4d57d024cd3e0 Aggressive
4194980 2.2.2.1 UP 9986e64943fabc5f 4b7feacbc412741f Aggressive
root@spoke1> show security ipsec security-associations
Total active tunnels: 2
ID Gateway Port Algorithm SPI Life:sec/kb Mon vsys
<131073 1.1.1.1 500 ESP:3des/sha1 1d6f487f 2395/ unlim - root
>131073 1.1.1.1 500 ESP:3des/sha1 96b3b13b 2395/ unlim - root
<131074 2.2.2.1 500 ESP:3des/sha1 d5d98792 2410/ unlim - root
>131074 2.2.2.1 500 ESP:3des/sha1 f406b758 2410/ unlim - root
root@spoke1> show security ipsec next-hop-tunnels
Next-hop gateway interface IPSec VPN name Flag
10.254.0.1 st0.1 Hub-ISP1 Auto
10.253.0.1 st0.2 Hub-ISP2 Auto
root@spoke1> show ospf neighbor
Address Interface State ID Pri Dead
10.254.0.1 st0.1 Full 10.0.0.1 128 31
10.253.0.1 st0.2 Full 10.0.0.1 128 37
root@spoke1> show route protocol ospf
inet.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
10.0.0.0/24 *[OSPF/110] 02:11:35, metric 0
> to 10.254.0.1 via st0.1
10.0.2.0/24 *[OSPF/110] 02:11:35, metric 0, tag 0
> to 10.254.0.1 via st0.1
root@spoke1> show route protocol ospf
inet.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
10.0.0.0/24 *[OSPF/110] 02:11:35, metric 0
> to 10.253.0.1 via st0.2
10.0.2.0/24 *[OSPF/110] 02:11:35, metric 0, tag 0
> to 10.253.0.1 via st0.2
Последнее редактирование: 9 года 10 мес. назад пользователем PNV.
Спасибо сказали: Benderrr
Пожалуйста Войти , чтобы присоединиться к беседе.
- Вы здесь:
-
Главная
-
Форум
-
IT и телекоммуникации
-
Конфигурация сетевого оборудования
- Настройка Juniper NHTB (Next-Hop Tunnel Binding) MultiPoint IPSec VPN (VDual Hub & Spokes) + OSPF