48 client[i].family == AF_INET6 &&
49 client[i].lport == sport) {
50 bzero(&dest, sizeof(dest));
51 dest.sin6_family = AF_INET6;
52 #ifdef HAVE_SOCKADDR_SA_LEN
53 dest.sin6_len = sizeof(dest);
54 #endif
55 memcpy(&dest.sin6_addr, &hip6->ip6_dst,
56 sizeof(struct in6_addr));
57 dest.sin6_port = udp->uh_dport;
58 icmpd_err.icmpd_type = icmp6->icmp6_type;
59 icmpd_err.icmpd_code = icmp6->icmp6_code;
60 icmpd_err.icmpd_len = sizeof(struct sockaddr_in6);
61 memcpy(&icmpd_err.icmpd_dest, &dest, sizeof(dest));
62 /* ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠ° ΠΈ ΠΊΠΎΠ΄Π° ICMPv6 ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡ errno */
63 icmpd_err.icmpd_errno = EHOSTUNREACH; /* ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ */
64 if (icmp6->icmp6_type == ICMP6_DST_UNREACH &&
65 icmp6->icmp6_code ICMP6_DST_UNREACH_NOPORT)
66 icmpd_err.icmpd_errno = ECONNREFUSED;
67 if (icmp6->icmp6_type == ICMP6_PACKET_TOO_BIG)
68 icmpd_err.icmpd_errno = EMSGSIZE;
69 Write(client[i].connfd, &icmpd_err, sizeof(icmpd_err));
70 }
71 }
72 }
73 }
74 return(--nready);
75 #endif
76 }
28.8. Π Π΅Π·ΡΠΌΠ΅
Π‘ΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅ ΡΠΎΠΊΠ΅ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ:
1. Π§ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ICMPv4, IGMPv4 ΠΈ ICMPv6.
2. Π§ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ IP-Π΄Π΅ΠΉΡΠ°Π³ΡΠ°ΠΌΠΌΡ Ρ ΠΏΠΎΠ»Π΅ΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΡΠ΄ΡΠΎΠΌ.
3. Π€ΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² IPv4, ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅Π»ΡΡ (ΠΈΠ»ΠΈ, ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Ρ Π°ΠΊΠ΅ΡΠ°ΠΌΠΈ).
ΠΠ²Π° ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΡ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π΄ΡΡΠ²Π° β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ping ΠΈ traceroute β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅ ΡΠΎΠΊΠ΅ΡΡ. ΠΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π½Π°ΡΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠ΅ ΠΎΠ±Π΅ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° β ΠΈ IPv4, ΠΈ IPv6. Π’Π°ΠΊΠΆΠ΅ Π½Π°ΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π½Π°Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π΄Π΅ΠΌΠΎΠ½ icmpd, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ICMP ΡΠ΅ΡΠ΅Π· ΡΠΎΠΊΠ΅Ρ UDP. ΠΠ°Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ° ΡΠ΅ΡΠ΅Π· Π΄ΠΎΠΌΠ΅Π½Π½ΡΠΉ ΡΠΎΠΊΠ΅Ρ Unix ΠΌΠ΅ΠΆΠ΄Ρ Π½Π΅ΡΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ
1. Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ, ΡΡΠΎ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° IPv6 ΠΈ Π²ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΎΠΊΠ΅ΡΠ° ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΠ°ΠΊΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· Π΄Π΅ΠΉΡΠ°Π³ΡΠ°ΠΌΠΌΡ IPv6 Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ?
2. Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 28.30, Π΅ΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· ΡΠ²ΠΎΠ΅Π³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠΊΠ΅ΡΠ° Unix ΠΈ Π΄Π΅ΠΌΠΎΠ½ icmpd Π½Π°ΠΊΠΎΠΏΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°? Π ΡΠ΅ΠΌ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ?
3. ΠΡΠ»ΠΈ Π·Π°Π΄Π°ΡΡ Π½Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ping Π°Π΄ΡΠ΅Ρ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ, Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Π² ΠΏΠΎΠ΄ΡΠ΅ΡΡ, ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ. Π’ΠΎ Π΅ΡΡΡ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΡ ΠΎ- Π·Π°ΠΏΡΠΎΡ ICMP ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ ΠΊΠ°Π½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΌΡ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΎΠΊΠ΅ΡΠ° SO_BROADCAST. ΠΠΎΡΠ΅ΠΌΡ?
4. Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ ping, Π΅ΡΠ»ΠΈ ΠΌΡ Π·Π°ΠΏΡΡΡΠΈΠΌ Π΅Π΅ Π½Π° ΡΠ·Π»Π΅ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ, Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΈΠΌΠ΅Π½ΠΈ ΡΠ·Π»Π° Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ Π³ΡΡΠΏΠΏΠΎΠ²ΠΎΠΉ Π°Π΄ΡΠ΅Ρ 224.0.0.1?
ΠΠ»Π°Π²Π° 29
ΠΠΎΡΡΡΠΏ ΠΊ ΠΊΠ°Π½Π°Π»ΡΠ½ΠΎΠΌΡ ΡΡΠΎΠ²Π½Ρ
29.1. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠ°Π½Π°Π»ΡΠ½ΠΎΠΌΡ ΡΡΠΎΠ²Π½Ρ. ΠΡΠΎ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ:
1. ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡΡ Π½Π° ΠΊΠ°Π½Π°Π»ΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅, ΡΡΠΎ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠ°ΠΊ tcpdump, Π½Π° ΠΎΠ±ΡΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ (Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²). ΠΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊ ΡΡΠΎΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠΌΠ΅ΡΠ°Π½Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ (promiscuous mode), ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π²ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ, ΠΏΡΠΎΡ ΠΎΠ΄ΡΡΠΈΠ΅ ΠΏΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΊΠ°Π±Π΅Π»Ρ, Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΠ·Π»Π°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°.
ΠΠ ΠΠΠΠ§ΠΠΠΠΠΡΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π΅ ΡΠ°ΠΊ ΠΏΠΎΠ»Π΅Π·Π½Π° Π² ΠΊΠΎΠΌΠΌΡΡΠΈΡΡΠ΅ΠΌΡΡ ΡΠ΅ΡΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠΈΡΠΎΠΊΠΎΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΎΡ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΡΡΠ°ΡΠΈΠΊ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΏΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΡΡΠΎΡ ΡΡΠ°ΡΠΈΠΊ Π°Π΄ΡΠ΅ΡΠΎΠ²Π°Π½ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ ΠΈΠ»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ ΠΊ ΡΡΠΎΠΌΡ ΠΏΠΎΡΡΡ, ΠΊΠ°ΠΊΠΈΠΌ Π±Ρ ΡΡΠ°ΡΠΈΠΊ Π½ΠΈ Π±ΡΠ»: Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΌ, ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ°Π΄ΡΠ΅ΡΠ½ΡΠΌ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΡΠ°ΡΠΈΠΊ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠΉ ΡΠ΅ΡΠ΅Π· Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΡΡΡ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΎΡΠ°, Π½ΡΠΆΠ½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ ΡΠ²ΠΎΠΉ ΠΏΠΎΡΡ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΎΡΠ° Π² ΡΠ΅ΠΆΠΈΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ (monitor mode ΠΈΠ»ΠΈ port mirroring). ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΡΡΠΈΡΠ°ΡΡ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΎΡΠ°ΠΌΠΈ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΠΊΠΎΠ²ΡΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π²ΡΡ ΡΠΊΠΎΡΠΎΡΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠ°ΡΠΎΡ 10/100 ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π²ΡΡ ΠΏΠΎΡΡΠΎΠ²ΡΠΌ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΎΡΠΎΠΌ: ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅ΠΉ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Π½Π° 100 ΠΠ±ΠΈΡ/Ρ, Π΄ΡΡΠ³ΠΎΠΉ β Π΄Π»Ρ ΡΠ΅ΡΠ΅ΠΉ Π½Π° 10 ΠΠ±ΠΈΡ/Ρ.
2. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π° Π½Π΅ ΠΊΠ°ΠΊ ΡΠ°ΡΡΠ΅ΠΉ ΡΠ΄ΡΠ°. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π²Π΅ΡΡΠΈΠΉ Unix ΡΠ΅ΡΠ²Π΅ΡΠ° RARP β ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΈΡΡΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ RARP Ρ ΠΊΠ°Π½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ (Π·Π°ΠΏΡΠΎΡΡ RARP Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ Π΄Π΅ΠΉΡΠ°Π³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ IP), Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΎΡΠ²Π΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π° ΠΊΠ°Π½Π°Π»ΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ.
Π’ΡΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠ°Π½Π°Π»ΡΠ½ΠΎΠΌΡ ΡΡΠΎΠ²Π½Ρ Π² Unix β ΡΡΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΉ ΡΠΈΠ»ΡΡΡ BSD (BPF, BSD Packet Filter), DLPI Π² SVR4 (Datalink Provider Interface β ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° ΠΊΠ°Π½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ) ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΡ ΡΠΎΠΊΠ΅ΡΠΎΠ² Linux (SOCK_PACKET). ΠΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠΌ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΎΠ±Π·ΠΎΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΡΡΠ΅Π΄ΡΡΠ², Π° Π·Π°ΡΠ΅ΠΌ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ libcap β ΠΎΡΠΊΡΡΡΡΡ Π΄Π»Ρ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π·Π°Ρ Π²Π°ΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ². ΠΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π°ΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ Π·Π°Π²ΠΈΡΡΡΠΈΠΌΠΈ ΠΎΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠ°Π½Π°Π»ΡΠ½ΠΎΠΌΡ ΡΡΠΎΠ²Π½Ρ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΌΡ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΡΡΠ»Π°Π΅Ρ Π·Π°ΠΏΡΠΎΡΡ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΈΠΌΠ΅Π½ DNS (ΠΌΡ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π΄Π΅ΠΉΡΠ°Π³ΡΠ°ΠΌΠΌΡ UDP ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΈΡ Π² ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠΉ ΡΠΎΠΊΠ΅Ρ) ΠΈ ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΎΡΠ²Π΅Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ libcap, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π»ΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΠΈΠΌΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ ΡΡΠΌΠΌΡ Π² Π΄Π΅ΠΉΡΠ°Π³ΡΠ°ΠΌΠΌΡ UDP.
29.2. BPF: ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΉ ΡΠΈΠ»ΡΡΡ BSD
4.4BSD ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΠ΅ΡΠΊΠ»ΠΈ-ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ BPF β ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΉ ΡΠΈΠ»ΡΡΡ BSD (BSD Packet Filter). Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ BPF ΠΎΠΏΠΈΡΠ°Π½Π° Π² Π³Π»Π°Π²Π΅ 31 [128]. ΠΡΡΠΎΡΠΈΡ BPF, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° BPF ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΌ ΡΠΈΠ»ΡΡΡΠΎΠΌ SunOs 4.1.x NIT ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² [72].
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ°Π½Π°Π»ΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ BPF ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ Π²ΡΡΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡ. 29.1.
Π ΠΈΡ. 29.1. ΠΠ°Ρ Π²Π°Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ BPF
ΠΡΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Ethernet ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π½Π° ΡΠΈΡ. 4.11 ΠΈ 4.19 Π² [128]. ΠΡΠ·ΠΎΠ² BPF Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΡΠ΅Π΅ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ·ΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π΄ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΡΠΎΡΠ½ΠΎΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΡΠΌΠ΅ΡΠΎΠΊ.
ΠΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΠΎ ΠΏΠΎ ΡΠ΅Π±Π΅ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈΠ· ΠΊΠ°Π½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ BPF Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΡ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΡΠΊΡΡΠ²Π°ΡΡΠ΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ BPF, ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΈΠ»ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΠ΅ΠΌ BPF ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΠ°ΠΊΠ΅ΡΡ. Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΠ»ΡΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΈΠ»ΡΡΡΠ° udp or tcp ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΠΊΠ΅ΡΡ UDP ΠΈ TCP), Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΈΠ»ΡΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠΎΠ»Π΅ΠΉ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΈΠ»ΡΡΡ
tcp and port 80 and tcp[13:l] & 0x7 != 0
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π² Π³Π»Π°Π²Π΅ 14 [128] Π΄Π»Ρ ΠΎΡΠ±ΠΎΡΠ° ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² TCP, Π½Π°ΠΏΡΠ°Π²Π»ΡΠ²ΡΠΈΡ ΡΡ ΠΊ ΠΏΠΎΡΡΡ 80 ΠΈΠ»ΠΈ ΠΎΡ Π½Π΅Π³ΠΎ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΡΠ»Π°Π³ΠΈ SYN, FIN ΠΈΠ»ΠΈ RST. ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ tcp [13:1] ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡΠΎΠ²ΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π½Π°ΡΠΈΠ½Π°ΡΡΠ΅ΠΌΡΡΡ Ρ 13-Π³ΠΎ Π±Π°ΠΉΡΠ° ΠΎΡ Π½Π°ΡΠ°Π»Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° TCP.
Π BPF ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠΈΠ»ΡΡΡΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΌΡ ΠΏΠ°ΠΊΠ΅ΡΡ. Π₯ΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ Π½Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° (ΠΎΠ½ ΠΎΠΏΠΈΡΠ°Π½ Π² ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ BPF), ΠΏΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΠΈ ASCII (ΡΠ°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Π°Ρ ΡΡΡΠΎΠΊΠ°, Π½Π°ΡΠΈΠ½Π°ΡΡΠ°ΡΡΡ Ρ tcp) Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΡΠ·ΡΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ pcap_compile, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 29.7.
Π ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ BPF ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ Π½Π° Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅.
1. Π€ΠΈΠ»ΡΡΡΠ°ΡΠΈΡ BPF ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²Π½ΡΡΡΠΈ ΡΠ΄ΡΠ°, Π·Π° ΡΡΠ΅Ρ ΡΠ΅Π³ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ· ΡΠ΄ΡΠ° Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΡΠ΄ΡΠ° Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠΈΠΌ. ΠΡΠ»ΠΈ Π±Ρ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ, Ρ BPF ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π±ΡΡΡΡΡΠΌΠΈ ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ.
2. BPF ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΠ΄Π΅ΡΡ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ Π΄Π»ΠΈΠ½Π΅ Π·Π°Ρ Π²Π°ΡΠ° (capture length). ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΏΠ°ΠΊΠ΅ΡΠ°, Π° Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ΡΡ Π² Π½Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ BPF Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ tcpdump, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π²Π½ΠΎ 68 Π±Π°ΠΉΡ, ΠΈ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ 14-Π±Π°ΠΉΡΠΎΠ²ΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ethernet, 20-Π±Π°ΠΉΡΠΎΠ²ΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° IP, 20-Π±Π°ΠΉΡΠΎΠ²ΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° TCP ΠΈ 14 Π±Π°ΠΉΡ Π΄Π°Π½Π½ΡΡ . ΠΠΎ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, DNS ΠΈΠ»ΠΈ NFS) ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ» ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ tcpdump.