Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«UNIX: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сСтСвых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 144

Автор Уильям БтивСнс

Ѐункция sysctl прСдоставляСт ΠΎΠ±Ρ‰ΠΈΠΉ способ получСния ΠΈ хранСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sysctl нас интСрСсуСт ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ:

β–  ΡΠΏΠΈΡΠΎΠΊ интСрфСйсов;

β–  Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ;

β–  ΠΊΡΡˆ ARP.

ИзмСнСния API сокСтов, Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ IPv6, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для сопоставлСния ΠΈΠΌΠ΅Π½ интСрфСйсов ΠΈ ΠΈΡ… индСксов. ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ интСрфСйсу присваиваСтся ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ индСкс. Π’ Π‘Π΅Ρ€ΠΊΠ»ΠΈ-рСализациях с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ интСрфСйсом ΡƒΠΆΠ΅ связан индСкс, поэтому Π½Π°ΠΌ нСслоТно Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sysctl.

УпраТнСния

1. Π§Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ считаСтС, Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅ sdl_len Π² структурС адрСса сокСта канального уровня для устройства с ΠΈΠΌΠ΅Π½Π΅ΠΌ eth10, адрСс канального уровня ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся 64-разрядным адрСсом IEEE EUI-64?

2. Π’ листингС 18.3 ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ сокСта SO_USELOOPBACK ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ write. Π§Ρ‚ΠΎ происходит?

Π“Π»Π°Π²Π° 19

Π‘ΠΎΠΊΠ΅Ρ‚Ρ‹ управлСния ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ

19.1. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π‘ появлСниСм Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ бСзопасности IP (IPSec, см. RFC 2401 [64]) Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² стандартном ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ΅ управлСния ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ RFC 2367 [73] ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс управлСния ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ с IPSec ΠΈ ΠΈΠ½Ρ‹ΠΌΠΈ криптографичСскими сСтСвыми слуТбами. Подобно ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ сокСтам, этот интСрфСйс ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ сСмСйству ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ называСтся PF_KEY. Π’ этом сСмСйствС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ сокСты.

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•

Как ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 4.2, Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ систСм константа AF_KEY совпадаСт с PF_KEY. Однако Π² RFC 2367 ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ утвСрТдаСтся, Ρ‡Ρ‚ΠΎ с сокСтами управлСния ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ константа PF_KEY.

Для открытия символьного сокСта управлСния ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ. Π’ систСмах с сСгмСнтированными привилСгиями для этого дСйствия Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ привилСгия. Π’ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Unix-систСмах ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ сокСты ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ.

IPSec прСдоставляСт криптографичСский сСрвис Π½Π° Π±Π°Π·Π΅ соглашСний ΠΎ бСзопасности (security association, SA). БоглашСниС ΠΎ бСзопасности прСдставляСт собой сочСтаниС адрСсов отправитСля ΠΈ получатСля (Π° ΠΏΡ€ΠΈ нСобходимости, транспортного ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΈ ΠΏΠΎΡ€Ρ‚ΠΎΠ²), ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ) ΠΈ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ. К ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΏΠΎΡ‚ΠΎΠΊΡƒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ нСсколько соглашСний (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, соглашСния ΠΎΠ± Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ ΠΎ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠΈ). Набор хранящихся Π² систСмС соглашСний называСтся Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… соглашСний ΠΎ бСзопасности (security association database, SADB).

Π‘Π°Π·Π° SADB ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с IPSec. Π’ Π½Π΅ΠΉ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒΡΡ записи для OSPFv2, RIPv2, RSVP ΠΈ Mobile-IP. По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ нСльзя ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ сокСты PF_KEY ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с IPSec.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ IPSec Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Ρ‚Π°ΠΊΠΆΠ΅ Π±Π°Π·Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ бСзопасности (security policy database, SPDB). ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ трСбования ΠΊ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΡƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Β«Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ А ΠΈ Π’ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ IPSec (authentication header, АН); Π½Π΅ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒΡΡΒ». Π‘Π°Π·Π° соглашСний описываСт порядок выполнСния Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… для обСспСчСния бСзопасности дСйствий, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ А ΠΈ Π’ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Ρ‚ΠΎ Π² SADB содСрТится ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈ ΠΊΠ»ΡŽΡ‡ΠΈ. К соТалСнию, стандартного ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° управлСния SPDB Π½Π΅ сущСствуСт. Π‘ΠΎΠΊΠ΅Ρ‚Ρ‹ PF_KEY Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Π±Π°Π·ΠΎΠΉ SADB, Π½ΠΎ Π½Π΅ с SPDB. РСализация IPSec Π³Ρ€ΡƒΠΏΠΏΡ‹ KAME ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для управлСния SPDB Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ PF_KEY, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΠΌ стандартом эти Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π½Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ.

Π‘ΠΎΠΊΠ΅Ρ‚Ρ‹ управлСния ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ:

1. ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ сообщСниС ядру ΠΈ всСм ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ процСссам с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ сокСтами, записав это сообщСниС Π² свой сокСт. Π’Π°ΠΊΠΈΠΌ способом Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΈ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ записи Π² Π±Π°Π·Π΅ соглашСний ΠΎ бСзопасности. Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ способом процСссы, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ (Ρ‚ΠΈΠΏΠ° OSPFv2), ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΈ Ρƒ Π΄Π΅ΠΌΠΎΠ½Π°-ΠΊΠ»ΡŽΡ‡Π½ΠΈΠΊΠ° (Π΄Π΅ΠΌΠΎΠ½Π°, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ).

2. ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ сообщСниС ΠΎΡ‚ ядра ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ процСсса Ρ‡Π΅Ρ€Π΅Π· сокСт управлСния ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ. Π­Ρ‚ΠΎ позволяСт ядру Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Π΄Π΅ΠΌΠΎΠ½Π°-ΠΊΠ»ΡŽΡ‡Π½ΠΈΠΊΠ° ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ соглашСния ΠΎ бСзопасности для Π½ΠΎΠ²ΠΎΠ³ΠΎ сСанса TCP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, согласно ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ΅, ΠΏΠΎΠ΄Π»Π΅ΠΆΠΈΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Ρ‰ΠΈΡ‚Π΅.

3. ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ядру запрос Π΄Π°ΠΌΠΏΠ°, ΠΈ ядро Π² ΠΎΡ‚Π²Π΅Ρ‚ пСрСдаст Π΅ΠΌΡƒ Π΄Π°ΠΌΠΏ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π±Π°Π·Ρ‹ SADB. Π­Ρ‚ΠΎ отладочная функция, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ доступна Π½Π΅ Π²ΠΎ всСх систСмах.

19.2. Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись

ВсС сообщСния Π² сокСтС управлСния ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ листингу 19.1[1]. Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ Π² зависимости ΠΎΡ‚ наличия Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ нСобходимости Π΅Π΅ прСдоставлСния. ВсС Π½ΡƒΠΆΠ½Ρ‹Π΅ структуры ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ <net/pfkeyv2.h>. ВсС сообщСния ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°ΡŽΡ‚ΡΡ 64-разрядному Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΡŽ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π΄ΠΎ Π΄Π»ΠΈΠ½, ΠΊΡ€Π°Ρ‚Π½Ρ‹Ρ… 64 разрядам. ВсС поля Π΄Π»ΠΈΠ½Ρ‹ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ 64-разрядными Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ 1 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ 8 Π±Π°ΠΉΡ‚. Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅, Π½Π΅ содСрТащСС достаточного количСства Π΄Π°Π½Π½Ρ‹Ρ…, дополняСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π΄ΠΎ Π΄Π»ΠΈΠ½Ρ‹, ΠΊΡ€Π°Ρ‚Π½ΠΎΠΉ 64 разрядам.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ sadb_msg_type Π·Π°Π΄Π°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΈΠ· дСсяти ΠΊΠΎΠΌΠ°Π½Π΄ управлСния ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ. Π’ΠΈΠΏΡ‹ сообщСний пСрСчислСны Π² Ρ‚Π°Π±Π». 19.1. Π—Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ sadb_msg ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ количСство Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ сообщСний ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ описаны Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…. Π¨Π΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΎΠ² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ с названиями структур, ΠΈΡ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ…, пСрСчислСны Π² Ρ‚Π°Π±Π». 19.3.

Листинг 19.1. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ сообщСния управлСния ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ

struct sadb_msg {

 u_int8_t  sadb_msg_version;  /* PF_KEY_V2 */

 u_int8_t  sadb_msg_type;     /* см. Ρ‚Π°Π±Π». 19.1 */

 u_int8_t  sadb_msg_errno;    /* ΠΊΠΎΠ΄ ошибки */

 u_int8_t  sadb_msg_satype;   /* см. Ρ‚Π°Π±Π». 19.2 */

 u_int16_t sadb_msg_len;      /* Π΄Π»ΠΈΠ½Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ / 8 */

 u_int16_t sadb_msg_reserved; /* Π½ΡƒΠ»ΡŒ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅, игнорируСтся

                                 ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ */

 u_int32_t sadb_msg_seq;      /* порядковый Π½ΠΎΠΌΠ΅Ρ€ */

 u_int32_t sadb_msg_pid;      /* ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ процСсса отправитСля

                                 ΠΈΠ»ΠΈ получатСля */

};


Π’Π°Π±Π»ΠΈΡ†Π° 19.1. Π’ΠΈΠΏΡ‹ сообщСний

Π’ΠΈΠΏ сообщСния К ядру ΠžΡ‚ ядра ОписаниС SADB_ACQUIRE β€’ β€’ Запрос Π½Π° созданиС записи Π² SADB SADB_ADD β€’ β€’ Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ записи Π² ΠΏΠΎΠ»Π½ΡƒΡŽ Π±Π°Π·Ρƒ бСзопасности SADB_DELETE β€’ β€’ Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ записи SADB_DUMP β€’ β€’ Π”Π°ΠΌΠΏ SADB (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ) SADB_EXPIRE β€’ Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± истСчСнии срока дСйствия записи SADB_FLUSH β€’ β€’ ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° всСй Π±Π°Π·Ρ‹ бСзопасности SADB_GET β€’ β€’ ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ записи SADB_GETSPI β€’ β€’ Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ SPI для создания записи SADB SADB_REGISTER β€’ РСгистрация для ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° SADB_ACQUIRE SADB_UPDATE β€’ β€’ ОбновлСниС записи Π² частичной SADB

Π’Π°Π±Π»ΠΈΡ†Π° 19.2. Π’ΠΈΠΏΡ‹ соглашСний ΠΎ бСзопасности

Π’ΠΈΠΏ соглашСния ОписаниС SADB_SATYPE_AH ΠΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ IPSec SADB_SATYPE_ESP ESP IPSec SADB_SATYPE_MIP Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ (Mobile IP) SADB_SATYPE_OSPFV2 АутСнтификация OSPFv2 SADB_SATYPE_RIPV2 АутСнтификация RIPv2 SADB_SATYPE_RSVP АутСнтификация RSVP SADB_SATYPE_UNSPECIFIED He ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½

Π’Π°Π±Π»ΠΈΡ†Π° 19.3. Π’ΠΈΠΏΡ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ PF_KEY