FreeBSD гарын авлага
Prev | Chapter 31 Сүлжээний нэмэлт ойлголтууд | Next

# 31.11 IPv6

Анхлан бичсэн Аарон Каплан. Дахин бүтцийг өөрчилж нэмсэн Том Рөүдс. Өргөтгөсөн Брэд Дэйвис.

IPv6 (бас IPng “IP next generation” буюу дараа үеийн IP гэгддэг) нь олонд танигдсан IP протоколын (бас IPv4 гэгддэг) шинэ хувилбар юм. Одоогийн бусад *BSD системүүдийн адил FreeBSD нь KAME IPv6 лавлагаа шийдлийг агуулдаг. Тэгэхээр таны FreeBSD систем таныг IPv6-г туршихад хэрэгтэй бүхнийг агуулсан байдаг. Энэ хэсэг нь IPv6-г тохируулж ажиллуулах талаар анхаарлаа хандуулах болно.

1990 оны эхэн үеэс хүмүүс IPv4-ийн хаягийн хэмжээ хурдацтай багасаж байгааг мэдэх болсон. Интернэтийн өсөлтийн хурдаас хамаараад хоёр гол асуудал гарч ирсэн:

- Хаяггүй болж эхэлсэн. RFC1918 хувийн хаягийн талбар (`10.0.0.0/8`, `172.16.0.0/12`, болон `192.168.0.0/16`) болон Network Address Translation (NAT) буюу Сүлжээний хаягийн хөрвүүлэлтийг ашигладаг болсон болохоор өнөөдөр энэ нь тийм ч чухал асуудал байхаа больсон.

- Чиглүүлэгчийн хүснэгтийн оруулгууд хэтэрхий ихсэж байгаа явдал. Энэ нь өнөөдөр асуудал хэвээр байгаа билээ.

IPv6 нь эдгээр асуудлууд болон өөр бусад олныг шийддэг:

- 128 битийн хаягийн талбар. Өөрөөр хэлбэл онолын хувьд 340,282,366,920,938,463,463,374,607,431,768,211,456 хаяг байна. Энэ нь манай гариг дээрх нэг квадрат метр бүрт ойролцоогоор 6.67 * 10^27 IPv6 хаяг байна гэсэн үг юм.

- Чиглүүлэгчүүд нь зөвхөн сүлжээний нийлбэр хаягуудыг өөрсдийн чиглүүлэлтийн хүснэгтүүдэд хадгалах бөгөөд ингэснээр чиглүүлэлтийн хүснэгтийн дундаж хэмжээг 8192 хүртэл бууруулдаг.

IPv6-ийн бусад ашигтай олон боломжууд бас байдаг, тэдгээрээс дурдвал:

- Хаягийн автомат тохиргоо (RFC2462)

- Anycast хаягууд (“one-out-of many” буюу олноос ганц)

- Зайлшгүй шаардлагатай (mandatory) multicast хаягууд

- IPsec (IP security буюу нууцлаг)

- Хялбаршуулсан толгойн бүтэц

- Хөдөлгөөнт IP

- IPv6-to-IPv4 шилжилтийн арга замууд

Дэлгэрэнгүй мэдээллийн талаар доороос үзнэ үү:

- playground.sun.com дэх IPv6-ийн тухай тойм

- KAME.net

## 31.11.1 IPv6 хаягуудын тухай суурь мэдээлэл

IPv6 хаягуудын өөр өөр төрлүүд байдаг: Unicast, Anycast, болон Multicast.

Unicast хаягууд нь бидний мэддэг хаягууд юм. Unicast хаяг уруу илгээсэн пакет нь яг тэр хаягт харгалзах интерфэйс дээр ирдэг.

Anycast хаягуудыг unicast хаягуудаас ялгах боломжгүй байдаг боловч тэдгээр нь бүлэг интерфэйсүүдийг хаягладаг. Anycast хаяг уруу чиглэсэн пакет хамгийн ойрын (чиглүүлэгчийн хэмжилтийн хувьд) интерфэйс дээр ирэх болно. Anycast хаягуудыг зөвхөн чиглүүлэгчид ашиглаж болох юм.

Multicast хаягууд нь бүлэг интерфэйсүүдийг таньдаг. Multicast хаяг уруу чиглэсэн пакет нь multicast бүлэгт харьяалагдах бүх интерфэйсүүд дээр ирэх болно.

> Note: IPv4 цацах (broadcast) хаяг (ихэвчлэн `xxx.xxx.xxx.255`) нь IPv6-ийн multicast хаягуудаар илэрхийлэгддэг.

Table 31-2. Нөөц IPv6 хаягууд

