Home / Şəbəkə / Cisco / EoMPLS üzərindən IPSec DMVPN qurulması
dmpvn-mpls-topology.jpeg

EoMPLS üzərindən IPSec DMVPN qurulması

Nədən danışacağıq?

Bir neçə yerdə filialları olan şirkətlərdə filialla baş ofis və ya digər obyektlərlə əlaqənin yaradılması üçün müxtəlif vasitələrdən istifadə olunur. Bu İnternet üzərindən S2S VPN əlaqəsi də ola bilər, filial əməkdaşları baş ofisə uzaqdan qoşulma (Remote Access) metodu ilə də qoşula bilərlər. Lakin bu metodlar əlverişli deyil bir neçə səbəbdən. Birincisi, gərək hər obyekt üçün ayrıca internet xətti olsun. Bu zaman filial əməkdaşları qlobal şəbəkəyə rahatlıqla çıxa bilirlər. Bu da öz növbəsində təhlükəsizlikdə boşluq yaradır. Adətən, böyük şirkətlərdə təhlükəsizlik avadanlıqları bir yerdə, mərkəzi ofisdə cəmlənir. Digər yerlərdən gələn bütün trafik həmin mərkəzdən keçir və beləliklə İT əməkdaşları qoşulmalara nəzarət edə bilir. İkincisi, bu tip qoşulmaları qurmaq və idarə etmək daha çox əmək tələb edir. Bu zaman da köməyə IPSec DMVPN çatır.

DMVPN

DMVPN – Dynamic Multipoint VPN, filiallarla əlaqəni dinamik olaraq qurur. Yəni hər filialı qoşmaq üçün baş ofis və filialda ayrı-ayrı S2S tunel yaratmağa ehtiyac olmur. Bu metodda HUB və Spoke topologiyasından istifadə edilir. Əsas, yəni HUB marşrutlayıcı, bir dəfə sazlanır. Qalan işlər isə filial marşrutlayıcısında həyata keçirilir. Özlüyündə DMVPN geniş mövzudur və bu haqda ayrıca yazım olacaq. Bu yazıda isə EoMPLS üzərindən IPSec DMVPN qurmaqdan danışacam.

MPLS

MPLS – Multiprotocol Label Switching – texnologiyasında şəbəkədən keçən paketlər xüsusi markerlərlə işarələnir (label). MPLS üçün kanal səviyyəsində istifadə olunan texnologiyanın fərqi yoxdur: bu Ethernet də ola bilər, Frame Relay da. Sadə dillə desək, provayder MPLS köməyi ilə iki və daha çox obyekt arasında tunel yaradır. Müştərinin trafiki onlarla marşrutlayıcıdan keçib getsə də, müştəri bunu görmür. Onun üçün filial bir geniş yayım domeninə qoşulmuş kimi görünür. MPLS də çox geniş mövzudur və bir məqalədə əhatə etmək həm çətin, həm də yorucudur.

EoMPLS (Ethernet over MPLS) – MPLS üzərindən OSI modelinin ikinci səviyyəsində olan Ethernet məlumatlarını ötürmək üçün istifadə olunur. Yəni müştəri digər filialı sanki bir komutatora qoşulu kimi görür. Bu metodda da VLAN-lardan istifadə edilir. Bu yazıda həm provayder, həm də müştəri kimi çıxış edərək müxtəlif texnologiyalardan istifadə etməklə iki nöqtəni birləşdirəcəyik.

MPLS sazlanması

Təcrübəni GNS3 mühitində aparacağıq. Avadanlıq qismində Cisco maşrutlayıcılardan istifadə olunacaq. GNS3-də L2 kommutator yaratmaq üçün GNS3 VM və Cisco IOSvL2 15.2(4.0.55)E versiyalı IOS əməliyyat sistemi lazımdır. Marşrutlayıcı kimi isə Cisco 7200 istifadə edəcəyik. Hər iki avadanlığın sistemini linkdən endirə bilərsiniz. Topologiyamız aşağıdakı kimi olacaq:

