
Situatsioon
VĂ€ljas. Joon kohvi. ĂliĂ”pilane seadistas VPN-i ĂŒhenduse kahe punkti vahel ja kadus. Kontrollin: tunnel on tĂ”epoolest olemas, kuid tunnelis pole liiklust. ĂliĂ”pilane ei vasta kĂ”nedele.
Panen tee keema ja sukeldun C-Terra Gateway'i tÔrkeotsingusse. Jagades oma kogemusi ja meetodoloogiat.
Algandmed
Kaks territoriaalselt eraldatud asukohta on ĂŒhendatud GRE tunneliga. GRE tuleb krĂŒpteerida:

Kontrollin GRE tunnelit. Selleks jooksutan ping'i seadmel R1 GRE liidese suunas seadmel R2. See on sihttĂ”uge krĂŒpteerimiseks. Vastust pole:
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 edastatud, 0 saadud, 100% pakettide kadu, aeg 3057msVaatan logisid Gate1-l ja Gate2-l. Logi rÔÔmsalt teatab, et IPsec tunnel on edukalt ĂŒles seatud, mingeid probleeme pole:
root@Gate1:~# cat /var/log/cspvpngate.log
Aug 5 16:14:23 localhost vpnsvc: 00100119 IPSec ĂŒhendus 5 loodud, liiklusvalik 172.17.0.1->172.16.0.1, proto 47, vÔÔras 10.10.10.251, id "10.10.10.251", Filter
IPsec:Protect:CMAP:1:LIST, IPsecAction IPsecAction:CMAP:1, IKERule IKERule:CMAP:1IPsec tunnelite statistikas Gate1-l nĂ€en, et tunnel on tĂ”epoolest olemas, kuid RŃvd loendur on nullitud:
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 1070 1014
IPsec connections:
Num Conn-id (Local Addr, Port)-(Remote Addr, Port) Protocol Action Type Sent Rcvd
1 3 (172.16.0.1,*)-(172.17.0.1,*) 47 ESP tunn 480 0Tean troubleshootin C-Terrat, otsin, kus kaob sihitud pakette R1-lt R2-le. Protsessi kÀigus (spoiler) leian vea.
TÔrkeotsing
Samm 1. Mida Gate1 R1-lt saab
Kasutades sisseehitatud paketi nuhikut â tcpdump. KĂ€ivitan nuhiku sise (Gi0/1 Cisco-sarnases tĂ€histuses vĂ”i eth1 Debian OS-i tĂ€histuses) liidese peal:
root@Gate1:~# tcpdump -i eth1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes
14:53:38.879525 IP 172.16.0.1 > 172.17.0.1: GREv0, key=0x1, length 92: IP 1.1.1.1 > 1.1.1.2: ICMP echo request, id 2083, seq 1, length 64
14:53:39.896869 IP 172.16.0.1 > 172.17.0.1: GREv0, key=0x1, length 92: IP 1.1.1.1 > 1.1.1.2: ICMP echo request, id 2083, seq 2, length 64
14:53:40.921121 IP 172.16.0.1 > 172.17.0.1: GREv0, key=0x1, length 92: IP 1.1.1.1 > 1.1.1.2: ICMP echo request, id 2083, seq 3, length 64
14:53:41.944958 IP 172.16.0.1 > 172.17.0.1: GREv0, key=0x1, length 92: IP 1.1.1.1 > 1.1.1.2: ICMP echo request, id 2083, seq 4, length 64NĂ€en, et Gate1 saab GRE pakette R1-lt. Liigun edasi.
Samm 2. Mida Gate1 GRE pakettidega teeb
Kasutan utiliiti klogview, et vaadata, mis GRE pakettidega juhtub seestpoolt VPN C-Terra draiver:
root@Gate1:~# klogview -f 0xffffffff
filtratsioonitulemus vĂ€lispakett 172.16.0.1->172.17.0.1, protokoll 47, pikkus 112, liides eth0: ahel 4 "IPsecPolicy:CMAP", filter 8, sĂŒndmuse ID IPsec:Protect:CMAP:1:LIST, olek PASS
kapseldamine SA-ga 31: 172.16.0.1->172.17.0.1, protokoll 47, pikkus 112, liides eth0
lÀbiviidud vÀlispakett 10.10.10.251->10.10.10.252, protokoll 50, pikkus 160, liides eth0: kapseldatud
NĂ€en, et sihtkoht GRE liiklus (protokoll 47) 172.16.0.1 -> 172.17.0.1 lĂ€bis (PASS) krĂŒpteerimise reeglit LIST krĂŒptokaardil CMAP ja kapseldus (encapsulated). SeejĂ€rel paketid marsruuditi (passed out). Vastusliiklust klogview vĂ€ljundis pole.
Kontrollin juurdepÀÀsuloendeid seadmel Gate1. NĂ€en ĂŒhte juurdepÀÀsulitsentsi LIST, mis mÀÀratleb sihtliikluse krĂŒpteerimiseks, seega ei ole MĐ reegleid seatud:
Gate1#show access-lists
Pikendatud IP juurdepÀÀsulitsent LIST
10 luba gre host 172.16.0.1 host 172.17.0.1VĂ€ljund: probleem ei ole seadmel Gate1.
Kogemuste kohta klogview's
VPN draiver kĂ€sitleb kogu vĂ”rgu liiklust, mitte ainult seda, mis peab olema krĂŒpteeritud. Sellised teadete nĂ€gemine klogview's, kui VPN draiver on töötanud vĂ”rgu liikluse ja edastanud selle krĂŒpteerimata kujul:
root@R1:~# ping 172.17.0.1 -c 4root@Gate1:~# klogview -f 0xffffffff
filtratsioonitulemus vÀlispakett 172.16.0.1->172.17.0.1, protokoll 1, pikkus 84, liides eth0: ahel 4 "IPsecPolicy:CMAP": ilma vaste
lĂ€biviidud vĂ€lispakett 172.16.0.1->172.17.0.1, protokoll 1, pikkus 84, liides eth0: filtreeritudNĂ€en, et ICMP liiklus (proto 1) 172.16.0.1->172.17.0.1 ei vastanud (no match) CMAP krĂŒptokaardi krĂŒpteerimisreeglitele. Pakett reititi (passed out) selges vormis.
Samm 3. Mida saab Gate2 Gate1-lt
KĂ€ivitab sniffimise WAN (eth0) liidese jaoks Gate2:
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 teeb Gate2 ESP pakettidega
KĂ€ivitab klogview utiliidi Gate2:
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 (DROP) reegli (L3VPN) tulemuseks visatud (DROP) tulemĂŒĂŒri (firewall) poolt. Veendun, et Gi0/0-le on tĂ”epoolest seotud L3VPN juurdepÀÀsulisti:
Gate2#show ip interface gi0/0
GigabitEthernet0/0 on ĂŒles, liiniprotokoll on ĂŒles
Interneti-aadress on 10.10.10.252/24
MTU on 1500 bitti
VÀljaminev juurdepÀÀsulisti pole seatud
SissevÔtte juurdepÀÀsulisti on L3VPNProbleem tuvastatud.
Samm 5. Mis on mitte nii juurdepÀÀsulistiga
Vaata, milline on L3VPN juurdepÀÀsulisti:
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, seega luuakse IPsec tunnel. Kuid ESP jaoks ei ole lubavat reeglit. Ilmselt segas Ôpilane icmp ja esp.
Korrigeerin juurdepÀÀsulisti:
Gate2(config)#
ip access-list extended L3VPN
no 30
30 permit esp host 10.10.10.251 anySamm 6. Kontrollin funktsionaalsust
Esimese asjana veendun, et L3VPN juurdepÀÀsulisti 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 R1 seadmest sihttrafiku:
root@R1:~# ping 1.1.1.2 -c 4
PING 1.1.1.2 (1.1.1.2) 56(84) baiti andmeid.
64 baiti aadressilt 1.1.1.2: icmp_seq=1 ttl=64 aeg=35.3 ms
64 baiti aadressilt 1.1.1.2: icmp_seq=2 ttl=64 aeg=3.01 ms
64 baiti aadressilt 1.1.1.2: icmp_seq=3 ttl=64 aeg=2.65 ms
64 baiti aadressilt 1.1.1.2: icmp_seq=4 ttl=64 aeg=2.87 ms
--- 1.1.1.2 ping statistika ---
4 paketti saadeti, 4 saadeti tagasi, 0% pakettide kaotus, aeg 3006ms
rtt min/avg/max/mdev = 2.650/10.970/35.338/14.069 msVÔit. GRE tunnel on loodud. Sissetuleva liikluse loendur IPsec statistikas ei ole 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) aktiivne 1474 1350
IPsec connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) Protokoll Tegevus TĂŒĂŒp Sent Rcvd
1 4 (172.16.0.1,*)-(172.17.0.1,*) 47 ESP tunnel 1920 480Gate2 lĂŒlituses on klogview vĂ€ljundis teated, et sihttakistus 172.16.0.1->172.17.0.1 on edukalt (PASS) dekrĂŒpteeritud (decapsulated) reegliga LIST krĂŒptokaardil CMAP:
root@Gate2:~# klogview -f 0xffffffff
filtreerimise tulemus sissepaketile 172.16.0.1->172.17.0.1, proto 47, len 112, if eth0: ahel 18 "IPsecPolicy:CMAP", filter 25, sĂŒndmuse ID IPsec:Protect:CMAP:1:LIST, staatus PASS
lĂ€bitud sissepaket 172.16.0.1->172.17.0.1, proto 47, len 112, if eth0: dekrĂŒpteeritudKokkuvĂ”te
ĂliĂ”pilane rikkus vĂ€ljundi.
Olge MĐ reeglitega ettevaatlik.
AnonĂŒĂŒmne insener
t.me/anonimous_engineer
Allikas: habr.com