IPv6 хаяг | Prefixlength буюу угтварын урт (битээр) | Тайлбар | Тэмдэглэл
--- | --- | --- | ---
`::` | 128 бит | тодорхойлогдоогүй | харьцуулбал IPv4 дэх `0.0.0.0`
`::1` | 128 бит | loopback буюу буцах хаяг | харьцуулбал IPv4 дэх `127.0.0.1`
`::00:xx:xx:xx:xx` | 96 бит | суулгагдсан IPv4 | Бага 32 бит нь IPv4 хаяг юм. Бас “IPv4 нийцтэй IPv6 хаяг” гэгддэг
`::ff:xx:xx:xx:xx` | 96 бит | IPv4-р илэрхийлэгдсэн IPv6 хаяг | Бага 32 бит нь IPv4 хаяг юм. IPv6-г дэмждэггүй хостуудад зориулсан.
`fe80::` - `feb::` | 10 бит | link-local | харьцуулбал IPv4 дэх loopback буюу буцах хаяг
`fec0::` - `fef::` | 10 бит | site-local |
`ff::` | 8 бит | multicast |
`001` (хоёртын системээр) | 3 бит | глобал unicast | Бүх глобал unicast хаягууд нь энэ цөөрмөөс заагдана. Эхний 3 бит нь “001” байна.

## 31.11.2 IPv6 хаягуудыг унших нь

Дүрмийн дагуу ийм хэлбэртэй байна: `x:x:x:x:x:x:x:x` хэлбэрийн байх бөгөөд “x” бүр нь 16 битийн арван зургаат утга байна. Жишээ нь `FEBC:A574:382B:23C1:AA49:4592:4EFE:9982`

Хаяг нь ихэнхдээ дандаа тэгүүдээс тогтох урт дэд хэсгүүдээс тогтож болох бөгөөд хаягийн тийм хэсгийг “::” гэж хураангуйлж болно. Дөрвөн арван зургаат тооны гурав хүртэлх эхний “0”-үүдийг орхиж бас болно. Жишээ нь `fe80::1` нь дүрэмд заасан хэлбэрээр бол `fe80:0000:0000:0000:0000:0000:0000:0001` байна.

Гурав дахь хэлбэр нь сүүлийн 32 бит хэсгийг бидний мэддэг (аравтын) IPv4 загварын цэгүүдээр “.” тусгаарлаж бичих явдал юм. Жишээ нь `2002::10.0.0.1` нь (арван зургаатын) дүрэмд зааснаар `2002:0000:0000:0000:0000:0000:0a00:0001` болох бөгөөд үүнийг бас `2002::a00:1` гэж бичиж болох юм.

Энэ хүртэл уншигч доор дурдсаныг ойлгож чадаж байх ёстой:

    # ifconfig

    rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
             inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255
             inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1
             ether 00:00:21:03:08:e1
             media: Ethernet autoselect (100baseTX )
             status: active

`fe80::200:21ff:fe03:8e1%rl0` нь автоматаар тохируулагдсан link-local хаяг юм. Энэ нь MAC хаягаас автомат тохиргооны хэсэг болон үүсгэгддэг.

IPv6 хаягуудын бүтцийн тухай дэлгэрэнгүй мэдээллийг RFC3513 хаягаас үзнэ үү.

## 31.11.3 Холбогдох нь

Одоогоор бусад IPv6 хостууд болон сүлжээнүүдтэй холбогдох дөрвөн арга байдаг:

- IPv6 үйлчилгээ үзүүлдэг эсэхийг мэдэхийн тулд өөрийн Интернэтийн үйлчилгээ үзүүлэгчид хандах хэрэгтэй.

- SixXS нь дэлхий даяар эцсийн хэрэглэгчдийн хооронд туннелийн үйлчилгээ үзүүлдэг.

- 6-аас-4 уруу туннель хийх (RFC3068)

- Хэрэв та dial-up холболт дээр байгаа бол `net/freenet6` портыг ашиглах хэрэгтэй.

## 31.11.4 IPv6 ертөнц дэх DNS

IPv6-д зориулсан хоёр төрлийн DNS бичлэг байдаг. IETF нь A6 бичлэгийг хуучин, хэрэгцээнээс гарсан гэж зарласан. AAAA бичлэгүүд нь одоо стандарт болсон байгаа.

AAAA бичлэгүүдийг ашиглах нь амархан. Өөрийн хостын нэрийг дөнгөж авсан шинэ IPv6 хаягт зааж доор дурдсаныг:

    MYHOSTNAME           AAAA    MYIPv6ADDR

өөрийн анхдагч бүсийн DNS файл уруу нэмж өгнө. Та өөрийн DNS бүсүүдийг удирддаггүй бол өөрийн DNS үйлчилгээ үзүүлэгчээс асуух хэрэгтэй. bind (8.3 ба 9 хувилбар) болон `dns/djbdns`-ийн (IPv6 засвартай) одоогийн хувилбарууд AAAA бичлэгүүдийг дэмждэг.

## 31.11.5 `/etc/rc.conf` файлд хэрэгцээтэй өөрчлөлтүүдийг хийх нь

### 31.11.5.1 IPv6 клиентийн тохиргоонууд