dmpvn-mpls-topology

Öncə provayderin Bakıda yerləşən avadanlığını sazlayaq. Bunun üçün qlobal sazlama rejimində iki komandanı yazmaq lazımdır:

ISP_Baku(config)#ip cef
ISP_Baku(config)#mpls ip

Daha sonra LDP tunelin qurulmasında istifadə olunacaq loopback interfeys yaradıb IP vermək lazımdır. LDP tunel üçün fiziki interfeys də istifadə etmək olar, lakin loopback daha əlverişlidir.

ISP_Baku(config)#do sh run int loop 0
Building configuration...

Current configuration : 63 bytes
!
interface Loopback0
 ip address 1.1.1.3 255.255.255.255
end

Daha sonra Sumgait marşrutlayıcısına baxan interfeysi sazlamaq lazımdır:

ISP_Baku(config)#do sh run int fa2/0 
Building configuration...

Current configuration : 103 bytes
!
interface FastEthernet2/0
 ip address 1.0.0.5 255.255.255.252
 duplex auto
 speed auto
 mpls ip
end

Ardından marşrutlama protokolunu sazlayırıq. Burada OSPF protokolundan istifadə olunacaq. Maşrutlama prosesinə həm loopback, həm də fiziki interfeyslərin şəbəkələrini əlavə edirik.

ISP_Baku(config-subif)#do sh run | s router
router ospf 100
 log-adjacency-changes
 network 1.0.0.4 0.0.0.3 area 0
 network 1.1.1.3 0.0.0.0 area 0

Müştəri tərəfi üçün tunelin yaradılmasına keçməzdən əvvəl provayder avadanlıqları arasında MPLS tunelin qurulması üçün digər iki avadanlığımızda da eyni sazlamaları etməliyik. Sumqayıt maşrutlayıcısı:

ISP_Sumgait(config)#ip cef
ISP_Sumgait(config)#mpls ip
ISP_Sumgait#sh run int loop 0
Building configuration...

Current configuration : 63 bytes
!
interface Loopback0
 ip address 1.1.1.2 255.255.255.255
end
interface FastEthernet2/0
 description Link_to_ISP_Baku
 ip address 1.0.0.6 255.255.255.252
 duplex auto
 speed auto
 mpls ip
end
interface GigabitEthernet1/0
 description Link_to_ISP_Guba
 ip address 1.0.0.2 255.255.255.252
 negotiation auto
 mpls ip
end
router ospf 100
 log-adjacency-changes
 network 1.0.0.0 0.0.0.3 area 0
 network 1.0.0.4 0.0.0.3 area 0
 network 1.1.1.2 0.0.0.0 area 0

Quba marşrutlayıcısı:

ISP_Guba(config)#ip cef
ISP_Guba(config)#mpls ip
ISP_Guba#sh run int loop 0
Building configuration...

Current configuration : 63 bytes
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
end
interface GigabitEthernet1/0
 description Link_to_ISP_Sumgait
 ip address 1.0.0.1 255.255.255.252
 negotiation auto
 mpls ip
end
router ospf 100
 log-adjacency-changes
 network 1.0.0.0 0.0.0.3 area 0
 network 1.1.1.1 0.0.0.0 area 0

MPLS əlaqəni yoxlayaq:

ISP_Guba#sh mpls ldp neighbor 
    Peer LDP Ident: 1.1.1.2:0; Local LDP Ident 1.1.1.1:0
	TCP connection: 1.1.1.2.54914 - 1.1.1.1.646
	State: Oper; Msgs sent/rcvd: 56/56; Downstream
	Up time: 00:42:27
	LDP discovery sources:
	  GigabitEthernet1/0, Src IP addr: 1.0.0.2
        Addresses bound to peer LDP Ident:
          1.0.0.2         1.1.1.2         1.0.0.6         
    Peer LDP Ident: 1.1.1.3:0; Local LDP Ident 1.1.1.1:0
	TCP connection: 1.1.1.3.64332 - 1.1.1.1.646
	State: Oper; Msgs sent/rcvd: 56/57; Downstream
	Up time: 00:42:12
	LDP discovery sources:
	  Targeted Hello 1.1.1.1 -> 1.1.1.3, active, passive
        Addresses bound to peer LDP Ident:
          1.0.0.5         1.1.1.3     

