OpenBSD์์ IPv6 ์ฃผ์ ์๋ ๊ตฌ์ฑ(IPv6 Stateless Address Autoconfiguration, RFC 4862)์ ๋ด๋นํ๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค slaacd์์ ํน๋ณํ ๊ณ ์๋ IPv6 ๋ผ์ฐํฐ ๊ด๊ณ (RA, Router Advertising) ์์ ์ ๋ฒํผ ์ค๋ฒํ๋ก๊ฐ ๋ฐ์ํ๋ ์ทจ์ฝ์ ์ด ๋ฐ๊ฒฌ๋์์ต๋๋ค. .
์ฒ์์๋ IPv6 ์ฃผ์ ์๋ ๊ตฌ์ฑ ๊ธฐ๋ฅ์ด ์ปค๋ ์์ค์์ ๊ตฌํ๋์์ง๋ง OpenBSD 6.2๋ถํฐ ๋ณ๋์ ๊ถํ์ด ์๋ slaacd ํ๋ก์ธ์ค๋ก ์ด๋๋์์ต๋๋ค. ์ด ํ๋ก์ธ์ค๋ RS(Router Solicitation) ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ณ ๋ผ์ฐํฐ ๋ฐ ๋คํธ์ํฌ ์ฐ๊ฒฐ ๋งค๊ฐ๋ณ์์ ๋ํ ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ RA(Router Advertising) ์๋ต์ ๊ตฌ๋ฌธ ๋ถ์ํ๋ ์ผ์ ๋ด๋นํฉ๋๋ค.
7์์ slaacd๋ RDNSS(Recursive DNS Servers) ๋ชฉ๋ก์ XNUMX๊ฐ์ ์๋ฒ๊ฐ ์ง์ ๋ ๊ฒฝ์ฐ ์ถฉ๋์ ์ผ์ผํค๋ ๋ฒ๊ทธ๋ฅผ ์์ ํ์ต๋๋ค. ์ด๋ฌํ ๊ฐ๋ ์ RA ๋ฉ์์ง์ ํ๋๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ ๋ ๋ฐ์ํ๋ ๋ค๋ฅธ ์ค๋ฅ์ ๋ํด slaacd ์ฝ๋๋ฅผ ์กฐ์ฌํ๋ ค๋ ๋ ๋ฆฝ์ ์ธ ์ฐ๊ตฌ์์ ๊ด์ฌ์ ๋์์ต๋๋ค. ๋ถ์ ๊ฒฐ๊ณผ, ์ฝ๋์ ๋ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ์ด๋ ๋๋ฉ์ธ ์ด๋ฆ ๋ชฉ๋ก๊ณผ DNS์ฉ ํธ์คํธ ํ ํ๋ฆฟ์ด ํฌํจ๋ DNSSL(DNS ๊ฒ์ ๋ชฉ๋ก) ํ๋๋ฅผ ์ฒ๋ฆฌํ ๋ ๋ํ๋ฉ๋๋ค.
DNSSL ๋ชฉ๋ก์ ๊ฐ ์ด๋ฆ์ ๋ ๊ตฌ๋ถ ๊ธฐํธ์ ๋ค์ ๋์ค๋ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํ๋ 63๋ฐ์ดํธ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ฝ๋ฉ๋ฉ๋๋ค. ์ทจ์ฝ์ ์ ๋ชฉ๋ก ๊ตฌ๋ฌธ ๋ถ์ ์ฝ๋์์ ํฌ๊ธฐ๊ฐ ์๋ ํ๋๊ฐ ๋ถํธ ์๋ ์ ์ ์ ํ("len = data[pos]")์ ๋ณ์์ ๋ณต์ฌ๋๋ค๋ ์ฌ์ค๋ก ์ธํด ๋ฐ์ํฉ๋๋ค. ๋ฐ๋ผ์ ์ต์์ ๋นํธ๊ฐ ์ค์ ๋ ํ๋์ ๊ฐ์ด ์ง์ ๋๋ฉด ์ด ๊ฐ์ ์กฐ๊ฑด๋ถ ์ฐ์ฐ์์์ ์์๋ก ์ธ์๋๋ฉฐ ์ต๋ ํ์ฉ ํฌ๊ธฐ(โif (len > 1 || len + pos) + XNUMX > datalen) {โ)๋ ์๋ํ์ง ์์ผ๋ฉฐ ๋ณต์ฌ๋ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ๋ฒํผ ํฌ๊ธฐ๋ฅผ ์ด๊ณผํ๋ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ memcpy๋ฅผ ํธ์ถํ๊ฒ ๋ฉ๋๋ค.
์ถ์ฒ : opennet.ru