Эдгээр тохиргоонууд нь таны LAN-д байх машиныг чиглүүлэгч биш клиент маягаар ажиллуулахаар тохируулахад танд туслах болно. Таны интерфэйсийг ачаалах үед автоматаар rtsol(8)-оор тохируулуулахын тулд таны нэмэх ёстой зүйл бол дараах мөр юм:

    ipv6_enable="YES"

`2001:471:1f11:251:290:27ff:fee0:2093` зэрэг IP хаягийг өөрийн `fxp0` интерфэйсд статикаар өгөхийн тулд доор дурдсаныг нэмнэ:

    ipv6_ifconfig_fxp0="2001:471:1f11:251:290:27ff:fee0:2093"

`2001:471:1f11:251::1` анхдагч чиглүүлэгчийг зааж өгөхдөө доор дурдсаныг `/etc/rc.conf` файлд нэмнэ:

    ipv6_defaultrouter="2001:471:1f11:251::1"

### 31.11.5.2 IPv6 чиглүүлэгч/гарцын тохиргоонууд

Энэ нь таны туннелийн үйлчилгээ үзүүлэгчийн өгсөн чиглэлүүдийг авч тэдгээрийг дахин ачаалсан ч гэсэн үлдэхээр болгож тохиргоо болгон хөрвүүлэхэд танд туслах болно. Эхлүүлэх үед өөрийн туннелийг сэргээхийн тулд доор дурдсантай төстэйг `/etc/rc.conf` файлд ашиглана:

Тохируулах Ердийн Туннель хийх интерфэйсүүдийг жагсаана. Жишээ нь `gif0`:

    gif_interfaces="gif0"

`MY_IPv4_ADDR` гэсэн локал төгсгөлтэй интерфэйсийг `REMOTE_IPv4_ADDR` гэсэн алсын төгсгөл уруу тохируулахын тулд:

    gifconfig_gif0="MY_IPv4_ADDR REMOTE_IPv4_ADDR"

Өөрийн IPv6 туннелийн төгсгөл болгон ашиглахаар таны зааж өгсөн IPv6 хаягийг хамааруулахын тулд доор дурдсаныг нэмнэ:

    ipv6_ifconfig_gif0="MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR"

Тэгээд таны хийх зүйл чинь IPv6-д зориулж анхдагч чиглүүлэлт тохируулах явдал юм. Энэ нь IPv6 туннелийн нөгөө тал байх болно:

    ipv6_defaultrouter="MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR"

### 31.11.5.3 IPv6 туннелийн тохиргоонууд

Хэрэв сервер нь таны бусад сүлжээ болон гадаад ертөнцийн хооронд IPv6-г чиглүүлэх бол дараах `/etc/rc.conf` тохируулга бас хэрэгтэй болно:

    ipv6_gateway_enable="YES"

## 31.11.6 Чиглүүлэгчийн зарлалт ба Хостын автомат тохиргоо

Энэ хэсэг нь IPv6 анхдагч чиглүүлэлтийг зарлахын тулд rtadvd(8)-г тохируулахад тань туслах болно.

rtadvd(8)-г идэвхжүүлэхийн тулд таны `/etc/rc.conf` файлд дараах тохиргоо хэрэгтэй болно:

    rtadvd_enable="YES"

IPv6 чиглүүлэгчийн төлөөлөлт хийгдэх интерфэйсийг заах нь чухал юм. Жишээ нь rtadvd(8)-д `fxp0`-г ашиглахыг хэлж өгөхийн тулд доор дурдсаныг нэмнэ:

    rtadvd_interfaces="fxp0"

Одоо бид `/etc/rtadvd.conf` тохиргооны файл үүсгэх ёстой. Энд жишээ байна:

    fxp0:\
        :addrs#1:addr="2001:471:1f11:246::":prefixlen#64:tc=ether:

`fxp0`-г өөрийн ашиглах интерфэйсээр солих хэрэгтэй.

Дараа нь `2001:471:1f11:246::`-г өөрийн хуваарилалтын угтвараар солиорой.

Хэрэв та `/64` дэд сүлжээг зориулсан бол өөр бусад ямар ч өөрчлөлт хийх хэрэггүй. Хэрэв тийм биш бол та `prefixlen#` буюу угтварын уртыг зөв утгаар өөрчлөх шаардлагатай.

Prev | Home | Next
Parallel Line IP (PLIP) буюу Зэрэгцээ Шугамын IP | Up | Asynchronous Transfer Mode (ATM) буюу Асинхрон Дамжуулах Горим

Энэ болон бусад баримтуудыг ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ хаягаас татаж авч болно.

FreeBSD-ийн талаар <questions@FreeBSD.org> хаягтай холбоо барихаасаа өмнө баримтыг уншина уу.
Энэ бичиг баримттай холбоотой асуулт байвал <doc@FreeBSD.org> хаягаар цахим захидал явуулна уу.
Энэ бичиг баримтын орчуулгатай холбоотой асуулт байвал <admin@mnbsd.org> хаягаар цахим захидал явуулна уу.