
Situatsioon
LĂ”pp. Joon kohvi. ĂliĂ”pilane seadistas VPN-ĂŒhenduse kahe punkti vahel ja kadus. Kontrollin: tunnel on tĂ”epoolest olemas, kuid tunnelis pole liiklust. ĂliĂ”pilane ei vasta kĂ”nedele.
Panen vee keema ja sukeldun S-Terra Gateway troubleshootingusse. Jagun oma kogemusi ja metoodikat.
Algandmed
Kahe territoriaalselt eraldatud asukoha vahel on GRE tunnel. GRE tuleb krĂŒpteerida:

Kontrollin GRE tunneli töökindlust. Selleks kĂ€ivitan ping-kĂ€sku seadmest R1 GRE liidese suunal seadmele R2. See on sihtliiklus krĂŒpteerimiseks. Vastust ei tule:
root@R1:~# ping 1.1.1.2 -c 4
PING 1.1.1.2 (1.1.1.2) 56(84) baitide andmeid.
--- 1.1.1.2 ping statistika ---
4 paketti saadetud, 0 vastatud, 100% pakettide kadu, aeg 3057msVaatan logisid Gate1 ja Gate2. Logi rÔÔmsalt teatab, et IPsec tunnel on edukalt seadistatud, mingeid probleeme ei ole:
root@Gate1:~# cat /var/log/cspvpngate.log
Aug 5 16:14:23 localhost vpnsvc: 00100119 IPSec ĂŒhendus 5 luuakse, liikluse valija 172.17.0.1->172.16.0.1, protokoll 47, partner 10.10.10.251, id "10.10.10.251", Filter
IPsec:Protect:CMAP:1:LIST, IPsecAction IPsecAction:CMAP:1, IKERule IKERule:CMAP:1IPsec tunneli statistikas Gate1 nÀen, et tunnel on tÔepoolest olemas, kuid vastuvÔtukood on nullitud:
root@Gate1:~# sa_mgr show
ISAKMP seansid: 0 algatatud, 0 vastatud
ISAKMP ĂŒhendused:
Num Conn-id (Paikne Aadress,Port)-(KaugnÀidik Aadress,Port) Oleku Saadetud VastuvÔetud
1 3 (10.10.10.251,500)-(10.10.10.252,500) aktiivne 1070 1014
IPsec ĂŒhendused:
Num Conn-id (Paikne Aadress,Port)-(KaugnĂ€idik Aadress,Port) Protokoll Tegevus TĂŒĂŒp Saadetud VastuvĂ”etud
1 3 (172.16.0.1,*)-(172.17.0.1,*) 47 ESP tunn 480 0Troubleshootin S-Terra nii: otsin, kus sihtpaketid kaovad teel R1-st R2-sse. Protsessi kÀigus (spoiler) leian vea.
Troubleshooting
Samm 1. Mida Gate1 R1-lt saab
Kasutades sisseehitatud paketisnifferit â tcpdump. KĂ€ivitan snifferi sisesel (Gi0/1 Cisco-sarnases mĂ€rgistus vĂ”i eth1 Debian OS-s) liidesele:
root@Gate1:~# tcpdump -i eth1
tcpdump: ĂŒksikasjalik vĂ€ljund on peidetud, kasutage -v vĂ”i -vv tĂ€isprotokolli dekodeerimiseks
kuulan eth1, link-tĂŒĂŒp EN10MB (Ethernet), salvestamismaht 262144 baiti
14:53:38.879525 IP 172.16.0.1 > 172.17.0.1: GREv0, vÔtme=0x1, pikkus 92: IP 1.1.1.1 > 1.1.1.2: ICMP echo request, id 2083, jÀrjestus 1, pikkus 64
14:53:39.896869 IP 172.16.0.1 > 172.17.0.1: GREv0, vÔtme=0x1, pikkus 92: IP 1.1.1.1 > 1.1.1.2: ICMP echo request, id 2083, jÀrjestus 2, pikkus 64
14:53:40.921121 IP 172.16.0.1 > 172.17.0.1: GREv0, vÔtme=0x1, pikkus 92: IP 1.1.1.1 > 1.1.1.2: ICMP echo request, id 2083, jÀrjestus 3, pikkus 64
14:53:41.944958 IP 172.16.0.1 > 172.17.0.1: GREv0, vÔtme=0x1, pikkus 92: IP 1.1.1.1 > 1.1.1.2: ICMP echo request, id 2083, jÀrjestus 4, pikkus 64NÀen, et Gate1 saab R1-lt GRE pakette. Liigun edasi.
Samm 2. Mida Gate1 GRE pakkidega teeb
Tööriistaga klogview vaatan, mis juhtub GRE pakettidega sees VPN S-Terra draiver:
root@Gate1:~# klogview -f 0xffffffff
filtration result for out packet 172.16.0.1->172.17.0.1, proto 47, len 112, if eth0: chain 4 "IPsecPolicy:CMAP", filter 8, event id IPsec:Protect:CMAP:1:LIST, status PASS
encapsulating with SA 31: 172.16.0.1->172.17.0.1, proto 47, len 112, if eth0
passed out packet 10.10.10.251->10.10.10.252, proto 50, len 160, if eth0: encapsulated
NĂ€en, et sihitud GRE liiklus (proto 47) 172.16.0.1 -> 172.17.0.1 lĂ€bis (PASS) krĂŒptokaardi LIST reegli ja krĂŒpteeriti (encapsulated). Edasi pakett suunati (passed out). Vastusliiklust klogview vĂ€ljundis ei ole.
Kontrollin pÀÀsuliste nimekirja seadmes Gate1. NĂ€en ĂŒhte pÀÀsuliste nimekirja LIST, mis mÀÀratleb sihitud liikluse krĂŒptimiseks, seega MĂ reegleid ei ole seadistatud:
Gate1#show access-lists
Extended IP access list LIST
10 lubada gre host 172.16.0.1 host 172.17.0.1VĂ€ljund: probleem ei ole seadmes Gate1.
Lisainfot klogview kohta
VPN draiver töötleb kogu vĂ”rgu liiklust, mitte ainult seda, mis peab olema krĂŒpteeritud. Sellised sĂ”numid on nĂ€htavad klogview's, kui VPN draiver töötles vĂ”rgu liiklust ja edastas selle krĂŒpteerimata kujul:
root@R1:~# ping 172.17.0.1 -c 4root@Gate1:~# klogview -f 0xffffffff
filtration result for out packet 172.16.0.1->172.17.0.1, proto 1, len 84, if eth0: chain 4 "IPsecPolicy:CMAP": no match
passed out packet 172.16.0.1->172.17.0.1, proto 1, len 84, if eth0: filteredNĂ€en, et ICMP liiklus (proto 1) 172.16.0.1->172.17.0.1 ei lĂ€inud (no match) krĂŒptokaardi CMAP reeglite alla. Pakett suunati (passed out) avatud kujul.
Samm 3. Mida Gate2 saab Gate1-lt
KĂ€ivitan snifferi WAN (eth0) liidesele Gate2-l:
root@Gate2:~# tcpdump -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
16:05:45.104195 IP 10.10.10.251 > 10.10.10.252: ESP(spi=0x30088112,seq=0x1), length 140
16:05:46.093918 IP 10.10.10.251 > 10.10.10.252: ESP(spi=0x30088112,seq=0x2), length 140
16:05:47.117078 IP 10.10.10.251 > 10.10.10.252: ESP(spi=0x30088112,seq=0x3), length 140
16:05:48.141785 IP 10.10.10.251 > 10.10.10.252: ESP(spi=0x30088112,seq=0x4), length 140NĂ€en, et Gate2 saab ESP pakette Gate1-lt.
Samm 4. Mida Gate2 teeb ESP paketidega
KĂ€ivitan utiliidi klogview Gate2-l:
root@Gate2:~# klogview -f 0xffffffff
filtration result for in packet 10.10.10.251->10.10.10.252, proto 50, len 160, if eth0: chain 17 "FilterChain:L3VPN", filter 21, status DROP
dropped in packet 10.10.10.251->10.10.10.252, proto 50, len 160, if eth0: firewall
NÀen, et ESP paketid (proto 50) on langenud (DROP) tulekÀigu (firewall) reegli (L3VPN) tÔttu. Veendun, et Gi0/0-ga on tÔepoolest seotud pÀÀsuliste nimekirjad L3VPN:
Gate2#show ip interface gi0/0
GigabitEthernet0/0 is up, line protocol is up
Internet address is 10.10.10.252/24
MTU is 1500 bytes
Outgoing access list is not set
Inbound access list is L3VPNProbleem on tuvastatud.
Samm 5. Mis on valesti pÀÀsuliste nimekirjaga
Vaatan, mis pÀÀsuliste nimekirja L3VPN sisaldab:
Gate2#show access-list L3VPN
Extended IP access list L3VPN
10 permit udp host 10.10.10.251 any eq isakmp
20 permit udp host 10.10.10.251 any eq non500-isakmp
30 permit icmp host 10.10.10.251 anyNÀen, et ISAKMP-paketid on lubatud, seetÔttu luuakse IPsec tunnel. Kuid ESP jaoks pole lubavat reeglit. Tundub, et tudeng segas icmp ja esp Àra.
Muudan ligipÀÀsuloendit:
Gate2(config)#
ip access-list extended L3VPN
no 30
30 permit esp host 10.10.10.251 anySamm 6. Kontrollin töövÔimet
Esiteks veendun, et L3VPN ligipÀÀsuloend on Ôige:
Gate2#show access-list L3VPN
Extended IP access list L3VPN
10 permit udp host 10.10.10.251 any eq isakmp
20 permit udp host 10.10.10.251 any eq non500-isakmp
30 permit esp host 10.10.10.251 anyNĂŒĂŒd kĂ€ivitan sihttalve seadmest R1:
root@R1:~# ping 1.1.1.2 -c 4
PING 1.1.1.2 (1.1.1.2) 56(84) bytes of data.
64 bytes from 1.1.1.2: icmp_seq=1 ttl=64 time=35.3 ms
64 bytes from 1.1.1.2: icmp_seq=2 ttl=64 time=3.01 ms
64 bytes from 1.1.1.2: icmp_seq=3 ttl=64 time=2.65 ms
64 bytes from 1.1.1.2: icmp_seq=4 ttl=64 time=2.87 ms
--- 1.1.1.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 2.650/10.970/35.338/14.069 msVÔit. GRE tunnel on loodud. IPsec statistikas on sissetuleva liikluse loendur mitte-null:
root@Gate1:~# sa_mgr show
ISAKMP sessions: 0 initiated, 0 responded
ISAKMP connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) State Sent Rcvd
1 3 (10.10.10.251,500)-(10.10.10.252,500) active 1474 1350
IPsec connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) Protocol Action Type Sent Rcvd
1 4 (172.16.0.1,*)-(172.17.0.1,*) 47 ESP tunn 1920 480Gate2 moodulis klogview ilmuvad sĂ”numid, et sihttale 172.16.0.1->172.17.0.1 on edukalt (PASS) dekodeeritud (decapsulated) reegli LIST kaudu krĂŒptokaardil CMAP:
root@Gate2:~# klogview -f 0xffffffff
filtration result for in packet 172.16.0.1->172.17.0.1, proto 47, len 112, if eth0: chain 18 "IPsecPolicy:CMAP", filter 25, event id IPsec:Protect:CMAP:1:LIST, status PASS
passed in packet 172.16.0.1->172.17.0.1, proto 47, len 112, if eth0: decapsulatedSummary
Tudeng rikkus vÀljundit.
Ole ettevaatlik reeglite osas.
AnonĂŒĂŒmne insener
t.me/anonimous_engineer
Allikas: habr.com