LDP tunel

İndi isə müştəriyə baxan interfeysi sazlamaq lazımdır. Məhz bu interfeysdə müştərinin VLAN-ı yazılır və LDP tunel yaradılır.

ISP_Baku(config)#do sh run int fa0/0.165
Building configuration...

Current configuration : 110 bytes
!
interface FastEthernet0/0.165
 encapsulation dot1Q 165
 xconnect 1.1.1.1 12345678 encapsulation mpls
end

xconnect 1.1.1.1 12345678 encapsulation mpls – bu komanda ilə provayder öz mərkəzindən müştərinin filialına baxan avadanlığı arasında LDP tunel yaradır. 12345678 VC (Virtual Circuit) ID-dir və hər iki tərəfdə eyni olmalıdır çünki məhz bu ID ilə tunellərin identifikasiyası aparılır.

Tunelin qurulması üçün müştərinin ikinci obyektinə baxan avadanlığımızda da eyni sazlamaları etməliyik:

ISP_Guba#sh run int fa0/0.165
Building configuration...

Current configuration : 110 bytes
!
interface FastEthernet0/0.165
 encapsulation dot1Q 165
 xconnect 1.1.1.3 12345678 encapsulation mpls
end

Qeyd etmək lazımdır ki, Bakı və Guba avadanlıqlarında VLAN ID fərqli də ola bilər. LDP tuneli yoxlayaq:

ISP_Guba#sh mpls l2transport vc 12345678

Local intf     Local circuit              Dest address    VC ID      Status    
-------------  -------------------------- --------------- ---------- ----------
Fa0/0.165     Eth VLAN 165              1.1.1.3         12345678   UP
ISP_Guba#sh mpls l2transport vc 12345678 detail 
Local interface: Fa0/0.165 up, line protocol up, Eth VLAN 165 up
  Destination address: 1.1.1.3, VC ID: 12345678, VC status: up
    Output interface: Gi1/0, imposed label stack {17 16}
    Preferred path: not configured  
    Default path: active
    Next hop: 1.0.0.2
  Create time: 00:44:52, last status change time: 00:43:46
  Signaling protocol: LDP, peer 1.1.1.3:0 up
    MPLS VC labels: local 16, remote 16 
    Group ID: local 0, remote 0
    MTU: local 1500, remote 1500
    Remote interface description: 
  Sequencing: receive disabled, send disabled
  VC statistics:
    packet totals: receive 0, send 0
    byte totals:   receive 0, send 0
    packet drops:  receive 0, seq error 0, send 0

Göründüyü kimi LDP tunel qurulub və sazlamanın növbəti mərhələsinə keçmək olar.

Komutatorların sazlanması

Adi şəbəklərdə olduğu kimi, provayderlər də müştərilərə qoşulmanı komutatorlar üzərindən həyata keçirirlər. Səbəb sadədir – komutatorların port sayı daha çoxdur. Bu hissədə proveyder tərəfində komutatorun sazlanmasını göstərəcəm.

ISP_Baku_SW#sh run int gi0/0
Building configuration...

Current configuration : 132 bytes
!
interface GigabitEthernet0/0
 description Link_to_ISP_Baku_RTR
 switchport trunk encapsulation dot1q
 switchport mode trunk
 media-type rj45
 negotiation auto
end

