เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบ—เบฒเบ‡เป„เบเปƒเบ™ OpenBSD IPv6 stack

ะ’ ั„ะพะฝะพะฒะพะผ ะฟั€ะพั†ะตััะต slaacd, ะพั‚ะฒะตั‡ะฐัŽั‰ะตะผ ะฒ OpenBSD ะทะฐ ะฐะฒั‚ะพะบะพะฝั„ะธะณัƒั€ะฐั†ะธัŽ ะฐะดั€ะตัะพะฒ IPv6 (IPv6 Stateless Address Autoconfiguration, RFC 4862), ะฒั‹ัะฒะปะตะฝะฐ ัƒัะทะฒะธะผะพัั‚ัŒ, ะฟั€ะธะฒะพะดัั‰ะฐั ะบ ะฟะตั€ะตะฟะพะปะฝะตะฝะธัŽ ะฑัƒั„ะตั€ะฐ ะฟั€ะธ ะฟะพะปัƒั‡ะตะฝะธะธ ัะฟะตั†ะธะฐะปัŒะฝะพ ะพั„ะพั€ะผะปะตะฝะฝะพะณะพ ะฐะฝะพะฝัะฐ ะผะฐั€ัˆั€ัƒั‚ะธะทะฐั‚ะพั€ะฐ IPv6 (RA, Router Advertisement).

ะ˜ะทะฝะฐั‡ะฐะปัŒะฝะพ ั„ัƒะฝะบั†ะธะพะฝะฐะปัŒะฝะพัั‚ัŒ ะฐะฒั‚ะพะฝะฐัั‚ั€ะพะนะบะธ ะฐะดั€ะตัะพะฒ IPv6 ะฑั‹ะปะฐ ั€ะตะฐะปะธะทะพะฒะฐะฝะฐ ะฝะฐ ัƒั€ะพะฒะฝะต ัะดั€ะฐ, ะฝะพ ะฝะฐั‡ะธะฝะฐั ั OpenBSD 6.2 ะฑั‹ะปะฐ ะฒั‹ะฝะตัะตะฝะฐ ะฒ ะพั‚ะดะตะปัŒะฝั‹ะน ะฝะตะฟั€ะธะฒะธะปะตะณะธั€ะพะฒะฐะฝะฝั‹ะน ะฟั€ะพั†ะตัั slaacd. ะฃะบะฐะทะฐะฝะฝั‹ะน ะฟั€ะพั†ะตัั ะพั‚ะฒะตั‡ะฐะตั‚ ะทะฐ ะพั‚ะฟั€ะฐะฒะบัƒ ัะพะพะฑั‰ะตะฝะธะน RS (Router Solicitation) ะธ ั€ะฐะทะฑะพั€ะฐ ะพั‚ะฒะตั‚ะพะฒ RA (Router Advertisement) ั ะธะฝั„ะพั€ะผะฐั†ะธะตะน ะพ ะผะฐั€ัˆั€ัƒั‚ะธะทะฐั‚ะพั€ะต ะธ ะฟะฐั€ะฐะผะตั‚ั€ะฐั… ัะตั‚ะตะฒะพะณะพ ะฟะพะดะบะปัŽั‡ะตะฝะธั.

ะ’ ั„ะตะฒั€ะฐะปะต ะฒ slaacd ะฑั‹ะปะฐ ะธัะฟั€ะฐะฒะปะตะฝะฐ ะพัˆะธะฑะบะฐ, ะฟั€ะธะฒะพะดัั‰ะฐั ะบ ะฐะฒะฐั€ะธะนะฝะพะผัƒ ะทะฐะฒะตั€ัˆะตะฝะธัŽ ะฒ ัะปัƒั‡ะฐะต ัƒะบะฐะทะฐะฝะธั 7 ัะตั€ะฒะตั€ะพะฒ ะฒ ัะฟะธัะบะต RDNSS (Recursive DNS Servers). ะŸะพะดะพะฑะฝะฐั ะพะฟะปะพัˆะฝะพัั‚ัŒ ะฟั€ะธะฒะปะตะบะปะฐ ะฒะฝะธะผะฐะฝะธะต ะฝะตะทะฐะฒะธัะธะผั‹ั… ะธััะปะตะดะพะฒะฐั‚ะตะปะตะน, ะบะพั‚ะพั€ั‹ะต ะฟะพะฟั‹ั‚ะฐะปะธััŒ ะธะทัƒั‡ะธั‚ัŒ ะบะพะด slaacd ะฝะฐ ะฟั€ะตะดะผะตั‚ ะดั€ัƒะณะธั… ะพัˆะธะฑะพะบ, ะฒะพะทะฝะธะบะฐัŽั‰ะธั… ะฟั€ะธ ั€ะฐะทะฑะพั€ะต ะฟะพะปะตะน ะฒ ัะพะพะฑั‰ะตะฝะธัั… RA. ะะฝะฐะปะธะท ะฟะพะบะฐะทะฐะป, ั‡ั‚ะพ ะฒ ะบะพะดะต ะธะผะตะตั‚ัั ะตั‰ั‘ ะพะดะฝะฐ ะฟั€ะพะฑะปะตะผะฐ, ะฟั€ะพัะฒะปััŽั‰ะฐััั ะฟั€ะธ ะพะฑั€ะฐะฑะพั‚ะบะต ะฟะพะปั DNSSL (DNS Search List), ะฒะบะปัŽั‡ะฐัŽั‰ะตะณะพ ัะฟะธัะบะพะฒ ะดะพะผะตะฝะฝั‹ั… ะธะผั‘ะฝ ะธ ัˆะฐะฑะปะพะฝะพะฒ ั…ะพัั‚ะพะฒ ะดะปั DNS.

