
Olukord
Vaba pĂ€ev. Ma joon kohvi. Ăpilane lĂ”i kahe punkti vahel VPN-ĂŒhenduse ja kadus. Kontrollin: tunnel tĂ”esti on, aga tunnelis pole liiklust. Ăpilane ei vasta kĂ”nedele.
Panen veekeetja peale ja sukeldun S-Terra Gateway tÔrkeotsingusse. Jagan oma kogemusi ja metoodikat.
Toorandmed
Kaks geograafiliselt eraldatud ala on ĂŒhendatud GRE tunneliga. GRE tuleb krĂŒpteerida:

Ma kontrollin GRE tunneli funktsionaalsust. Selleks kĂ€ivitan pingi seadmest R1 seadme R2 GRE liidesesse. See on krĂŒptimise sihtliiklus. Pole vastust:
root@R1:~# ping 1.1.1.2 -c 4
PING 1.1.1.2 (1.1.1.2) 56(84) bytes of data.
--- 1.1.1.2 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3057msVaatan Gate1 ja Gate2 logisid. Logi teatab rÔÔmsalt, et IPseci tunnel kÀivitati edukalt, probleeme pole:
root@Gate1:~# cat /var/log/cspvpngate.log
Aug 5 16:14:23 localhost vpnsvc: 00100119 <4:1> IPSec connection 5 established, traffic selector 172.17.0.1->172.16.0.1, proto 47, peer 10.10.10.251, id "10.10.10.251", Filter
IPsec:Protect:CMAP:1:LIST, IPsecAction IPsecAction:CMAP:1, IKERule IKERule:CMAP:1Gate1 IPseci tunneli statistikas nĂ€en, et tunnel on tĂ”esti olemas, kuid RŃvd loendur nullitakse:
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 0Ma hÀirin S-Terrat jÀrgmiselt: otsin, kus sihtpaketid teel R1-st R2-ni on kadunud. Protsessi kÀigus (spoiler) leian vea.
Veaotsing
Samm 1. Mida Gate1 saab R1-lt
Ma kasutan sisseehitatud pakettide nuusutajat tcpdump. KÀivitan nuusutaja sisevÔrgus (Cisco-laadses tÀhistuses Gi0/1 vÔi OS-i tÀhistuses eth1). Debian) liides:
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 64Ma nÀen, et Gate1 saab R1-lt GRE pakette. Ma liigun edasi.
Samm 2. Mida Gate1 teeb GRE pakettidega?
Ma kasutan klogview utiliiti, et nÀha, mis GRE pakettidega toimub. VPN S-Terra draiverid:
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 sihtmĂ€rgiks olev GRE-liiklus (proto 47) 172.16.0.1 -> 172.17.0.1 kuulus CMAP-krĂŒptokaardil krĂŒpteerimisreegli LIST alla ja kapseldati. JĂ€rgmisena suunati pakett Ă€ra (minestati). Klogview vĂ€ljundis pole vastuste liiklust.
Kontrollin Gate1 seadme juurdepÀÀsuloendeid. NĂ€en ĂŒhte juurdepÀÀsuloendit LIST, mis mÀÀrab krĂŒptimise sihtliikluse, mis tĂ€hendab, et tulemĂŒĂŒrireeglid pole konfigureeritud:
Gate1#show access-lists
Extended IP access list LIST
10 permit gre host 172.16.0.1 host 172.17.0.1JĂ€reldus: probleem ei ole Gate1 seadmes.
Lisateavet klogview kohta
VPN-draiver haldab kogu vĂ”rguliiklust, mitte ainult krĂŒpteerimist vajavat liiklust. Kui VPN-draiver töötles vĂ”rguliiklust ja edastas selle krĂŒptimata, kuvatakse jĂ€rgmised teated:
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 olnud CMAP-krĂŒptokaardi krĂŒpteerimisreeglites kaasas (ei ĂŒhti). Pakett suunati (jaotati vĂ€lja) selge tekstiga.
Samm 3. Mida Gate2 saab Gate1-lt
KĂ€ivitan nuusutaja WAN (eth0) Gate2 liidesel:
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 140Ma nÀen, et Gate2 saab Gate1-lt ESP pakette.
Samm 4. Mida Gate2 teeb ESP pakettidega?
KĂ€ivitan Gate2-s klogview utiliidi:
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 tulemĂŒĂŒri reegel (L50VPN) tĂŒhistas ESP-paketid (proto 3) (DROP). Veendun, et Gi0/0-l on tegelikult lisatud L3VPN-i juurdepÀÀsuloend:
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 L3VPNAvastasin probleemi.
5. samm. Mis on juurdepÀÀsuloendil viga?
Vaatan, mis on L3VPN-i juurdepÀÀsuloend:
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 pole lubamisreeglit. Ilmselt ajas Ôpilane segamini icmp ja esp.
JuurdepÀÀsuloendi redigeerimine:
Gate2(config)#
ip access-list extended L3VPN
no 30
30 permit esp host 10.10.10.251 anySamm 6. Funktsionaalsuse kontrollimine
KÔigepealt veendun, et L3VPN-i juurdepÀÀ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 sihtliikluse 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 rajatud. Sissetuleva liikluse loendur IPseci 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) 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 lĂŒĂŒsis ilmusid klogview vĂ€ljundis teated, et sihtliiklus 172.16.0.1->172.17.0.1 dekrĂŒpteeriti edukalt (PASS) CMAP-i krĂŒptokaardi reegliga LIST:
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: decapsulatedTulemused
ĂliĂ”pilane rikkus oma vaba pĂ€eva.
Olge ME reeglitega ettevaatlik.
AnonĂŒĂŒmne insener
t.me/anonymous_engineer
Allikas: www.habr.com