Provayder komutatorunda provayder marşrutlayıcısına baxan interfeys trunk kimi sazlanır, çunki marşrutlayıcıda altinterfeys (subinterfeys) yaradılıb və enkapsulyasiya dot1q təyin olunub. Müştəriyə baxan interfeys isə access kimi sazlanıb:

ISP_Baku_SW#sh run int gigabitEthernet 0/1
Building configuration...

Current configuration : 160 bytes
!
interface GigabitEthernet0/1
 switchport access vlan 165
 switchport mode access
 media-type rj45
 no negotiation auto
 spanning-tree bpduguard disable
end

Eyni konfiqurasiya ISP_Guba_SW komutatorunda da olmalıdır.

Müştəri sazlamaları

Müştəri tərəfdə də adətən provayderdən gələn xətt komutatora qoşulur. Əgər provayder tərəfdə hər şeyi doğru yazmışıqsa və müştəri tərəfdə provayderə baxan interfeys doğru sazlanıbsa, həmin interfeysin altında baş ofisimizdə olan marşrutlayıcının MAC ünvanını görməliyik (qara şriftlə seçilib):

Guba_Branch_SW#sh run int gi0/0
Building configuration...

Current configuration : 173 bytes
!
interface GigabitEthernet0/0
 switchport access vlan 165
 switchport mode access
 media-type rj45
 duplex full
 no negotiation auto
 spanning-tree bpduguard disable
end
Guba_Branch_SW#show mac address-table 
          Mac Address Table
-------------------------------------------

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
   1    ca05.0822.001c    DYNAMIC     Gi0/1
 202    ca05.0822.0000    DYNAMIC     Gi0/2
 165    ca04.078c.001c    DYNAMIC     Gi0/0
 165    ca05.0822.001c    DYNAMIC     Gi0/1
Total Mac Addresses for this criterion: 4
HeadOffice_RTR#sh interfaces gi1/0
GigabitEthernet1/0 is up, line protocol is up 
  Hardware is 82543, address is ca04.078c.001c (bia ca04.078c.001c)
  MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec, 
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation 802.1Q Virtual LAN, Vlan ID  1., loopback not set
  Keepalive set (10 sec)
  Full-duplex, 1000Mb/s, link type is autonegotiation, media type is SX
  output flow-control is unsupported, input flow-control is unsupported
  ARP type: ARPA, ARP Timeout 04:00:00
  Last input 00:00:00, output 00:00:02, output hang never
  Last clearing of "show interface" counters never
  Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
  Queueing strategy: fifo
  Output queue: 0/40 (size/max)
  5 minute input rate 1000 bits/sec, 1 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
     3953 packets input, 278844 bytes, 0 no buffer
     Received 3856 broadcasts, 0 runts, 0 giants, 0 throttles
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
     0 watchdog, 0 multicast, 0 pause input
     0 input packets with dribble condition detected
     601 packets output, 71043 bytes, 0 underruns
     0 output errors, 0 collisions, 1 interface resets
     119 unknown protocol drops
     0 babbles, 0 late collision, 0 deferred
     0 lost carrier, 0 no carrier, 0 pause output
     0 output buffer failures, 0 output buffers swapped out

DMVPN. HUB marşutun sazlanması

İndi də keçək müştərinin filialla baş ofisi arasında əlaqənin qurulmasına. DMVPN qurulması üçün NHRP protokolundan istifadə olunur. NHRP – Next Hop Resolution Protocol, NBMA (Non Broadcas Multiple Access) şəbəkəsin iştirakçılarına bir-birlərinin fiziki ünvanlarını Next-Hop Server-ə (NHS) müraciət edərək dinamik öyrənmək imkanı verir. DMVPN şəbəkəsində NHS server HUB router olur. HUB marşutlayıcıda SPOKE marşrutlayıcıların fiziki və tunel IP-lərinin uyğunluğunu saxlayan NHRP baza olur. Spoke marşrutlayıcılar HUB-a müraciət edərək digər SPOKE-ların IP ünvanlarını öyrənir, daha sonra bir-birləri ilə birbaşa əlaqə yaradır.