ะšะฐะถะดะพะต ะธะผั ะฒ ัะฟะธัะบะต DNSSL ะบะพะดะธั€ัƒะตั‚ัั ั ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะตะผ ั€ะฐะทะดะตะปะธั‚ะตะปั ั ะฝัƒะปะตะฒั‹ะผ ะบะพะดะพะผ ะธ ะฟั€ะพะผะตะถัƒั‚ะพั‡ะฝั‹ั… ะพะดะฝะพะฑะฐะนั‚ะพะฒั‹ั… ะผะตั‚ะพะบ, ะพะฟั€ะตะดะตะปััŽั‰ะธั… ั€ะฐะทะผะตั€ ัะปะตะดะพะผ ะธะดัƒั‰ะธั… ะดะฐะฝะฝั‹ั…. ะฃัะทะฒะธะผะพัั‚ัŒ ะฒั‹ะทะฒะฐะฝะฐ ั‚ะตะผ, ั‡ั‚ะพ ะฒ ะบะพะดะต ั€ะฐะทะฑะพั€ะฐ ัะฟะธัะบะฐ ะฟะพะปะต ั ั€ะฐะทะผะตั€ะพะผ ะบะพะฟะธั€ัƒะตั‚ัั ะฒ ะฟะตั€ะตะผะตะฝะฝัƒัŽ ัะพ ะทะฝะฐะบะพะฒั‹ะผ ั‚ะธะฟะพะผ integer (ยซlen = data[pos]ยป). ะกะพะพั‚ะฒะตั‚ัั‚ะฒะตะฝะฝะพ, ะฒ ัะปัƒั‡ะฐะต ัƒะบะฐะทะฐะฝะธั ะฒ ะฟะพะปะต ะทะฝะฐั‡ะตะฝะธั ั ะฒั‹ัั‚ะฐะฒะปะตะฝะฝั‹ะผ ัั‚ะฐั€ัˆะธะผ ะฑะธั‚ะพะผ, ัั‚ะพ ะทะฝะฐั‡ะตะฝะธะต ะฑัƒะดะตั‚ ะฒะพัะฟั€ะธะฝัั‚ะพ ะฒ ัƒัะปะพะฒะฝะพะผ ะพะฟะตั€ะฐั‚ะพั€ะต ะบะฐะบ ะพั‚ั€ะธั†ะฐั‚ะตะปัŒะฝะพะต ั‡ะธัะปะพ ะธ ะฟั€ะพะฒะตั€ะบะฐ ะฝะฐ ะผะฐะบัะธะผะฐะปัŒะฝั‹ะน ะดะพะฟัƒัั‚ะธะผั‹ะน ั€ะฐะทะผะตั€ (ยซif (len > 63 || len + pos + 1 > datalen) {ยซ) ะฝะต ัั€ะฐะฑะพั‚ะฐะตั‚, ั‡ั‚ะพ ะฟั€ะธะฒะตะดั‘ั‚ ะบ ะฒั‹ะฟะพะปะฝะตะฝะธัŽ ะฒั‹ะทะพะฒะฐ memcpy ั ะฟะฐั€ะฐะผะตั‚ั€ะพะผ, ั€ะฐะทะผะตั€ ะบะพะฟะธั€ัƒะตะผั‹ั… ะดะฐะฝะฝั‹ั… ะฟั€ะธ ะบะพั‚ะพั€ะพะผ ะฟั€ะตะฒั‹ัˆะฐะตั‚ ั€ะฐะทะผะตั€ ะฑัƒั„ะตั€ะฐ.

เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบ—เบฒเบ‡เป„เบเปƒเบ™ OpenBSD IPv6 stack
เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบ—เบฒเบ‡เป„เบเปƒเบ™ OpenBSD IPv6 stack


เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™