Aşağıda konfiqurasiyanı göstərəcəm və vacib məqamları qeyd edəcəm. Müştəri tərəfdə EIGRP marşrutlama protokolundan istifadə edəcəyik. Öncə HUB marşrutlayıcının sazlamalarına baxaq.

HeadOffice_RTR#sh run int gi1/0.165
Building configuration...

Current configuration : 526 bytes
!

interface GigabitEthernet1/0.165
 encapsulation dot1Q 165
 ip address 10.20.30.1 255.255.255.0
end

interface Tunnel0
 ip address 172.18.81.1 255.255.255.0
 no ip redirects
 ip mtu 1440
 no ip next-hop-self eigrp 10
 ip authentication mode eigrp 10 md5
 ip authentication key-chain eigrp 10 EIGRP_Key
 ip nhrp authentication Cisco123
 ip nhrp map multicast dynamic
 ip nhrp network-id 10
 ip nhrp holdtime 400
 ip tcp adjust-mss 1360
 no ip split-horizon eigrp 10
 tunnel source GigabitEthernet1/0.165
 tunnel mode gre multipoint
 tunnel key 10
 tunnel path-mtu-discovery
 tunnel protection ipsec profile DMVPN shared
end
router eigrp 10
 network 172.18.81.0 0.0.0.255
 no auto-summary

ip mtu – DMVPN üçün GRE tuneldən istifadə edilir. Bu protokol isə IP paketə müxtəlif başlıqlar əlavə edir. MTU 1500 baytı aşmaması üçün tunelin altında göstərici azaldılır.

no ip next-hop-self eigrp 10 – EIGRP yaydığı marşrutlar üçün növbəti addım ünvanı olaraq HUB-ın ünvanını göstərəcək. DMVPN-nin işləməsi üçün növbəti addım olaraq SPOKE marşrutların IP-ləri göstərilməlidir.

no ip split-horizon eigrp 10 – EIGRP-də üfüqün parçalanması (split-horizon) texnologiyası var. Bu texnologiya EIGRP-nin bir interfeysdən öyrəndiyi marşrutları eyni intefeysə ötürmənin qarşısını alaraq maşrutlama dövrəsinin yaranmasına mane olur. Lakin DMVPN şəbəkəsində marşrutlar eyni interfeyslə yayımlanmalıdır. Bu səbədən tunel interfeysin altında split-horizon texnologiyası söndürülür. Marşrutlama dövrəsinin qarşısı isə filtrlənmə ilə alına bilər.

ip nhrp map multicast dynamic – HUB marşrutlayıcı SPOKE marşrutlayıcılarla əlaqəni dinamik şəkildə əlavə edəcək. Spoke marşrutlarda bu komandadan istifadə olunmur, əvəzinə hub marşrutlayıcının IP-si göstərilir.

tunnel mode gre multipoint – tunel multipoint rejimdə işləməsi üçün lazımdır.

tunnel protection ipsec profile DMVPN shared – tuneldən keçən məlumatların IPSec-lə şifərələnməsi üçün istifadə edilir. IPSec profilinin sazlamaları aşağıda göstərilib:

crypto isakmp policy 1
 encr aes 256
 authentication pre-share
 group 5
crypto isakmp key cisco123 address 0.0.0.0 0.0.0.0
!
!
crypto ipsec transform-set TunnelSec esp-aes 256 esp-sha-hmac 
 mode transport
!
crypto ipsec profile DMVPN
 set security-association lifetime seconds 900
 set transform-set TunnelSec 

Bu göstəricilər filial marşrutlayıcılarında da eyni olmalıdır. Tək istisna crypto isakmp key cisco123 address 0.0.0.0 0.0.0.0 sətridir. Spoke marşrutlayıcılarda burada HUB marşrutlayıcının IP-si qeyd olunur.

SPOKE sazlanması

Spoke maşrutlayıcılarda da EIGRP konfiqurasiya olunmalıdır. Əks halda bütün marşrutları statik olaraq yazmaq lazım olacaq. Tunel interfeysin konfiqurasiyasına baxaq:

Guba_RTR#sh run int gi1/0.1658
Building configuration...

Current configuration : 106 bytes
!
interface GigabitEthernet1/0.165
 encapsulation dot1Q 165
 ip address 10.20.30.202 255.255.255.0
end

interface Tunnel0
 ip address 172.18.81.202 255.255.255.0
 ip mtu 1440
 no ip next-hop-self eigrp 10
 ip authentication mode eigrp 10 md5
 ip authentication key-chain eigrp 10 EIGRP_Key
 ip nhrp authentication Cisco123
 ip nhrp map 172.18.81.1 10.20.30.1
 ip nhrp map multicast 10.20.30.1
 ip nhrp network-id 10
 ip nhrp nhs 172.18.81.1
 ip tcp adjust-mss 1360
 no ip split-horizon eigrp 10
 tunnel source GigabitEthernet1/0.165
 tunnel destination 10.20.30.1
 tunnel key 10
 tunnel path-mtu-discovery
 tunnel protection ipsec profile DMVPN
end

ip nhrp map 172.18.81.1 10.20.30.1 – burada HUB marşrutlayıcının tunel IP-si ilə fiziki IP-si arasında uyğunluq yaradırıq.

ip nhrp map multicast 10.20.30.1 – multicast trafiki qəbul edəcək IP-ni göstəririk. Bu HUB marşrutlayıcı olur.

ip nhrp nhs 172.18.81.1 – NHS serverin tunel IP-ni qeyd edirik.

Bütün sazlamalar düzgün olunubsa show dmvpn komandasını yazmaqla DMVPN-nin qurulub qurulmadığını yoxlaya bilərik.

Guba_RTR#sh dmvpn 
Legend: Attrb --> S - Static, D - Dynamic, I - Incomplete
	N - NATed, L - Local, X - No Socket
	# Ent --> Number of NHRP entries with same NBMA peer
	NHS Status: E --> Expecting Replies, R --> Responding
	UpDn Time --> Up or Down Time for a Tunnel
==========================================================================

Interface: Tunnel0, IPv4 NHRP Details 
Type:Spoke, NHRP Peers:1, 

 # Ent  Peer NBMA Addr Peer Tunnel Add State  UpDn Tm Attrb
 ----- --------------- --------------- ----- -------- -----
     1      10.20.30.1     172.18.81.1    UP 00:54:03     S

Bəs IPSec DMVPN-nin işini necə yoxlayaq? Bunun üçün Wireshark-dan istifadə edərək trafikin şifrələnib-şifrələnmədiyini görmək olar:

ipsec-dmvpn-capture

Yazı bir az böyük olsa da, ümid edirəm faydalı olar.

Yazını paylaş
x

Check Also

bgp-protocol-netadmin-az

BGP – ilkin konfiqurasiya və marşrutların elanı

Bu yazıda əsasən provayderlərlə bağlantıda istifadə olunan BGP protokolu haqqıdan danışacağıq. Sonda isə kiçik bir topologiyanı sazlayacağıq.

multichassis-etherchannel-vpc-nexus

Virtual Port-channel nədir?

vPC dayanıqlı və yüksək ötürücülük qabiliyyətinə malik şəbəkə qurmaq üçün istifadə olunan texnologiyalrdandır. Bu yazıda vPC-dən danışacağıq.

cisco avto-reload

Cisco IOS avto-reload

Şəbəkə inzibaçıtları adətən avadanlıqları kilometrlərlə uzaqlıqdan idarə edirlər. Bu səbəbdən hər hansı səhv komanda avadanlığa girişi məhdudlaşdıra bilər. Xüsüsən Cisco ...