303
DHCPv6 บบบบบ กกก Configuration กกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกกก IPV6 กกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกก กกกกกกกกก Protocol กกกกกกกกกก กกกกกกกกกกกกกกกกกกกก กกกกกกกก address กกก Configuration กกกกกกกกกกกกกกกกกกกกกกก กกกกกก address กกกกกกกกกกกกกก routers กกกกกกกกกกกกกกก Configuration กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกก Address กกกกกกกกกกกกกกกก router กกก กกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกก กกกกกก กกกกกกกกกกกกกกกก Address กกกกกก กกกกกกกกก DNS server กกกกกกกกกกกกกกกกกกกกก Protocol กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกก กกกกกกกกกกกกกกกกกก Address กกกกกกกกกกก IPV6 กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกก Configuration กกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกก Block address กกก IPV6 กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกก กกกกกกกกกกกก NAT กกกกกกกกกกกกกกกกกกกกกกก IPV6 กกกกกกกกกกกกก Gateway กกก ISP กกกกกกก

cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

Embed Size (px)

Citation preview

Page 1: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

DHCPv6บทนำ�

การ Configuration อตโนมตเปนคณสมบตคณสมบตทสำาคญของ  IPV6  อยางทเนนยำ�าในสวนบทอนของหนงสอเลมน�แลว ในบทเราพบ Protocol ซงมความเกยวของกบสวนน� โดยไมม address การ Configuration อตโนมตจะมกลไกและจดเตรยม address เปนพ�นฐานให routers

อยางไรกตามการ Configuration อตโนมตไมเพยงแตเปนเรองเกยวกบการคอนฟก Address และคามาตรฐานของ router แตรวมถงเกยวของกบการ ไดขอมลขาวสารระดบสงอนท�งหมด หนงในความสำาคญทวไป โดยตวอยางกคอ Address ของการเขาไปส DNS server ในบททใกลเคยงเราพบ Protocol ทมงหมายจะจดเตรยมการกำาหนดขอมลทระดบช�นเครอขายและไมสามารถเตรยมรปแบบน�ของขอมลในระดบช�นทสงกวา

ระหวางน�นพ�นท Address ขนาดใหญท IPV6 สามารถเตรยมการสรางรองเรยกแตละสวนสำาหรบระดบทตองการการ Configuration อตโนมตจนจบเมอไหรทผใชเครอขายตองการมนเชอมตอมนเขาสเครอขายทองถน เพอตดตอผใหบรการอนเตอรเนตและจดการ Block address ของ IPV6 ผใชทางบานสามารถคอนฟกเขาไปในเครอขายทองถนอยางไร ในสวนทพเศษ หารตดออกของ NAT เปนผลลพธของการแนะนำา IPV6 ในความหมายท Gateway ท ISP ตองทำาหนาทเปน router ในคำาอธบายของการ Configuration อตโนมต นเปนจดมงหมายทพวกเราตองการทจะ คอนฟก router อตโนมต

มาตรฐานการคอนฟกสำาหรบ IPV6 (DHCPv6) ดวยงายๆของมนแตมกลไกมากมายเปนการเพมเตมสวนทหายไปและพ�นทบางสวน เปนการแกปญหาเพอใหไดมาตรฐาน

Page 2: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

บทน�อธบายรายละเอยดท�งหมดของ dhcpv6 ซงเปนไปตามทไดจดการมา จดใหสวนแบงท 4.2 เปนความเปนมาทางเทคนคสำาหรบ dhcpv6 ประกอบดวยขอจำากดระเบยบการและการใชตวอยางดวย ตอมาเปนจะแบงบรรยายการทำาใหเกดผลของ KAME สำาหรบ DHCPv6 เปนไปตามตวอยางซงมรายละเอยดมากเทาไรตามข �นตอนงาน สวนแบงเหลาน�ไดมการอภปรายรายละเอยดอนๆไวเชนกนสำาหรบขอจำากดข�นตอนทสวนแบง 4.2 ไมรวมถง สวนแบง ท 4.8 สรปบทน�ไดแสดงการใชตวอยางการทำาใหเกดผลของของ kame ทเปนสวนรวมเลกนอยของแผนการ

เนองจากข�นตอนของ dhcpv6 จะคลายกนมาก กบ ipv4 ในเรองราวของ dhcp บทน�จะมการกลาวถง เรองราว ipv4 ของ dhcp อยางเหมาะสม เพอหลกเลยงความสบสน dhcpv จะใชการกลาวถงข �นตอน ของเรอง ipv4 ในบางกรณ dhcp จะยงคงเปนทเคยใช แตมนจะเกยวของกบ dhcpv6 เสมอ

กลาวโดยทวๆ ไปของข�นตอน dhcpv6 ข�นตอน dhcpv6[เปน]โดยพ�นฐานเหมอนกบ dhcpv4 ในทจะกลาวตอไป:

ข�นตอนจะเหมอนๆกน เปนรากฐานของ client - server model วตถประสงคของข�นตอนจะตองจดหาขอมลเครอขายภายนอกสงท

คลายรางแหหรอตาขายมาจาก server ไปถง client โดยเฉพาะ จดมงหมายในข�นแรกจะตองจดแบง 1 หรอมากกวา 1 ip addresses ไปท client ในระหวางการดำาเนนงานเบ�องตน ถา client และ server อยในทต�งทเครอขายตางกนและไมสามารถตดตอสอสารซงกนและกนไดโดยตรง เนองจากขาด address เดมท client ปมถายทอด เรยกการถายทอดผานตวกระทำาสงตอ packets ระหวาง client และ server ข�นตอนท�ง สองใช udp สงขอมล

Page 3: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

บคคลเหลาน�นเปนผทคนเคยกบ dhcpv4 ดงน�นนาจะเขาใจข �นตอน dhcpv6 ท�งหมดอยางงาย ในขณะเดยวกน อยางไรกตาม ข �นตอน dhcpv6 เรมนำาการปรบปรงมากมายเกยวกบ dhcpv4 มพ�นฐานในการทำาใหเกดผลและประสบการณทสามารถใชงานไดไดประโยชนจาก dhcpv4 ยงกวาน�น ความแตกตางในเทคโนโลยระหวาง ipv4 และ ipv6 ไดเรมนำาโปรแกรมคอมพวเตอรใหมของข �นตอนน�

สวนยอยทจะกลาวตอไปจะทำาใหงายข�นแตการอธบายเน�อหาข�นตอนของ dhcpv6 การแสดงความคดเหนสวนใหญจะแตกตางจาก dhcpv4 เรมตนดวยการใชสถานการณรวมกนของ dhcpv6 ดงน�นการอภปรายรายละเอยดขอจำากดของข�นตอน สวนยอยสดทายสรปความแตกตางระหวาง dhcpv4 และ dhcpv6

4.2.1 กรณของ dhcpv6 การอภปรายสวนยอยน�ใชสามเหตการณทรวมกน สำาหรบ dhcpv6

address allocation, prefix delegation, และบรการ stateless Address Allocation เรมใช dhcpv6 ในการ allocate ipv6 addresses ไปท client น�เปนบทบาททสำาคญทสดของ dhcpv4 server configured พรอมกบ block ของ IPv6 addresses ไปท lease และ clients ถาม server สำาหรบ addresses เหลาน�นบาง configure network interfaces

แมวา นคอจดมงหมายซงเปนแบบฉบบของ dhcpv6 protocol ซงคอนขางสำาคญนอยกวาเงอนไขเดม ของ dhcpv4 ใน ipv6 มกลไกอนๆ สำาหรบ configure จำานวนมาก ซงอยใน ipv6 โดยอตโนมต : stateless address auto configuration โดยแทจรงแลวเอกสารทจำาเปนสำาหรบ ipv6 [ rfc4294 ] อยในการแบงหมวดหมของ dhcpv6 ขณะท optional มลกษณะตรงกนขามสนบสนน stateless auto configuration ทเปนผไดรบคำาสง แมแตมความตองการแบงสวนโดย dhcpv6 ตวอยาง เชน อยใน enterprise network the network

Page 4: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

administrator อาจจะไมตองการแบงสวนใหกบระบบเครอขายจำานวนมากเขาไปในระบบเครอขายของตนเอง และอาจจะตองการใชคำาสง dhcpv6 เพอเขาไปควบคมหรอทำาตามหนาท

ความแตกตางทสำาคญอกระหวาง dhcpv4 และ dhcpv6 คอ dhcpv6 ไมใหขอมลเกยวกบ address ของการเลอกอตโนมต router หรอระยะเวลา prefix ของ allocated address ใน dhcpv4 เหลาน�เปนโดยมเงอนไขเนองจาก router option และ subnet mask option

DHCPv6 สามารถหาใหเชนกน รปแบบเหลาน�ของขอมล configuration ใชแบงแยกทางเลอกไมมความตองการ protocol ซงขดขวางการเรมตนของทางเลอกน� อยางไรกตาม ขอมลน�กไมสามารถจดหาไดโดยทาง DHCPv6 เพราะวา Router Advertisement จดหาใหขอมลเดม ยกเวนทเกยวกบ server หรอแลกเปลยน message ทมากข�น

อาจจะมเหตผลหนงเพอจดหารปแบบของขอมลเหลาน�นดวย DHCPv6 ตวอยางเชน network administrator อาจตองการหา hosts ทแตกตาง กบ router ทแตกตาง addresses สำาหรบ load-balancing หรอเขาไปควบคมหนาท โดยแทจรงแลว การอภปรายเกดข�นไดหลายคร�งใน left อยางไรกตาม ไมมทางสำาหรบการอภปรายเหลาน�เทาทมมาทถกโนมนาวจาก community ความจำาเปนสำาหรบทางเลอกเหลาน� ดงน�นหากไมมทางเลอกน�ควรจะพจารณาทางเลอกใหรอบคอบในแบบของ DHCPv6 ไมควรเปดเผยออกมา เพราะวาจำาเปนตองพจารณามากข�น

แผนการรวมกนเพอให host configuring ตวมนเอง กำาลงใช DHCPv6 เลยนแบบ : อยางแรกตองสราง IPv6 เชอมตอพ�นท address กำาลงใช stateless address auto configuration mechanism(ดจากสวนยอในบทท 5 ของ IPv6 Core Protocols Implementation) หลงจากน�นจะเรมตน DHCPv6 เปลยนไปยง configure IPv6 address โดยรวมบนการ interface ในทางขนาน

Page 5: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

กบมน host เองกเชนกนใช Neighbor Discovery protocol ไป configure ตวเลอกอตโนมต routes และ บน link prefixes อนทกำาหนด subnet addresses ทกลายเปนตวอยางของการดำาเนนการตามเงอนไขน�อยในสวนแบงท 4.8.8DHCPv6 address กระบวนการแบงสวนซงถกบรรยายอยในรากฐาน protocol specification [RFC3315] Prefix Delegation

Application อกอนทสำาคญของ DHCPv6 คอ ฟงกชน prefix delegation จาก upstream ISP ไปท customer site

Figure 4-1 แสดงระบบสถาปตยกรรมท�งหมด ซงเปนสญลกษณตวอยางทใชจนตนาการน� ลกคาจดต�งข�นเพอตวอยางบานหรอ office เลกๆ network จะเชอมตอไปท ISP ผาน digital subscriber line (DSL) router เลกๆทไซตงานลกคา บอยคร �งทตดตอกบ Customer Premises Equipment (CPE) คอ gateway ท ISP CPE เชอมตอไปทอปกรณ Provider Edge (PE) ผาน point-to-point link บน DSL มนม network interface อนอนไปถงภายใน link ของลกคา network (ในตวอยางน� มนปลอมสงน�น ลกคามไวกบตว 1 internal link เชอมตอโดยตรงกบ CPE) PE ทำาใหส�นสดใหญมาก จำานวนของ access lines ถง ลกคาและทำาหนาทเปน gateway ท ISP 's backbone network และถง Internet

Prefix delegation ใน ระบบงานน�ปฏบตตาม: เมอ CPE และ PE แสดงใหเหน point-to-point link PE identifies เปนเจาของ line (โดยคทเหมอนกบ PPP user name เปรยบเทยบกบฐานขอมลของลกคา

รปท 4-1

Page 6: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

แผนการรวมกนของ automatic site configuration ใช DHCPv6 prefix delegation

และคดเลอก IPv6 prefix สำาหรบ network ลกคา ชวงท prefix often คอ 48 bits ชองทางของไซนงานลกคาสามารถมไดถง 65,535 subnets ประกอบดวยมาตรฐาน subnet prefix length 64 bits ในตวอยางน� prefix สมมตเปน 2001:db8:ffff::/48 CPE และ PE ขณะน�นทำาหนาท prefix delegation ข�นตอนผาน DHCPv6 ดงกำาหนดใน [RFC3633] 48-bit prefix เปน delegated ถงไซนงานลกคา(Figure 4-1, step 1)

CPE สราง prefix ทยาวกวา จาก delegated prefix ขณะทใช subnet prefix ภายใน network ของมน ในพ�นฐาน network topology น� CPE สามารถทำาไดดวยตวเอง ตวอยางเชน มนสามารถเลอกใชเพยงแค 16-bit integer ("1") และทำาใหเกด 64-bit subnet prefix 2001:db8:ffff:1::/64 โดยปราศจากความเสยงทจะชนกนของ address

ทนทท subnet prefix เปน determined CPE จะเรมสง Router Advertisements (RA) เกบ Prefix Information option สำาหรบ prefix น�น (Figure 4-1, step 2) จบ hosts เชอมตอถง link ทสามารถ configure ดวยตวของมนเอง รวมกบ IPv6

Page 7: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

addresses ซงเปนมาตรฐาน stateless address auto configuration mechanism (Figure 4-1, step 3)

ขอความน�นไมมความจำาเปนสำาหรบ manual configuration ทอยฝายลกคา นอกจากขอตกลงข �นตอนเบ�องตนเกยวกบ ISP CPE และ ทำาใหเสรจ hosts configure ดวยตวของมนเองอยางเสรจสมบรณทมอสระในการเลอก fashion ผใชหลายๆคนไมจำาเปนตองมความรเกยวกบ IPv6 หรอ DHCPv6 ท�งสองอยางจำาเปนตองเชอมตอกบ CPE และส�นสด hosts อยางเหมาะสม เพราะฉะน�น สามารถพจารณา plug-play ทระดบ site

ใน prefix delegation CPE แสดงถง PE ซงเปน DHCPv6 server อยางไรกตามท�ง PE และ CPE เปน routers ปกตทใชกน [rfc3633] กำาหนดขอตกลงทถกตองมากกวา  การทำางานเมอกลาวถงสวนประกอบ describing เหลาน� CPE พดถง requesting router และ PE มการพดถง delegating router

special terminology อาจทำาใหเกดคำาถามวาทำาไม host configuration protocol เคยใช configure routers มการอภปรายทเกดข�นจรงเกยวกบจดน�ใน IET แตความคดเหนของคนสวนใหญไมสนใจกบสงทแตกตางอยแลว ในใจความน� DHCP เปน a client-server protocol ทใหขอมลบางอยางในการ configuration มนทำาใหเกดความเขาใจใน IPv6 อนทแบงปนผบรโภคทม addresses มากมมาย ทใช protocol ใน scale กวางขวาง application ของ protocol ไปยง routers เปนผลทเหมาะสมสำาหรบการขยายตว นอกจากรปแบบน�สำาหรบการใชงานมากไปในการใชงานรวมกนมากใน DHCPv4: NAT router ไมไดเปน host เชนกนแตมนคอ frequently configured รวมกบ public IPv4 address โดยทาง DHCPv4Stateless Services

Page 8: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

การจดสรร Address และ prefix delegation ใหเปน stateful ท�งคในการบำารงรกษา server การจดสรร addresses หรอ delegated prefixes ตอ client ความตองการกลบสกระบวนการเดม ขอมลทลาสมยและดำาเนนเชนน�นตอไปในสงทเพมเขาไป stateful mode DHCPv6 สนบสนนอปกรณ stateless กบ client สามารถไดรบขอมล configuration น�น มนคอ IP address ใน lighter weight method

ตวอยางเชน IPv6 addresses รบ DNS servers(ขณะทเรยนรดวย DNS caching servers เพราะวาใชบอยในบทท 3 หรอ simply DNS servers จากการส�นสดของผใช เปนจดสำาคญของการตรวจสอบ) ซงมความสำาคญสำาหรบการส�นสด host ขณะทมนเปน IP addresses เนองจากโดยปกตใชรวมกนกบ hosts ท�งหมด ขอมลถาหากวาอยภายใต mechanism ไมสามารถทำาใหเปน stateful ได

[RFC3736] subset ของ DHCPv6 เตมขอจำากดสำาหรบอปกรณ stateless และใหคำาแนะนำาสำาหรบการบำารงรกษาเพออปกรณ stateless เทาน�น วธ implementer น�สามารถยอมรบการตดต�งเครองมอทสนบสนนเพยงอปกรณ lightweight subset

stateless subset สามารถจดเตรยมรปแบบทแตกตางกนของการ configuration ขอมลอนๆได รวมท�งรบ DNS server addresses ในสวนของขอมล (ขณะทเตม full เซตของ DHCPv6) เปนการทำาใหเปนมาตรฐาน mechanism จดหาใหขอมลน�ถง IPv6 hosts.3

DHCPv4 จดเตรยมไวทำานองเดยวกบใชบรการ DHCPINFORM message แตวามนมประโยชนนอยกวาเครองมอ stateless ของ DHCPv6 เนองจากเงอนไขน�นไมเฉพาะเจาะจงและ automatic mechanism ไปจดแบง IPv4 address อนๆนอกจาก DHCPv4 และเมอ IP addresses เปนตว configuration ขอมลทสำาคญมากสำาหรบ hosts สวนใหญ เกยวกบ auto configuration มนทำาใหเกดความ

Page 9: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

เขาใจมากกวาจดหาขอมลอนอยางสดๆ IPv4 addresses ดวยวธ stateful กลาวคอ การใช DHCPv4 ในภาวะปกต4.2.2 Definitions about DHCPv6 การอธบายเปนสงสำาคญของ DHCPv6 ทปกตจะใชตลอดในบทน�

DHCP Unique Identifier DHCP Unique Identifier (DUID) ทเปลยนแปลงขอมลบอยๆ ทมการระบลกษณะเฉพาะแตละบคคลนคอสงทเหมอนกบ client หรอบงช�ถง server ใน DHCPv6 แตแบบแผนทแนนอนจะดกวา ลกษณะเฉพาะทบงช�ในระหวาง clients และ servers ท�งหมด

DHCPv6DUID วตถทไมสะทอนแสง, สวนใหญการเปลยนแปลงขอมล

ในตำาแนงของ DHCPv6 ทมสวนเกยวของกบขอความ สงน�นคอการเปรยบเทยบ DHCP client หรอ server ทสามารถทำาสอง DUIDs เพอพสจนตรวจสอบถาพวกมนเทากน อยางไรกตาม [RFC3315] กำาหนดรปแบบมาตรฐานของ DUIDs ในคำาสงชวยเหลอคมครอง DUIDs น�น เปนพเศษ

DUID เรมตนดวย 2-byte type field, ตามดวยรปแบบพเศษของขอมลสวนใหญทเปลยนแปลง [RFC3315] กำาหนดได 3 รปแบบดงตอไปน�

1. DUID-LLT: Link-layer address เพมเวลา 2. DUID-EN: Vendor-assigned มรากฐาน ID ในตวเอง Enterprise Number 3. DUID-LL: Link-layer address Figure 4-2 แสดงรปแบบของ DUID-LLT. hardware type A 16-bit รปแบบ hardware ทบำารงรกษาโดย IANA ตวอยางเชน รปแบบ 1 วธ Ethernet device.

Page 10: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

time A 32-bit unsigned integer. This is the timestamp in ในสวนท 2 ของจดสำาคญ เมอ DUID น�เกดความมอสนท (UTC) 1 มกราคม 2000, modulo 232. link-layer address The link-layer address สำาหรบอปกรณ network ในขอความททำาใหเกด

DUID. รปแบบของอปกรณพเศษใน hardware type field.

เพราะวาประกอบดวยเวลาในสงทบงช� DUID-LLT พเศษทนาจะเปนไปไดมาก [RFC3315] แนะนำาผลประโยชนทวไปของอปกรณแตละคอมพวเตอรสวนตวทไมเปลยนแปลงการใชความสามารถในการเกบขอมลของ DUID hardware สำาหรบการดำาเนนการของ DUID สามารถมอสระจาการดำาเนนการของ DHCPv6 บนขอความ ตวอยางเชน ขอความ DHCPv6 สามารถสงอปกรณทแตกตางกนกวาอปกรณของ link-layer address theDUID เปนพ�นฐานFigure 4-3 แสดงรปแบบของ DUID-EN. enterprise-number A 32-bit บำารงรกษาอยางสมบรณโดย IANA ทมลกษณะเฉพาะทบงช�เฉพาะ vendor. identifier ขอมลพเศษสวนใหญทเปลยนแปลงแตละ vendor

DUID-EN คาดการณโดยใชผผลตอปกรณ network และบางทลกษณะเฉพาะ 1 อปกรณพเศษ จดหาโดยผผลต Like a DUID-LLT, a DUID-EN

รปท 4-2 ,4-3 ,4-4 ต�มลำ�ดบ

Page 11: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

เชอไดวาเปนลกษณะเฉพาะอยางมากดวย เพราะวา IANA ควบคม the uniqueness ของ enterprise-number, และ enterprise สามารถควบคม uniqueness ทมลกษณะเฉพาะ. Figure 4-4 แสดงรปแบบของ DUID-LL.hardware type A 16-bit รปแบบ hardware ทบำารงรกษาโดย IANA ตวอยางเชน รปแบบ 1 วธ Ethernet device link-layer address The link-layer address สำาหรบอปกรณ network ในขอความ ททำาใหเกด DUID. รปแบบของอปกรณพเศษใน hardware type field.

A DUID-LL เหมอนกบ DUID-LLT แตไมประกอบดวย the time field ดงทกลาวมาน�เกยวกบอปกรณทเชอมตอ network อยางถาวร กบ link-layer address และทไมเปลยนแปลงความสามารถในการเกบขอมลสำาหรบทเกบขอมลทประกอบดวยเวลา

Page 12: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

อปกรณ network ฝงใน ชป เปนตวอยางทเหมอนกนของแตละอปกรณ [RFC3315] เปนอปสรรคทใชของ DUID-LL ถา มนไมมอปกรณnetwork ทชดเจนเชอมตออปกรณอยางถาวรอปกรณทไมเปลยนแปลงความสามารถในการเกบขอมล ในกรณน�ควรจะใชถาสวนประกอบเวลาไมสามารถนำากลบมาใชไดอกตลอดบทน� DUID จะแสดงใหเหน a colon-separated hexadecimal sequence ทแตละบางสวนแบงแยก is compose two hexadecimal values. ตวอยางเชน DUID-EN 0x0200090CC084D303000912 แสดงใหเหน 02:00:09:0C:C0:84:D3:03:00:09:12. การใชระบบสญลกษณใชดวยในการบรรยายการปฏบตและหลายตวอยางภายหลงในบทน�

Identity Association An Identity Association (IA) คอ โครงสรางแนวคดระบเซตของขอมล DHCPv6 configuration แตละ IA คนพบดวย 32-bit identifier (Identity Association Identifier, IAID) IAID จำาเปนอยางยงโดยเฉพาะระบ 1 ลกษณะเฉพาะ IA ภายในแตละ client

แนวคดของ IA แทรกใน DHCPv6 เพราะวาอปกรณของ IPv6 น�นอปกรณมหลาย IP addresses เปาหมายแรกของ IAs อธบานไดหลาย identities ภายใน client เดยวแตละทมความสมพนธกบความแตกตาง IPv6 address ตวอยางเชน พจารณา client ขณะททำาหนาทเปน “virtual hosts” ทจดหาการบำารงรกษาเครองมอกบความแตกตางของ IPv6 addresses ถา client ตองการ configure ตวมนเอง กบ addresses เหลาน� กำาลงใช DHCPv6 มนจะมความสมพนธกนในแตละ address ซงแบงแยกจาก IA.

Page 13: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

Multiple IPv6 addresses สามารถมความสมพนธกบ IA อยางเดยว ตวอยางเชน host ใน a multihomed site that provides a single service อาจจะม IA อยางเดยว ทประกอบดวย multiple addresses.

ระยะเวลาการใหเชาดำาเนนการ โดย IA ไมใชโดย address น�นคอ DHCPv6 การแลกเปลยนเพอการเรมใหจดสรรขอมล configuration ทกระทำาโดย IA ในขณะทแตละ address มความเขาใจของ lifetimes ดวย อนทซงมความเหมอนกน อธบายน�นในเน�อหา stateless address auto configuration [RFC2462], lifetimes เหลาน� ไมมผลกระทบตอการแลกเปลยน DHCPv6 เพอควบคมการเปลยนแปลงใหมแตละ IA มสองตวแปร T1 และ T2 Section 4.2.3 จะบรรยายตวแปรเหลาน� ททำางานกบความสมพนธตอการดำาเนนการกำาหนด

ขณะท [RFC3315] กำาหนด IA การรวบรวมของ addresses จดใหกบ client ความเขาใจสามารถขยายการกำาหนดรปแบบอนๆของ configuration information กบระยะเวลาการใหเชา โดยแทจรงแลว [RFC3633] ขยายความเขาใจตอ prefixes delegated ไปยง requesting router คร�งน�จะใชความเขาใจทวไปตลอดบทน�[RFC3315] และ[RFC3633] กำาหนด 3 รปแบบดงตอไปน�

Identity association for non-temporary addresses (IA_NA) An IA_NA กำาหนด เซตปกตทไมถาวร IPv6 addresses จดสรรสำาหรบอปกรณของ client

Addresses ใน IA_NA ทคาดหวงสำาหรบอปกรณของ client Addresses ใน IA_NA คาดหวงทจะใชจนกวา client ตองการเปลยน addresses ทตองการใหม

Page 14: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

Identity association for temporary addresses (IA_TA) An IA_TA กำาหนดเซตทไมถาวร IPv6 addresses จดสรรสำาหรบอปกรณของ client ทซงกลาวถงความเปนสวนตวชวคราว RFC3041] (ดในบทท 5 เกยวกบ IPv6 Core Protocols Implementation เนองจากธรรมชาตไมถาวรของ addresses, an IA_TA ไมมตวแปร T1 and T2 และไมความหวงทจะเปลยนใหม Identity association for prefix delegation (IA_PD) An IA_PD กำาหนดเซตของ IPv6prefixes

จดสรรสำาหรบ delegating router ไปยง requesting router เพอใหได prefix delegation เชนเดยวกบ

IA_NA, an IA_PD คาดหวงการเปลยนการใชตวแปร T1 and T2 ใหม

Binding A binding เปนโครงสรางแนวคดทบำารงรกษาโดย

server ทแสดงใหเหนโดยเฉพาะขอมล configuration ในปจจบนใหกบ client. จากขอมล configuration ทมความสมพนธกบ IA, the binding ระบตาม tuple ของ <client’s DUID, IA-type, IAID>ท IA-type เปนหนงใน IA_NA, IA_TA และ IA_PD บทน�อภปรายคงวามสมพนธของ IAs

สำาหรบขอมล configuration ทมอสระจาก IA the binding ระบโดย DUID ของ client

4.2.3 DHCPv6 Message Exchanges การแบงการอภปรายสวนสำาคญของ DHCPv6 protocol น� รวม

Page 15: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

การแลกเปลยน message DHCPv6 Messages Figure 4-5 แสดงสวนทเหมอนกนของ DHCPv6 แลกเปลยน messages ระหวาง client และ server ซงแตกตางกบ DHCPv4 ขอมลสวนใหญ แมแตเกยวกบการจดสรร addresses จดหา option และ ดงน�นสวนทเหมอนกนใหชดเจนมาก

msg-type An 8-bit ระบรปแบบ DHCP message ซงแตกตางกบ DHCPv4 ซงรปแบบ message บงช�เหมอนกนใน DHCP option รปแบบสำาหรบ DHCPv6 message บงช�โดย the separate field. transaction-id The transaction ID สำาหรบการแลกเปลยน message transaction ID เปน 24-bit The transaction ID เลอกโดยผรเรมสำาหรบการแลกเปลยน (ซงเปน client ปกต) สวนของเครองสงตอ (ทเปน server ปกต) คดลอก ID ไปยงการตอบ เมอไดสงการตอบ มนจะเขากบ ID เพอทจะระบการแลกเปลยนทเหมอนกน

options ปฏบตใน message น� ซงหาไดบาง options อภปรายไวใน Section 4.2.4.

ซงแตกตางกบ DHCPv4 หลายรปแบบ DHCPv6 message กำาหนดการตดตอสอสาร relay agents และ servers. Figure 4-6 แสดงรปแบบน�ของ messages น�

msg-type เชนกน 12 (Relay-forward) หรอ 13 (Relay-reply) (มองไปขางหนา)hop-count This field มความสำาคญใน Relay-forward message และแสดงจำานวนของ relay agents มกลบมาของ message น� This prevents the message from being forwarded in an infinite loop.

Page 16: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

link-address address ทวโลกจะใชโดย server ระบการเชอมตอสทต�ง client. peer-address The address สำาหรบ client หรอ relay agent จาก message ไดรบถายทอด น�เปนเซตใน Relay-forward message และใชใน Relay-reply message สงตอ message กลบไปยง client.

รปท 4-6

options Options field น�ประกอบดวย DHCPv6 options พเศษ จนถงกระบวนการ relay agent ทประกอบดวย Relay Message option โดยจำาเปนตองประกอบดวยเสมอ

Page 17: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

Section 4.3 (Figures 4-31 และ 4-37 จะแสดงโดยวธเหลาน�ทใชกบตวอยางทเหนไดชด

คาท�งหมดในทกๆ DHCPv6 message field หรอ ทกๆ DHCPv6 option field (ซงสามารถสงเกต DHCPv6 options และ field ทจดใหอยในอาณาเขต ไบท แนวทางน� ตวอยางเชน กระบวนการเครองใชอปกรณไมสามารถไดรบ DHCPv6 message multi byte option น�นจดอยในอาณาเขตทเหมาะสม กำาหนดไวใน 4-1 สรป DHCPv6 message น�นกำาหนดใน [RFC3315]Message Transport

นำา DHCPv6 message ท�งหมดไปไวใน IPv6 UDP packets IPv6 addresses ตอไปน�เปนทรจกดและ UDP ports ใชในการแลกเปลยน DHCPv6 :

Like-scope multicast addresses เปนทรจกด สำาหรบ relay agent ท�งหมด และ server ทจะเปนตองเชอมตอพวกน�ไปยงอปกรณทยอมรบการเขามาของ messages

Site-scope multicast address เปนทรจกกนด สำาหรบ server server ท�งหมดจะเปนตองเชอมตอกลมน�ไปยงอปกรณทยอมรบการเขามาของ messages

เปนทรจกกนด เปนทรจกกนด

ต�ร�ง 4-1

ประเภท

ชอ คำ�อธบ�ย

1 Solicit สงดวย client เพอพบประโยชน DHCPv6 servers คำาสงน�คลายกบ DHCPv4 DHCPDISCOCER message

2 Advertise สงดวย server ในการตอบสนองไปยง Solicit

Page 18: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

message กบ configuration information คำาสงน�คลายกบ DHCPv4 DGCPOFFER message

3 Request Request สงดวย client ไปยง server พเศษ ใหแสดงวธการจดสรร คำาสงน�คลายกบ DHCP v4 DHCPREQUEST message

4 Confirm ดวย client แมวามนอาจจะเคลอนทไปยงการเชอมตอทแตกตางในคำาสงทตรวจสอบหรอไม prefix ทจดสรร addresses (คำาสงใดกตาม) ยงคงมเหตผล

5 Renew สงดวย client สงดวย client ไปยง server วธการจดสรร configuration ไปยงวธการใช renew คำาสงนนไมตรงกบ DHCPv4 message; DHCPv4 client ใช DHCPREQUEST message เพอเปาหมายน�

6 Rebind สงดวย client ไปยง server จนถง renew วธการจดสรรขอมลใหม เมอพยายามใช Renew messages fails

7 Reply สงโดย client ในการตอบสนอง message ตางๆ จาก client สวนใหญจะเรยกรองให client ตอบยนยนหรอปฏเสธ คำาสงน�คลายกบ DHCP v4 DHCPACK

8 Release สงดวย client ไปยง server วธการจดสรรหนทางในรายละเอยดของลำาดบใน server

9 Decline สงโดย client เมอมนคนหาเจอการแบง address ทเกดข�นกอนแลวในการใช ถาแจงใหทราบวา server นน address ไมสามารถใชได น�เหมอนกนกบ DHCPv4 DHCPDECLINE message

10 Reconfigure

สงโดย server เรมแลกเปลยนเรมโดย Renew หรอ Information- request message มนบงคบใหclient ทำาการ refresh จดสรรขอมลใหมน น�คอท

Page 19: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

เหมอนกนกบ DHCPv4 DHCPFORCERENEW message

11 Information- request

สงโดย client สำาหรบอปกรณstateless ทำานองเดยวกบ DHCPv4 DHCPIN FORM message

12 Relay-forward

สงโดย relay agent ถกหอหมอยางมดชดมาจาก client ไปทserver ประเดนน�นไมเหมอน DHCPv4 message; DHCPv4 relay agents แคขยาย field of the original message and forward the message ยกเวนทถกหอหมโดยไมจำากด

13 Relay-reply

สงโดย server ถกหอหมอยางมดชดสงกลบไปใหclient ผานไป relay agents ประเดนน�นไมเหมอน DHCPv4 message

DHCPv6 client สง DHCPv6 messages ไมจำากดไปทDHCP Relay Agents ท�งหมดและ Servers multicast address เวนแตclient และ server มการตกลงไวแลววาจะใช unicast แลกเปลยนผาน Server Unicast option (*) ถา client และ servers มอยใน link บาง servers รบ message โดยตรง และถาจำาเปนตอบสนองมน ไมเชนน�น relay agent accepts message

มนถกหอหมใน Relay-forward message และสงตอมนไปทservers ในกรณน� relay agent อาจสง message ไปทDHCP _Servers ท�งหมด หรอไปทunicast address ของ server โดยเฉพาะ ถามน configured พรอมดวย address

(*) นเปนสวนแตกตางทสำาคญมากจาก DHCPv4 ตวอยางเชน DHCPREQUEST message ของ DHCPv4 บอนคร�งทสงไปใหserver 's unicast address เหตผลสำาหรบขอแตกตางคอนขาง

Page 20: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

แนทมาจากความแตกตางระหวาง broadcasting และ multicasting ใน DHCPv4 client นาจะ broadcast หรอ unicast a message บน link และ broadcasting สวนใหญแพง ในการออกแบบ DHCPv6 กำาหนดใหใช multicast address ต�งอปกรณ และรสกจะสามารถจำากดวงได Multicasting a Renew message โดย default ทเปนประโยชนถามนเปนการสงตอโดย relay agent และ server สรางการทำางานเฉพาะแปรตามความพอใจของ Relay-forward message ตวอยางเชน link-address field สำาหรบประมวลผล Renew message

เมอสง DHCP Relay Agents ท�งหมดและ Servers multicast address client นาจะใช link-local address ตาม source address ของ packet ท�งๆทท�งคมนมaddress รวมๆ จำาไดวา link-local address configured ตลอด ซงมอสระในการสงผาน stateless auto configuration mechanism และสามารถพจารณาอยางมนคงมากๆ ใชของ link-local address สำาหรบ packet source สวนใหญเปนความคดทดในการดำาเนนการ เปนลกคาของการแบง address ในแตละ address ในคำาถามสามารถไมแนนอนหรอ even invalid ในระหวางดำาเนนการMessage Retransmission

ต�งแตDHCPv6 messages เปน carried over UDP อนทขนสงไมนาเชอถอ messages สามารถทจะสญเปลา ในกรณน� ผรบ intended ของ message อาจลดลงและไมสามารถรบ message ได ผรเรมในการเปลยน DHCPv6 โดยปกตเปน client อาจจำาเปนทจะตองสง message ใหม ในกรณน�เวลา resending messages ซงควบคมโดยตวแปรถดไปIRT Initial retransmission time MRC Maximum retransmission count MRT Maximum retransmission time MRD Maximum retransmission duration

Page 21: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

IRT เปนเวลา timeout เกยวกบเวลาในระหวางอนทmessage ผสงคอยการตอบสนอง ถา IRT ผานไปทถดไป ผสง retransmits เหมอนกบ message(เหมอนกบ transaction ID) และรอการตอบสนองกบเกยวกบชวงเวลาใหม เกยวกบชวงเวลาใหม 2 เวลาแตกอน 1 ถานานไมสามารถมากกวา MRT ในอนทเปนกรณMRT เปนการใชสำาหรบชวงเวลา retransmission ถา MRC ไมใช 0 ผสงสามารถเปนเลา MRC ทสำาคญทสด(รวมท�ง transmission อนแรก); ถา MRD ไมใช 0 ผสงจะพยายาม retransmission ตนกระทง MRD ตอมา ผานพนไปต�งแตtransmission แรก ถาท�งสอง MRC และ MRD เปน 0 ผสงจะ retransmitting the message เรอยไปจนกวาจะรบโดยคาดหวงวาจะตอบสนองRetransmission ซงมอยในขณะสมยน� ประกอบดวยการสม factor สำาหรบหลกเลยงการชนกนกบ synchronized ผใชอนๆ เพอความเรยบงาย การสม factor น�ไมไดทำาบอย

เกยวกบ account ในการบรรยายตดตาม ตาราง 4-2 สรปวา ตวแปรเหลาน�สำาหรบ DHCPv6 messages ทแตกตางกน Figure 4-7 แสดงตวอยางของ retransmission กบตวแปรเหลาน�สำาหรบ Request message client ตวแรกรอ 1 วนาท ถามนไมสามารถยอมรบ Reply ภายในเวลาดงกลาวน� มนจะสง message ใหม และรอ 2 วนาท (IRT * 2) ในทสด รอจนไปถง MRT (30 วนาท) และ client ยงเงยบไมไดรบ Reply มนจะยกเลก retransmission หลงจาก tenth (MRC) transmissionแลกเปลยนข�วส�รDHCPv6 protocol เกบไวหลากหลายรปแบบสำาหรบการแลกเปลยนขอมลขาวสาร การแลกเปลยนสำาหรบโครงการรวมกนจะบรรยายถดไป อธบายอยดานลางพดถง specific DHCPv6 options คราวๆ กอนทจะแสดงจะอธบายความหมายใน Section 4.2.4 ถงแมวาความหมายของ options เหลาน�ควรจะ

Page 22: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ชดเจนกวาน�สำาหรบ context มนอาจจำาเปนสำาหรบผอานทพดถงคำานยามในกรณน�

ต�ร�งท 4-2

รปท 4-7

ก�รแลกเปลยนสำ�หรบก�รแบง Addressclient เรมการแลกเปลยน DHCPv6 เพอแบงสวน address กบ

Solicit message กำาหนด IA_TA หรอ IA_NA เพอวาสงไหน client ตองการไป configure addresses Servers รบ Solicit message คนหาขอมลเหลาน�น local configurations คนหาไมวาจะสามารถจดแบง addresses สำาหรบ IA ไดหรอไม และสงคน Advertise messages ทม offers ของเหลาน�นอยเมอ server จดเตรยม Advertise message แลว มนจะพยายามสง options ทเหมอนกนเพราะวามนจะสงไปถง client ใน Reply message ของมน

Page 23: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ถา client เลอก server น� อนญาตให client เปรยบเทยบ options and addresses advertised โดย DHCP หลากหลาย servers และ จดเตรยม options and addresses ทนาสนใจทมนจำาเปน**** ในทางปฏบต หวขอ Advertise message อาจไมไดมสาระมาก client อาจเลอก server งายๆเพราะวาสง Advertise message มาเปนอนแรก ท�งๆทระยะเวลา ท�งๆท server มสทธพเศษเหมอนกน (ดการอธบายของ Preference option ใน Section 4.2.4) KAME 's client implementation ทำาตวตามน� ดงทอธบายใน Section 4.4.3

หลงจากสง Solicit message client รวบรวม Advertise messages ประมาณ 1 วนาท (กบการสมตวประกอบเพอหลกเลยงการ synchronization กบ clients อนๆ) ในขณะท client เลอก server ทชอบและตองการมากทสดซงทำาใหเปนรากฐานของ Advertise messages และสง Request message ไปท server ทเลอก ประกอบไปดวย server 's DUID และ offered IA

Request message ปกตสงไปท All_DHCP_Relay_Agents_and_Servers multicast address และ multiple servers สามารถรบ request message ไมวาจะเปน server ทเลอกหรอไม ดำาเนนการประมวลผลตอ message อนๆ ถกมนละท�ง เพราะวา DUID ไมสามารถเขากนได

Server ทเลอกสราง local binding เพอ tuple ของ<client 's DUID, IA-type, IAID> และสง Reply message คนไปท client Reply message ประกอบไปดวย IA และ addresses ทเกยวของกนกบ lifetimes

เมอ client ไดรบ Reply message มนจะ configures ตวมนเองกบ IA (และ addresses ทเกยวของดวย) ใน Reply message ความพเศษของ Address เกยวกบ client 's link เปนสงทเกดข�นประจำา คอเพม Address ตอนกระบวนการคนหา (ดบทท 5 ในเรอง IPv6 Core Protocols Implementation) หลงจากไดรบการยนยน client สามารถเรมใช addresses สำาหรบสนบสนน

Page 24: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

communication ไดFigure 4-8 พรรณนาถงข�นตอนทสงข�น ใน figure น� ม 2

server server1 และ server2 เชอฟง Solicit message และ client เลอก server1

ข�นตอนเดมน� ส�นเปลองเวลาในการประมวลผลแบบสงปกต เลกนอยในกรณน� อยางไรกตามมนอาจจะเปนทนาพอใจและเปนไปไดทจะทำาให configuration delay นอยทสด สำาหรบตวอยาง อปกรณททองไปอนทบอยๆ เคลอนทจาก 1 เชอมไปถงอนอน (โทรศพทเซลลลา) even อาจตองการหลกเลยง delay สำาหรบรวบรวม Advertisement messages จากหลายๆ servers

สามารถทำาใหเสรจส�นไดเมอใช Rapid Commit option ถา client ประกอบดวย option น�ใน Solicit message และตอบสนองตอ server คอ configured ไป accept มน server จะสราง binding และตอบสนองกบ Reply message (Figure 4-9) ทนท

ในการใช Rapid Commit option เรมจากการรบเอาสภาวะแวดลอมในทซงสำาคญทสด 1 server คอทใชประโยชนไดสำาหรบ client (ทไหนท client เชอมตอโดยตรงกบ server ในชวงการเชอมตอแบบ point-to-point) ถงแมวา protocol น�จะไมจำาเปน กหามใช option น�กบรวมกนกบหลายๆ servers มนจะทำาใหเกดปญหาทยากจะแกไขเนองจาก discussed ใน [RFC3315] และนนคอสงทไมเหมาะสม

รปท 4-8

Page 25: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

รปท 4-9

ก�รเรมใหมของ Addressแตละ IA_NA เกบไวดวยใน Request message ประกอบไปดวย

ตวแปร T1 และ T2 อนไหนทควบคมผาน IA เวลาของการเรมกระบวนการใหม

เมอ T1 มวนาทผานพนต�งแต client รบ Request message client สง Renew message ไปท server รวมเขากบ IA และ server 's DUID ถา server มแผนการแบงสรร enewal request (อนทควรจะเปนกรณปกต) server อพเดตมนภายใน binding และตอบสนองกบ Reply message เกบ IA กบ(บางท) ตวแปร T1 และ T2 ใหม และทสมพนธกบ addresses กบ (บางท) new lifetimes client รบ Reply message และอพเดต lifetimes ของ addresses IA

ขณะทอยในสถานการณแลกเปลยน Request and Reply

Page 26: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

enew message อาจจะรบโดย servers อนๆ แตมนจะละท�งเพราะ DUID ไมสามารถเขากนได Figure 4-10 แสดงการแลกเปลยน

ถา client ไมสามารถรบ Reply message ในการตอบสนองถง Renew message ภายในระยะเวลาทแนนอน มนสง message ใหมจนกระทงมนไดรบ Reply ภายในระยะเวลาของการสงใหม โดยวธใดกตาม ถา T2 วนาท ผานไปต�งแต Reply message ไปท Request สงถง และ client ไมมการไดรบ Reply จากมน Renew messages ทำาให client ยกเลกการสงใหม Renew message และ เรมสง Rebind message

จำานวนทบรรจของ Rebind message เกอบจะเหมอนกบอยางน�นของ Renew message แตมนไมสามารถเกบ server 's DUID ได และสามารถประมวลผลไดโดยทกๆ server ในสวนของขอมล ความลบของ

รปท 4-10

รปท 4-11

Page 27: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

เปนไปไดท server มนจะมชองทางนอยลง เนองมาจากจากไมเจาะจงเหตผล และไมสามารถกำาหนดในเวลาส�นๆ เชนน�นมนเลยไมสามารถสรางความฉลาดทจะตดกบ server โดยเฉพาะ ถาหนงใน server ( อนๆ ) มขอมลเพยงพอทจะเปลยน binding ใหม มนจะตอบสนอง Rebind message กบ Reply message ซงม IA และ addresses ทสมพนธกน และ DUID ของมน client รบ Reply message และอพเดต address ตามทจำาเปนกบ Reply ไปถง Renew message ข�นตอนน�แสดงใน Figure 4-11 ในกรณน� server1 เตรยมการตอบสนอง Renew messages เพอวา client จะสลบไปเปน Rebind message การสลบ server server2 ตอบสนองตอ Rebind messageขอความน�น สลบ server สามารถตอบสนอง Rebind message เทาน�น เมอมนมขอมลเกยวกบ binding ทยอมรบวาเปนจรง โดย server อน (server1 ในตวอยางน�) วธน� bindings ไวท 2 servers นาจะ synchronized โดย out-of-band mechanism [RFC3315] ไมสามารถกำาหนดเชน mechanism และมนเปนการข�นอยกบ implementation ปจจบน

มนควรจะเหมอนกบขอความนน นนคอไมรนแรง สงสำาคญบนความเกยวของกนระหวาง address lifetimes และ T1 หรอ T2 ทคลายกบ IA สำาหรบตวอยางน� ถา T1 ของ IA เปน 1 วน แตชอบมากกวา lifetime ของ address ทเกยวของกนกบ IA เปน 12 ชวโมง

Page 28: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

address จะเปน ไมเหนดวย (ในขอตกลง [RFC2462]; ดไดเหมอนกนทบทท 5 of IPv6 Core Protocols Implementation) ใน 12 ชวโมง เพราะวาไมกลบเหมอนเดมของกระบวนการ เกดกอนหมดอาย lifetime [RFC3315] แนะนำา T1 ของ IA ไมเพยงพอเมอทดลองในชวงส �น lifetime ของ addresses ทเกยวของกนกบ IA แตนไมใชความตองการของผรบคำาสง

ก�รแลกเปลยนอนของก�รแบงสวน Address client สามารถปลอยออกไปไดอยางเปนธรรมชาตบางสวนหรอ

ท�งหมดของจดแบง addresses ในโดย IA กำาลงสง Release message ไปท server server บนการไดรบ Release message นำาออกไป addresses specified ใน message จากทเหมอนกน binding และสง Reply message คนไปท client server สามารถจดแบง released addresses ไปท clients อนๆได

เลกตดตอนน client ทำา Duplicate Address Detection (DAD) สำาหรบจดแบง addresses บนการไดรบ Reply message ถง Request ถาในกระบวนการน�เจอหลายๆ Node บน link ทกำาลงใชอยบางของ addresses client ไมสามารถใชสำาเนา addresses เหลาน�นได ในการเพมเตม client บอก server ใหทราบถงการทำาซำ�า โดยสง Decline message รวมท�ง IA และสำาเนา addresses บนการไดรบ Decline message server มารค สำาเนา addresses และจะไมใชมนเพมเขามาในการแบงสวน server ในขณะน�นสงคน Reply message กลบไปท client Figure 4-12 แสดงข�นตอนน�

[RFC3315] ไมสามารถกำาหนดอะไรได client ควรทำาหลงจากแลกเปลยน Decline and Reply messages อาจเปนไปไดทมนจะจำาเปนตอง เรมกระบวนการใหมจาก Solicit message หรอ Request message อกอน ไปท server เหมอนกนหรอ server อนๆ

เมอ client เจอนนแลว มนอาจมการเคลอนทไปท link ใหม (เมอ

Page 29: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

มนเจอการเปลยนของ wireless access points) client สง Confirm message ทม IA อยสำาหรบ interface อนทอาจตอนน�กำาลงเชอมตอกบ link ใหม คกนไปกบ addresses ท�งหมดใน IA ต�งแต client ขณะน�อยใน network ทหลากหลาย Confirm message นาจะไมม DUID ของ server นนจดแบง IA เมอ server ในบางทอาจเปนไปไดท link ใหมรบ Confirm message มนตรวจสอบ addresses ใน message และเจอท�งค เหลาน�นเปน valid สำาหรบ client 's current link ถาพวกเขาเปน still valid server สงคน Reply message ทม Status Code option กบ code ของ Success (ดตาราง 4-3 ในหนา 315) ไมเชนน�นก มนสงคน Reply message ทเกบ Status Code option รวมกบ code ของ Not On Link

รปท 4-12

รปท 4-13

Page 30: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ในกรณตอมา client นาจะกำาลงใช addresses อนทเปนโมฆะอยในขณะน� และนาจะเรมแบงสวน address ข�นตอนใหมจาก Solicit message ใน network ใหม Figure 4-13 แสดงข�นตอนในกรณ client เกดข�นจรงเคลอนทไปท link ใหมExchanges for Prefix Delegation

DHCPv6 message แลกเปลยนสำาหรบ prefix delegation สวนมากไมแตกตางมากในการแบงสวน address บรรยายกอนรวมกบขอยกเวนตอไป• ยนยนและ Decline messages ไมสามารถใชสำาหรบ prefix delegation• เมอกำาลงรองขอ router ( DHCPv6 client) ตรวจสอบเจอมนอาจมทเชอมตอกบ uplink ใหม มนใช Rebind และ Reply exchanges ไปยนยน previous binding แทนการใชใชดวย Confirm messageServer-initiated Exchanges

DHCPv6 exchanges ตามปกตเรมโดย client ดงทแสดงในการอธบายกอนหนาน� ในบางกรณ ไมวาอยางไรกตาม server อาจตองการบอกถงความตองการแลกเปลยนใหมไปท client สำาหรบตวอยาง เมอ site เกยวกบ network การจดแบง addresses อาจเปนโมฆะกอนกำาหนดการกำาหนดเวลาเรมใหมและ server อาจตองการบงคบ client ไป renumber through DHCPv6

server สามารถเรมแลกเปลยนโดยสง Reconfigure message ถารวมเขา Reconfigure Message option อนท specifies ท�งสอง client ควรจะมปฏกรยากบ message รวมกบ Renew message หรอ Information-request message (โดยปกต Renew message เปน specified, ดงทจะแสดงในตอนลาง) ในกรณของ renumbering ของการจดแบง addresses หรอ prefixes Reconfigure message เชนกน รวมเขาไวเหมอนกบ IA

ถงกำาหนดทไดลวงลำ�าธรรมชาตของ Reconfigure message, [RFC3315] สงการใช DHCPv6 authentication mechanism

Page 31: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

สำาหรบการมตวตนและเหตผลของ message ดวยวธน�นหลกเลยงการปฏเสธการบรการหรอความปลอดภยอนๆ จากการโจมต client นาจะละท�ง Reconfigure message บาง อนไหนทไมสามารถรวมเขาไวดวย Authentication option หรอ ไมสามารถผาน authentication verification ได DHCPv6 authentication mechanism จะอธบายภายหลงใน section น�

รปท 4-14

บนการไดรบของ valid Reconfigure message client เรมแลกเปลยน message ใหมเปนรากฐานของจำานวน Reconfigure message ถา Reconfigure Message option specifies the Renew message และ IA เกบไวใน message client เรมแลกเปลยน Renew-Reply สำาหรบ IA ขณะถาเวลา T1 มการผานไปสำาหรบ IA นน server ตอบสนองตอ Renew message กบ Reply message อนทเหมาะสมไมเจาะจง configuration ขอมลใหม Figure 4-14 แสดงการแลกเปลยน เรมจาก Reconfigure messageExchanges for the Stateless Services สำาหรบบรการ stateless DHCPv6 น�น ไดรบการ configuration ขอมลไมสามารถตองการผาน client binding-Information-request และ Reply ใชการแลกเปลยน

การแลกเปลยนมสวนประกอบเหลาน�: client สง Information-request message โดยปกตยกเวนทรวมกบ DUID โดยไมจำากด

Page 32: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

particular server Servers รบ message และตอบสนองกบ Reply message กบ stateless configuration information บาง

นาเสยดาย พ�นฐานน� mechanism กลบกลายเปนไมเพยงพอในทางปฏบต เนองจากขาดแคลนการดำาเนนการเรมตนใหม ถงแมวา Even เชนน� stateless configuration information ตามปกตไมสามารถกำาหนดการเรมใหม อพเดตบนขอมลเกดการเงยบข�นตวอยางเชน ถา site จดเตรยม renumbered ทนสมย IPv6 addresses รบ DNS server addresses ตองการเปลยนตามน�น อยางไรกตาม [RFC3315] ไมสามารถรวมวธ automatic ให client อพเดตถายขอมลได

ในทางทฤษฎ server สามารถเรมแลกเปลยนสำาหรบอพเดตขอมลกอนโดยสง Reconfigure message ในทางปฏบต อยางไรกตามนไมเหมาะสมกบความเปนจรง จากน�นมาเพอทจะสง Reconfigure message server นาจะจดจำาขอมลเกยวกบแตละ client และไมสามารถเปน stateless จำานวนมากได

เพอความแตกตางความตองการผทำาการแทน IETF ไดตามมาตรฐานการเลอก DHCPv6 ใหมขาวสารการมาเยยมกระตนความจำาคาจางการเลอก(IRT)เปนเวลาการขอรองขาวสารและการตอบสนองแลกเปลยน[RFC4242]การเลอกน�กำาหนดชวงเวลากบความตองการลกคาสงทไปถงทำาใหสำาเรจการโตเถยงอนๆของการขอรองขาวสารและขอความการตอบสนองชวงเวลากระตนความจำากวาความชกชามากกวากบขาวสารขอมลทนสมยลกคาเพอทวาไม

การทำาใหเกดผลอนทการเลอกน�การชวยเหลอมเชนกนความคดเหนโงๆของการผดสญญากระตนความจำาคาจาง แมวาขาวสารการตอบสนองไปถงการขอรองขาวสารไมประกอบดวยขาวสารกระตนความจำาคาจางการเลอกลกคาจะทำาใหสำาเรจการโตเถยงอนๆรอบ 24 แตละชวงเวลาใดเวลาหนง

Page 33: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

รปท 4-15

Figure 4-15 แสดงตวอยางของการแลกเปลยนรวมกบขอมล Refresh Time option ในการแลกเปลยนคร�งแรก Reply ไป Information-request message บรรจยอมรบ DNS server address, 2001:db8:1111::35 และขอมล Refresh Time option กบชวงเวลา 1 ชวโมง ขณะน�นสถานะ site renumbering และ DNS server จะม address ใหม , 2001:db8:ffff::35 ในระหวางระยะเวลาการปวดศรษะขางเดยวเกาแกท �งและผรบใหมถกตองตามกฎหมายอยในประมาณ 1 ชวงเวลาใดเวลาหนงลกคาเรมอกการโตเถยงคาจางน�สองผรบของผรบใชDNS เกดข�นอกเปนโดยมเงอนไขวาในทสดความต�งใจขาวสารการตอบสนองประกอบดวยทเปนคนหรอสงเดยวคำาปราศรยใหมและเวลาน�นจดต�งข�นในสถานทสามารถหยดคำาใช address เกา

ขาวสารกระตนความจำาต�งเวลาหองเกบปลาในเรอหาปลาโรงงานการเลอกเปนเวลารปแบบน�แบบแปลนของ Renumbering ยงน�ไมใชพอเพยงมไปถงไมมทางอยางเชน Renumbering planned เนองจากขาวสารขอมลทนสมยผรบใชมนเขยนชอทอยความลมเหลวทไมไดคาดไวเนองจากวธเปนลกคาของ Renumbering planned เชนน�เปนประธานของประโยคของหองคนควาอนาคตExchanges with Authentication

DHCPv6 สรางข�นในความปลอดภย mechanism ระหวาง client และ server (*) ในน�มนคอรากฐาน protocol specification

Page 34: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ความปลอดภย mechanism แรกเรมต�งเปาไปทำาใหแนใจของ DHCPv6 messages (โดยเฉพาะอยางยงจาก server ไปถง client) มนไมสามารถจดหา confidentiality สำาหรบหวขอ message

(*) [RFC3315] ไมสามารถกำาหนด dedicated mechanism สำาหรบ authenticating communication ระหวางการถายทอดตวกระทำาและ server หรอระหวาง การถายทอดตวกระทำา มนแนะนำาใหใชของ IP security (IPsec, ดบทท 6) สำาหรบจดประสงคน�

รวมท�งส�นความสมบรณอยในทฤษฎทเชอวาปรากฏการณทางธรรมชาตสามารถอธบายดวยหลกทางกลศาสตรทเกยวกบประกน DHCPv6 ทำาใหแนใจมพ�นฐานอยกบ HMAC (กญแจการนำากลบมาทำาใหมเปนเวลาลกคา) [rfc2104]: ระเบยบการมาตรการของแทขาวสารและผรบใชใชรวมกนความลบไมเจาะจงใหคณคาเปนกญแจการคำานวณยอยอาหารของแตละขาวสาร DHCPv6 กบกญแจและลำาดบข�นตอนทแนนอนซงใชในการแกปญหาการนำากลบมาทำาใหมเขมแขง Cryptographically และตดกนมนไปถงขาวสารขณะทการเซนชอซงรบสงขอมลดวยการใชตวเลขของขาวสารอปกรณรบสญญาณเสยงหรอภาพของขาวสารทำาใหถกตองมนทำาใหพอใจโดยประมาณ[กำาลง,การ]พวกเราหนงสอรวบรวมบทความหรอเรองราวส �นๆ[กำาลง,การ]การคำานวณเทาเดมกญแจและพจารณา algorithm อยางละเอยดแลวเปรยบเทยบคาทคอมพวเตอรและคาทเกบไวใน message

[RFC3315] นยาม 2 ความแตกตางของ mechanism: (1)the delayed authentication protocol และ (2) the reconfigure key protocol ท�ง 2 protocols ใช special-purpose DHCPv6 option Authentication option ทรวมกบ framework

ใน delayed authentication protocol มนสมมตวา client และ server (หลายเครอง) แชร key beforehand โดย out-of-band method client รวมท�ง Authentication option ใน Solicit message ยกเวน ทรวม authentication information ไว

Page 35: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

บาง บงบอกถงจดประสงคทใช delayed authentication protocol สำาหรบ further exchanges server (หลายเครอง) identifies เอา key มาใชสวนตวจาก local configuration และตอบสนองกบ Advertise (หรอ Reply พรอมดวย Rapid Commit option) message ทเกบ Authentication option รวมกบ HMAC digest client verifies the validity สำาหรบ Advertise message ใช reconfigured key มน และ accepts the message ถามนเปน verified ทเหมาะสม further messages ท�งหมด ระหวาง client และ server นาจะเปน authenticated วธน� Figure 4-16 แสดง message exchanges ทใช delayed authentication protocol

ในทางตรงขาม reconfigure ใสขอมลระเบยบการซงถกใชไปถงไดรบมาโดยชนดขาวสาร reconfigure (อย)ในระเบยบการน� client และ server จะไดไมจำาเปนตองใชรวมกนกญแจกอนเวลา เมอ server สง reply message แรก ( เปนไปไดทจะ request message ) ถง client server เลอกกญแจสำาหรบ client และประกอบกญแจใน reply message ถา server ในขณะน�นตองการสง reconfigure message ไปท client และมนไมสามารถใช authentication mechanism อนได มน computes the HMAC digest กญแจสำาหรบ reconfigure key protocol และประกอบมนใน Reconfigure message พอๆกบช�นสวนของ Authentication option client verifies the Reconfigure message ทำากญแจนนประกอบใน Reply message Figure 4-17 แสดง message exchanges ประกอบดวย Reconfigure message รวมกบ reconfigure key protocol

ขอความนน key จะสงไปท client ใน Reply message แรก ยกเวนกำาลงเรม encrypted ดงน�น ถาผโจมตสามารถสอดแนมระหวาง server และ client มนสามารถขโมย key และเพมการโจมตโดยใช Reconfigure message กบ valid HMAC digest ดงน�นจง

Page 36: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ตองทำาให Reconfigure key protocol ปลอดภยอยางส�นเชง และนนคอทำาไม [RFC3315] สถานะน� protocol จะใชเมอไม another mechanism available

แตอยางไรกตาม reconfigure key protocol มคาทเปนเจาของ ผลประโยชนสำาคญทสด นนคอ server และ client จดการ แชร key ลวงหนา การแจกจาย Keyรปท 4-16

รปท 4-17

คอ สงททาทายยากอยในทฤษฎทเชอวาปรากฏการณทางธรรมชาต

Page 37: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

สามารถอธบายดวยหลกทางกลศาสตรทเกยวกบประกนโดยไมจำากดใชไหมไมยตธรรมสำาหรบ DHCPv6 และไดรบมาอยางเตมททฤษฎทเชอวาปรากฏการณทางธรรมชาตสามารถอธบายดวยหลกทางกลศาสตรไมใชบอยๆซงเปนไปไดเพราะวาของการแจกจายน�การประนประนอมในระเบยบการสำาคญ reconfigure เปนคดวาเปนดงน�นการแลกเปลยนของอยระหวางสงสองสง feasibility และเครองมอวดระดบของความปลอดภยExchanges with Relay Agents

ถาในภาวะน�นไมม server บน link อนท client เปน attached client ตองการทจะตดตอกบ servers ดวยวธ DHCPv6 relay agent ความคดเหนโงๆเปนดางของพนกงานของรฐเครองถายทอดสญญาณเทาเดมขณะทน �นของพนกงานของรฐเครองถายทอดสญญาณอยใน DHCPv4 แต DHCPv4 สงทแตกตางตว พมพสงทแยกออกของขอความซงถกใชเปนเวลาวธการตดตอสอสารอยระหวางสงสองสงผรบใชและพนกงานของรฐเครองถายทอดสญญาณ

เมอ relay agent รบ message จาก client มนสราง Relay-forward message เกบ Relay Message option อนทถกหอหม message ตนฉบบจาก client relay agent สง Relay-forward message ใกลจะถง available server(หลายเครอง) เชนเดยวกบ DHCP Servers ท�งหมด multicast address หรอไป preconfigured unicast address

Server รบ Relay-forward message ดงออกจากทหอหม original message ใน Relay Message option และประมวลผล original message Server จดเวลาในการตอบสนองไปท original message ทถกหอหมใน Relay-reply message ใช Relay Message option และสง Relay-reply message ไปท relay agent

ในทสด Relay agent ดงออกการตอบสนองหอหมใน Relay Message option และสงตอมนไปท client มนควรจะเปนพนกงานของรฐเครองถายทอดสญญาณน�นซงมชอเสยงจะไดไมจำาเปนตองรกษา

Page 38: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

สภาพโดยไมจำากดเปนเวลาการโตเถยงขาวสารอยระหวางสงสองสงลกคาและ server Relay-reply message เกบขอมล เกยวกบการสงตอการตอบสนองทใกลจะถง client relay agent implementation สามารถเปน very lightweight โดยจะเหนใน Section 4.6. Figure 4-18 แสดงข�นตอนน�สำาหรบ Solicit-Advertise exchangeหลาย relay agents สามารถใชระหวาง client และ server ในกรณอนท Relay-forward หรอ Relay-reply messages เปนไปตามระเบยบ ซงแตกตางจาก DHCPv4 server ไมสามารถมการสงคนการตอบสนองโดยตรงกบ relay agent ทใกลจะถง client ตองขอบคณทแยก Relay-reply message

4.2.4 Summary of DHCPv6 Options ดงทแสดงใน Section 4.2.3 protocol สวนใหญของการดำาเนนการ DHCPv6 เขาใจเนองจากมนเปน options subsection น�สรปคราวๆวา DHCPv6 options น�นเปนทกำาหนดอยางเปนทางการในปจจบน

รปท 4-18

รปท 4-19

Page 39: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

มขอเสนออนสำาหรบ DHCPv6 options และไมเจาะจงพวกเขาในภาวะน�นภายใตการปรกษาน�นใน IETF กวาการนำาเขาคอนขางการเลอกใหมเหลาน�นทนสวนทตดออกน�รวมรวมไปทเหลาน�นอนทเปนเฉพาะเจาะจงใน [RFC3315] ขอจำากด DHCPv6 ดางและคนอนๆไมเจาะจงอนทมคณภาพรายละเอยดสนใจในเรองบทน�สวนใหญของการเลอกใหมไมทำาเปนรปรางในอากาศทนขาวสารโครงรางภายนอกใหมไมเจาะจงการขนสงยตธรรม (NTP server addresses) ท�งหมดโดยตรงและอนไหนทสามารถยอมรบไดDHCPv6 options ท�งหมดเรมตนดวยรปแบบธรรมดากวางๆ ดงทแสดงใน Figure 4-19option code A 16-bit unsigned integer ช�ตว option โดยเฉพาะ option length A 16-bit unsigned integer น�เปนชวงของ option เกบขอมลใน bytesoption data ขอมลสำาหรบ option รปแบบของวงการน�เปลยนไปตามแตละ optionคำาอธบายรายละเอยดอยขางลางของแตละ option ไปดวยกนกบพวกเขาเหลาน�นรวมกบแวดวง

Client Identifier Option Code: 1Length: nData: client DUID (n bytes)Client Identifier option เกบคาขอมลทแปรปรวนคลมเครอ อนทควร

Page 40: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

จะเปนหนงเดยวทช� client โดยเฉพาะ

Server IdentifierOption Code: 2Length: nData: server DUID (n bytes)

Server Identifier option ประกอบดวยขอมลทคลมเครอ อนทควรจะระบเปน server โดยเฉพาะ ซงแตกตางจากพวกเดยวกน option ของ DHCPv4 (ขอมลของใครคอ IPv4 address) option ใชขอมลระยะเวลาซงเปลยนแปลงได

Identity Association for Non-temporary Addresses (IA_NA) Option Code: 3Length: nData: IAID (4 bytes)T1 (4 bytes) T2 (4 bytes) IA_NA options (n−12 bytes)

IA_NA option specifies IA สำาหรบเซต non temporary (ปกต) IPv6 addresses IAID เปน identifier ของ IA T1 และ T2 เปนตวแปรเวลา อธบายในลำาดบทสอง กำาหนดเวลากลบสสภาพเดมของ IA น� (ด Section 4.2.3) คา 0xffffffff มคาเฉลย infinity ถา T1 เซตคาน�คลายกบ timeout ทไมเคยม IA_NA options ม sub options specific ไปถง IA น� IA Address options (อธบายภายหลง) ถอวาเปนสวนหนงใน options fieldIdentity Association for Temporary Addresses (IA_TA) Option Code: 4Length: nData: IAID (4 bytes)

Page 41: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

IA_TA options (n − 4 bytes) IA_TA option specifies an IA สำาหรบเซต temporary IPv6 addresses IAID เปน identifier ของ IA IA_TA options ประกอบไปดวย sub options specific ถง IA น� IA Address options ถอวาเปนสวนหนงใน options field ขอความน�นตางกไมใช T1 หรอ T2 field ประกอบอยใน option น� ต�งแต temporary addresses เปนการใชสำาหรบความเปนสวนตว และเปลยนบอยๆ ในระยะเวลาส�นๆ พวกเขาไมไดคาดวาจะมการเปลยนใหม

IA Address Option Code: 5Length: nData: IPv6 address (16 bytes)preferred-lifetime (4 bytes) valid-lifetime (4 bytes) IAaddr-options (n − 24 bytes)

IA Address option ตวแปร carries ของ IPv6 address แบงสรรไปถง client option น�สามารถจำาหนาย sub option ของ IA_NA or IA_TA option ไดเทาน�น ชอบมากกวาและ valid lifetimes มการศกษาเหมอนกบทนยามไวใน [RFC2462] (ดเพมในบทท 5 of IPv6 Core Protocols Implementation)Option Request

Option Code: 6Length: 2*number of codesData: list of option codes (2 bytes

each)Option Request option รายการ options น�น client

ตองการทจะไดรบจาก server ทละ 2-byte field บรรจ option code ของ DHCPv6 option โดยเฉพาะ

Page 42: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

PreferenceOption Code: 7Length: 1Data: 8-bit integerPreference option แสดงใหเหน สทธพเศษของ server

สำาหรบ client ทเลอกใช server น� คาสงกวาคา higher preference คา 255 ทมเฉพาะคาเฉลย client นาจะเลอกโดยทนท server อนทมคาน�Elapsed Time Option Code: 8Length: 2Data: 16-bit integer

ผาน Time option ไปถอเปนสวนหนงใน messages จาก client และแสดงใหเหนเวลาทผานพนไปต�งแต message แรกของ 1 เซตของการแลกเปลยน (Request and Reply) ใน 100 ของวนาท (2 bytes) นเปนการบอกวา servers อนม client กำาลงสง messages ไปถง เพอวาพวกเขาสามารถตดสนใจเมอ server ในปจจบนเชอถอไดเพอ client ลดลงและ server อกอนจำาเปนทจะตองแทนท session (ถาเปนไปได)Relay Message Option Code: 9Length: nData: relay message (n bytes)

Relay Message option ใชใน Relay-forward หรอ Relay-reply message ทถกหอหมโดย DHCPv6 message อกอน ขอมล option ทเสรจส�น DHCPv6 message เรมดวยการรวมกบ headerOption Code 10 นเปนแตกอนทสำารองไวสำาหรบ option called Server Message option ทไมเหนดวยในระหวางการจดมาตรฐาน

Page 43: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

AuthenticationOption Code: 11Length: nData: protocol (1 byte)

algorithm (1 byte) replay detection method (RDM) (1 byte) replay detection information (8 bytes) authentication information (n − 11 bytes)

Authentication option ตวแปร carries สำาหรบ DHCPv6 authentication mechanismprotocol field specifies the authentication protocol. ตามปจจบน protocols ทใชประโยชนได2 delayed authentication protocol 3 reconfigure key protocol

algorithm field specifies the algorithm ใชสำาหรบ message authentication ในปจจบนเพยงกำาหนดเทาน�นวาคาคอ 1 อนท specifies HMAC-MD5

RDM field specifies the method สำาหรบกดขวาง replay attacks ในปจจบน เพยงแคกำาหนดคาเปน 0 อนทคาเฉลยกำาลงใชเกยวกบ monotonically increasing counter

replay คนหาเจอขอมลขาวสารทเกบไว แปรตาม replay detection method ถา RDM field เปน 0 field น�คอ simply ถอวาเปน monotonically increasing 64-bit unsigned integer (modulo 264)

authentication information field คอ protocol dependent และสามารถทำาใหวางเปลาได ข�นอยกบ protocol และสถานะของ authentication

สำาหรบ delayed authentication protocol authentication information field ถาไมวางเปลา เปนไปตามทเขาใจ

Page 44: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

DHCP realm ชวงตวแปรคาคลมเครออนท identifies the keykey ID A 32-bit integer อนท identifies โดยเฉพาะ key พรอมกบ DHCP realmHMAC-MD5 message authentication code สำาหรบ DHCPv6 message ท�งหมด

ใน delayed authentication protocol servers และ clients ระบชอโดยเฉพาะ key ทใช tipple ของ <DHCP realm, client DUID, key ID>สำาหรบ reconfigure key protocol authentication information field มเงอนไขตามน�นเสมอ

Type A1-byte integer specifying สญลกษณอกแบบหนงของคา field:1 Reconfigure Key value (เคยใชใน Reply message)2 HMAC-MD5 digest ของ message (เคยใชใน Reconfigure message)Value ขอมล 128-bit ทเปน specified โดยรปแบบ field

Server Unicast Option Code: 12Length: 16Data: a unicast IPv6 address of the server

Server Unicast option บงบอกวา client สามารถสง messages โดยตรงถง server 's unicast address ขอมลคอ server 's unicast address อนท client ควรจะสง messagesStatus Code

Page 45: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

Option Code: 13Length: nData: status-code (2 byte)

status-message (n − 2 bytes) Status Code option บงบอกถงผลลพธของการแลกเลยน

DHCPv6 Status Code option สามารถปรากฏตวในระดบตนๆ option field ของ DHCPv6 message หรอใน option field ของ option อกอน กรณกอนหนาน� มนบงบอกถงผลลพธของการแลกเปลยนท�งหมด กรณตอมาภายหลง มนบงบอกผลลพธของ option โดยเฉพาะ 1 specific IA Status-message เปนทางเลอกขอมล field อนทเปน UTF-8 encoded string ซงงายตอการอานขอมลของ codeตาราง 4-3 สรป สถานะ codes ในปจจบน กำาหนดใน [RFC3315] และ [RFC3633]Rapid Commit Option Code: 14Length: 0Data: none

Rapid Commit option บงบอกถงทางลดของการแลกเปลยนระหวาง client และ server ถา option น�ถอเปนสวนหนงใน Solicit message และ server ได configured เพอ accept มน server จะตอบสนองโดยตรงไปทาง message รวมกบ Reply message ไมประกาศ และสรางทคลายกน

ต�ร�งท 4-3ชอ รห

สคำ�อธบ�ย

Success

0 Success

UnspecFail

1 ความลมเหลวของเหตผล unspecified สถาน code น�สามารถสงโดย client หรอ server กไดเชนกน

Page 46: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

NoAddrsAvail

2 ขอผดพลาดบงช�วา server 0yf addresses ทหางายกำาหนดให IA (หลาย IA)

NoBinding

3 ขอผดพลาดบงบอกถง binding specified โดย client ไมสามารถใชประโยชนไดเพราะอยฝาย server

NotOnLink

4 ขอผดพลาดบงบอกวา prefix ของ address ไมไดจดสรรไวเพอเชอมตอกบอนท client เปน attachedUseMulticast

5 ขอผดพลาดทเกยวกบ client สง message ไปท unicast address ยกเวนทยนยอม เพอให client สง further messages ไปถง server ทกำาลงใช multicast address

NoPrefixAvail

6 ขอผดพลาดบงบอกถง delegating router ไมม prefixes ทใชประโยชนไดในการแบง IAPD(หลาย IAPD)

User ClassOption Code: 15Length: nData: user-class-data (n bytes)User Class option ควบคม class หรอ

เซต classes ของ client ตวอยาง 1 ของ classes จะมการแบงสวนทหลากหลายทแชรรวมกนใน network แตละสวนทแบงสามารถเปน class ได option น�ใชโดย server จดเตรยมใหconfiguration ขอมลผาน class basis data field ของ User Class option ประกอบดวย 1 หรอมากกวา ยกตวอยางของ User Class option แตละอนทเรมดวยระยะ 2-byte ตามท field โดย opaque data fieldVendor Class Option Code: 16Length: nData: enterprise-number (4 bytes)vendor-class-data (n − 4 bytes)

ผจำาหนาย Class option ควบคมการจำาหนายของเครองมอบนอน

Page 47: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ทclient DHCPv6 ประมวลผลรน enterprise-number field เปน 32-bit integer ซงรกษาไวโดย IANA อนทuniquely ควบคมการจำาหนายโดยเฉพาะ vendor-class-data field ประกอบดวย 1 หรอมากกวาเชน vendor class data แตละอนทเรมดวยระยะ 2-byte ตามท field โดย opaque data fieldVendor-specific Information Option Code: 17Length: nData: enterprise-number (4 bytes)option-data (n − 4 bytes)

Vendor-specific Information option carries ทเปนทางเลอกขอมลเฉพาะไปทผจำาหนายโดยเฉพาะ และสามารถใชสำาหรบ vendor-specific จดประสงคเพอ clients ทำาข�นโดย vendor (หรอพวกน�นตองการทจะเขากนไดกบ options เฉพาะเหลาน�) เชน client typically ประกอบดวย Option Request option เกบ option code ระบoption น�และผจำาหนาย Class option ระบชอผจำาหนาย ถา server เขากนไดกบ options สำาหรบผจำาหนายโดยเฉพาะมนจะสง requested information คน

ผจำาหนายเปน uniquely คนพบโดย enterprise-number field อนทเปน 32-bit integer ซงรกษาไวโดย IANA option-data field ประกอบดวยการจดลำาดบ code ระยะ และ data fields แตละลำาดบเปนเปนเครองหมายในการตดตามCode A 2-byte integer อนทประกอบดวย vendor-specific optionlength A 2-byte integer แตละ specifies ชวงของ data field ใน bytesdata code เฉพาะ data คา Code ใน option-data field เปนผจำาหนายเฉพาะ IANA ไมสามารถรกษาคาไวได

Page 48: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

Interface-IdOption Code: 18Length: nData: interface-id (n bytes)Interface-Id option เซตโดย relay agent เพอทจะ

ระบinterface ตวรบของ message จาก client (หรอ relay agent อนใกลเคยง client) คาน�คลมเครออนทเปนความหมายตอ relay agent server simply สำาเนา option น�เมอโครงสรางมนคลายกนกบ Relay-reply message และ option ในทสดกใชโดย relay agent ระบชอ outgoing interface ของงแตละ decapsulated message ทสงReconfigure Message Option Code: 19Length: 1Data: 5: Renew message11: Information-request message

Reconfigure Message option สามารถทำาได เพยงแคปรากฏตวใน Reconfigure message และมนบงบอกวารปแบบไหนของ message ตวรบของ client ควรตอบสนอง Reconfigure message ถาคา option เปน 5 client ควรตอบสนองกบ Renew message ถามนเปน 11 client ควรตอบเสนอ Information-request messageReconfigure Accept Option Code: 20Length: 0Data: none

Reconfigure Accept option สามารถสงโดย client หรอ server กไดเชนกน เมอสงโดย client option น�จะ accept a Reconfigure message เมอสงโดย server มนมชองทางทตองการรบจาก client to accept a Reconfigure message (ในอนาคต) อยางไรกตาม [RFC3315] ไมสามารถกำาหนดความสมพนธระหวาง existence หรอ nonexistence ของ option น� แล

Page 49: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

พฤตกรรมของ Reconfigure message ดงตวอยาง มนไมclear ท�งค client สามารถหรอควร accept a Reconfigure message ถามนไมประกอบดวย option ใน previous messagesDNS Recursive Name Server Option Code: 23Length: 16 * number of addressesData: list of IPv6 addressesDNS Recursive Name Server option รายการ IPv6 addresses ของ DNS recursive servers option น�กำาหนดใน [RFC3646]Domain Search List

Option Code: 24Length: nData: n characters (list of domain

names)ขอบเขตคนหารายการ option domain names อนท

สามารถใชโดย client host ถงการแกปญหา DNS names option น�คอทกำาหนดใน [RFC3646]Identity Association for Prefix Delegation (IA_PD)

Option Code: 25Length: nData: IAID (4 bytes)

T1 (4 bytes) T2 (4 bytes) IA_PD options (n − 12 bytes)

IA_PD option specifies IA สำาหรบเซต IPv6 prefixes IAID เปน identifier ของ IA T1 และ T2 เปนตวแปรเวลาอธบายในถดไป กำาหนดเวลาเรมใหมของ IA น� IA_PD Prefix options บอยคร�งทถอเปนสวนหนงของ options fieldIA_PD Prefix Option Code: 26Length: n

Page 50: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

Data: preferred-lifetime (4 bytes)valid-lifetime (4 bytes) prefix-length (1 byte) IPv6-prefix (16 bytes) IA-prefix options (n − 25 bytes)

ตวแปร IA_PD Prefix option carries ของการจดแบง IPv6 prefix ไปทclient option น�สามารถเพยงแคปรากฏตวท sub option ของ IA_PD option IPv6-prefix และ prefix-length fields กำาหนด IPv6 prefix: กอนทจะแบงสวน address และหลงจากทเปน prefix ระยะใน bits คาของ preferred และ valid lifetime fields เปนทคาดไว ถอเปนสวนหนงใน Router Advertisements สงโดย requesting routerInformation Refresh Time Option Code: 32Length: 4Data: 32-bit integer

Option ขอมลใหมของเวลาเฉพาะในชวงวนาท ซงนอกเหนอจากทผใชตองการ เปนการทำาการแลกเปลยนของขอมลทรองขอกบขอความตอบรบ

4.2.5 ปฏกรย�ของสงทพบใกลเคยงกนถงแมวา [RFC2461] และ [RFC2462] แสดงใหเหนถงปฏกรยา

ระหวางโปรโตคอลใกลเคยงทพบและ DHCPv6 และเนองจากแฟลก M และ O ของขอความ Router Advertisement ,เพราะสวนทมผลคลมเครอดวยในความเปนจรง,มนไมเรยบงายนก ไมวาโปรโตคอลจะเขากนไดกบแฟลก ซงกคอ DHCPv6, และบางสวนการทำางาน,หรอท�งสองอยาง มนเปนเพยงบางสวนเพราะวาเมอคนพบสวนทใกลเคยงอนเปนมาตรฐาน DHCPv6 เฉพาะสวนทยงคงสงขอมลอย และเอกสารน�ไมไดเปนสวนเฉพาะของ DHCPv6 จากน�น IETF เรมทำางานชดเจนมากข�นและ

Page 51: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

เกดปฏกรยาในระหวางกระบวนการทำางานทพบเพราะฉะน�นและการท DHCPv6 จะเปนอสระตอการพบทใกลเคยง

4.2.6 เปรยบเทยบ  DHCPv4ทำาตามขอสรปของคาความสำาคญมากระหวาง DHCPv4 และ DHCPv6, มากทสดน�นคอสวนทอางขอมลกอนหนา• DHCPv6 ถกออกแบบดวยวธในการจดสรร multiple addresses ในการเชอมตอเดยวของผใชการเขาใจของการเชอมตอดวยหนาททกลาวนำาไวบนสวนการทำางานอน , DHCPv4 สามารถทำาการแบง address ภายใน DHCPv4• การบรการของ UDP , เปนสวนหนงของ bootstrap protocol (BOOTP). DHCPv6 เปนการบรการของ DHCPv6• DHCPv6 เรมแยกชนดของขอความ ( Renew or Rebind ) แปรตามกฎของการแลกเปลยน • DHCPv6 เรมแยกชนดของขอความสำาหรบการสอสารระหวางการถายทอด และ server ใหมการตอบสนองขอความจาก server ไปถง relayed โดย multiple agents.ใน DHCPv4 server ตองสงการ ตอบสนองโดยตรง กบผใช,แมถาขอความทเหมอนกนจากผใชมการถายทอดโดย multiple agents.• ใน DHCPv6, ไมมความตองการสำาหรบใชงานของ address (::) ซงเปนตนทางของ address ของขอความ DHCPv6 เพราะวาการใชงานของ link-local addresses. DHCPv4 ของผใชตองการใช 0.0.0.0 ขณะทตนทางของ address สำาหรบ initial ยงตดตออยกบ server• DHCPv6 ใชการแยก multicast addresses สำาหรบสงขอความถง server หรอ relay ,ดวยวธการหลกเลยง broadcasting DHCPv4 รองขอการใช link-level broadcasting.

Page 52: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

• มการระบ DHCPv6 อยางแนชด สำาหรบผใชและ server (DUIDs). ใน DHCPv4 server จะระบ address ให IPv4 ซงเวลาทใชอาจไมจำาเปนโดยรวม• DHCPv6 จะรบเลขจำานวนเตม 16 bits สำาหรบ option ของ code และความยาวของฟลดซงอนญาตใหเลขทยาวมากๆหรอขนาดใหญมากๆ. ใน DHCPv4 น�คอฟลดทเปนเลขจำานวนเตมขนาด 8 bits• การออกแบบ ไมม option router ใน DHCPv6 (ดรายละเอยดไดเกยวกบ address allocation ในสวนท 4.2.1 ) ในทำานองเดยวกน,ไมม subnet mask option(หรอความยาวงของ prefix ) ใน DHCPv6

4.3 code  แนะนำ�มสวนน�และถดไปอกสามสวนอธบายในสวนของ KAME 's

DHCPv6 ภายใตความสามารถการทำางานของโปรโตคอล ซงแตกตางการจากอธบายในบทตอๆไปของหนงสอน� เปาหมายของ code คอ 20050509 เวอรชนของ KAME snapshots เวอรชนใหมน�ถกใชเพราะวามาตรฐานของโปรโตคอล DHCPv6 ไมสมบรณ เมอฐานของ code ถกเลอกสำาหรบบทอน และในเวลาทยงไมพรอมทำางาน ในสวนทเพมเตมเวอรชนใหมจะสนบสนน address IPv6,จดมงหมายของโปรโตคอล DHCPv6 ทำาใหมนมการอางองทเหมาะสม ยงคง,ไมสมบรณในบางพ�นท. โดยเฉพาะมนไมสนบสนนการสงตอขอความ DHCPv6 ยนยนปฏเสธและปรบแตงใหม มนจะไมทำาการปรบโปรโตคอลใหมหรอไมทำา option บางอยางทเปนพ�นฐานของ DHCPv6

การทำางานน�กระกอบดวย 3 สวนประกอบหลกของโปรโตคอล ผใช server และ relay agent ผใชและ relay agent สามารถใชในสภาพแวดลอมทใชไดจรงแต server สำาหรบการแบงสวนทรพยากร ( address จะแบงและแทน prefix ) ควรจะเกยวกบสงทอางถง,มนไมสนบสนนความเขาใจของ address หรอ prefix และจดสรรทรพยากร

Page 53: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ตองถกเตรยมไวอยางแนชดดวยการระบผใชงาน.น�ไมใชหนาทในการรองขอการทำางานทแทจรง.ภายใตการปรบแตงขอมลทใชในการรองขอและตอบรบซงมการแลกเปลยนการทำางานดวย server ปจจบน , อยางไรกตาม. ถงแมวาในสวนทมการใชงานอยจะคลอบคลมการอธบายของผลทเกดท�งหมดทเกยวกบโปรโตคอล DHCPv6 ททำางานอย มโปรโตคอลทยงคงไมมสวนทเปนความจรงซงประกอบดวยลกษณะทวไปหลายอยาง อยางเชนการปรบแตง parsers เวลาในการทำางานดวยวธควบคม channels การคำานวณ hash ใหไดคาทนาเชอถอ logging และเปนไปตามทกำาหนด สำาหรบความชดเจนทเหมอนกบความชดเจนจากขอมล คำาจำากดสำาหรบบางขอมลการอางถงภายในจะถกมองขามไป. ท�งหมดของคำาจำากดความเปน source code ท�งหมด ไฟลในรายการทเหนในตาราง 4-4 ครอบคลมในบทน�. ไฟลท�งหมดน�อยภายใต dhcp6 directory ซงสามารถพบไดจาก unpacking ของ kame-dhcp6-20050509.tgz ในไฟลทถกบบอดไวทอยใน ซด-รอมแผนแรก (ดไดในคำานำา)

4.3.1 โครงสร�งของขอมลทวไปและขอมลทใชประจำ�บทวจารณน�เปนของโครงสรางของขอมลทวไปทตางกน ทถกใชโดย

ผใชและ relay และรวมถงโครงสรางทถกใชเปนประจำาคว�มย�วของ Variable Buffersรายการท 4-1 ม โครงสรางของ duid{} และ dhcp6_vbuf{}. ซงขอมลท�งสองชนดมผลตอความยาวของตวแปรขอมลต�ร�งท 4-4File คำ�อธบ�ยauth.h โครงสรางภายในของ DHCPv6 authentication

keysconfig.h โครงสรางทประกอบไปดวยขอมลทถกแกไขdhcp6.h โครงสรางสำาหรบการทำางานของ DHCPv6 protocoldhcp6c_ia.h

IA definition สำาหรบผใช

Page 54: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

addrconf.c

IPv6 address ถกแกไขโดย DHCPv6

dhcp6c.c สวนหลกทใชงานของ clientdhcp6c_ia.c

IA operations สำาหรบผใช

dhcp6relay.c

Relay agent routines

dhcp6s.c Server routines

ร�ยก�รท 4-1

ต�มฟงกชนนเปนก�รใชง�นบอยครงสำ�หรบก�รจดก�รกบโครงสร�งint duidcpy(struct duid *dst, struct duid *src);

คำ�อธบ�ย : คดลอก DUID src ไปให dst. ซงมหนวยความจำาอยในฟงกชนน�

int duidcmp(struct duid *d1, struct duid *d2);คำ�อธบ�ย : เปรยบเทยบโครงสรางท�งสองของ DUID , d1 และ d2. มนจะคนคา 0 ถาท�งสองมคาเหมอนกนและไมเปน 0 ถาไมเหมอนกน

void duidfree(struct duid *duid);คำ�อธบ�ย : ทำาใหพ�นทหนวยความจำาวางสำาหรบ duid.

int dhcp6_vbuf_copy(struct dhcp6_vbuf *dst, struct dhcp6_vbuf *src);คำ�อธบ�ย : คดลอก source buffer src ไปให dst. ซงมหนวยความจำาอยในฟงกชนน�

void dhcp6_vbuf_free(struct dhcp6_vbuf *vbuf);คำ�อธบ�ย : ทำาใหพ�นทหนวยความจำาวางสำาหรบ vbuf.List Structure

ขอจำากด DHCPv6 protocol ใชโครงสรางขอมลทซบซอน พวกเขา

Page 55: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

จำานวนมากเกบตวแปรระยะขอมล และในกรณเลกๆทำาใหเกดผล เปนลกคาจำาเปนโครงสรางทอย การทำาใหเกดผลน�เรมนำา dedicated โครงสรางขอมล dhcp6_list{} ปรบขอมลทซบซอนน�ใหเหมาะสม

โครงสราง dhcp6_list{}ตวมนเองคอมาตรฐานตดตามโครงสราง รายการ elements เปนโครงสราง dhcp6_listval{}แสดงใน Listing 4-2

ร�ยก�รท 4-2

131 โครงสราง dhcp6_listval{} สามารถเกบรปแบบทหลากหลายของขอมล DHCPv6-related รปแบบของขอมลโดยรปแบบของสมาชก133-141 จำานวนท�งหมดของ main value ของ element เตมไปดวยการรวมกนของสมาชกแบงสวนสำาหรบรปแบบโดยเฉพาะ ตามตวอยางน� สมาชก uv_ia มผลกบรปแบบ DHCP6_LISTVAL_IAPD และ DHCP6_LISTVAL_IANA (ดตารางท 4-5)143 ความตองการเมอ สมาชก sublist เปนรายการทเกยวของกน

Page 56: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

สำาหรบรายการ element สมาชกน�ใชสรางทอยโครงสรางขอมล145-151 คำาสงทผใชเขยนข�นเอง val_xxx เปนทางลดไปถงเขาใจเขาไปถงสมาชกรวมกนตาราง 4-5 สรปความเปนไปไดของรปแบบ element ตามฟงกชนเปนทรวมกนของหนาทประจำาสำาหรบการปรบใหเหมาะสมของรายการ framework: int dhcp6_copy_list(struct dhcp6_list *dst, struct dhcp6_list *src); อธบาย: Copy รายการท�งหมดจาก src ไป dst memory จำาเปนมากในการจดแบงฟงกชนน�void dhcp6_clear_list(struct dhcp6_list *head); อธบาย: กำาจดรายการท�งหมด รวมท�ง sublists (ถามบาง)

TABLE 4-5Type value Union member (val_) DescriptionDHCP6_LISTVAL_NUM num Normal integersDHCP6_LISTVAL_STCODE num16

DHCPv6 Status CodeDHCP6_LISTVAL_ADDR6 addr6

Generic IPv6 addressDHCP6_LISTVAL_IAPD ia IA_PDDHCP6_LISTVAL_PREFIX6 DHCP6_LISTVAL_IANA

prefix6 IPv6 prefixDHCP6_LISTVAL_STATEFULADDR6 DHCP6_LISTVAL_VBUF

ia IA_NA

struct dhcp6_listval *dhcp6_find_listval(struct dhcp6_list *head, dhcp6_listval_type_t type, void *val,

Page 57: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

int option);\vspace*{0.6pt} อธบาย: คนหารายการมงไปทคา val รวมกบรปแบบ type option เปน flagสำาหรบทำาตามคำาสงคนหาoperation ถาMATCHLIST_PREFIXLEN flagเซตaddressสวนprefixesไมสนใจstruct dhcp6_listval *dhcp6_add_listval(struct dhcp6_list *head, dhcp6_listval_type_t type, void *val, struct dhcp6_list *sublist); อธบาย: รวมรายการ element val รวมกบรปแบบ type ไปทส�นสดของรายการสวนบน ถา sublist เปน non-NULL copy ของมนเปนการสรางและเกบรกษาสมาชก sublist ของ element ใหม จำาเปนเมอหนวยความจำาของ element ใหมเปนการแบงในฟงกชนน�void dhcp6_clear_listval(struct dhcp6_listval *lv); อธบาย: กำาจดรายการ element รวมท�ง sublist (ถามนมอย)

DHCPv6 Options โครงสราง dhcp6_optinfo{} (Listing 4-3) อธบายการ

เซต DHCPv6 options ใน single DHCPv6 message ความซบซอนเนองจากของการจดขอมลสายไฟของการเลอกมนอยาเขาทเปนลกคาของขอมลดบอยในการทำาใหเกดผลระเบยบการสวนประกอบน�เปน เพราะฉะน�นขณะทอยางแทจรงการเปนตวแทนภายในทสามารถเขาไดของขอมลการจดขอมลสายไฟ

สำาหรบสวนทมากทสด คาเฉลยของสมาชกควรเปนทเขาใจงายจากชอเหลาน�น และ comments ในบรรทด ถงแมวาสงทเชอมกนของขอความอาจจะทำารายละเอยดท�งหมด:• The authflags และสมาชกถดไปเปนญาตกบ Authentication option สมาชก authflags พจารณาเปน option เทาไหรทควรดแลในปจจบนคาทเขากนได

Page 58: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

คอ DHCP6OPT_AUTHFLAG_NOINFO ความหมายนนไมใชAuthentication information ทเปนสวนประกอบ• สมาชก aiu_reconfig ของ authinfo{} union มจดมงหมายเพอ reconfigure key protocol แตมนไมไดใชในปจจบนร�ยก�รท 4-3

- บรรทดท 159 และ 160 ไมถกตองในเหตผล อยางไรกตามเปนเพยงบรรทดเดยวของ Code2 สวนใหญๆเปนทใชบอยสำาหรบโครงสราง dhcp6_option{}int dhcp6_get_options(struct dhcp6opt *p, struct dhcp6opt *ep, struct dhcp6_optinfo *optinfo);

Page 59: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

อธบาย: วเคราะหประโยค wire-format DHCPv6 options และสรางประโยคทคลายกบโครงสราง dhcp6_optinfo{} ขอพสจน p และ ep ระบ head และ end ของ options และพสจน optinfo เปนโครงสรางทต�งเปาint dhcp6_set_options(int type, struct dhcp6opt *optbp, struct dhcp6opt *optep, struct dhcp6_optinfo *optinfo);

อธบาย: สราง wire-format DHCPv6 options จากโครงสรางการขอ optinfo{} รปแบบเหตผล specifies รปแบบของ DHCPv6 message อนทม options น�จำาเปนเนองจากรปแบบอาจตวงใชoptions บาง argument optinfo เปนโครงสรางตนกำาเนด

Figure 4-20 เปนลกษณะของความสมพนธระหวาง DHCPv6 options ในรปแบบสายไฟและคลายกบโครงสราง dhcp6_optinfo{} และเทาใดท 2 subroutines ทำางานกบโครงสรางขอมลเหลาน� ในตวอยางน� ทนนม 2 IA_PD options 1 คอ IAID 100 และอนสำาหรบ IAID 200 กอนทจะม 2 prefixes พกหนงตอมาไมม prefix และประกอบสถานะ Code option ทเกยวกบเงอนไข error คลายกบโครงสรางขอมลทแสดงใหเหนถงรายการ linked ในสมาชก iapd_list ของโครงสราง dhcp6_optinfo{} 2 IA_PD options เปนการแสดงถงรายการของโครงสราง dhcp6_listval{} เหมอนๆกนอนทม sublists สำาหรบ prefixes หรอ Status Code optionรปท 4-20

Page 60: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ความสมพนธระหวาง wire-format DHCPv6 options และโครงสราง dhcp6_optinfo{}บอยคร�งทตองเรยกใช DHCPv6 protocol dhcp6_timer{} structure แสดงใน Listing 4-4 โดยจะทำางานแบบทวไป เรยกใชเพอใหสำาเรจในชวง timeouts

ร�ยก�รท 4-4

44-49 tm member จะอยในเวลาทหมดอาย เมอหมดอายจะเปนตวกำาหนดเวลาในการกรอกขอมล เมอหมดอาย function pointed จะตดตอกบ argument เพอสงขอมลสวนใหญทใชบอยๆ: struct dhcp6_timer *dhcp6_add_timer( struct dhcp6_timer *(*timeout) __P((void *)); void *timeodata);

Page 61: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

Description: สรางตวจบเวลาใหมโดยใหมนควบคม function timeout และ argument void dhcp6_remove_timer(struct dhcp6_timer **timer); Description: Remove the timer pointed to by *timer. void dhcp6_set_timer(struct timeval *tm, struct dhcp6_timer *timer); Description: Start หรอ restart ตวจบเวลา กบชวงเวลาของ tm struct timeval *dhcp6_check_timer();Description: เชค process แตละชวงเวลา ถามเวลาไหนบางทหมดอาย คอ function น�นตดตอกบ function ทหมดอาย

4.4 Client ImplementationFigure 4-21 อธบายคราวๆ สงทเกยวกบหนาทของการ

ทำาใหเกดผล client หลงจากเรมกระบวนการแบบไมส�นสดใน client6_mainloop() function ใหรอชองวางหรอ ชวงเวลา ทวาง มผลลพธมากมายต�งแต start จนถงหมดเวลาเนองจากสมเรมตนม Delay หรอแชไวนานdhcp6_check_timer()เปนฟงกชนเชคเวลาและตดตอกบฟงกชนควบคมเวลาเมอหมดเวลา client6_timo() เปน ฟงกชนทวไป มนสามารถสง Message แรกไปไดหลงจากสม Delay การเรยกหรอขอมล packets ท�งหมดจะเรมสงใหมหลงจากหมดเวลา และจะสงโดยใชฟงกชนน� อนใช ia_timo() function ควบคมการสงผาน ของ IA และสงอนใหมทต�งคาปรบปรงแลว หรอทเรยกวา update แลวไปใหม

client6_recv() function รองรบการตอบสนองจาก server และตดตอกบ client6_recvadvert() หรอ client6_recvreply() function ข�นอยกบ Massage

Page 62: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

รปท 4-21

ถารบ message ทม DHCPv6 นาเชอถอ process _auth() function จะตดตอกบ authenticate message. ฟงกชน client6_recvreply() ควบคมการตอบสนองในชวงท massage ใกลมาถง มนจะเชอมตอกบฟงกชน dhcp6_script() สำาหรบสนบสนนการ process ขอมล stateless configuration เชน DNS addresses ของผรบ สำาหรบขอมลทกลาวมาฟงกชน update _ia() จะเปนตวดำาเนนการตอบสนอง massage สำาหรบการแบง address ฟงกชน

Update _address()จะเรยกมาจากฟงกชน update _ia() จะสรางหรอ Update โดย server

Page 63: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ในเรองสญญาณ SIGTERM โดย client จะปลดขอมลท�งหมด จดสรรโดย server รวมถง addresses หรอ prefixes และสง message สำาหรบ released IA จากน�นฟงกชน process _signals() จะเรมประมวลผลMessages ท�งหมดจาก client คอทำาข�นและสงจากฟงกชน client6_send() (แตละจดทลกศรน�คอฟงกชน ตดปายดวยชอ message แตถาซำ�ากน สามารถ Make ได) ถา client ใช DHCPv6 ของแท ฟงกชน set_auth() จะจดเตรยมตวแปรสำาคญสำาหรบ option แท

4.4.1 โครงสร�งขอมล client เรมตนโดย ตรวจสอบโครงสรางขอมล client คราวๆ โดย

สงเขปสวนประกอบ dhcp6_if{} โชวอยดานลาง จำากดโดย configuration ตวแปล ใชโดย client และ server แตมนจะบอกในแตละ ต�งแตสวนใหญของสมาชกมนซงถกใชทเปนคนหรอสงเดยวโดย client

ร�ยก�รท 4-5

Page 64: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

36-69 ตวจบเวลาผานทาง interface timer ซงจะถกใชเปนเครองมอทำาใหขอมล กระตนตวจบเวลาสำาหรบ configuration ขอมลไรสญชาต event _list member คอรายการของโครงสราง dhcp6_event{} (อธบายภายหลง) แตละโครงสรางสมพนธกนไปเรอยๆขอมลจะแลกเปลยนกนระหวาง client และ server บนการ interface send _flags member อยทclient เทาน�น มนจะกำาหนดพเศษเฉพาะตอนกำาลงสง packet เทาน�น ในปจจบนม 2 flags ทใชกนอย DHCIFF_INFO_ONLY สงขอมลทถกรองขอเทาน �น DHCIFF_RAPID_COMMIT ประกอบแบบรวดเรวใน option รองขอ messageAllow _flags member สำาหรบ server เทาน�น มนกำาหนดรปแบบลกษณะของ messages ในปจจบน

flag ทมอย คอ DHCIFF_RAPID_COMMIT ซงเปนวธทนาเชอถอในการรองขอ message ถา flag ไม set server จะตอบสนองโดยการไมถอวามการรองขอ

Page 65: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

server _pref member กำาหนด server มนกำาหนดตามความสำาคญโดย server เมอ configured ชดเจน script path member กำาหนด client และกำาหนดเสนทางไปท script file อนน�ทำาใหเกด stateless information (เชน recursive DNS server addresses) reqopt _list member และ iaconf _list member กำาหนด client กอนทรายการของ options อนทจะ included messages ทเขากนงาย ท�งทรองขอ ภายหลงทเชอมตอ client มผลในการ configuration สำาหรบรองขอ IAs นเปนโครงสรางของ ia_conf{} ซงจะอธบายในภายหลงยงคงเปนโครงสรางทนาเชอถอ ตวแปร configured สำาหรบ client โครงสราง dhcp6_event{} แสดงใน Listing 4-6. อธบายไว แตกอนอธบายเพยงแคระหวาง client และ server.

ร�ยก�รท 4-6

83-91 ifp member กำาหนดคลายกบโครงสราง dhcp6_if{} timer member คอ timer โดยสมพนธกนกบ event น� อนทปกตกำาหนด timeout สำาหรบ receiving ตอบสนองจาก

Page 66: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

server ถา event สมพนธกบ server เฉพาะ (เมอมนเคยใชรองขอ message ไปท server เฉพาะ) สมาชกผใหบรการกำาหนดserver’s DUID tv_start member ควบคมเวลาเมอ message แรกของ event น�สง93-99 สมาชกจาก retrans จาก timeouts เปนตวแปร timeout สำาหรบ event น� (ดท Table 4-2, หนา 301) สมาชกตวแรก (retrans) คอระยะเวลา retransmission รวมถง random delay ตามหลงมาอก 4 สมาชก จะสมพนธกบ IRT (เวลา Initial retransmis-sion), MRC (Maximum retransmission count), MRT (Maximum retransmission time), และ MRD (Maximum retransmission duration) timeout member คอ Number ของ timeouts ทม expired สำาหรบ event น� เชนเดยวกนกบ Number ของ retransmissions 101-102 xid member คอ transaction ID ของ message ทสมพนธกนกบ event และ การตอบสนองทคาดไว state member โดยปกต identifies รปแบบของ messages สงกบ event น� states ทเปนไปได คอ DHCP6S_INIT, DHCP6S_SOLICIT, DHCP6S_INFOREQ, DHCP6S_REQUEST, DHCP6S_RENEW, DHCP6S_REBIND, และ DHCP6S_RELEASE. DHCP6S_INIT คอ state พเศษ มนเปนวธ initial message ในระหวางการสม period ยงคงเปน members ทสมพนธกบรปแบบ particular DHCPv6 message สงทควรจะเขาใจงายมาจากชอ state 104-111 current_server และ servers members เคยใชถง maintain multiple servers เมอ client ทำาการยอมรบ DHCPv6 แจง messages จาก

multiple servers ในทางตรงกนขามจะเลอก server ทดแมวา

Page 67: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

DHCPv6 มความนาเชอถอเพราะถกใชมาแลว authparam member เกบตวแปรทนาเชอถอตางๆไว เชน protocol ทเชอถอ หรอ อะไรทคนหาไดลาสด ในทสด data_list member เกบรายการของการ configuration ขอมลทรองขอไปท server เชน ตวแปร IA ของ addresses หรอ prefixes

โครงสราง ia_conf{} ระบไวใน Listing 4-7 อธบายลกษณะ client ท configuration โดยเฉพาะ IA โครงสราง ia_conf{} กเชนกน ใชเพอใหขอมล run-time อยตอไป เกยวกบการจด IA โดย server

ร�ยก�รท 4-7

161-163 รปแบบตวแปร iaid รวมกนบาง กบรปแบบของ IA รปแบบ IA sup-ported โดยการเกดของ implementation คอ IATYPE_NA และ IATYPE_PD , IA_NA and IA_PD ตามลำาดบความสำาคญ165 iadata member เปน ตวแปรทคลมเครอไมแนนอน ซงถกใช run-time ขอมล ขอคดเหนในความหมายทอธบาย โครงสราง ia_conf{} แตละโดยเฉพาะแบบ ของ IA มนมโดยเฉพาะโครงสราง configuration iapd_conf{} และ iana_conf{} แสดงใน Listing 4-8 โครงสรางเหลาน�ใช "header" รวมกน ซงเปนโครงสราง ia_conf{} โครงสราง iapd_conf{} เกบรายการ prefixes (iapd _ prefix _list) สำาหรบ client

ตองการตวแทน มนประกอบดวยตวแปร ลกษณะ configuration สำาหรบ network (iapd_pif_list) อนน�คงจะทำาใหใหมในการอธบาย

Page 68: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

prefix-interface statement สำาหรบตวอยางของ ตวอยาง prefix delegation configuration แสดงใน Section 4.8.4 ในทางตรงกนขาม โครงสราง iana_conf{} เกบรายการของ addresses ท client ตองการทจะจดแบง

ร�ยก�รท 4-8

Global Variables Table 4-6 สรปโดยเฉพาะซงเปลยนแปลงไดโดยรวมสวนใหญทจะทำาใหเกดผลของ clientExample นเปนตวอยาง client configuration รบเอา DHCPv6 client ตองการไดรบตวแปร configuration ถดไป• IPv6 addresses. This client would like to have these addresses allocated: 2001:db8:1234::1 and 2001:db8:abcd::a. For these addresses, the client uses two IAs whose IAIDs are 100 and 200.

ต�ร�งท 4-6

Page 69: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

• Recursive DNS server addresses • DNS domain search list

Figure 4-22 แสดงโครงสรางขอมลทเกยวของ เมอ client น�สง message เรยกรองไป ซงพดตรงๆ ขอมลท iaconf_list สมาชกของโครงสราง dhcp6_if{} แสดงใหเหน client ลกษณะ configuration ในลำาดบการสง Solicit message โครงสราง dhcp6_event{} อนทเกบตวแปร IA-related ไดมาจาก client 's configuration เกบไวในโครงสราง iana_conf{}

หมายเหต client specifies กำาหนด แบงออกเปน 2 desired addresses. client สามารถทำากำาหนด addresses ใน IA เดยวๆไดเชนกน แตในขณะน�น client อาจจะไดรบเพยง address เทาน�น เพราะวา addresses โดยเฉพาะใน Solicit message สามารถใชได โดย server แคเกรน; server อาจจะไมคำานงถงหมายเลข addresses specified เทาๆกน โดยกำาหนด multiple IAs client รองขออยางชดเจนของ addresses หลายๆอยาง (แมแตกระน�น addresses ทแทจรงอาจจะหลากหลายจากความตองการหนงๆ)4.4.2 client6_mainloop() Function

ทนทท DHCPv6 client ทำาการ configuring ตวมนเองเสรจ มนเขาไปมสวนรวม client6_mainloop() function อนท loops ไมมขอกำาหนด จดการควบคม DHCPv6 protocol ท�งหมด

Listing 4-9 แสดงฟงกชนน� มนเขาใจไมยาก: เรมทเชค

Page 70: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

asynchronous events ตวอยางเชน สญญาณ และเวลา และในขณะน�นคอย socket events ใช select() system ตดตอ ถา DHCPv6 packet มาถง ฟงกชนจะดำาเนนตอจากทตดตอ select() และตดตอกบ client6_recv() function ตวแปร W ประกอบดวย เวลาจนกระทงตอมา หมดเวลา ถา packets ไมมาถงกอนเวลาน�น อยางไรกตาม select() ไมมขอกำาหนดใหเกด returns client6_mainloop() function ซำ�า

ร�ยก�รท 4-9

4.4.3 client6_timo() Functionclient6_timo() function กำาลงตดตาม กจวตรประจำาของ

client สงทสมพนธกนโดยปกต คอขอมล ระหวาง client และ server แลกเปลยนของการขอรองและ การตอบสนอง messages และ ยดเวลาการสมปจจยทจำาเปนสำาหรบ message แรก หรอ สง messages การต�งเวลาใหม

Page 71: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

Check Retransmission Limitร�ยก�รท 4-10

รปท 4-22

859-875 ถาจำานวนสงสดของ retransmissions เฉพาะเจาะจงเปนเวลาของ event น� ขณะทเปนเหตการณของการรองขอ, ปลดออก และไมรบ messages (ถงแมวาในทสดจะไม supported ในการทำาให

Page 72: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

เกดผลน�) มนคอการเปรยบเทยบเกยวกบหมายเลขของ retransmissions ททำาข�นมาจนถงทกวนน� ถามนไปถงขดจำากด การดำาเนน event น�กจะส�นสด อยางไมประสบความสำาเรจโดยเฉพาะถา event ทเกยวของคอ การแลกเปลยน Release-Reply, check _exit() function ขอใหอธบายไมวาจะดำาเนนการสมบรณจะหยดไดหรอไม

Change Event State and Send Message ร�ยก�รท 4-11

877-889 ถาชดคำาสงเรยกหาในระหวางสภาพ DHCP6S_INIT จะยดเวลาสมใหตวแรกสงผานจนจบ message สงไปถงกจะแปรตามลกษณะ configuration ถา client กำาลงรนอย ในโหมดการเรยกหาขอมล message การเรยกหาขอมลจะถกสงไป ไมเชนน�น Solicit message กจะสงแทน In case ตอมา construct _confdata() function สราง IAs โดยถอวาเปนสวนหนงของ Solicit message จาก client 's

Page 73: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

configuration (ด Figure 4-22, หนา 334) dhcp6_set_timeoparam() function รเซตตวแปรใหมสำาหรบ message ใหม (initial และ กำาหนดเวลา maximum) 891-895 เพอสง Solicit, Request, Release, or Information-request message โดย client6_send() function จะตดตออยางงายๆกบโครงสราง event ทสมพนธกน896-906 สำาหรบ Renew or Rebind message ถา event มขอมลอพเดต(address ทำาการ renewed), client6_send() function สง message ทคลายๆกน ไมเชนน�นแลว event น�จะยกเลกการสง message อยางแนนอน case ตอมาทสามารถเกดข�นได ตวอยางเชน เมอเวลา T2 สำาหรบ IA ผานแลว ถงแมวา client จะสง Renew messagesและมนจำาเปนจะตองสง Rebind message ในกรณน� ia_timo() function (Section 4.4.12) ยกเลก event เกา ท�งๆทตองรกษาเวลาทสมพนธกนไว

Resend Solicit or Send New Requestร�ยก�รท 4-12

Page 74: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

907-929 ถาหนาทประจำาตดตอภายใต DHCP6S_SOLICIT และ client เรยบรอยแลว เปนทยอมรบวาทกๆ messages ไดแจงแลว select _server() function เลอกทจะเรยก server ทดทสดสำาหรบ client สำาหรบ logic ของ server ถกเลอกแบบทวๆไปมาก : มนปรบปรง server ใหสงข�น ภายนอกดวา server น�นคอสงสด ในขณะน�น server กจะจบโครงสรางของ event930-937 client สง Request message ไปถง server ทเลอกไว สภาพ event กำาหนดเวลาอพเดตตวแปรตามน�น นบแตน�ไป ตวแปร authentication (ถามเงอนไข) แสดงโดย server ทถกใช

รปท 4-23

Page 75: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

939-945 ฟงกชน construct _reqdata() จบแตละ IA กลบไปโดยผาน server กลายเปนเหตการณท data list ของ IAID มคทเหมอนกนอย 1 ของ IAIDs ใน client 's local configuration Figure 4-23 อธบายตวอยางของกระบวนการน� client configuration เปนเหมอนกบใน Figure 4-22 Solicit message จากการทเลอกจาก server ม 2 IAs อนหนงคอ IAID of 100 และอนๆอก คอ IAID of 300 ต�งแต client ไมจดการรวมเขากบ IA พรอมดวย ID of 300 ใน message เรยกรอง มนจะรบแค IAs ID ของใครทเปน 100(*) Note เชนเดยวกน addresses ใน Request message (2001:db8:ffff::1 and 2001:db8:ffff::2) ไมถอเปนสวนหนงในรายการ client 's configuration หรอ ใน Solicit message client ควรจะนงรบขอเสนอ ต�งแต addresses ใน Solicit message เพยงแคเกรน ใหแก server และมนทำาใหเปนของแท เพอท server จะไดจดสรร addresses ทตางกน

Page 76: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

(*) เปนตวอยางทเปนไปตามทสรางข�น พรอมจะทำาตาม server แตละ IA ใน Advertise message นน ไมถอเปนสวนหนงของกลมทคลายกบ Solicit message946 ฟงกชน client6_send() สง Solicit message ใหม (ถาตอนน�เปน timeout ของแตกอน Solicit message) หรอสง Request messageReset Timer ร�ยก�รท 4-13

950-952 ฟงกชน dhcp6_reset_timer() อพเดตคา timeout สำาหรบ event น� ซงเปนรากฐานของตวแปร timeout ใหม (อนทอาจจะเกดการเปลยนแปลงเนองจากการสงผาน state) ดงใน Section 14 of [RFC3315] ฟงกชน dhcp6_reset_timer() ในขณะรเซทเวลาภายใน ซงเปนรากฐาน timeout ใหม สงกลบ non-NULL timer pointer เพอรบรองวาไดตดตอกบ timer ทยงคงเปนทถกตอง

4.4.4 client6_send() Function เลยนแบบฟงกชน client6_send() มนสง DHCPv6 message ไปท server หรอ หลายๆ servers message type ข�นอยกบ argument, evSet Message Type ร�ยก�รท 4-14

Page 77: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1212-1234 รปแบบของ message ไมยอมเปลยน โดย event state อนไหนเปนวธการในการสงตอทนทSelect Transaction IDร�ยก�รท 4-15

1236-1255 ถาน�เปน message แรกของการแลกเปลยน, transaction ID ใหม, 24-bit integer, เปนการสมใหเกดข�น สรางคาเกบไวใน message 's transaction-id อาณาเขตในลำาดบ network byte ระยะเวลาททำาการ initialized message ไปจนถงเวลาท fixed สวนทเปน DHCPv6 messages

Page 78: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

Set Optionsร�ยก�รท 4-16

Page 79: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ
Page 80: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1260 เลอกตวแปลทเปนโครงสราง อนทม option ขอมลสำาหรบ message ฟงกชน dhcp6_init_options() จะ initializes โครงสราง คลายๆกบการ format1263-1272 สำาหรบ messages น� ตองการกำาหนดให server Identifier option โครงสราง event น�ควรจะม identifier และ มนจะ copy ไปทโครงสราง option1274-1278 client 's identifier เปนการ copy โครงสราง option อนไหนทตองการจะใชขณะท Client กำาลง Identifier option ถงแมวาจะมขอจำากดในการกำาหนด message request ขอมล ประกอบดวย option นน ตรงน�ทำาใหเกดข�นอยางแทจรง รวมเขาไวกบ option สำาหรบ messages ท�งหมด1280-1284 ถา client ทำาการ configured ไปใช Rapid Commit option และน�คอ Solicit message ปฏบตตอการเลอกเฉพาะอยในโครงสราง option1286-1289 ถาน�เปน message แรกของการแลกเปลยน อตรา

Page 81: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

การไหลเวลาจะถกบนทกไวใน tv_start member ของโครงสราง event น� ซงมาจาก Elapsed Time option แมวา message ตองการเหมอนกน กจะสงใหม คาเดมของ Elapsed Time option จะเซตเปน 01290-1316 แมวา message เหมอนกนกจะสงใหมหลงจาก timeout คา option ทเวลาผานพนไป จะเซตไปทเวลาต�งแต message แรก จะสงในลำาดบทรอยของวนาท (10?2 วนาท) เนองจากเวลาผานไปแลว คอ 16-bit unsigned integer คาสงสดทเปนไปไดคอ 65,535 ซงจะประมาณได 11 นาท ท�งน�จะไมใหญมากเพยงพอทจะทำาใหแนใจวาผานพนไปแลวคาเกนกวาสงสด ดงน�น ถาเปนเชนน�นจรง เวลาทผานไปจะใหญกวาคาจดสงสด เวลาทผานไปกจะลมเหลวตองเซตคาสงสด1318-1323 รายการของการ configured option เรยกรอง ใน client คอ copy ไปทโครงสราง option ในฐานะ Option ขอรอง option1325-1350 ถาโครงสราง event ไมมรายการขอมลเกบอยเลย รายการ elements จะ copy ไปโครงสราง option เนองจากคลายกบ DHCPv6 options เปนไปไดท option ใน implementation น�เปน IA_PD option สำาหรบ prefix delegation และ IA_NA option สำาหรบการแบงสวน addressAuthenticate Messageร�ยก�รท 4-17

1352-1357 ฟงกชน set _auth() เซตตวแปรสำาหรบ DHCPv6 ของแท ถา client ทำาการ configured ไปใชจะทำาใหชดเจนข�น และสำาหรบรปแบบ message บางสวน ถา client และ server มการประชม

Page 82: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

และแกไข ฟงกชน set _auth() จะบรรยายใน Section 4.7.2Encode Options ร�ยก�รท 4-18

1359-1366 ฟงกชน dhcp6_set_options() เปลยนโครงสราง option ทำาเปนรปแบบตอสายไฟใน output buffer และสงกลบชวงของ option ในตำาแหนง output buffer ถาตวแปรแท คอ เซตในโครงสราง option มนคำานวณ offset จาก head ของ options ไปถง HMAC-MD5 field ของ option ทเหมอนกน และ stores offset กลบในโครงสราง option สำาหรบการเลอนเวลาของ protocol ทนาเชอถอ offset จะเซตใน delayedauth _offset macro สมาชกของ dhcp6_optinfo{}(Listing 4-3, หนา 324) HMAC-MD5 field เซต 0 ทจด Figure 4-24 แสดงข�นตอนน�

รปท 4-24

Calculate HMAC

Page 83: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ร�ยก�รท 4-19

1368-1387 ถา message เปน authenticated ใชแลวเกด การลาชาของ authentication protocol ฟงกชน dhcp6_set_options() ควรทำาการเซต delayedauth_offset สมาชกของโครงสราง option ไปจนถง offset ของ HMAC-MD5 field ฟงกชน dhcp6_calc_mac() คำานวณ HMAC digest สำาหรบ DHCPv6 message ท�งหมด ใชแลวแกไขตวแปรในโครงสราง event และ stores คาในสวนทสำารองไว อยในหม message คนพบดวย offset (ใน HMAC-MD5 field ของ Authentication option)

สง Packetร�ยก�รท 4-20

Page 84: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1389-1404 implementation น�ไมสามารถเขากนไดกบ unicast transport ของ DHCPv6 messages และ messages ท�งหมดจาก client สงไปท All_DHCP_Relay_Agents_and_Servers multicast address (ff02::1:2) ถงทำาใหชดเจนข�นในการเชอมตอระบบของ multicast address sin6_scope_id member จะทำาการเซตการเชอมตอ ID อนท identified เบ�องตน และ ทำาการเซตในโครงสราง interface

4.4.5 ฟงกชน client6_recv()

Page 85: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ฟงกชน client6_recv() ดำาเนนการ received DHCPv6 messages และสง message-specific ออกไปReceive Packetร�ยก�รท 4-21

1452-1480 โครงสราง msghdr{} , mhdr , initialized และ และในขณะทระบบ ecvmsg() ตดตอกบ receives ทำาให packet สามารถเขาใจได IPV6_RECVPKTINFO socket option (ดบทท 7 ของ IPv6 Core Protocols Implementation, "Socket API Extensions") เปนพเศษสำาหรบ socket น� เพอทจะ msghdr{} ควรมรายการชวยเหลอขอมลของรปแบบ IPV6_PKTINFO ขอมลขาวสารซงชวยเหลอดมากเพราะวา DHCPv6 protocol เปน วตถทใหญ

Page 86: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

มากอยรอบๆ network interfaceIdentify the Local Configuration

ร�ยก�รท 4-22

1482-1486 ฟงกชน find _ifconfbyid() สงกลบโครงสราง local interface configuration, ifp, ซงเปนรากฐานของ identifier ของการ interface เขามาInitial Process ร�ยก�รท 4-23

1488-1506 หลงจากชวงตำาสด ฟงกชน dhcp6_get_options() จะวเคราะห DHCPv6 options จาก message และแปลงพวกมนใหกลายเปนโครงสรางขอมลDispatch Subroutineร�ยก�รท 4-24

Page 87: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1508-1520 ใน implementation ชวยเหลอรปแบบ message โดย client เปนการประกาศและตอบรบ(i.e., configure ใหมทำาใหไมสำาเรจ) แทนททเหมอนกนเพอประมวลผลมากข�น4.4.6 client6_recvadvert() Function ฟงกชน client6_recvadvert() ควบคม messages ทประกาศวามาถงFind the Event ร�ยก�รท 4-25

1538-1543 message ทประกาศนาจะสงมาจาก DHCPv6 server ในการตอบ Solicit message มาจาก client Solicit message ทเหมอนกน จะคนพบดวย transaction ID ฟงกชน find _ event _ withid() คนหารายการของ event บนการเชอมตอกบ receiving สำาหรบคหนงทเหมอนกนของ ID ใน received message ทลงประกาศ ถาไมพบ event น� received จะท�ง message น�

Page 88: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

Packet Validation ร�ยก�รท 4-26

1545-1561 สวนตอไปของฟงกชนน�คอ เชคหนาทเหตผลของ packet ซงเปนรากฐานของ protocol specification:

message ประกาศนาจะม Server Identifier option message ประกาศนาจะม Client Identifier option และมน

นาจะม client 's DUID ทเหมอนกนถาเชคแลวมผดพลาดบาง จะท�งท�ง packet

Process Authenticationร�ยก�รท 4-27

1564-1568 ฟงกชน process _auth() ควบคม Authentication option ใน message ทลงประกาศ ถามนรวมเขาไวดวยกน และ message นาเชอถอ ตามองกอลทมทนาเชอถอเคยใชCheck the Case of No Prefix or Address ร�ยก�รท 4-28

Page 89: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1580-1603 สำาหรบ prefix delegation หรอ การแบงสวน address เมอ server ไมสามารถจดหาใหไดตามทรองขอ มนจะสงคน Status Code option กบ code value ของ NoPrefixAvail หรอ NoAddrsAvail ใน Advertise message ตามลำาดบ ในเหตการณน� Advertise message จะไมสนใจ

Unexpected Advertiseร�ยก�รท 4-29

1605-1616 ถา client ทำาการสง Solicit message พรอมดวย

Page 90: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

Rapid Commit option มนคาดหวงวาจะไดรบคำาตอบทนททนใด ละเลย Advertise และ Request exchanges client อาจจะอยนงๆรอรบ Advertise message เมอ server ไมสามารถ accept ไดรวดเรว ในเหตการณน� Advertise message จะ accepted แทนRemember the Serverร�ยก�รท4-30

1618-1623 กำาลงตอบสนอง server บนทกในโครสราง event น� ถากำาลงสง server จะเปนทำาตวเปนคลงเกบ Advertise message น�

Page 91: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

เปนเรองงายๆทมกจะมองขามไป1625-1660 มฉะน�น จะจดแบงโครงสราง dhcp6_serverinfo{} ใหม และขอมลน�นกจะถกสงโดย server รวม advertised options และ authentication information เขาไวดวยกน copy ไปถงโครงสรางน�นในการทำาใหเกดผลน� ซงไมไดข�นอยกบความต�งใจใดๆ มนเปน nonzero ตลอดเวลา1661-1668 server ใหมขอมลถกใสอยในรายการของ server นนมการตอบสนอง Solicit message แบบเดมๆ รายการน�จดเปน server พเศษ Figure 4-25 แสดงโครงสรางขอมลทเกยวของกนในจดน� ขณะทดใน Listing 4-12 (หนา 336) ฟงกชน client6_timo() จะปรบปรงการเขาคร �งแรกของรายการ server สงไป Request message ท�งๆทมนไดสทธสงสด

รปท 4-25

Immediate Requestร�ยก�รท 4 -31

Page 92: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1670-1699 ถา server specifies พอใจในคาสงสดใน Advertise message ตวเองแลว server จะเลอกกระบวนการทเสรจส�นแลวทนท และ server น�คอ chosen ขอมลบางสวนบน server จะ copy โครงสราง event สำาหรบใชคร �งตอไป ฟงกชน construct _ reqdata() สราง DHCPv6 options ข�นสำาหรบ Request message และ message ทเปนการสงโดยฟงกชน client _send() ในทสด เวลาทสมพนธกบ event น�จะรเซตสำาหรบ Request-Reply exchanges

Reset Timer ร�ยก�รท 4-32

Page 93: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1700-1724 ถา server 's preference เปน unspecified หรอไมไดเปนคาสงสด client จะจำาเปนตองนงรอ Advertise messages จาก servers อนๆ สวน event เวลาคอจะรเซตตามน�น

4.4.7 ฟงกชน client6_recvreply() ฟงกชน client6_recvreply() ประมวลผล DHCPv6 Reply messages ในการตอบสนอง messages ตางๆ ท client สง

Initialization and Validation ร�ยก�รท 4-33

Page 94: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1751-1797 สวนแรกของฟงกชน คอ เกอบจะเหมอนกบฟงกชน client6_recvadvert() : มนเชคความเทยงตรงการเขามาของ message ซงเปนรากฐานของ protocol specification แตละขอความในขอคดเหน implementation น�ตลอดมารวมเขาดวยกนกบ Client Identifier option ใน messages จาก client message ตอบรบนาจะเกบ copy ของ option น�ตามท Section 15.10 ของ [RFC3315]

Process Rapid Commit Case ร�ยก�รท 4-34

1799-1811 ถา client 's state เปน DHCP6S_SOLICIT และ client ทำาการ configured ไปรวมเขากบ Rapid Commit option ใน Solicit messages Reply message นาจะตอบสนองไปท "rapid-commit" version ของ Solicit อนทรวมเขากบ Rapid Commit option มฉะน�น กจะทำาการท�ง packetร�ยก�รท 4-35

Page 95: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1813-1822 protocol specification ไมสามารถกำาหนดการกระทำาทผดกบทปกตเพอสถานะ Code option นบเปนสวนหนงของ message ตอบรบ นอกจากจะกำาลงพมพ messages ขอมล implementation น�เปนแคมาตรการ status codes

Process Stateless Options ร�ยก�รท 4-36

Page 96: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1824-1886 ถา reply message ม options ทไมร อนทโดยทวไปแลวแคลงประกาศโดย server และ อนไหนบางทบอกวาอนไหนบางทรกษาไวทฝาย server และ client กจะ configured กบไฟล script ของ option ฟงกชน client6_script() เชอมตอการดำาเนนการ

Page 97: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

script ไมไดมอยเฉพาะในฟงกชน: มนเพยงแค เซตตวแปร environment ทสมพนธกนกบ options ทไรสญชาต และ ดำาเนนการ specified program (script) ท�งๆทตวลกประมวลผล ตวอยางคอนกรตน�สามารถใชได จะเหนใน Sections 4.8.4 และ 4.8.8Setup Refresh Timer ร�ยก�รท 4-37

1895-1923 ถา Reply message เปนการตอบสนองถง Information-Request message และมนมขอมล Refresh Time option ซงแตกตางจากคา specified timeout ซงสรางข�นเพอวา client สามารถสง Information-Request message ใหมสำาหรบอพเดต stateless information ขอความทวา timer คอ ผสราง

Page 98: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

event ถาขอมล Refresh Time option ทไมมประกอบดวย ในสงทเหตการณน� คา timeout เซตไปถง protocol default (DHCP6_IRT_DEFAULT, สงทเปน 1 วน)1924-1931 [RFC4242] specifies นนเปน option น� เพยงแตวาใช ตอบรบถง Information-Request สวน Information Refresh Time option ถอเปนสวนหนงทกๆ message อนๆทไมสนใจ

Process Stateful Information ร�ยก�รท 4-38

1934-1940 ถา Reply message เปนการตอบสนอง DHCPv6 message อนๆยกเวน Release message มนเกบขอมลอยางเปนแบบฉบบบนการ configuration ตวแปร นนคอ IPv6 addresses หรอ prefixes จดแบงโดย server ฟงกชน update _ia() อพเดตสถานะของ IA สำาหรบขอมลทสมพนธกนกบ Reply message

Release Completion ร�ยก�รท 4-39

Page 99: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1944-1953 ถา Reply message เปนการโตตอบถง Release message client สามารถหยดการประมวลผลไดงายๆ ท�งๆทในขณะน�น จะเปนผลทำาใหอาจจะบอกถง Status Code option ฟงกชน check _exit() มอทธพลตอท�ง 2 ในขอน�นเปนปญหาหนกทคางอยบน client น� บางทเพอการ interface แบบทไมธรรมดา หรอเปน IA อกอน และทำาใหการประมวลผลส�นสดลงถาไม1957-1963 ถา client น� กำาลงรนอย โหมด"Information-request only" (specified by the -1 command line option) มนออกไดงายๆหลงจาก การแลกเปลยนของ Information- request และ Reply messages มฉะน�น การประมวลผลกจะทำาตอใน event ตอไป

4.4.8 Processing Identity Association อก 1 สวนทสำาคญมาก หนาทของ DHCPv6 คอจดการ

configuration resources allocated โดย server อนทสมพนธกน พรอมดวย Identity Associations (IAs) พวกเราจะไปด implementation ของสวนน� เรมจากโครงสรางขอมลโดเฉพาะการประมวลผล IA

โครงสราง ia{} จะแสดงใน Listing 4-40 มนจดการสถานะ allocated resources ของ IA โดยเฉพาะ มนสมพนธกบโครงสราง ia_conf{} โดยเฉพาะ สงทแสดงใหเหน client 's configuration ของ IA น� ดวยวธ iadata member (ด Listing 4-7, หนา 330)ร�ยก�รท 4-40

Page 100: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

55-77 การเชอมตอสมาชกยงไมเคยใช เพราะวา สามารถเกดตามความเปนจรง เพยงแค 1 โครงสราง ia{} สำาหรบ IA conf member points ถง โครงสราง ia_conf{} ทเหมอนกน สมาชก t1 และ t2 เปนตวแปร เวลา T1 และ T2 สำาหรบ IA น� เฉพาะจาก server หรอ คำานวณจากภายในเมอ unspecified ปฏบตตาม 3 สมาชกควบคมเวลาสำาหรบ Renew หรอ Rebind messages สำาหรบ IA น� ท�ง 3 states น�น: ACTIVE (IAS_ACTIVE), RENEW (IAS_RENEW), and REBIND (IAS_REBIND) เมอเพงสราง IA ใหม มนเซตสถานะไวท ACTIVE และเซตเวลาใหม โดยชวงเวลา T1 เมอหมดเวลา สถานะจะเปลยนไปท RENEW และเรมทำาการแลกเปลยน Renew-Reply ถาเปลยนไมสำาเรจ สำาหรบ T2 ?T1 สถานะกจะไปเรมท REBIND และ เกดการแลกเปลยน Rebind-Reply ข�น สมาชก evdata เกบขอมลเอาไวชวคราว สำาหรบ Renew หรอ Rebind messages ประมวลผลน�จะบรรยายใน Section 4.4.12 สมาชก ctl เซตตวแปรข�นอยกบรปแบบ IA (addresses หรอ prefixes) อธบายใน Listing 4-41 ถา DHCPv6 session ระหวาง client และ server ใชแลวนาเชอถอ Authentication option สมาชก authparam ควบคมตวแปร authentication-related

รปท 4-26 สรปสถานะ การสงผานของ IA ลกศรแตละอนแสดง

Page 101: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

สถานะ การสงผานทสมพนธกน กบ label representing เพราะ event น�ทำาใหเกดการสงผานและการกระทำานนเกดข�นสำาหรบการสงผาน สำาหรบตวอยาง ลกศรจาก ACTIVE to RENEW เปนวธเมอรปท 4-26

เวลา T1 ของ IA ไดผานไปแลวต�งแต IA enter ใน สถานะ ACTIVE client จะสง Renew message และ สถานะของ IA จะเปลยนไปท RENEW ในเรองของการสงผานเสนทาง จะอธบายคราวๆกอน ในการเพมเตม ถา Renew หรอ Rebind message ตอบกลบพรอมดวยผลสำาเรจ Reply message IA สรางข�นใหม และ สถานะมนจะกลายเปน ACTIVE อกคร�ง บนความชวยเหลออนๆ ถา IA ใน Reply message เกบ No Binding status code client จะสง Request message ขอ server สราง binding ข�นมาใหม จะอธบายใน Listing 4-46 (หนา 361-362) Renew หรอ Rebind message ตองการจะสงใหมจนกระทง client รบ คลายกบ Reply message ไมวาจะสำาเรจหรอไม มนควรจะเปน IA ตวมนเองไมสามารถ

Page 102: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

จดการ เมอหมดเวลาได IA ถอวาหมดอาย เมอ associated resources ท�งหมด อยางเชน IPv6 addresses expire จนกระทง เวลาน�น client จะสง Renew หรอ Rebind messages เรอยไป กระบวนการมากมายจำาเปนตองกระทำา IA ซงเปนอสระของ รปแบบของ IA e.g., ไมวามนจะเพอ addresses หรอเพอ prefixes implementation น�ใชรวมกบโครงสราง โครงสราง iactl{} แสดงใน Listing 4-41 ท�งรปแบบ interfaces ไปถงรปแบบ specific operations โครงสรางน�คอพ�นฐานทสำาคญการเซตของ ฟงกชน method สมพนธกบ IA-related operations การใช methods เหลาน�จะอธบายใน succeeding subsections (4.4.9 ไปจนถง 4.4.13)

ร�ยก�รท 4-41

4.4.9 update _ia() Function ฟงกชน update _ia() ตดตอจาก client6_recvreply() ประมวลผล IAs ใน DHCPv6 reply message

Identify Local Configuration ร�ยก�รท 4-42

Page 103: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

109-113 IA คดเลอกและสงไปท server โดย client และ server ใชมนสราง binding ใหม วธน� received IA นาจะ match กนตลอดเวลา หนงใน client's local configurations ฟงกชน find _iaconf() identifies the local configuration ซงเปนรากฐานของ received IA ถาไมไดพบการ configuration IA กจะไมสนใจParameter Validation ร�ยก�รท 4-43

124-129 ตวแปร TI และ T2 ควบคมระยะเวลา renewing allocated information [RFC3315] เรยกรอง T1 นนไมไดเปน greater กวา T2 หรอ T2 เปน 0 เชนเดยวกบทอธบายใน code comment ถาเหลาน�เหมาะสมกน IA กจะไมสนใจ

Find or Make a Local IA ร�ยก�รท 4-44

Page 104: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

131-137 ฟงกชน get_ia() คนหารายการ local ของ IAs สำาหรบ โครงสราง ia{} เหมอนกบ received IA ถาไมม local IA อย( สงทเปนปญหา เมอ client รบ DHCPv6 Reply ถง DHCPv6 Request อนแรก) มนจะสรางข�นมาใหมอกอนหนงRecord Authentication ร�ยก�รท 4-45

140-146 ถาตวแปร authentication มเงอนไขวาใน Authentication option ฟงกชน update_authparam() บนทกแลวเลนซำ�าทลาสดขอมลใน local IA มนคอนขางไมใชความคดทดทจะรกษาคนหาและเลนซำ�าขอมลแตละ IA เนองจากตองเซตหลายอยาง ของ exchanges กบ server เหมอนกน สำาหรบ IAs ทหลากหลายกอาจเกดข�น และสำาหรบการเลนซำ�าขอมล IA อาจทำาใหเกดความสบสนใน validating received messages หรอ สามารถสราง event ทเลนซำ�ามาตกนกเปนได ขอมลควรจะรกษาไวแตละ server

Update Configuration Information ร�ยก�รท 4-46

Page 105: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

148-172 ขอมล configuration ท�งหมดเกบไวใน received IA ไวพจารณา สำาหรบ prefix delegation (เมอ IA_PD Prefix option รวมไวดวยกนแลว) ฟงกชน update _prefix() ดำาเนนการ หรอ อพเดตเหมอนกน local prefix ในทำานองเดยวกน สำาหรบการแบงสวน address (เมอ IA Address option รวมอยไวดวยกน) ฟงกชน update _address() หรอ อพเดต เหมอนกบ local address

Page 106: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ฟงกชน callback() เปนอนทไมไดอธบายไวในหนงสอ จะบอกคราวๆ สำาหรบการแบงสวน resources ทสมพนธกนกบ IA ซงแยกออกมา ฟงกชนน�ในขณะน�นจะเชคความเรยบรอยของ IA วาม valid resource หรอไม ถาไมม มนจะ removes IA การดำาเนนการทเขากนกบสถานะ การสงผานไปถง "end" ใน Figure 4-26 (ทหนา 358)173-198 ถา IA option received ในการตอบสนองถง Renew หรอ Rebind message ประกอบดวย No Binding status code มนมโอกาสท server มการสญหายของ binding ไมไดคงอยตลอด (บางคร�งเนองจากการชนและ reboot) ในกรณน� client ถอยกลบไปทกำาลงสง Request message ถง server เพอทจะแสดงใหเหน binding ใหม

Adjust Timeout Parameters

Page 107: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ร�ยก�รท 4-47205-211 received IA option อาจทำาใหใช local IA ไมได สำาหรบตวอยาง ถาเวลาของ delegated prefix ยาวนานหรอจดแบง address เปน 0 ใน IA option ท prefix หรอ address removed ไปแลว ถา IA ทเกบไมม address หรอ prefix ท�งๆทผลลพธการดำาเนนการน� คอ valid method ของทบงบอกถง IA ทตอนน�เปนโมฆะ (ทไมไดอยบนพ�นฐานความจรงถาเวลาของ addresses หรอ

Page 108: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

prefixes เปน 0 ท�งหมด) ในกรณน� client จะ removes IA จากการ interface และเรม DHCPv6 session ใหม ; ท�งน�เกดข�นในฟงกชน remove _ia()213-233 ถา หรอวาตวแปร timeout T1 หรอ T2 เปน 0 client คาดวาจะเลอกนำาเอามาใชสวนตว มคาสำาหรบตวแปรนนโดยตวมนเอง ขอจำากดอยาจดใหคำาแนะนำาโดยไมจำากดวธในการเลอกตวแปรในกรณน� implementation น�นำามาใชใหมโดยจำากดคำาแนะนำา [RFC3315] สำาหรบ server น�น T1 และ T2 โดยพ�นฐานเปนเวลา 0.5 และ 0.8 ส�นมากกวา lifetime ของพวก addresses ท IA ตามลำาดบ ถาทส �นมากกวา lifetime เปน 0xffffffff เปาหมายไมมทส�นสด เหมอนกบคา timeout เชนกนทเซตไปท infinity235-241 ถาตวใดตวหนงของ T1 และ T2 เปน 0 T1 นาจะกลายเปนใหญกวา T2 ท�งๆทเปนผลลพธของการปรบเปลยน ในกรณน� T1 ทำาใหมเพอทจะทำาใหมนใจวานนนอยกวา T2 อตราสวนไดมาจากคำาแนะนำาคนทเกยวของกนบอกวา สงกวา (5:8) applies ขอความน�นบอกวาไมกำาหนดเงอนไขในขอจำากด แตมนคอพฤตกรรม implementation-specific 248-255 ในลำาดบหลกเลยงการกระหนำาการแลกเปลยน Renew-Reply implementation น�เกรนไววา คาตำาสด implementation-specific (30 วนาท) ของ T2 ถาแจงแลวหรอปรบเปลยนแลวคายงไมเลกกวาคาตำาสด T2 จะรเซตคาตำาสด และ T1 กจะปรบเปลยนไปตามน�น ในกรณน� ระยะเวลา timeout สำาหรบ Renew message ตอไปสงไปถง จะรเซตประมาณ 18 วนาท

Reset Timer ร�ยก�รท 4-48

Page 109: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

257-273 ถา T1 เปน infinite เวลาของ IA จะยกเลก มฉะน�น เวลาใหมจะเซตไปทคาของ T1 ทกำาลงสง Renew message อนตอไปBecome Active ร�ยก�รท 4-49

275 สถานะของ IA เซตเปน ACTIVE จะกลบสสภาพเดมและดำาเนนการตอ (เชนกนโดยการแลกเปลยน Renew- Reply หรอ Rebind-Reply)4.4.10 update _address() Function

ฟงกชน update _address() จะเปนการเรยกการทำางานมาจาก update _ia() หรอ การเรยกขอมลทเหมอนกนกบแอดเดรสใน IA_NA โดยจะทำางานคลายๆกนกบฟงกชน update _prefix() ในหวขอท4.4.9 ต�งแตการตกลงในโพรโตคอล DHCPv6 ซงเกอบจะเหมอนกนแตในสวนน�จะใหความสำาคญกบดารแบงสวนของแอดเดรส

โดยท Router น�นจะรกษาโครงสราง per-IA(NA) ไวและจำาสมพนธกบโครงสรางของ statefuladdr{} ททำางานเหมอนกนกบแอดเดรสใน IA_NA

Page 110: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ร�ยก�รท 4-50 ________________________________________________________________________________addrconf.c61 TAILQ_HEAD(statefuladdr_list, statefuladdr);62 struct iactl_na {63 struct iactl common;64 struct statefuladdr_list statefuladdr_head;65 };76 struct statefuladdr {77 TAILQ_ENTRY (statefuladdr) link;7879 struct dhcp6_statefuladdr addr;80 time_t updatetime;81 struct dhcp6_timer *timer;82 struct iactl_na *ctl;83 struct dhcp6_if *dhcpif;84 };________________________________________________________________________________addrconf.c61-84 โครงสราง iactl_na{} จะประกอบดวยสวนควบคมโครงสรางและรายการโครงสรางของ statefuladdr{} จะประกอบดวยตวแปรของแอดเดรสรวมท�งสวนทถกตองทสมพนธกบระยะเวลา

ตอไปจะเปนรายละเอยดของฟงกชน update _address() ระยะเวล�ในก�รใหเหตผล

ร�ยก�รท 4-51 ________________________________________________________________________________addrconf.c 102 int103 update_address(ia, addr, dhcpifp, ctlp, callback)104 struct ia *ia;105 struct dhcp6_statefuladdr *addr;106 struct dhcp6_if *dhcpifp;

Page 111: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

107 struct iactl **ctlp;108 void (*callback)__P((struct ia *));109 {110 struct iactl_na *iac_na = (struct iactl_na *)*ctlp;111 struct statefuladdr *sa;112 int sacreate = 0;113 struct timeval timo;114115 /*116 * A client discards any addresses for which the preferred117 * lifetime is greater than the valid lifetime.118 * [RFC3315 22.6]119 */120 if (addr->vltime != DHCP6_DURATITION_INFINITE &&121 (addr->pltime == DHCP6_DURATITION_INFINITE ||122 addr->pltime > addr->vltime)) {123 dprintf(LOG_INFO, FNAME, "invalid address %s: "124 "pltime (%lu) is larger than vltime (%lu)",125 in6addr2str(&addr->addr, 0),126 addr->pltime, addr->vltime);127 return (-1);128 }________________________________________________________________________________addrconf.c 120-128 ถาระยะเวลาทใชในการเชอมตอขอมลกบแอดเดรส มคามากกวาระยะเวลาของขอมลจรง แอดเดรสน�นจะเพกเฉยตอกระบวนการ ก�รสร�งโครงสร�งของสวนควบคมร�ยก�รท 4-52

Page 112: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

________________________________________________________________________________addrconf.c130 if (iac_na == NULL) {131 if ((iac_na = malloc(sizeof(*iac_na))) == NULL) {132 dprintf(LOG_NOTICE, FNAME, "memory allocation failed");133 return (-1);134 }135 memset(iac_na, 0, sizeof(*iac_na));136 iac_na->iacna_ia = ia;137 iac_na->iacna_callback = callback;138 iac_na->iacna_isvalid = isvalid_addr;139 iac_na->iacna_duration = duration_addr;140 iac_na->iacna_cleanup = cleanup_addr;141 iac_na->iacna_renew_data =142 iac_na->iacna_rebind_data =143 iac_na->iacna_release_data =144 iac_na->iacna_reestablish_data = renew_addr;145146 TAILQ_INIT(&iac_na->statefuladdr_head);147 *ctlp = (struct iactl *)iac_na;148 }________________________________________________________________________________addrconf.c130-148 เมอทำาเรยกการทำางานของฟงกชนแรกจาก IA_NA ทสมพนธกบสวนควบคมโครงสรางของ iac_na ซงจะมคาเปน null มสวนจดสรรใหมหนงสวนและม Pointer ทใชในช�การทำางานของฟงกชน ก�รสร�งโครงสร�งของแอดเดรสร�ยก�รท 4-53________________________________________________________________________________addrconf.c

Page 113: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

150 /* search for the given address, and make a new one if it fails */151 if ((sa = find_addr(&iac_na->statefuladdr_head, addr)) == NULL) {152 if ((sa = malloc(sizeof(*sa))) == NULL) {153 dprintf(LOG_NOTICE, FNAME, "memory allocation failed");154 return (-1);155 }156 memset(sa, 0, sizeof(*sa));157 sa->addr.addr = addr->addr;158 sa->ctl = iac_na;159 TAILQ_INSERT_TAIL(&iac_na->statefuladdr_head, sa, link);160 sacreate = 1;161 }___________________________________________________________________________addrconf.c150-161 find _ addr() จะใชในการคนหาโครงสราง statefuladdr{} ทสมพนธกบแอดเดรสในการดำาเนนการตอไปทอยใน IA_NA ถาขอมลเกดการผดพลาดข�นมา จะทำาการสรางแอดเดรสข�นมาใหมและจดสรรโครงสรางใหม

ก�รตงค�อพเดทตวแปรแอดเดรสร�ยก�รท 4-54___________________________________________________________________________addrconf.c163 /* update the timestamp of update */164 sa->updatetime = time(NULL);165166 /* update the prefix according to addr */167 sa->addr.pltime = addr->pltime;168 sa->addr.vltime = addr->vltime;

Page 114: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

169 sa->dhcpif = dhcpifp;170 dprintf(LOG_DEBUG, FNAME, "%s an address %s pltime=%lu, vltime=%lu",171 sacreate ? "create" : "update",172 in6addr2str(&addr->addr, 0), addr->pltime, addr->vltime);___________________________________________________________________________addrconf.c163-172 ในสงขอมลทถกกบระยะเวลาจาก local คกบ pointer อนเตอรเฟส บนแอดเดรสททำาการ Configure จะไดจากขอมลดานลางก�ร Configure แอดเดรส___________________________________________________________________________addrconf.c174 if (sa->addr.vltime != 0)175 na_ifaddrconf(IFADDRCONF_ADD, sa);___________________________________________________________________________addrconf.c174-175 ถาระยะเวลาในการสงขอมลไมเปนศนยฟงกชน na_ifaddrconf() จะทำาการตดต�งแอดเดรสทใชในการอพเดตระยะเวลาในการทำางานของแอดเดรส เนองจากฟงกชน na_ifaddrconf() เปนสวนทไดมากจาก SIOCAIFADDR_IN6 ทใชในการควบคมระบบ ioctl() ททำาการเรยกมากจากแอดเดรสก�รสร�งหรอก�รอพเดทเวล�ร�ยก�รท 4-57___________________________________________________________________________addrconf.c185 case DHCP6_DURATITION_INFINITE:186 if (sa->timer)187 dhcp6_remove_timer(&sa->timer);188 break;189 default:190 if (sa->timer == NULL) {

Page 115: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

191 sa->timer = dhcp6_add_timer(addr_timo, sa);192 if (sa->timer == NULL) {193 dprintf(LOG_NOTICE, FNAME,194 "failed to add stateful addr timer");195 remove_addr(sa); /* XXX */196 return (-1);197 }198 }199 /* update the timer */200 timo.tv_sec = sa->addr.vltime;201 timo.tv_usec = 0;202203 dhcp6_set_timer(&timo, sa->timer);204 break;205 }206207 return (0);208 }___________________________________________________________________________addrconf.c185-204 ถาระยะเวลาในการทำางานน�นไมมทส�นสด แอดเดรสน�นกจะไมมวนหยดการทำางานซงสมพนธกบเวลา ถาการทำางานของขอมลไมจำาเปนอกตอไปและมการหยดการทำางาน จะมการเจาะจงแอดเดรสพเศษข�นมาทใชในการรนของขอมลจะทำาใหขอมลน�นสามารถทำางานไดสมบรณ

4.4.11 reestablish _ia() Functionฟงกชน reestablish _ia() จะใชในการเรยกฟงกชน update

_ia() เมอ sever ประกอบดวยสถานะ การเขารหสสภ�พ Checkร�ยก�รท 4-58___________________________________________________________________________dhcp6c_ia.c

Page 116: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

306 static void307 reestablish_ia(ia)308 struct ia *ia;309 {310 struct dhcp6_ia iaparam;311 struct dhcp6_event *ev;312 struct dhcp6_eventdata *evd;313314 dprintf(LOG_DEBUG, FNAME, "re-establishing IA: %s-%lu",315 iastr(ia->conf->type), ia->conf->iaid);316317 if (ia->state != IAS_RENEW && ia->state != IAS_REBIND) {318 dprintf(LOG_ERR, FNAME, "internal error (invalid IA status)");319 exit(1); /* XXX */320 }__________________________________________________________________________dhcp6c_ia.c317-320 ควรจะใหมปรากฏการทตอบสนองตอ Renew หรอ Rebind message และ ควรจะเพกเฉยตอ cases จำานวนหนง

Page 117: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ก�รลบทงของ

ขอมลเก�ร�ยก�รท 4-59___________________________________________________________________________dhcp6c_ia.c322 /* cancel the current event for the prefix. */323 if (ia->evdata) {324 TAILQ_REMOVE(&ia->evdata->event->data_list, ia->evdata, link);325 if (ia->evdata->destructor)326 ia->evdata->destructor(ia->evdata);327 else328 free(ia->evdata);

Page 118: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

329 ia->evdata = NULL;330 }331332 /* we don’t need a timer for the IA (see comments in ia_timo()) */333 if (ia->timer)334 dhcp6_remove_timer(&ia->timer);___________________________________________________________________________dhcp6c_ia.c322-344 ถา IA เกดข�นสมพนธกบเหตการณทขอมลมการปลอยออกมา จะมดารเกดข�นของแผนการอยางนาจะเปนไปได ในการสง Renew or Rebind messages จาก IA น�นจะมการสมพนธกบเวลาถาตวยงมการทำางานอย

ก�รสร�งเหตก�รณรายการท 4-60___________________________________________________________________________dhcp6c_ia.c336 if ((ev = dhcp6_create_event(ia->ifp, DHCP6S_REQUEST)) == NULL) {337 dprintf(LOG_NOTICE, FNAME, "failed to create a new event");338 goto fail;339 }340 TAILQ_INSERT_TAIL(&ia->ifp->event_list, ev, link);341342 if ((ev->timer = dhcp6_add_timer(client6_timo, ev)) == NULL) {343 dprintf(LOG_NOTICE, FNAME,344 "failed to create a new event timer");345 goto fail;346 }347

Page 119: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

348 if ((evd = malloc(sizeof(*evd))) == NULL) {349 dprintf(LOG_NOTICE, FNAME,350 "failed to create a new event data");351 goto fail;352 }353 memset(evd, 0, sizeof(*evd));354 evd->event = ev;355 TAILQ_INSERT_TAIL(&ev->data_list, evd, link);356357 if (duidcpy(&ev->serverid, &ia->serverid)) {358 dprintf(LOG_NOTICE, FNAME, "failed to copy server ID");359 goto fail;360 }361362 iaparam.iaid = ia->conf->iaid;363 iaparam.t1 = ia->t1;364 iaparam.t2 = ia->t2;365366 if (ia->ctl && ia->ctl->reestablish_data) {367 f ((*ia->ctl->reestablish_data)(ia->ctl, &iaparam,368 &ia->evdata, evd)) {369 dprintf(LOG_NOTICE, FNAME,370 "failed to make reestablish data");371 goto fail;372 }373 }___________________________________________________________________________dhcp6c_ia.c336-373 ถา IA ทำางานคลายกบ reestablish_data มนจะทำาการเรยกและทำาการต�งคาของตวแปรโดยเฉพาะ IA ทใชในการสรางเหตการณของขอมล ในตลอดเวลาของการสราง case ใหสำาเรจน�น ใน case ในจะม

Page 120: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

การแบงสวนของแอดเดรส และจะม method ฟงกชน คอฟงกชน renew_addr()

ก�รตงค� Authentication Parametersร�ยก�รท 4-61_______________________________________________________________________________dhcp6c_ia.c375 if (ia->authparam != NULL) {376 if ((ev->authparam = copy_authparam(ia->authparam)) == NULL) {377 dprintf(LOG_WARNING, FNAME,378 "failed to copy authparam");379 goto fail;380 }381 }___________________________________________________________________________dhcp6c_ia.c375-381 ถา authentication parameters ใชสำาหรบการบนทกใน IA พวกเขาจะสามารถจบเหตการณของผลลพธได และจะสามารถใชทางเลอกของ authentication ในการขอขอมลได ก�ร Reset เวล�ร�ยก�รท 4-62

___________________________________________________________________________dhcp6c_ia.c383 ev->timeouts = 0;384 dhcp6_set_timeoparam(ev);385 dhcp6_reset_timer(ev);___________________________________________________________________________dhcp6c_ia.c

Page 121: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

383-385 ฟงกชน dhcp6_set_timeoparam() ต�งคาทเหมาะสมใหกบตวแปร timeout โดยท IRT จะต�งคาไว 10 วนาท, MRT ต�งคาไวท 30 วนาท, และ MRC ต�งคาไว 10 วนาท

ก�รสง Packetร�ยก�รท 4-63 __________________________________________________________________________dhcp6c_ia.c387 ia->evdata = evd;388389 client6_send(ev);390391 return;392393 fail:394 if (ev)395 dhcp6_remove_event(ev);396397 return;398 }___________________________________________________________________________dhcp6c_ia.c389 ฟงกชน client6_send() จะทำาการสงขอมลทไดรบการเรยกรองมาจาก server

4.4.12 ia_timo() Functionฟงกชน ia_timo() ทใชในการจดการเรองของเวลา จาก IA ซง

รกษาเอาไวในเครองลกขาย และจะทำาการเรยกฟงกชน dhcp6_check_timer() เมอ IA จะทำาการอพเดท Renew or Rebind message ก�รเปลยนแปลงของสถ�นภ�พร�ยก�รท 4-66

Page 122: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

___________________________________________________________________________dhcp6c_ia.c571 switch (ia->state) {572 case IAS_ACTIVE:573 ia->state = IAS_RENEW;574 dhcpstate = DHCP6S_RENEW;575 timo.tv_sec = ia->t1 < ia->t2 ? ia->t2 - ia->t1 : 0;576 timo.tv_usec = 0;577 dhcp6_set_timer(&timo, ia->timer);578 break;579 case IAS_RENEW:580 ia->state = IAS_REBIND;581 dhcpstate = DHCP6S_REBIND;582583 /*584 * We need keep DUID for sending Release in this state.585 * But we don’t need a timer for the IA. We’ll just wait for a586 * reply for the REBIND until all associated configuration587 * parameters for this IA expire.588 */589 dhcp6_remove_timer(&ia->timer);590 break;591 default:592 dprintf(LOG_ERR, FNAME, "invalid IA state (%d)",593 (int)ia->state);594 return (NULL); /* XXX */595 }___________________________________________________________________________dhcp6c_ia.c

Page 123: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

571-590 ถาสภาพของ IA อยในชวง ACTIVE มนจะทำาการ RENEW ทเกยวกบการปฏบตหนาทของเครอง Sever กบ Client เมอทำาการ RENEW สถานภาพใหมจะทำาการต�งคา REBIND ก�รสร�งเหตก�รณร�ยก�รท 4-67___________________________________________________________________________dhcp6c_ia.c597 if ((ev = dhcp6_create_event(ia->ifp, dhcpstate)) == NULL) {598 dprintf(LOG_NOTICE, FNAME, "failed to create a new event");599 goto fail;600 }601 TAILQ_INSERT_TAIL(&ia->ifp->event_list, ev, link);602603 if ((ev->timer = dhcp6_add_timer(client6_timo, ev)) == NULL) {604 dprintf(LOG_NOTICE, FNAME,605 "failed to create a new event timer");606 goto fail;607 }608609 f ((evd = malloc(sizeof(*evd))) == NULL) {610 dprintf(LOG_NOTICE, FNAME,611 "failed to create a new event data");612 goto fail;613 }614 memset(evd, 0, sizeof(*evd));615 evd->event = ev;616 TAILQ_INSERT_TAIL(&ev->data_list, evd, link);617618 f (ia->state == IAS_RENEW) {

Page 124: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

619 if (duidcpy(&ev->serverid, &ia->serverid)) {620 dprintf(LOG_NOTICE, FNAME, "failed to copy server ID");621 goto fail;622 }623 }624625 iaparam.iaid = ia->conf->iaid;626 iaparam.t1 = ia->t1;627 iaparam.t2 = ia->t2;628 switch(ia->state) {629 case IAS_RENEW:630 if (ia->ctl && ia->ctl->renew_data) {631 if ((*ia->ctl->renew_data)(ia->ctl, &iaparam,632 &ia->evdata, evd)) {633 dprintf(LOG_NOTICE, FNAME,634 "failed to make renew data");635 goto fail;636 }637 }638 break;639 case IAS_REBIND:640 if (ia->ctl && ia->ctl->rebind_data) {641 if ((*ia->ctl->rebind_data)(ia->ctl, &iaparam,642 &ia->evdata, evd)) {643 dprintf(LOG_NOTICE, FNAME,644 "failed to make rebind data");645 goto fail;646 }647 }648 break;649 default:650 break;651 }___________________________________________________________________________dhcp6c_ia.c

Page 125: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

597-616 เหตการณใหมทเกดข�นจะทำาการสง Renew or Rebind messages ททำาการสรางและเชอมตอกบเหตการณของ client618-623 ถาสถานภาพทเกดข�นทำาการ RENEW ตว sever จะทำาการจบโครงสรางเหตการณ ท sever ใชในการ RENEW ขอมล625-651 ถา IA มคณสมบตเหมอนกนกบ renew or rebind method มนจะทำาการเรยกแลวทำาการต�งคาเฉพาะเจาะจง IA ของขอมลทเกดข�น

ก�ร Reset เวล�ร�ยก�รท 4-68___________________________________________________________________________dhcp6c_ia.c653 ev->timeouts = 0;654 dhcp6_set_timeoparam(ev);655 dhcp6_reset_timer(ev);___________________________________________________________________________dhcp6c_ia.c653-655 ฟงกชน dhcp6_set_timeoparam() จะมการต�งเวลาตวแปรทนำามาจดสรรขอมลทถกสงมา โดยท IRT จะต�งเอาไว 10 วนาท และ MRT ต�งไว 600 วนาท ทรบมาจาก Renew หรอ Rebind

4.4.13 Release Resourcesบนสญญาณ SIGTERM ทไดรบการยอมรบ หรอสวนควบคมทได

รบการควบคมจากชองทางการควบคม เครองลกขายทถกปลดออกจาก

Page 126: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

การควบคมขาวสาร จะนำาสวนทจดสรรไวสงออกมาเปน Release messages โดยฟงกชน release_all_ia() ร�ยก�รท 4-70_______________________________________________________________________________dhcp6c_ia.c437 static int438 release_ia(ia)439 struct ia *ia;440 {441 struct dhcp6_ia iaparam;442 struct dhcp6_event *ev;443 struct dhcp6_eventdata *evd;444445 dprintf(LOG_DEBUG, FNAME, "release an IA: %s-%lu",446 iastr(ia->conf->type), ia->conf->iaid);447448 if ((ev = dhcp6_create_event(ia->ifp, DHCP6S_RELEASE))449 == NULL) {450 dprintf(LOG_NOTICE, FNAME, "failed to create a new event");451 goto fail;452 }453 TAILQ_INSERT_TAIL(&ia->ifp->event_list, ev, link);454455456 if ((ev->timer = dhcp6_add_timer(client6_timo, ev)) == NULL) {457 dprintf(LOG_NOTICE, FNAME,458 "failed to create a new event timer");459 goto fail;460 }461462 if (duidcpy(&ev->serverid, &ia->serverid)) {

Page 127: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

463 dprintf(LOG_NOTICE, FNAME, "failed to copy server ID");464 goto fail;465 }466467 if ((evd = malloc(sizeof(*evd))) == NULL) {468 dprintf(LOG_NOTICE, FNAME,469 "failed to create a new event data");470 goto fail;471 }472 memset(evd, 0, sizeof(*evd));473 iaparam.iaid = ia->conf->iaid;474 /* XXX: should we set T1/T2 to 0? spec is silent on this. */475 iaparam.t1 = ia->t1;476 iaparam.t2 = ia->t2;477478 if (ia->ctl && ia->ctl->release_data) {479 if ((*ia->ctl->release_data)(ia->ctl, &iaparam, NULL, evd)) {480 dprintf(LOG_NOTICE, FNAME,481 "failed to make release data");482 goto fail;483 }484 }485 TAILQ_INSERT_TAIL(&ev->data_list, evd, link);486487 ev->timeouts = 0;488 dhcp6_set_timeoparam(ev);489 dhcp6_reset_timer(ev);490491 if (ia->authparam != NULL) {492 if ((ev->authparam = copy_authparam(ia->authparam)) == NULL) {493 dprintf(LOG_WARNING, FNAME,494 "failed to copy authparam");495 goto fail;

Page 128: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

496 }497 }498499 client6_send(ev);500501 return (0);502503 fail:504 if (ev)505 dhcp6_remove_event(ev);506507 return (-1);508 }_______________________________________________________________________________dhcp6c_ia.c

ก�รสร�งเหตก�รณ448-485 เหตการณทเกดข�นมาใหมน�นไดมการสงขอมลททำาการ Release และเครอง sever จะทำาการจบขอมลใน IA ในการแยกกนของขอมลโครงสรางน�นจะถกจดสรรไวแลว และม release_data เปนวธใน IA โดยจะมโครงสรางของขอมลใน IA-dependent จากขอมล Release

ก�ร Reset เวล�487-489 จะใชฟงกชน dhcp6_set_timeoparam() นำามาต�งคาทเหมาะสมของตวแปรโดยเฉพาะขอมลท Releaseโดยท IRT จะต�งคาไวท 1 วนาท และ MRC จะต�งคาไวท 5 วนาท จะทำางานกตอเมอฟงกชน dhcp6_reset_timer() ทำางาน

ก�รตงค�ตวแปร authentication

Page 129: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

491-497 ถาตวแปร authentication ทำาการบนทกขอมลใน IA จะทำาการจบโครงสรางเหตการณทตองการใช authentication ทเปนทางเลอกของขอมล Release

ก�รสง packet499 ฟงกชน client6_send() จะสงขอมลท Release ไปถงเครอง sever

4.5 Server Implementationในรปท 4-29 จะทำาการแสดงข�นตอน Server

Implementation หลงจากทไดทำาการเบ�องตนแลวจะถงข �นตอนการคนหาร loop ทไมมทส�นสดโดยใชฟงกชน server6_ mainloop()โดยการรอขอมลจากเครองลกขาย

รปท 4-29

Page 130: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

Server Specific Data Structuresกอนทจะอธบายถงโครงสรางของ dhcp6_if{} ทใชงานกบเครอง

ลกขายและเครองแมขาย จะแสดงโครงสรางของ host_conf{} ในรายการท 4-74 จะไดอธบายผานโครงสรางภายนอกของตวแปรโดยทหนวยความจำาจะถกต�งคาเบ�องตนจากเครองแมขา

ร�ยก�รท 4-74__________________________________________________________________________________config.h189 /* per-host configuration */190 struct host_conf {191 struct host_conf *next;192193 char *name; /* host name to identify the host */

Page 131: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

194 struct duid duid; /* DUID for the host */195196 /* prefixes to be delegated to the host */197 struct dhcp6_list prefix_list;198 /* address to be assigned for the host */199 struct dhcp6_list addr_list;200201 /* secret key shared with the client for delayed authentication */202 struct keyinfo *delayedkey;203 /* previous replay detection value from the client */204 int saw_previous_rd; /* if we remember the previous value */205 u_int64_t previous_rd;206 };______________________________________________________________________________config.h193-205 ในความจรงน�นในการต�งชอจะทำาตามอำาเภอใจไมไดจะตองดทขอมลโดยทการบนทกขอมลของ DUID จะนำามาจากเครองลกขาย โดยทจะใช prefix_list และ addr_list ในการกำาหนดไวดานหนาของแอดเดรส

4.5.1 ฟงกชน server6_mainloop()ฟงกชน server6_mainloop() จะแสดงในรายการท 4-76 จะ

เปนลปหลกของเครองแมขาย ()จะเปนฟงกชนอยางงายโดนทแตละการวนของลปน�นจะทำาแบบไมมทส�นสด ฟงกชน dhcp6_check_timer() จะใชในการตรวจสอบเรองของเวลาของแตละสวนทสมพนธกนกบฟงกชน โดยท sever จะทำาการเฝาดขอมลจนกระทงขอมลของ DHCPv6 มาถงฟงกชน server6_recv() จะทำาการเรยกข�นตอนการดำาเนนงานของขอมลร�ยก�รท 4-76_________________________________________________________________________________dhcp6s.c

Page 132: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

538 static void539 server6_mainloop()540 {541 struct timeval *w;542 int ret;543 fd_set r;544 int maxsock;545546547 while (1) {548 w = dhcp6_check_timer();549550 FD_ZERO(&r);551 FD_SET(insock, &r);552 maxsock = insock;553 if (ctlsock >= 0) {554 FD_SET(ctlsock, &r);555 maxsock = (insock > ctlsock) ? insock : ctlsock;556 (void)dhcp6_ctl_setreadfds(&r, &maxsock);557 }558559 ret = select(maxsock + 1, &r, NULL, NULL, w);560 switch (ret) {561 case -1:562 dprintf(LOG_ERR, FNAME, "select: %s",563 strerror(errno));564 exit(1);565 /* NOTREACHED */566 case 0: /* timeout */567 break;568 default:569 break;570 }571

Page 133: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

572 if (FD_ISSET(insock, &r))573 server6_recv(insock);574 if (ctlsock >= 0) {575 if (FD_ISSET(ctlsock, &r)) {576 (void)dhcp6_ctl_acceptcommand(ctlsock,577 server6_do_ctlcommand);578 }579 (void)dhcp6_ctl_readcommand(&r);580 }581 }582 }_________________________________________________________________________________dhcp6s.c

4.5.2 ฟงกชน server6_recv()ฟงกชน server6_recv() จะทำาแสดงในรายการท 4-77 โดยท

ประเดนการดำาเนนงานน�น จะมขอมลในการดำาเนนงานใน DHCPv6 จากเครองแมขายReceive Messageร�ยก�รท 4-77_________________________________________________________________________________dhcp6s.c785 static void786 server6_recv(s)787 int s;788 {789 ssize_t len;790 struct sockaddr_storage from;791 int fromlen;792 struct msghdr mhdr;793 struct iovec iov;794 char cmsgbuf[BUFSIZ];795 struct cmsghdr *cm;796 struct in6_pktinfo *pi = NULL;797 struct dhcp6_if *ifp;

Page 134: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

798 struct dhcp6 *dh6;799 struct dhcp6_optinfo optinfo;800 struct dhcp6opt *optend;801 struct relayinfolist relayinfohead;802 struct relayinfo *relayinfo;803804 TAILQ_INIT(&relayinfohead);805806 memset(&iov, 0, sizeof(iov));807 memset(&mhdr, 0, sizeof(mhdr));808809 iov.iov_base = rdatabuf;810 iov.iov_len = sizeof(rdatabuf);811 mhdr.msg_name = &from;812 mhdr.msg_namelen = sizeof(from);813 mhdr.msg_iov = &iov;814 mhdr.msg_iovlen = 1;815 mhdr.msg_control = (caddr_t)cmsgbuf;816 mhdr.msg_controllen = sizeof(cmsgbuf);817818 if ((len = recvmsg(insock, &mhdr, 0)) < 0) {819 dprintf(LOG_ERR, FNAME, "recvmsg: %s", strerror(errno));820 return;821 }822 fromlen = mhdr.msg_namelen;_____________________________________________________________________________dhcp6s.c804-822 ขอมลทมาถงน�นจะอานขอมลโดย recvmsg() โดยระบบขอมลน�นจะถกเกบไวใน rdatabuf และ ancillary data จะถกเกบไวใน cmsgbuf

Identify the Interfaceร�ยก�รท 4-78_____________________________________________________________________________dhcp6s.c

Page 135: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

824 for (cm = (struct cmsghdr *)CMSG_FIRSTHDR(&mhdr); cm;825 cm = (struct cmsghdr *)CMSG_NXTHDR(&mhdr, cm)) {826 if (cm->cmsg_level == IPPROTO_IPV6 &&827 cm->cmsg_type == IPV6_PKTINFO &&828 cm->cmsg_len == CMSG_LEN(sizeof(struct in6_pktinfo))) {829 pi = (struct in6_pktinfo *)(CMSG_DATA(cm));830 }831 }832 if (pi == NULL) {833 dprintf(LOG_NOTICE, FNAME, "failed to get packet info");834 return;835 }836 if ((ifp = find_ifconfbyid((unsigned int)pi->ipi6_ifindex)) == NULL) {837 dprintf(LOG_INFO, FNAME, "unexpected interface (%d)",838 (unsigned int)pi->ipi6_ifindex);839 return;840 }______________________________________________________________________________dhcp6s.c824-840 ancillary data จะทำาการยบย�งรายการใน IPV6_PKTINFO และจะกำาหนดการมาถงของขอมลและกำาหนดจดหมายปลายทางของแอดเดรส ฟงกชน find_ifconfbyid() จะใชเปรยบเทยบการมาถงขอมล

Initial Validationร�ยก�รท 4-79_____________________________________________________________________________dhcp6s.c

Page 136: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

842 dh6 = (struct dhcp6 *)rdatabuf;843844 if (len < sizeof(*dh6)) {845 dprintf(LOG_INFO, FNAME, "short packet (%d bytes)", len);846 return;847 }848849 dprintf(LOG_DEBUG, FNAME, "received %s from %s",850 dhcp6msgstr(dh6->dh6_msgtype),851 addr2str((struct sockaddr *)&from));852853 /*854 * A server MUST discard any Solicit, Confirm, Rebind or855 * Information-request messages it receives with a unicast856 * destination address.857 * [RFC3315 Section 15.]858 */859 if (!IN6_IS_ADDR_MULTICAST(&pi->ipi6_addr) &&860 (dh6->dh6_msgtype == DH6_SOLICIT ||861 dh6->dh6_msgtype == DH6_CONFIRM ||862 dh6->dh6_msgtype == DH6_REBIND ||863 dh6->dh6_msgtype == DH6_INFORM_REQ)) {864 dprintf(LOG_INFO, FNAME, "invalid unicast message");865 return;866 }867868 /*869 * A server never receives a relay reply message. Since relay

Page 137: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

870 * replay messages will annoy option parser below, we explicitly871 * reject them here.872 */873 if (dh6->dh6_msgtype == DH6_RELAY_REPLY) {874 dprintf(LOG_INFO, FNAME, "relay reply message from %s",875 addr2str((struct sockaddr *)&from));876 return;877878 }_____________________________________________________________________________dhcp6s.c842-878 ขอมลน�นควรจะประกอบดวยสวนประกอบของ DHCPv6 ถาจดหมายปลายทางของขอมล IPv6 จะไมมการคำานวณแอดเดรส และขอมลน�นนาจะไมมการคำานวณในการสง packet

Process Relay-forward Messageร�ยก�รท 4-80 ____________________________________________________________________________dhcp6s.c880 optend = (struct dhcp6opt *)(rdatabuf + len);881 if (dh6->dh6_msgtype == DH6_RELAY_FORW) {882 if (process_relayforw(&dh6, &optend, &relayinfohead,883 (struct sockaddr *)&from)) {884 goto end;885 }886 /* dh6 and optend should have been updated. */887 }___________________________________________________________________________dhcp6s.c

Page 138: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

880-887 ถารปแบบของขอมลน �นมการ Relay-forward ตนฉบบของขอมลน�นไดรบมาจากเครองลกขายจะทำาใหมการดำาเนนงานเพมเขามา โดยทฟงกชน process _relayforw() จะใชทำางานในสวนน�

Parse Optionsร�ยก�รท 4-81__________________________________________________________________________dhcp6s.c 889 /*890 * parse and validate options in the message891 */892 dhcp6_init_options(&optinfo);893 if (dhcp6_get_options((struct dhcp6opt *)(dh6 + 1),894 optend, &optinfo) < 0) {895 dprintf(LOG_INFO, FNAME, "failed to parse options");896 goto end;897 }___________________________________________________________________________dhcp6s.c889-897 ฟงกชน dhcp6_get_options() จะทำาการวเคราะหขอมลภายในโครงสรางของขอมลทสมพนธกบการเลอกตวแปร

Process Messageร�ยก�รท 4-82_____________________________________________________________________________dhcp6s.c899 switch (dh6->dh6_msgtype) {900 case DH6_SOLICIT:901 (void)react_solicit(ifp, dh6, len, &optinfo,902 (struct sockaddr *)&from, fromlen, &relayinfohead);903 break;

Page 139: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

904 case DH6_REQUEST:905 (void)react_request(ifp, pi, dh6, len, &optinfo,906 (struct sockaddr *)&from, fromlen, &relayinfohead);907 break;908 case DH6_RENEW:909 (void)react_renew(ifp, pi, dh6, len, &optinfo,910 (struct sockaddr *)&from, fromlen, &relayinfohead);911 break;912 case DH6_REBIND:913 (void)react_rebind(ifp, dh6, len, &optinfo,914 (struct sockaddr *)&from, fromlen, &relayinfohead);915 break;916 case DH6_RELEASE:917 (void)react_release(ifp, pi, dh6, len, &optinfo,918 (struct sockaddr *)&from, fromlen, &relayinfohead);919 break;920 case DH6_INFORM_REQ:921 (void)react_informreq(ifp, dh6, len, &optinfo,922 (struct sockaddr *)&from, fromlen, &relayinfohead);923 break;924 default:925 dprintf(LOG_INFO, FNAME, "unknown or unsupported msgtype (%s)",926 dhcp6msgstr(dh6->dh6_msgtype));927 break;928 }______________________________________________________________________________dhcp6s.c

Page 140: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

899-928 รปแบบของขอมลทเหมาะสมทจะเปนรากฐานจะตองผานข �นตอนการดำาเนนงานของ per-message

Cleanupร�ยก�รท 4-83

______________________________________________________________________________dhcp6s.c930 dhcp6_clear_options(&optinfo);931932 end:933 while ((relayinfo = TAILQ_FIRST(&relayinfohead)) != NULL) {934 TAILQ_REMOVE(&relayinfohead, relayinfo, link);935 free_relayinfo(relayinfo);936 }937938 return;939 }______________________________________________________________________________dhcp6s.c930-936 โครงสรางของขอมลแบบ DHCPv6 จะเปนโครงสรางแบบชวคราว และขอมลขาวสารน�นจะทำางานแบบ Relay-forward 4.5.3 ฟงกชน process _relayforw()

ฟงกชน process _relayforw() จะทำาหอหมขอมลสำาหรบสงแบบ Relay-forward จนกระทงขอมลทเปนตนฉบบจากเครองลกขายถกคนพบ Validationร�ยก�รท 4-84

______________________________________________________________________________dhcp6s.c954 static int

Page 141: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

955 process_relayforw(dh6p, optendp, relayinfohead, from)956 struct dhcp6 **dh6p;957 struct dhcp6opt **optendp;958 struct relayinfolist *relayinfohead;959 struct sockaddr *from;960 {961 struct dhcp6_relay *dh6relay = (struct dhcp6_relay *)*dh6p;962 struct dhcp6opt *optend = *optendp;963 struct relayinfo *relayinfo;964 struct dhcp6_optinfo optinfo;96 int len;966 again:968 len = (void *)optend - (void *)dh6relay;969 if (len < sizeof (*dh6relay)) {970 dprintf(LOG_INFO, FNAME, "short relay message from %s",971 addr2str(from));972 return (-1);973 }974 dprintf(LOG_DEBUG, FNAME,975 "dhcp6 relay: hop=%d, linkaddr=%s, peeraddr=%s",976 dh6relay->dh6relay_hcnt,977 in6addr2str(&dh6relay->dh6relay_linkaddr, 0),978 in6addr2str(&dh6relay->dh6relay_peeraddr, 0));______________________________________________________________________________dhcp6s.c968-978 สวนหนงของขอมลทไดรบการพจารณานาจะมขนาดเพยงพอทจะทำาการ Relay-forward มฉะน�น packer จะถกละท�งParse and Validate Optionsร�ยก�รท 4-85

Page 142: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

______________________________________________________________________________dhcp6s.c980 /*981 * parse and validate options in the relay forward message.982 */983 dhcp6_init_options(&optinfo);984 if (dhcp6_get_options((struct dhcp6opt *)(dh6relay + 1),985 optend, &optinfo) < 0) {986 dprintf(LOG_INFO, FNAME, "failed to parse options");987 return (-1);988 }989990 /* A relay forward message must include a relay message option */991 if (optinfo.relaymsg_msg == NULL) {992 dprintf(LOG_INFO, FNAME, "relay forward from %s "993 "without a relay message", addr2str(from));994 return (-1);995 }996997 /* relay message must contain a DHCPv6 message. */998 len = optinfo.relaymsg_len;999 if (len < sizeof (struct dhcp6)) {1000 dprintf(LOG_INFO, FNAME,1001 "short packet (%d bytes) in relay message", len);1002 return (-1);1003 }______________________________________________________________________________dhcp6s.c

Page 143: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

980-1003 ฟงกชน dhcp6_get_options() ใชในการวเคราะหทางเลอกในการ Relayforward message ในการสงขอมลผานทาง Relay-forward น�น packet จะถกทอดท�งและทางเลอกของขอมลน�นจะทำาตาม DHCPv6 Remember the Relay Informationร�ยก�รท 4-86______________________________________________________________________________dhcp6s.c1005 if ((relayinfo = malloc(sizeof (*relayinfo))) == NULL) {1006 dprintf(LOG_ERR, FNAME, "failed to allocate relay info");1007 return (-1);1008 }1009 memset(relayinfo, 0, sizeof (*relayinfo));10101011 relayinfo->hcnt = dh6relay->dh6relay_hcnt;1012 memcpy(&relayinfo->linkaddr, &dh6relay->dh6relay_linkaddr,1013 sizeof (relayinfo->linkaddr));1014 memcpy(&relayinfo->peeraddr, &dh6relay->dh6relay_peeraddr,1015 sizeof (relayinfo->peeraddr));10161017 if (dhcp6_vbuf_copy(&relayinfo->relay_msg, &optinfo.relay_msg))1018 goto fail;1019 if (optinfo.ifidopt_id &&1020 dhcp6_vbuf_copy(&relayinfo->relay_ifid, &optinfo.ifidopt)) {1021 goto fail;1022 }

Page 144: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

10231024 TAILQ_INSERT_HEAD(relayinfohead, relayinfo, link);______________________________________________________________________________dhcp6s.c1005-1022 โครงสรางใหมของ relayinfo{} ไดทำาการจดสรรและตวแปรบางตวจะทำาการ Relay forward ขอมลทถกเกบไวในโครงสรางของ relayinfo{}1024 โครงสรางของ relayinfo{} น�นจะทำาการเพมรายการการเพมการสงถายของสญญาณMove to the Inner Messageร�ยก�รท 4-88______________________________________________________________________________dhcp6s.c1026 dhcp6_clear_options(&optinfo);10271028 optend = (struct dhcp6opt *)(relayinfo->relay_msg.dv_buf + len);1029 dh6relay = (struct dhcp6_relay *)relayinfo->relay_msg.dv_buf;10301031 if (dh6relay->dh6relay_msgtype != DH6_RELAY_FORW) {1032 *dh6p = (struct dhcp6 *)dh6relay;1033 *optendp = optend;1034 return (0);1035 }10361037 goto again;10381039 fail:1040 free_relayinfo(relayinfo);1041 dhcp6_clear_options(&optinfo);

Page 145: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

10421043 return (-1);1044 }______________________________________________________________________________dhcp6s.c1026-1029 ในการเลอกเสนทางของขอมลททำาการ Relay-forward น�นจะมจำานวนมากและจะมการปลอยออกซงตวแปร dh6relay จะทำาการปรบเปลยนกอนท pointer จะทำาการช�บงถงสวนทหอหมขอมลอยและตอมามนจะส�นสดการทำางาน1031-1037 ถาขอมลทถกหอหมน�นจะไมมการทำา Relay-forward จะกวาการดำาเนนงานน�นจะถกทำาไปจนประสบผลสำาเรจ โดยทตวแปร dh6p และ optendp จะทำาการอพเดตการประกาศขอมล มฉะน�นการดำาเนนงานจะเกดกระบวนการ Relay-forward ข�นหลายๆคร�ง

4.5.4 ฟงกชน react_solicit() ฟงกชน react_solicit() เปนข�นตอนการดำาเนนงานของ DHCPv6 ในการเรยกรองขอมลจากเครอง client

Identify the Clientร�ยก�รท 4-89______________________________________________________________________________dhcp6s.c1098 static int1099 react_solicit(ifp, dh6, len, optinfo, from, fromlen, relayinfohead)1100 struct dhcp6_if *ifp;1101 struct dhcp6 *dh6;1102 ssize_t len;1103 struct dhcp6_optinfo *optinfo;1104 struct sockaddr *from;

Page 146: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1105 int fromlen;1106 struct relayinfolist *relayinfohead;1107 {1108 struct dhcp6_optinfo roptinfo;1109 struct host_conf *client_conf;1110 int resptype, do_binding = 0, error;11111112 /*1113 * Servers MUST discard any Solicit messages that do not include a1114 * Client Identifier option.1115 * [RFC3315 Section 15.2]1116 */1117 if (optinfo->clientID.duid_len == 0) {1118 dprintf(LOG_INFO, FNAME, "no client ID option");1119 return (-1);1120 } else {1121 dprintf(LOG_DEBUG, FNAME, "client ID %s",1122 duidstr(&optinfo->clientID));1123 }11241125 /* get per-host configuration for the client, if any. */1126 if ((client_conf = find_hostconf(&optinfo->clientID))) {1127 dprintf(LOG_DEBUG, FNAME, "found a host configuration for %s",1128 client_conf->name);1129 }______________________________________________________________________________dhcp6s.c

Page 147: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1112–1129 ถาการเรยกรองขอมลจากเครอง client ถกกระทำาการยบย�งขอมลทเลอกน�นจะถกทำาการลบท�ง ฟงกชน find_hostconf() จะในการคนหาโครงสรางของขอมลจากเครอง clientBuild Options for Responseร�ยก�รท 4-90_____________________________________________________________________________dhcp6s.c1131 /*1132 * configure necessary options based on the options in solicit.1133 */1134 dhcp6_init_options(&roptinfo);11351136 /* process authentication */1137 if (process_auth(dh6, len, client_conf, optinfo, &roptinfo)) {1138 dprintf(LOG_INFO, FNAME, "failed to process authentication "1139 "information for %s",1140 clientstr(client_conf, &optinfo->clientID));1141 goto fail;1142 }11431144 /* server identifier option */114 if (duidcpy(&roptinfo.serverID, &server_duid)) {1146 dprintf(LOG_ERR, FNAME, "failed to copy server ID");1147 goto fail;1148 }11491150 /* copy client information back */1151 if (duidcpy(&roptinfo.clientID, &optinfo->clientID)) {

Page 148: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1152 dprintf(LOG_ERR, FNAME, "failed to copy client ID");1153 goto fail;1154 }11551156 /* preference (if configured) */1157 if (ifp->server_pref != DH6OPT_PREF_UNDEF)1158 roptinfo.pref = ifp->server_pref;11591160 /* add other configuration information */1161 if (set_statelessinfo(DH6_SOLICIT, &roptinfo)) {1162 dprintf(LOG_ERR, FNAME,1163 "failed to set other stateless information");1164 goto fail;1165 }______________________________________________________________________________dhcp6s.c1134-1158 ทางเลอกทจะทำาการตอบสนองตอขอมลน�นจะตองการโครงสรางของ roptinfo{} แลวจะมการสงขอมลภายใน DHCPv6 อยางตรงไปตรงมา ถามปจจยและความเปนไปไดของฟงกชน process _auth() ไดรบการพจารณาตามกฎการสงขอมลโดยมเงอนไขวาเครอง Client จะตองทำาการเลอกเสนทางภายใน roptinfo1160-1165 ฟงกชน set _statelessinfo() จะทำาการต�งคาโครงสรางของขอมลภายใน roptinfo

Send Responseร�ยก�รท 4-91_____________________________________________________________________________dhcp6s.c

Page 149: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1266 if (optinfo->rapidcommit && (ifp->allow_flags & DHCIFF_RAPID_COMMIT)) {1267 /*1268 * If the client has included a Rapid Commit option and the1269 * server has been configured to respond with committed address1270 * assignments and other resources, responds to the Solicit1271 * with a Reply message.1272 * [RFC3315 Section 17.2.1]1273 */1274 roptinfo.rapidcommit = 1;1275 resptype = DH6_REPLY;1276 } else1277 resptype = DH6_ADVERTISE;12781279 error = server6_send(resptype, ifp, dh6, optinfo, from, fromlen,1280 &roptinfo, relayinfohead, client_conf);1281 dhcp6_clear_options(&roptinfo);1282 return (error);12831284 fail:1285 dhcp6_clear_options(&roptinfo);1286 return (-1);1287 }_____________________________________________________________________________dhcp6s.c1266-1278 ถาขอมลทไดรบมาถกยอมรบมาถกตองประกอบดวย Rapid Commit และ Sever ไดทำาการรบขอมลและสงขอมลตอบกลบไปหา Rapid Commit เพอเปนการเรยกรองขอขอมลมาใหม มฉะน�น Sever จะทำาการสงขอมลทผดพลาดไปใหกบ Client

Page 150: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1279-1287 ฟงกชน server6_send() จะสราง packet การตอบสนองสงไปใหยงชองทางขอมล4.5.5 react_request() Function

ฟงกชน react_request() จะเปนข�นตอนทใชในการรองขอขอมลจากเครอง client โดยทจะมข �นตอนการดำาเนนงานบางข�นตอนทเหมอนกนฟงกชน react_solicit()

Validationร�ยก�รท 4-93______________________________________________________________________________dhcp6s.c1289 static int1290 react_request(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)1291 struct dhcp6_if *ifp;1292 struct in6_pktinfo *pi;1293 struct dhcp6 *dh6;1294 ssize_t len;1295 struct dhcp6_optinfo *optinfo;1296 struct sockaddr *from;1297 int fromlen;1298 struct relayinfolist *relayinfohead;1299 {1300 struct dhcp6_optinfo roptinfo;1301 struct host_conf *client_conf;13021303 /* message validation according to Section 15.4 of RFC3315 */13041305 / * the message must include a Server Identifier option */1306 if (optinfo->serverID.duid_len == 0) {1307 dprintf(LOG_INFO, FNAME, "no server ID option");

Page 151: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1308 return (-1);1309 }1310 /* the contents of the Server Identifier option must match ours */1311 if (duidcmp(&optinfo->serverID, &server_duid)) {1312 dprintf(LOG_INFO, FNAME, "server ID mismatch");1313 return (-1);1314 }1315 /* the message must include a Client Identifier option */1316 if (optinfo->clientID.duid_len == 0) {1317 dprintf(LOG_INFO, FNAME, "no server ID option");1318 return (-1);1319 }______________________________________________________________________________dhcp6s.c1305-1319 ในขอขอมลตามความตองการน�นจะตองม Identifier จากเครอง sever และถาขอมลทรองขอมาจากเครองลกขายกจะตองม Identifier จากเครอง client สงเหลาน�น�นจำาเปนไมเชนน�นขอมลจะไมสามารถสงไดBuild Options for Reply and Identify Clientร�ยก�รท 4-94______________________________________________________________________________dhcp6s.c1321 /*1322 * configure necessary options based on the options in request.1323 */1324 dhcp6_init_options(&roptinfo);1325

Page 152: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1326 /* server identifier option */1327 if (duidcpy(&roptinfo.serverID, &server_duid)) {1328 dprintf(LOG_ERR, FNAME, "failed to copy server ID");1329 goto fail;1330 }1331 /* copy client information back */1332 if (duidcpy(&roptinfo.clientID, &optinfo->clientID)) {1333 dprintf(LOG_ERR, FNAME, "failed to copy client ID");1334 goto fail;1335 }13361337 /* get per-host configuration for the client, if any. */1338 if ((client_conf = find_hostconf(&optinfo->clientID))) {1339 dprintf(LOG_DEBUG, FNAME,1340 "found a host configuration named %s", client_conf->name);1341 }13421343 /* process authentication */1344 if (process_auth(dh6, len, client_conf, optinfo, &roptinfo)) {1345 dprintf(LOG_INFO, FNAME, "failed to process authentication "1346 "information for %s",1347 clientstr(client_conf, &optinfo->clientID));1348 goto fail;1349 }______________________________________________________________________________dhcp6s.c

Page 153: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1324-1349 จำาทำางานเหมอนกบในสวนของ react_solicit()

Handle Unexpected Unicast Requestร�ยก�รท 4-95______________________________________________________________________________dhcp6s.c1351 /*1352 * When the server receives a Request message via unicast from a1353 * client to which the server has not sent a unicast option, the server1354 * containing a Status Code option with value UseMulticast, a Server1356 * Identifier option containing the server’s DUID, the Client1357 * Identifier option from the client message and no other options.1358 * [RFC3315 18.2.1]1359 * (Our current implementation never sends a unicast option.)1360 * Note: a request message encapsulated in a relay server option can be1361 * unicasted.1362 */1363 if (!IN6_IS_ADDR_MULTICAST(&pi->ipi6_addr) &&1364 TAILQ_EMPTY(relayinfohead)) {1365 u_int16_t stcode = DH6OPT_STCODE_USEMULTICAST;13661367 dprintf(LOG_INFO, FNAME, "unexpected unicast message from %s",1368 addr2str(from));1369 if (dhcp6_add_listval(&roptinfo.stcode_list,

Page 154: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1370 DHCP6_LISTVAL_STCODE, &stcode, NULL) == NULL) {1371 dprintf(LOG_ERR, FNAME, "failed to add a status code");1372 goto fail;1373 }1374 server6_send(DH6_REPLY, ifp, dh6, optinfo, from,1375 fromlen, &roptinfo, relayinfohead, client_conf);1376 goto end;1377 }______________________________________________________________________________dhcp6s.c1351-1377 ถาขอมลทถกสงดวยวธการ unicast จากเครองลกขายโดยทเครองแมขายจะทำาการตอบสนองดวยวธการ Reply message โดยทขอมลน�นจะทำาการจดระเบยบของโพรโตคอลในการสงขอมลจากเครองแมขายไปยงเครองลกขาย

Delegate Prefixร�ยก�รท 4-96______________________________________________________________________________dhcp6s.c1379 /*1380 * See if we have to make a binding of some configuration information1381 * for the client.1382 */13831384 /*1385 * When a delegating router receives a Request message from a1386 * requesting router that contains an IA_PD option, and the delegating

Page 155: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1387 * router is authorized to delegate prefix(es) to the requesting1388 * router, the delegating router selects the prefix(es) to be delegated1389 * to the requesting router.1390 * [RFC3633 Section 12.2]1391 */1392 if (!TAILQ_EMPTY(&optinfo->iapd_list)) {1393 struct dhcp6_list conflist;1394 struct dhcp6_listval *iapd;13951396 TAILQ_INIT(&conflist);13971398 /* make a local copy of the configured prefixes */1399 if (client_conf &&1400 dhcp6_copy_list(&conflist, &client_conf->prefix_list)) {1401 dprintf(LOG_NOTICE, FNAME,1402 "failed to make local data");1403 goto fail;1404 }14051406 for (iapd = TAILQ_FIRST(&optinfo->iapd_list); iapd;1407 iapd = TAILQ_NEXT(iapd, link)) {1408 /*1409 * Find an appropriate prefix for each IA_PD,1410 * removing the adopted prefixes from the list.1411 * The prefixes will be bound to the client.1412 */1413 if (make_ia(iapd, &conflist, &roptinfo.iapd_list,1414 client_conf, 1) == 0) {

Page 156: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1415 /*1416 * We could not find any prefixes for the IA.1417 * RFC3315 specifies to include NoAddrsAvail1418 * for the IA in the address configuration1419 * case (Section 18.2.1). We follow the same1420 * logic for prefix delegation as well.1421 */1422 if (make_ia_stcode(DHCP6_LISTVAL_IAPD,1423 iapd->val_ia.iaid,1424 DH6OPT_STCODE_NOPREFIXAVAIL,1425 &roptinfo.iapd_list)) {1426 dprintf(LOG_NOTICE, FNAME,1427 "failed to make an option list");1428 dhcp6_clear_list(&conflist);1429 goto fail;1430 }1431 }1432 }14331434 dhcp6_clear_list(&conflist);1435 }______________________________________________________________________________dhcp6s.c1379-1435 ถาขอมลทไดรบการตอบสนองน�นม IA_PD จากเครองแมขายและจะใชฟงกชน make_ia() ใชในการพสจนชองทางเดนของขอมลทสมพนธกบการสงขอมล

Allocate Addressร�ยก�รท 4-97

Page 157: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

______________________________________________________________________________dhcp6s.c1437 if (!TAILQ_EMPTY(&optinfo->iana_list)) {1438 struct dhcp6_list conflist;1439 struct dhcp6_listval *iana;14401441 TAILQ_INIT(&conflist);14421443 /* make a local copy of the configured prefixes */1444 if (client_conf &&1445 dhcp6_copy_list(&conflist, &client_conf->addr_list)) {1446 dprintf(LOG_NOTICE, FNAME,1447 "failed to make local data");1448 goto fail;1449 }14501451 for (iana = TAILQ_FIRST(&optinfo->iana_list); iana;1452 iana = TAILQ_NEXT(iana, link)) {1453 /*1454 * Find an appropriate address for each IA_NA,1455 * removing the adopted addresses from the list.1456 * The addresses will be bound to the client.1457 */1458 if (make_ia(iana, &conflist, &roptinfo.iana_list,1459 client_conf, 1) == 0) {1460 if (make_ia_stcode(DHCP6_LISTVAL_IANA,1461 iana->val_ia.iaid,1462 DH6OPT_STCODE_NOADDRSAVAIL,1463 &roptinfo.iana_list)) {1464 dprintf(LOG_NOTICE, FNAME,

Page 158: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1465 "failed to make an option list");1466 dhcp6_clear_list(&conflist);1467 goto fail;1468 }1469 }1470 }14711472 dhcp6_clear_list(&conflist);1473 }______________________________________________________________________________dhcp6s.c1437-1473 นอกจากน�นขอมลทไดรบการตอบรบมาจาก IA_NA ถาฟงกชน make _ia() เกดการทำางานลมเหลว เครอง Sever จะทำางานใหมโดยการใชฟงกชน make _ia_stcode() ในการสรางทางเลอกของ IA_NA

Add Stateless Optionsร�ยก�รท 4-98______________________________________________________________________________dhcp6s.c1475 /*1476 * If the Request message contained an Option Request option, the1477 * server MUST include options in the Reply message for any options in1478 * the Option Request option the server is configured to return to the1479 * client.1480 * [RFC3315 18.2.1]1481 * Note: our current implementation always includes all information1482 * that we can provide. So we do not have to check the option request1483 * options.1484 */

Page 159: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1485 #if 01486 for (opt = TAILQ_FIRST(&optinfo->reqopt_list); opt;1487 opt = TAILQ_NEXT(opt, link)) {1488 ;1489 }1490 #endif14911492 /*1493 * Add options to the Reply message for any other configuration1494 * information to be assigned to the client.1495 */1496 if (set_statelessinfo(DH6_REQUEST, &roptinfo)) {1497 dprintf(LOG_ERR, FNAME,1498 "failed to set other stateless information");1499 goto fail;1500 }______________________________________________________________________________dhcp6s.c1475-1500 การทำางานของฟงกชนน�จะงานเหมอนกบฟงกชนของ react_solicit()Send Reply

ร�ยก�รท 4-99______________________________________________________________________________dhcp6s.c15011502 /* send a reply message. */1503 (void)server6_send(DH6_REPLY, ifp, dh6, optinfo, from, fromlen,1504 &roptinfo, relayinfohead, client_conf);

Page 160: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

15051506 end:1507 dhcp6_clear_options(&roptinfo);1508 return (0);15091510 fail:1511 dhcp6_clear_options(&roptinfo);1512 return (-1);1513 }______________________________________________________________________________dhcp6s.c1475-1500 ฟงกชน server6_send() จะทำาการสงขอมลแบบ Reply และสรางทางเลอกในการสงขอมลจนกระทงการสงขอมลน�นไปถงเครอง client

4.5.6 ฟงกชน make_ia() ฟงกชน make_ia() ถกเรยกจากฟงกชน react_solicit() และฟงกชน react_request() ซงมนพยายามทจะคนหา IA ใหกบผใช ,เมอพจารณาในแงของการปรบแตง server และการ request ของผใช ถาม 5 อะกวเมนตความสมพนธ (do_binding) ไมเปน 0 ฟงกชนน� จะสรางความสมพนธระหวางผใชกบ IA ทพบ

ก�ร update คว�มสมพนธของขอมลทมอย ร�ยก�รท 4 -100------------------------------------------------------------------------------------dhcp6s.c2334 static int2335 make_ia(spec, conflist, retlist, client_conf, do_binding)2336 struct dhcp6_listval *spec;2337 struct dhcp6_list *conflist, *retlist;2338 struct host_conf *client_conf;2339 int do_binding;

Page 161: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2340 {2341 struct dhcp6_binding *binding;2342 struct dhcp6_list ialist;2343 struct dhcp6_listval *specia;2344 struct dhcp6_ia ia;2345 int found = 0;23462347 /*2348 * ถาเกดการ binding ในขณะน� , จะอพเดท binding และสงคากลบไป2349 * บางทการรองขออาจถกเกบไวกอน2350 */2351 if ((binding = find_binding(&client_conf->duid, DHCP6_BINDING_IA,2352 spec->type, spec->val_ia.iaid)) != NULL) {2353 struct dhcp6_list *blist = &binding->val_list;2354 struct dhcp6_listval *bia, *v;23552356 dprintf(LOG_DEBUG, FNAME, "we have a binding already: %s",2357 bindingstr(binding));23582359 update_binding(binding);23602361 memset(&ia, 0, sizeof(ia));2362 ia.iaid = spec->val_ia.iaid;2363 /* คนหา T1 และ T2 ทจะนำามาใช */2364 calc_ia_timo(&ia, blist, client_conf);2365 if (dhcp6_add_listval(retlist, spec->type, &ia, blist)2366 == NULL) {2367 dprintf(LOG_NOTICE, FNAME,2368 "failed to copy binding info");2369 return (0);2370 }2371

Page 162: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2372 /* นำาคาออกจากตว config */2373 for (bia = TAILQ_FIRST(blist); bia;2374 bia = TAILQ_NEXT(bia, link)) {2375 if ((v = dhcp6_find_listval(conflist,2376 bia->type, &bia->uv, 0)) != NULL) {2377 found++;2378 TAILQ_REMOVE(conflist, v, link);2379 dhcp6_clear_listval(v);2380 }2381 }23822383 return (found);2384 }--------------------------------------------------------------------------------------------------------dhcp6s.c2347–2359 ถามการ binding ( ความสมพนธ ) ระหวาง ผใชกบ IA update_binding() ฟงกชน update_binding() จะเรยก IA update (มการ Reset เวลาสำาหรบ IA) ขณะทจะมการตดต�ง และขณะทไมใชรปแบบปกต กยงคงสามารถทำางานได ถา Server มการรบและมกระบวนการคลายการเรยกขอความ แตมการตอบสนองขอความผดพลาด จะทำาใหผใชตองสงขอความไปใหมอกคร �ง***** การอพเดต IA ไมใช ความคดทดนก แตวธการน�ควรใชกตอเมอ do_binding ไมเปน 0 *****2361–2370 Template เฉพาะของ IA โดยเปนการจดเตรยมรปแบบ และผานทาง ฟงกชน calc_ia_timo() ซงมการต�งคาทเหมาะสมของ T1 และ T2 สำาหรบ พ�นฐานของ IA ซงอยบน binding ทพบ และคาใหมสำาหรบ IA จะถกใสคาแทนลงไปใน return list (relist)2372–2381 สำาหรบขอบเขตแตละตวแปร ( address , prefix ) ถามการปรบแตง server สำาหรบผใชและประกอบไปดวยตวแปร โดยมการนำาคาตางๆ ออกมาจากการปรบแตง โดยคาเหลาน�จะไมสามารถนำากลบมาใชใหมได และคาตวเลขทพบและเขากนไดกบตวแปรทมจะถกนำามานบและเกบลงในตวแปรทพบดวย

Page 163: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2383 กระบวนการเสรจส�น ,คาตวเลขทเขากนไดกบตวแปรจะถกสงคากลบ***** การสงคาของตวเลขกลบไมใชความคดทดนกถาตวเลขน �นเปน 0 ดงน�น ควรจะใชวธอน *****

Find Appropriate Configuration ( คนหาสวนทใชปรบแตง ) ร�ยก�รท 4 – 101------------------------------------------------------------------------------ dhcp6s.c2386 /*2387 * trivial case:2388 * ถา config วางเปลา จะไมเกดการสราง IA.2389 */2390 if (TAILQ_EMPTY(conflist))2391 return (0);23922393 TAILQ_INIT(&ialist);23942395 /* ข�นแรก, ตรวจสอบวามการรองขอมาจากผใชหรอไม */2396 for (specia = TAILQ_FIRST(&spec->sublist); specia;2397 specia = TAILQ_NEXT(specia, link)) {2398 /* พยายามคนหา IA ทเขากนไดทสด. */2399 if (make_match_ia(specia, conflist, &ialist))2400 found++;2401 }2402 if (found == 0) {2403 struct dhcp6_listval *v;24042405 /* ใช IA ตวแรกในรายการ */2406 v = TAILQ_FIRST(conflist);2407 if (dhcp6_add_listval(&ialist, v->type, &v->uv, NULL)) {

Page 164: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2408 found = 1;2409 TAILQ_REMOVE(conflist, v, link);2410 dhcp6_clear_listval(v);2411 }2412 }2413 if (found) {2414 memset(&ia, 0, sizeof(ia));2415 ia.iaid = spec->val_ia.iaid;2416 /* คนหา T1 และ T2 ทจะนำามาใช */2417 calc_ia_timo(&ia, &ialist, client_conf);24182419 /* สราง binding ใหตรงกบปจจยการใชงาน */2420 if (do_binding) {2421 if (add_binding(&client_conf->duid, DHCP6_BINDING_IA,2422 spec->type, spec->val_ia.iaid, &ialist) == NULL) {2423 dprintf(LOG_NOTICE, FNAME,2424 "failed to make a binding");2425 found = 0;2426 }2427 }2428 if (found) {2429 /* make an IA for the set */2430 if (dhcp6_add_listval(retlist, spec->type,2431 &ia, &ialist) == NULL)2432 found = 0;2433 }2434 dhcp6_clear_list(&ialist);2435 }24362437 return (found);2438 }------------------------------------------------------------------------------------------------- dhcp6s.c

Page 165: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2390–2391 ถาการปรบแตงของ Server ใหผใชวางเปลาแลว Server กจะไมสามารถคนหา IA ใหกบผใชได2395–2401 ถาผใชมตวแปรเฉพาะสำาหรบ IA ฟงกชน make_match_ia() จะพยายามคนหาคาทเหมาะสมใหกบตวแปรเฉพาะ โดยในข�นแรกจะคนหาคาทเหมาะสม (คอ สวนหนงของ address ของ prefix ทเหมอนกน และ prefix ทมระยะ (length) เทากน ) จากน�นจะทำาการคนหาคาตวแปรอนๆทเขากนไดกบความยามหรอระยะของ prefix โดยถาตวแปรถกพบ คาทเขากนกบตวแปรจะถกนำาออกจาก server และถกนำาไปวางไวท new local list ( ialist )2402–2412 ถาไมพบตวแปรในการปรบแตง server หรอผใชไมมตวแปรเฉพาะ จำาทำาใหการเขาของ head ถกนำาออกมาและนำาคาภายในไปไวท ialist2413–2417 ถามการพบบางสงในกระบวนการกอนหนา ฟงกชน the calc_ia_timo() จะ Set T1 และ T2 ให IA2419–2427 ถามการรองขอทำา binding ใหมทจดใดจดหนง ฟงกชน add_binding() จะเปนสวนทจดการทำา2428–2434 ถาทกอยางเรยกรอยด การเลอก IA ซงประกอบดวยตวแปรทมอยในขณะน�น จำาถกนำาไปไวท return list2437 คาตวเลขในตวแปรจะถกคนคา , ถาเปน 0 จะลมเหลวฟงกชน calc_ia_timo() ทแสดงดง รายการท 4 – 102 ถกเรยกจาก ฟงกชน make_ia() หลายรปแบบ

ร�ยก�ร 4-102---------------------------------------------------------------------------------------------- dhcp6s.c2483 static void2484 calc_ia_timo(ia, ialist, client_conf)2485 struct dhcp6_ia *ia;

Page 166: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2486 struct dhcp6_list *ialist; /* this should not be empty */2487 struct host_conf *client_conf; /* unused yet */2488 {2489 struct dhcp6_listval *iav;2490 u_int32_t base = DHCP6_DURATITION_INFINITE;2491 int iatype;24922493 iatype = TAILQ_FIRST(ialist)->type;2494 for (iav = TAILQ_FIRST(ialist); iav; iav = TAILQ_NEXT(iav, link)) {2495 if (iav->type != iatype) {2496 dprintf(LOG_ERR, FNAME,2497 "assumption failure: IA list is not consistent");2498 exit (1); /* XXX */2499 }2500 switch (iatype) {2501 case DHCP6_LISTVAL_PREFIX6:2502 case DHCP6_LISTVAL_STATEFULADDR6:2503 if (base == DHCP6_DURATITION_INFINITE ||2504 iav->val_prefix6.pltime < base)2505 base = iav->val_prefix6.pltime;2506 break;2507 }2508 }25092510 switch (iatype) {2511 case DHCP6_LISTVAL_PREFIX6:2512 case DHCP6_LISTVAL_STATEFULADDR6:2513 /*2514 * Config เวลาของตวแปร ใน2515 * สวนท 22.4 ของ RFC3315 และสวนท 9 ของ RFC3633.2516 * เราสามารถเซตตวแปรเปน 0 ไดถาเราเปนผใชงานเอง2517 * ตดสนใจการต�งเวลาใหม (ไมมผลใดๆ).

Page 167: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2518 */2519 if (base == DHCP6_DURATITION_INFINITE) {2520 ia->t1 = DHCP6_DURATITION_INFINITE;2521 ia->t2 = DHCP6_DURATITION_INFINITE;2522 } else {2523 ia->t1 = base / 2;2524 ia->t2 = (base * 4) / 5;2525 }2526 break;2527 }2528 }--------------------------------------------------------------------------------------------------- dhcp6s.c2493–2508 การวนซำ�าของ address หรอ prefix ของ IA จะทำาใหเกด ฟงกชน และ ระบ ระยะเวลาของการใชงาน2510–2527 ถา prefix และ address ท�งหมดน� มระยะเวลาไมส�นสด ท�ง T1 และ T2 ถก Set เปน Infinity (ไมส�นสด) และถาเปนอยางอน T1 Set เวลาเปน 0.5 ซงถอวานอยทสดของ hboxliftime และ T2 น�นถก Set เวลาเปน 0.8 ซงนอยทสดของ lifetime ( แนะนำาใหใชใน [RFC3315] )ตวอย�งหวขอ 4-32 ถง 4-35 คอข�นตอนการสราง IA และการคนคาใหผใช รวมถงการตอบสนองตอการรองขอขอความ และตวอยางของการปรบแตงของ server แสดงในหวขอ 4-30 ( หนา 386 ) และผใชสงการรองขอขอความแสดงในหวขอ 4 – 27 ( หนา 370 ) ขนท 1 ( หวขอ 4-32 ) : ในฟงกชน react_request() , รายการ address ของผใชถกเกบลงในโครงสราง client_conf{} และถกคดลอกลงใน conflict

Page 168: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

รปภ�พท 4-32

ตวแปรเฉพาะจดถง การขอ IA โดยผใชในการรองขอขอความ ในฟงกชน make_ia() ตวแปรเฉพาะตลอดถง list ยอย ของ IA คอข�นตอนแรกของการจบคสงทเขากนของ conflict (2001:db8:ffff::1)ขนตอนท 2 (หวขอ 4 -33 ) รายการใหมสำาหรบความเขากนของ address ทสรางข�นและการใสคาตวแปรลงใน ialist ในฟงกชน make _match_ia() รปภ�พท 4-33

Page 169: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

และ คาใน

conflict น�น จะถกนำาออก จากน�นตวแปรเฉพาะจะถกนำาเขาตอมาไปเกบยง address list ซงยงคงจบคอยใน conflict (2001:db8:ffff::2)ขนตอนท 3 (หวขอ 4-34) : เปนกระบวนการเดมสำาหรบ address ลำาดบทสอง และ conflict จะวางเปลาขนตอนท 4 (หวขอ 4-35) : โครงสร�งทแยกออกม�ของ IA น�นทำาให server แบงผใช เปนการสรางฐานขอมล บนตวแปร IA ทถกเกบไวในตวแปรเฉพาะ และในรายการของ address เรมตน จาก ialist และพวงทายดวยสวนหางของตวแปร relist ซงจะประกอบดวยขอความตอบรบฟงกชน add_binding() และสวนยอยของ make _ia() แสดงในรายการ 4 -103

รปภ�พท 4 – 34

Page 170: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

รปภ�พ ท 4 – 35

Page 171: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ร�ยก�รท 4 – 103

--------------------------------------------------------------------------------------------------------- dhcp6s.c2588 static struct dhcp6_binding *2589 add_binding(clientid, btype, iatype, iaid, val0)2590 struct duid *clientid;2591 dhcp6_bindingtype_t btype;2592 int iatype;2593 u_int32_t iaid;2594 void *val0;2595 {2596 struct dhcp6_binding *binding = NULL;2597 u_int32_t duration = DHCP6_DURATITION_INFINITE;25982599 if ((binding = malloc(sizeof(*binding))) == NULL) {2600 dprintf(LOG_NOTICE, FNAME, "failed to allocate memory");2601 return (NULL);2602 }2603 memset(binding, 0, sizeof(*binding));2604 binding->type = btype;2605 if (duidcpy(&binding->clientid, clientid)) {2606 dprintf(LOG_NOTICE, FNAME, "failed to copy DUID");2607 goto fail;2608 }2609 binding->iatype = iatype;

Page 172: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2610 binding->iaid = iaid;26112612 /* ขอมลโครงสราง สำาหรบ binding น� */2613 switch (btype) {2614 case DHCP6_BINDING_IA:2615 TAILQ_INIT(&binding->val_list);2616 if (dhcp6_copy_list(&binding->val_list,2617 (struct dhcp6_list *)val0)) {2618 dprintf(LOG_NOTICE, FNAME,2619 "failed to copy binding data");2620 goto fail;2621 }2622 break;2623 default:2624 dprintf(LOG_ERR, FNAME, "unexpected binding type(%d)", btype);2625 goto fail;2626 }26272628 /* คำานวณเวลาและเวลาเรมตนใหสอดคลอง */2629 binding->updatetime = time(NULL);2630 update_binding_duration(binding);2631 if (binding->duration != DHCP6_DURATITION_INFINITE) {2632 struct timeval timo;26332634 binding->timer = dhcp6_add_timer(binding_timo, binding);2635 if (binding->timer == NULL) {2636 dprintf(LOG_NOTICE, FNAME, "failed to add timer");2637 goto fail;2638 }2639 timo.tv_sec = (long)duration;2640 timo.tv_usec = 0;2641 dhcp6_set_timer(&timo, binding->timer);

Page 173: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2642 }26432644 TAILQ_INSERT_TAIL(&dhcp6_binding_head, binding, link);26452646 dprintf(LOG_DEBUG, FNAME, "add a new binding %s", bindingstr(binding));26472648 return (binding);26492650 fail:2651 if (binding)2652 free_binding(binding);2653 return (NULL);2654 }----------------------------------------------------------------------------------------------------------------- dhcp6s.c2599–2610 โครงสรางใหมของ binding เปนการแบงเปนสวนซงชนดของ binding ( ตองเปน DHCP6_BINDING_IA ) และชนดของ IA ( IA_NA หรอ IA_PD ) และ IAID ถก Set ในโครงสราง โดยผใชระบ binding เปนแบบคดลอก2612–2626 ตวแปร va10 ควรจะประกอบดวยรายการของ addresses และ prefixes สำาหรบ binding ซงข�นอยกบชนดของ IA และรายการตางๆทเขามาจะถกคดลอกไปท โครงสราง binding (binding stricture)2629–2642   สมาชกของการอพเดทเวลาของโครงสรางจะสรางเวลาข�นมาโดยฟงกชน update _binding_duration() จะคำานวณเวลาทใกลทสดใหกบ IA ซงจะมบางการกระทำาทจะตองนำามาใชงาน สำาหรบท�ง addresses และ prefixes ฟงกชน update _binding_duration() จะสงคาเวลากลบจนกระทงเวลาของการทำางานท�ง addresses และ prefixes หมดเวลา ถาผใชยงทำางานไมเสรจกจะกลบไปทำากระบวนการน�นใหมอกคร�ง ซงในทสด address หรอ

Page 174: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

prefix จะถกนำาออกจาก binding แตท�งสองอยางน�นกมเวลาในตอนเรมตนใกลเคยงกน

ในหวขอท 4-36 แสดงตวอยางของกระบวนการสำาหรบฟงกชน add_binding() จากตวอยางกอนหนาเปนตวอยางทเกดข�นใน วนท 1 กนยายน เวลา 0.00 น. แสดงในหวขา 4-27 ( หนา 427 )

ลำาดบแรก โครงสราง dhcp6_binding{} ถกสราง โดย DUID ของผใช ถกคดลอกจาก server , client _conf และ ชนดของ IA และ IAID ถก คดลอก จากการรองขอขอความจากผใช ( ตวแปรเฉพาะในฟงกชน make _ia() ) ตวแปรเฉพาะ va10 โดยจะแบงออกเปนสวนๆใหกบผใชและรายการขอมลทเขามาจะถก คดลอกและ Set ใน val_list โดยสมาชกของ address จะมอายเวลาทจำากด ( 7 วน ) และเวลาน�จะถก Set ใหกบ binding ซงในทน�จะหมดอายวนท 8 กนยายน เวลา 0.00 น.

เมอทกอยางถกตดต�งเรยบรอย โครงสราง dhcp6_binding{}จะถก เพมเขามาในสวนทายของ binding list ( dhcp6_binding_head ) โดยหวขอ 4 -104 จะแสดง ฟงกชน update _binding() สวนน�คอฟงกชนพ�นฐานทใชงาน โดยมนจะถก Reset และอพเดตใหเปนเวลาปจจบน โดยจะเปนการทำางานจากฟงกชน update_binding_duration()

ร�ยก�รท 4-104------------------------------------------------------------------------------------------- dhcp6s.c2680 static void2681 update_binding(binding)2682 struct dhcp6_binding *binding;2683 {2684 struct timeval timo;26852686 dprintf(LOG_DEBUG, FNAME, "update binding %s for %s",

Page 175: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2687 bindingstr(binding), duidstr(&binding->clientid));26882689 /* อพเดต timestamp และคำานวณเวลาใหม */2690 binding->updatetime = time(NULL);2691 update_binding_duration(binding);26922693 /* ถาเวลาเปนแบบไมส�นสดจะไมมการทำางานใดๆ */2694 if (binding->duration == DHCP6_DURATITION_INFINITE)2695 return;26962697 /* เรมนบเวลาใหม */2698 imo.tv_sec = (long)binding->duration;2699 timo.tv_usec = 0;2700 dhcp6_set_timer(&timo, binding->timer);2701 }--------------------------------------------------------------------------------------------- dhcp6s.cรปภ�พท 4 – 36

Page 176: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

4.5.7 ฟงกชน

react_renew()ฟงกชน react_renew() เปนกระบวนการของฟงกชนท สราง

ขอความใหมจากผใช และ binding ถงขอความใหมทสรางข�นร�ยก�รท 4 -105------------------------------------------------------------------------------------------------------ dhcp6s.c1515 static int1516 react_renew(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)1517 struct dhcp6_if *ifp;1518 struct in6_pktinfo *pi;1519 struct dhcp6 *dh6;

Page 177: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1520 ssize_t len;1521 struct dhcp6_optinfo *optinfo;1522 struct sockaddr *from;1523 int fromlen;1524 struct relayinfolist *relayinfohead;1525 {1526 struct dhcp6_optinfo roptinfo;1527 struct dhcp6_listval *ia;1528 struct host_conf *client_conf;15291530 /* ขอความมการยอมรบ ถง สวนท 15.6 ของ RFC3315 */15311532 /* ขอความตองประกอบไปดวยการระบOption ของ server */1533 if (optinfo->serverID.duid_len == 0) {1534 dprintf(LOG_INFO, FNAME, "no server ID option");1535 return (-1);1536 }1537 /* การระบOption ของ server ตองเขากนไดกบทกสวนการทำางาน */1538 if (duidcmp(&optinfo->serverID, &server_duid)) {1539 dprintf(LOG_INFO, FNAME, "server ID mismatch");1540 return (-1);1541 }1542 /* ขอความตองประกอบไปดวยการระบOption ของ server */1543 if (optinfo->clientID.duid_len == 0) {1544 dprintf(LOG_INFO, FNAME, "no server ID option");1545 return (-1);1546 }

Page 178: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

----------------------------------------------------------------------------------------------------- dhcp6s.c1530–1546 เหตผลทการสรางขอมลใหมตองประกอบไปดวยการระบ Option ของ server และ ยงตองเขากนไดกบ Option ของ server เครองรบดวย ยงไปกวาน�นยงตอง ประกอบไปดวย การระบOption ผใชงาน ถาสงเหลาน�ไมเกดข�น ขอความใหมน �นจะทกละท�งทนท**การสราง Option สำาหรบตอบรบ, การระบผใชงาน, ความนาจะเปนทอาจสงขอความแบบ Unicast**ร�ยก�รท 4-106------------------------------------------------------------------------------------------ dhcp6s.c1548 /*1549 * การ config Option เบ�องตนคอพ�นฐานของการ Option ในการรองขอ1550 */1551 dhcp6_init_options(&roptinfo);15521553 /* การระบOption ของ server */1554 if (duidcpy(&roptinfo.serverID, &server_duid)) {1555 dprintf(LOG_ERR, FNAME, "failed to copy server ID");1556 goto fail;1557 }1558 /* คดลอกขอมลของผใชกลบมา */1559 if (duidcpy(&roptinfo.clientID, &optinfo->clientID)) {1560 dprintf(LOG_ERR, FNAME, "failed to copy client ID");1561 goto fail;1562 }15631564 /* รบ per-host config สำาหรบผใช , ถามหลายอยาง. */

Page 179: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1565 if ((client_conf = find_hostconf(&optinfo->clientID))) {1566 dprintf(LOG_DEBUG, FNAME,1567 "found a host configuration named %s", client_conf->name);1568 }15691570 /* ผลทเกดของกระบวนการทำางาน */1571 if (process_auth(dh6, len, client_conf, optinfo, &roptinfo)) {1572 dprintf(LOG_INFO, FNAME, "failed to process authentication "1573 "information for %s",1574 clientstr(client_conf, &optinfo->clientID));1575 goto fail;1576 }15771578 /*1579 * เมอ server ไดรบขอความใหมแบบ via unicast จาก1580 * ผใช ถง server ใดๆ และเปน Option unicast , server จะ1581 * ท�งขอความรองขอ และตอบสนองรบขอความตอบรบ1582 * ซงประกอบไปดวยสถานะ Option ของ code กบคา UseMulticast ,1583 * การระบOption ของ server จะประกอบไปดวย DUID ของ server , 1584 * การระบOption ของผใช จากขอความของผใช และไมมOption อน ๆ อก1585 * [RFC3315 18.2.3]1586 * (ผลทเกดปจจบนจะไมสง Option unicast.)1587 */1588 if (!IN6_IS_ADDR_MULTICAST(&pi->ipi6_addr) &&1589 TAILQ_EMPTY(relayinfohead)) {

Page 180: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1590 u_int16_t stcode = DH6OPT_STCODE_USEMULTICAST;15911592 dprintf(LOG_INFO, FNAME, "unexpected unicast message from %s",1593 addr2str(from));1594 if (dhcp6_add_listval(&roptinfo.stcode_list,1595 DHCP6_LISTVAL_STCODE, &stcode, NULL) == NULL) {1596 dprintf(LOG_ERR, FNAME, "failed to add a status code");1597 goto fail;1598 }1599 server6_send(DH6_REPLY, ifp, dh6, optinfo, from,1600 fromlen, &roptinfo, relayinfohead, client_conf);1601 goto end;1602 }--------------------------------------------------------------------------------------------------------- dhcp6s.c1548–1602 สวนทเหมอนกนของ ฟงกชน react_request() ( ดไดทสวนท 4.5.5 )

Update Bindings ร�ยก�รท 4-107---------------------------------------------------------------------------------------------------------- dhcp6s.c1604 /*1605 * Locates the client’s binding and verifies that the information1606 * from the client matches the information stored for that client.1607 */1608 for (ia = TAILQ_FIRST(&optinfo->iapd_list); ia;1609 ia = TAILQ_NEXT(ia, link)) {

Page 181: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1610 if (update_ia(DH6_RENEW, ia, &roptinfo.iapd_list, optinfo))1611 goto fail;1612 }1613 for (ia = TAILQ_FIRST(&optinfo->iana_list); ia;1614 ia = TAILQ_NEXT(ia, link)) {1615 if (update_ia(DH6_RENEW, ia, &roptinfo.iana_list, optinfo))1616 goto fail;1617 }-------------------------------------------------------------------------------------------------------- dhcp6s.c1604–1612 สำาหรบ IA_PD ในขอความทสรางข�นใหม (ถามจำานวนมาก) , ฟงกชน update _ia() จะมทอยคลาย binding, มการอพเดตมน , และใสคาอพเดท IA_PD ลงใน return list1613–1617 นอกจากน�น, binding แตละสวนของ IA_NA ทถกอพเดต, และขอมลทถกอพเดตจะเกบลงใน return list

Send Reply (ก�รสงก�รตอบรบ)ร�ยก�รท 4-109-------------------------------------------------------------------------------------------- dhcp6s.c1626 (void)server6_send(DH6_REPLY, ifp, dh6, optinfo, from, fromlen,1627 &roptinfo, relayinfohead, client_conf);16281629 end:1630 dhcp6_clear_options(&roptinfo);1631 return (0);16321633 fail:1634 dhcp6_clear_options(&roptinfo);

Page 182: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1635 return (-1);1636 }----------------------------------------------------------------------------------------------- dhcp6s.c1626–1627 ฟงกชน server6_send() จะสรางขอความตอบรบในการตอบสนอง ตอกระบวนการสรางขอความใหม และสงมนไปยงผใช

4.5.8 ฟงกชน react_rebind() ฟงกชน react_rebind() เปนกระบวนการ ทขอความ Rebind

จากผใชและการอพเดท binding ถงขอความ Rebind ร�ยก�รท 4-110 ------------------------------------------------------------------------------------ dhcp6s.c1638 static int1639 react_rebind(ifp, dh6, len, optinfo, from, fromlen, relayinfohead)1640 struct dhcp6_if *ifp;1641 struct dhcp6 *dh6;1642 ssize_t len;1643 struct dhcp6_optinfo *optinfo;1644 struct sockaddr *from;1645 int fromlen;1646 struct relayinfolist *relayinfohead;1647 {1648 struct dhcp6_optinfo roptinfo;1649 struct dhcp6_listval *ia;1650 struct host_conf *client_conf;16511652 /* ขอความทยอมรบในสวนท 15.7 ของ RFC3315 */16531654 /* ขอความตองประกอบไปดวย การระบOption ของผใชงาน */1655 if (optinfo->clientID.duid_len == 0) {

Page 183: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1656 dprintf(LOG_INFO, FNAME, "no server ID option");1657 return (-1);1658 }16591660 /* ขอความตองไมประกอบไปดวย การระบOption ของผใชงาน */1661 if (optinfo->serverID.duid_len) {1662 dprintf(LOG_INFO, FNAME, "server ID option is included in "1663 "a rebind message");1664 return (-1);1665 }--------------------------------------------------------------------------------------- dhcp6s.c1652–1665 เหตทขอความ Rebind ตองมการระบOption ของผใชงาน ,ซงไมตางจากการสรางขอความใหม,ขอความ Rebind ตองไมประกอบไปดวย การระบOption ของผใชงาน ,ต�งแตมนทำาการสง address แบบ multicast แมวา Server ยงอยในชวงทมระยะเวลาในการสงขอความตอบรบ และถาไมพบความตองการน�น ขอความ rebind จะถกลบท�ง**การสราง Option สำาหรบการตอบรบ , การระบผใช , ความไมคาดหวงของขอความแบบ multicast**

ร�ยก�รท 4-111----------------------------------------------------------------------------------------------- dhcp6s.c1667 /*1668 * การปรบแตง Option ทจำาเปนคอพ�นฐานสำาคญในการทำา Option การรองขอ.1669 */1670 dhcp6_init_options(&roptinfo);1671

Page 184: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1672 /* การระบOption ของ server */1673 if (duidcpy(&roptinfo.serverID, &server_duid)) {1674 dprintf(LOG_ERR, FNAME, "failed to copy server ID");1675 goto fail;1676 }1677 /* คดลอกขอมลของผใชกลบมา */1678 if (duidcpy(&roptinfo.clientID, &optinfo->clientID)) {1679 dprintf(LOG_ERR, FNAME, "failed to copy client ID");1680 goto fail;1681 }16821683 /* ไดรบการ config per-host สำาหรบผใช , ถามจำานวนมาก*/1684 if ((client_conf = find_hostconf(&optinfo->clientID))) {1685 dprintf(LOG_DEBUG, FNAME,1686 "found a host configuration named %s", client_conf->name);1687 }16881689 /* กระบวนการทนาเชอถอ */1690 if (process_auth(dh6, len, client_conf, optinfo, &roptinfo)) {1691 dprintf(LOG_INFO, FNAME, "failed to process authentication "1692 "information for %s",1693 clientstr(client_conf, &optinfo->clientID));1694 goto fail;1695 }------------------------------------------------------------------------------------------ ----- dhcp6s.c

Page 185: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1667–1695 สวนน�เหมอนฟงกชน react_request() ( ดไดในสวนท 4.5.5 )

Update Bindings ร�ยก�รท 4-112---------------------------------------------------------------------------------------- dhcp6s.c1697 /*1698 * ทต�ง binding ของผใช และ การตรวจสอบขอมล1699 * จากการเขากนไดของผใชกบขอมลทเกบไวสำาหรบผใช1700 */1701 for (ia = TAILQ_FIRST(&optinfo->iapd_list); ia;1702 ia = TAILQ_NEXT(ia, link)) {1703 if (update_ia(DH6_REBIND, ia, &roptinfo.iapd_list, optinfo))1704 goto fail;1705 }1706 for (ia = TAILQ_FIRST(&optinfo->iana_list); ia;1707 ia = TAILQ_NEXT(ia, link)) {1708 if (update_ia(DH6_REBIND, ia, &roptinfo.iana_list, optinfo))1709 goto fail;1710 }17111712 /*1713 * ถาสงคากลบ iapd_list ไมมคา, เราไมมความชดเจน1714 * การรเกยวกบเหตทไมไดบงคบใชสำาหรบขอมลของ IA_PD1715 * ในขอความ Rebind , กรณน�เราควรจะเพกเฉย1716 * ตอขอความมากกวาการสงการตอบกลบดวยขอมลทวางเปลา

Page 186: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1717 * ผใช ,ซงอาจจะรบกวนผรบขอมล , อยางไรกตามถาเราม1718 * ขอมลหนงทเปนประโยชน , ไมวาจะเปนทางดานบวกและดานลบ,ซงเปนพ�นฐานเลกนอย1719 * ความเขาใจทชดเจน, เราควรจะตอบรบกบสวนทนาเชอถอได1720 */1721 if (TAILQ_EMPTY(&roptinfo.iapd_list)) {1722 dprintf(LOG_INFO, FNAME, "no useful information for a rebind");1723 goto fail; /* discard the rebind */1724 }-------------------------------------------------------------------------------------------------- dhcp6s.c1697–1710 โดยสวนมากของสวนน�จะคลายกบฟงกชน react_renew() (ดไดทสวนท 4.5.7) , สำาหรบขอความ rebind , อยางไรกตาม , ถาฟงกชน update_ia() ไมสามารถคนหา binding สำาหรบ IA , จงเปนเรองธรรมดาทจะไมสนใจ IA

1712–1724 ถา,มเหตใหตองอพเดตข�นตอนหรอกระบวนการ ,รายการ Option ของ IA_PD กลายเปนวางเปลา , ซงคลายกบฟงกชน update_ia() ทไมสามารถคนหา binding สำาหรบ IA_PD อนๆ , ในขณะน�นขอความ rebind จะถกท�งไป ,พฤตกรรมน�ไมสามารถบรรยายไดอยางชดเจนใน โปรโตคอลเฉพาะ , แตถา Server น�สงการตอบรบดวยรายการ IA_PD ทวางเปลา , ผใชจะขอใหทำาการใสขอความ rebind ใหม (เปนแบบเฉพาะ) โครงการน�ไมตองการทจะให Server อนๆ ซงม binding ตอบสนองเชนกนซงเปนเหตให Server เกดความลาชาในการตอบสนองขอมล ; ผใชจะดำาเนนการสงขอความ Rebind ใหม และ ในทสดแลว IA_PD จะหมดเวลาในการใชงาน , น�ทำาใหเกดผลเฉพาะเหตการณทหลกเลยงการเกดปญหาน� การกระทำาทเหมอนกน ควรจะนำามาใชสำาหรบ Option ของ IA_NA , แตสงน�อาจทำาใหไมเกดผลใดๆ

Page 187: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

การกระทำาทเหมอนกน ควรจะนำามาใชสำาหรบ Option ของ IA_NA , แตอาจไมเกดผลใดๆ . ขอความ Rebind จะประกอบดวยท�ง IA_PD และ Option ของ IA_NA และ Server ยงม bindings ซงใชงานไดเพยงอนเดยวเทาน�น.แต protocol-wise บางตว ตองการทจะใชมน , อยางไรกตามสงน�อาจไมจำาเปนนก, และต�งแต prefix และ address ถกแบงออกเปนสวน ๆ การบรการ ซงปกตมกไมเกดปญหากนระหวาง ผใชและ Server ทเดยวกน

ตง Option Stateless และ สงก�รตอบรบร�ยก�รท 4-113------------------------------------------------------------------------------------------------ dhcp6s.c1726 /* เพมการปรบแตงขอมล*/1727 if (set_statelessinfo(DH6_REBIND, &roptinfo)) {1728 dprintf(LOG_ERR, FNAME,1729 "failed to set other stateless information");1730 goto fail;1731 }17321733 (void)server6_send(DH6_REPLY, ifp, dh6, optinfo, from, fromlen,1734 &roptinfo, relayinfohead, client_conf);17351736 dhcp6_clear_options(&roptinfo);1737 return (0);17381739 fail:1740 dhcp6_clear_options(&roptinfo);1741 return (-1);1742 }----------------------------------------------------------------------------------------------------- dhcp6s.c

Page 188: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1726–1737 ฟงกชนน�ยงคงเหมอน ฟงกชน react_renew() ตอไป , เปนการแสดงการอพเดทฟงกชน update_ia() , ซงเรยกใชจาก react_renew() และ react_rebind() และ อพเดต binding ทเฉพาะ ถง IA เฉพาะ

ก�รรบ Host Configurationร�ยก�รท 4-114---------------------------------------------------------------------------------------- dhcp6s.c1945 static int1946 update_ia(msgtype, iap, retlist, optinfo)1947 int msgtype;1948 struct dhcp6_listval *iap;1949 struct dhcp6_list *retlist;1950 struct dhcp6_optinfo *optinfo;1951 {1952 struct dhcp6_binding *binding;1953 struct host_conf *client_conf;19541955 /* รบการปรบแตง per-host สำาหรบผใช, ถามจำานวนมาก . */1956 if ((client_conf = find_hostconf(&optinfo->clientID))) {1957 dprintf(LOG_DEBUG, FNAME,1958 "found a host configuration named %s", client_conf->name);1959 }----------------------------------------------------------------------------------------- dhcp6s.c1955–1959 ฟงกชน find_hostconf() คนหาการปรบแตง Server เฉพาะสำาหรบขอมลเกยวกบผใช ซงถาพบจะซงใชอางถงฟงกชน calc_ia_timo() ทเปนจดส�นสดของฟงกชน ( รายการท 4-118 หนา 426 )

Page 189: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

สวนน�เปนสวนทเกดมากเกนไป , ต�งแตการเรยกใชฟงกชน ซงควรจะจดเตรยมขอมลและสามารถใชงานผานฟงกชนน�ไดกรณทไมถกตอง : ไมม Binding ร�ยก�รท 4-115------------------------------------------------------------------------------------------------------ dhcp6s.c1961 if ((binding = find_binding(&optinfo->clientID, DHCP6_BINDING_IA,1962 iap->type, iap->val_ia.iaid)) == NULL) {1963 /*1964 * การกระทำาในกรณน� เสนทางทถกนำาออกจะไมสามารถ1965 * คนหาการรองขอ binding ของ router’s IA_PD 1966 * อธบายในสวน RFC3633 สวนยอยท 12.2. มนมาจาก1967 * สวนยอยท 18.2.3 และ 18.2.4 ของ RFC3315, และเปนการต�งคาท�งสอง1968 * ของการกระทำาทเหมอนกน1969 */1970 dprintf(LOG_INFO, FNAME, "no binding found for %s",1971 duidstr(&optinfo->clientID));19721973 switch (msgtype) {1974 case DH6_RENEW:1975 /*1976 * ถา router ไมสามารถคนหา binding lesiy[1977 * การรองขอ router’s IA_PD ถกลบออกจาก router1978 * คนคา IA_PD ประกอบไปดวย1979 * Option สถานะของ code และเซตไมม Binding ในการตอบรบ1980 * ขอความ.1981 */1982 if (make_ia_stcode(iap->type, iap->val_ia.iaid,

Page 190: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1983 DH6OPT_STCODE_NOBINDING, retlist)) {1984 dprintf(LOG_NOTICE, FNAME,1985 "failed to make an option list");1986 return (-1);1987 }1988 break;1989 case DH6_REBIND:1990 /*1991 * ถามการใชงาน prefix แนนอน ซงไม1992 * สำารองมาจากการตดทอนเสนทางของ Router1993 * การปรบแตง , มนอาจสงขอความตอบรบ1994 * router ทรองขอ ประกอบดวย IA_PD กบ1995 * เวลาการใชงาน ของ prefixes ภายใน IA_PD เซตเปน zero.1996 *1997 *ถาไมสามารถกำาหนด,ขอความ Rebind เปน1998 * การท�งไป1999 *2000 * XXX: มนไมเหมอนท�งหมดอยางชดเจน2001 * การปรบแตงทเหมอนกน. ดงน�น, เราจะท�ง2002 * ขอความ2003 */2004 return (-1);2005 default: /* XXX: should be a bug */2006 dprintf(LOG_ERR, FNAME, "impossible message type %s",2007 dhcp6msgstr(msgtype));2008 return (-1);2009 }---------------------------------------------------------------------------------------------- dhcp6s.c1961–1971 ฟงกชน find _binding() มการระบลกษณะของ binding สำาหรบ IA เฉพาะ .สงน�นาจะ สำาหรบตามปกต , แตกสามารถ

Page 191: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ลอมเหลวได ตวอยางเชน ถา Server เสย binding เนองจาก การ reboot หรอ เวลาหมด . การกระทำาในกรณน�ใหเปนคำาจำากดความเฉพาะ [RFC3315] , แต มนควรจะนำาไปใช ตวแทนของ prefix . code น� ไมสามารถเปลยนสงเหลาน�ท�งสองกรณ1973–1988 ถา IA เฉพาะ ในขอความทสรางข�นมาใหม , มนคลายกบวา Server มการแบง IA สำาหรบ ผใช แต ม binding หาย ในกรณน� Option IA (IA_NA หรอ IA_PD) สำาหรบ IA เฉพาะ โดยจะสรางรายการคนคาซงประกอบดวย สถานะ Option ของ code ซง เปน code ทไมม binding ดงน�นผใชจะสงขอความรองขอสำาหรบ IA ทสรางข�นใหม (ดในสวนท 4.4.11)1989–2004 ในทางตรงขาม , ถา IA เฉพาะ ใน ขอความ Rebind ซงเปนสงทยากจะเขาใจ Server ไมสามารถยนยนการแบง IA ให ผใช ( ขอความ Rebind ไมไดประกอบดวย ) และมนไมสามารถกำาหนด address หรอ prefix ซงไมมการแบงสำาหรบผใชเราเพราะวามนไมม binding ทคลายกน ดงน�น ขอความ Rebind เหลาน�จงถกละท�ง โดยไมสามารถกลบมาไดอก

การอพเดต code น� ตองทำาใหเกดความพอใจของการรบ IA การรองขอเฉพาะจากผใชประกอบดวย addresses ท�งหมด ซงเปนผลมาจาก IA ถกสรางใหม หรอ ขอความ Rebind แตมนกไมไดถกกำาหนดไวอยางชดเจน , Server ควรจะตอบสนองถา address บางสวน ใน Server ของ binding ไมไดเปนสวนหนงใน IA

อพเดต IA สำ�หรบผใชร�ยก�รท 4-117-------------------------------------------------------------------------------------------------- dhcp6s.c2020 /* ดแตละขอมลถายงเปนเหตใหมการ renewed. */2021 for (lv = TAILQ_FIRST(&iap->sublist); lv;2022 lv = TAILQ_NEXT(lv, link)) {2023 struct dhcp6_listval *blv;

Page 192: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

20242025 switch (iap->type) {2026 case DHCP6_LISTVAL_IAPD:2027 if  (lv->type!=DHCP6_LISTVAL_PREFIX6)2028 continue;20292030 prefix = lv->val_prefix6;2031 blv = dhcp6_find_listval(&binding->val_list,2032 DHCP6_LISTVAL_PREFIX6, &prefix, 0);2033 if (blv == NULL) {2034 dprintf(LOG_DEBUG, FNAME,2035 "%s/%d is not found in %s",2036 in6addr2str(&prefix.addr, 0),2037 prefix.plen, bindingstr(binding));2038 prefix.pltime = 0;2039 prefix.vltime = 0;2040 } else {2041 prefix.pltime =2042 blv->val_prefix6.pltime;2043 prefix.vltime =2044 blv->val_prefix6.vltime;2045 }20462047 if (dhcp6_add_listval(&ialist,2048 DHCP6_LISTVAL_PREFIX6, &prefix, NULL)2049 == NULL) {2050 dprintf(LOG_NOTICE, FNAME,2051 "failed to copy binding info");2052 dhcp6_clear_list(&ialist);2053 return (-1);2054 }2055 break;2056 case DHCP6_LISTVAL_IANA:2057 if (lv->type != DHCP6_LISTVAL_STATEFULADDR6)2058 continue;2059

Page 193: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2060 saddr = lv->val_statefuladdr6;2061 blv = dhcp6_find_listval(&binding->val_list,2062 DHCP6_LISTVAL_STATEFULADDR6, &saddr, 0);2063 if (blv == NULL) {2064 dprintf(LOG_DEBUG, FNAME,2065 "%s is not found in %s",2066 in6addr2str(&saddr.addr, 0),2067 bindingstr(binding));2068 saddr.pltime = 0;2069 saddr.vltime = 0;2070 } else {2071 saddr.pltime =2072 blv->val_statefuladdr6.pltime;2073 saddr.vltime =2074 blv->val_statefuladdr6.pltime;2075 }20762077 if (dhcp6_add_listval(&ialist,2078 DHCP6_LISTVAL_STATEFULADDR6, &saddr, NULL)2079 == NULL) {2080 dprintf(LOG_NOTICE, FNAME,2081 "failed to copy binding info");2082 dhcp6_clear_list(&ialist);2083 return (-1);2084 }2085 break;2086 default:2087 dprintf(LOG_ERR, FNAME, "unsupported IA type");2088 return (-1); /* XXX */2089 }2090 }----------------------------------------------------------------------------------------- dhcp6s.c

Page 194: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2021–2085 แตละ prefix หรอ address ใน IA เปนการสงเกตทละสวนแลว ถามนยงคงเปนสวนหนงใน binding โดยระยะเวลาการใชงาน ( ซงกคอแบบทวไปของ prefix และ address ) ถก อพเดตดวยตวแปรทถกกำาหนดคาไวใน binding มฉะน�นระยะเวลาทเหลออยจะถกกำาหนดเปน 0 ผลทเกดคอผใชจะไมมอกตอไปก�รสร�งก�รตอบสนองตอ IAร�ยก�รท 4-118------------------------------------------------------------------------- dhcp6s.c2092 memset(&ia, 0, sizeof(ia));2093 ia.iaid = binding->iaid;2094 /* จดสรรสวนทนำามาใชของ T1 และ T2 */2095 calc_ia_timo(&ia, &ialist, client_conf);20962097 if (dhcp6_add_listval(retlist, iap->type,2098 &ia, &ialist) == NULL) {2099 dhcp6_clear_list(&ialist);2100 return (-1);2101 }2102 dhcp6_clear_list(&ialist);2103 }21042105 return (0);2106 }--------------------------------------------------------------------------- dhcp6s.c2092–2102 IA ใหม สำาหรบ binding เฉพาะ ถกสรางดวยการ อพเดตรายการของ prefixes หรอ address จากข�นตอนกอน เวลาของ T1 และ T2 เปน การคำานวณซำ�าดวย prefix ตวสดทาย หรอ address จากฟงกชน calc_ia_timo() โดย IA ใหมน�เปนเหมอน return list

4.5.9 ฟงกชน binding _ timo()

Page 195: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ฟงกชน binding _ timo() เปนสวนทจดการเกยวกบเวลาของ binding , ซงจะเรยกใชมาจาก ฟงกชน server6_mainloop() โดยผานฟงกชน dhcp6_check_timer() และอยางนอยจะตองม address หรอ prefix ของ binding ทหมดเวลาการทำางานแลวจะถกนำาออกไปจาก binding เมอเรยกใชฟงกชนน�ร�ยก�รท 4-119------------------------------------------------------------ dhcp6s.c2738 static struct dhcp6_timer *2739 binding_timo(arg)2740 void *arg;2741 {2742 struct dhcp6_binding *binding = (struct dhcp6_binding *)arg;2743 struct dhcp6_list *ia_list = &binding->val_list;2744 struct dhcp6_listval *iav, *iav_next;2745 time_t now = time(NULL);2746 u_int32_t past, lifetime;2747 struct timeval timo;27482749 past = (u_int32_t)(now >= binding->updatetime ?2750 now - binding->updatetime : 0);27512752 switch (binding->type) {2753 case DHCP6_BINDING_IA:2754 for (iav = TAILQ_FIRST(ia_list); iav; iav = iav_next) {2755 iav_next = TAILQ_NEXT(iav, link);27562757 switch (binding->iatype) {2758 case DHCP6_LISTVAL_IAPD:2759 case DHCP6_LISTVAL_IANA:4.5 Server Implementation 4272760 lifetime = iav->val_prefix6.vltime;2761 break;

Page 196: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2762 default:2763 dprintf(LOG_ERR, FNAME, "internal error: "2764 "unknown binding type (%d)",2765 binding->iatype);2766 return (NULL); /* XXX */2767 }27682769 if (lifetime != DHCP6_DURATITION_INFINITE &&2770 lifetime <= past) {2771 dprintf(LOG_DEBUG, FNAME, "bound prefix %s/%d"2772 " in %s has expired",2773 in6addr2str(&iav->val_prefix6.addr, 0),2774 iav->val_prefix6.plen,2775 bindingstr(binding));2776 TAILQ_REMOVE(ia_list, iav, link);2777 dhcp6_clear_listval(iav);2778 }2779 }27802781 /* ถาตวแปร IA หมดเวลาจะถกเอาออกจาก binding */2782 if (TAILQ_EMPTY(ia_list)) {2783 remove_binding(binding);2784 return (NULL);2785 }27862787 break;2788 default:2789 dprintf(LOG_ERR, FNAME, "unknown binding type %d",2790 binding->type);2791 return (NULL); /* XXX */2792 }27932794 update_binding_duration(binding);2795

Page 197: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2796 /* ถาเวลาไมมส�นสด จะไมมอะไรเกดข�น */2797 if (binding->duration == DHCP6_DURATITION_INFINITE)2798 return (NULL);27992800 /* reset เวลา */2801 timo.tv_sec = (long)binding->duration;2802 timo.tv_usec = 0;2803 dhcp6_set_timer(&timo, binding->timer);28042805 return (binding->timer);2806 }------------------------------------------------------------------------------------------ dhcp6s.cคำ�นวณเวล�ทใชไป2749–2750 ตวแปรกอนหนาเปนการรวมเวลา ซงใชงานมาต�งแตการอพเดตคร�งกอนของ bindingก�รนำ�สวนทหมดเวล�ในก�รใชง�นออก2752–2779 สำาหรบแตละองคประกอบของ binding (address หรอ prefix) ถามนมเวลาการใชงานไมตลอด และส �นกวา หรอ เทากนกบตวแปรกอนหนา, องคประกอบเหลาน�นหากหมดอายการทำางานจะถกนำาออกจาก list2781–2785 ถา binding วางเปลา , มนจะพจารณาตวเองวาหมดเวลาการทำางาน ,ฟงกชน remove _binding() จะทำางานทนท

เรมเวล�ใหม2794–2805 ต�งแต address หรอ prefix บางตวถกนำาออกไป , เวลาในการใชกจะถกเปลยนใหมโดยการคำานวณจากฟงกชน update _binding _duration() และเมอเวลาถกใชไปกจะถกต�งคาเวลาใหมดวยวธเดม

Page 198: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ฟงกชน remove _binding() , แสดงในรายการท 4 - 120 เปนตวอยางในรปแบบทวไป ,ต�งแตข�นตอนการเรมทำางาน และการเกบบนทกขอมลของ binding

ร�ยก�รท 4-120-------------------------------------------------------------------------------- dhcp6s.c2703 static void2704 remove _binding(binding)2705 struct dhcp6_binding *binding;2706 {2707 dprintf(LOG_DEBUG, FNAME, "remove a binding %s",2708 bindingstr(binding));27092710 if (binding->timer)2711 dhcp6_remove_timer(&binding->timer);27122713 TAILQ_REMOVE(&dhcp6_binding_head, binding, link);27142715 free_binding(binding);2716 }--------------------------------------------------------------------------------- dhcp6s.c

4.5.10 ฟงกชน react _release ()ฟงกชน react _release() เปนกระบวนการปลอยขอความจาก ผใช และ เอาออกจาก binding ทใชกบขอความ

ร�ยก�รท 4-121--------------------------------------------------------------------------------------------------- dhcp6s.c1744 static int

Page 199: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1745 react_release(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)1746 struct dhcp6_if *ifp;1747 struct in6_pktinfo *pi;1748 struct dhcp6 *dh6;1749 ssize_t len;1750 struct dhcp6_optinfo *optinfo;1751 struct sockaddr *from;1752 int fromlen;1753 struct relayinfolist *relayinfohead;1754 {1755 struct dhcp6_optinfo roptinfo;1756 struct dhcp6_listval *ia;1757 struct host_conf *client_conf;1758 u_int16_t stcode;17591760 /* ขอความทยอมรบในสวนท 15.9 ของ RFC3315 */17611762 /* ขอความตองประกอบดวย Option เฉพาะของ Server */1763 if (optinfo->serverID.duid_len == 0) {1764 dprintf(LOG_INFO, FNAME, "no server ID option");1765 return (-1);1766 }1767 /*การระบOption ของ Server ตองใชงานไดทกสวน*/1768 if (duidcmp(&optinfo->serverID, &server_duid)) {1769 dprintf(LOG_INFO, FNAME, "server ID mismatch");1770 return (-1);1771 }1772 /* ขอความตองประกอบดวย Option เฉพาะของผใช */1773 if (optinfo->clientID.duid_len == 0) {1774 dprintf(LOG_INFO, FNAME, "no server ID option");1775 return (-1);

Page 200: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1776 }-------------------------------------------------------------------------------------------------dhcp6s.c1760–1776 เหตทการปลอยขอความตองประกอบดวย Option เฉพาะของ Server และตองเขากนไดกบตวรบของ Server ดวย ขอความทปลอยออกมาตองประกอบดวย Option เฉพาะของผใชงาน ถาไมพบการรองขอ และขอความกจะถกท�งไป

สร�ง Option สำ�หรบก�รตอบรบ, ก�รระบผใช, โอก�สทขอคว�มเปนแบบ Unicastร�ยก�รท 4-122------------------------------------------------------------------------------------------- dhcp6s.c1778 /*1779 * การปรบแตงเบ�องตนเปนพ�นฐานของ Option การรองขอ .1780 */1781 dhcp6_init_options(&roptinfo);17821783 /* การระบOption ของ Server */1784 if (duidcpy(&roptinfo.serverID, &server_duid)) {1785 dprintf(LOG_ERR, FNAME, "failed to copy server ID");1786 goto fail;1787 }1788 /* คดลอกขอมลของผใช */1789 if (duidcpy(&roptinfo.clientID, &optinfo->clientID)) {1790 dprintf(LOG_ERR, FNAME, "failed to copy client ID");1791 goto fail;1792 }17931794 /* ไดรบการปรบแตง per-host สำาหรบผใช. */

Page 201: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1795 if ((client_conf = find_hostconf(&optinfo->clientID))) {1796 dprintf(LOG_DEBUG, FNAME,1797 "found a host configuration named %s", client_conf->name);1798 }17991800 /* กระบวนการทำางานตามข�นตอน */1801 if (process_auth(dh6, len, client_conf, optinfo, &roptinfo)) {1802 dprintf(LOG_INFO, FNAME, "failed to process authentication "1803 "information for %s",1804 clientstr(client_conf, &optinfo->clientID));1805 goto fail;1806 }18071808 /*1809 * เมอ Server และปลอยขอความเปน unicast จาก1810 * ผใช ซง Server ไมตองสง Option ของ unicast , Server จะทำาการ1811 * ท�งการปลอยขอความแตละรบผดชอบสวนตอบรบขอความแทน1812 * ประกอบไปดวยสถานะ Option ของ code ดวยการใชคาแบบ multicast , การระบOption ของ Server 1813 * ประกอบไปดวย DUID, 1814 * การระบOption ของผใช จาก จากขอความของผใชเอง1815 * [RFC3315 18.2.6]1816 * (การทำางานปจจบนจะไมเคยการสง Option แบบ unicast.)1817 */1818 if (!IN6_IS_ADDR_MULTICAST(&pi->ipi6_addr) &&1819 TAILQ_EMPTY(relayinfohead)) {

Page 202: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1820 u_int16_t stcode = DH6OPT_STCODE_USEMULTICAST;18211822 dprintf(LOG_INFO, FNAME, "unexpected unicast message from %s",1823 addr2str(from));1824 if (dhcp6_add_listval(&roptinfo.stcode_list,1825 DHCP6_LISTVAL_STCODE, &stcode, NULL) == NULL) {1826 dprintf(LOG_ERR, FNAME, "failed to add a status code");1827 goto fail;1828 }1829 server6_send(DH6_REPLY, ifp, dh6, optinfo, from,1830 fromlen, &roptinfo, relayinfohead, client_conf);1831 goto end;1832 }-------------------------------------------------------------------------------------------------- dhcp6s.c778–1832 ในสวนน�คลายกบฟงกชน react_request() ( ดไดในสวนท 4.5.5 )

Remove Bindingsร�ยก�รท 4-123--------------------------------------------------------------------------------------------- dhcp6s.c1834 /*1835 * ต�ง binding ของผใช และวเคราะหขอมล1836 * จากขอมลทใชงานของผใชจะถกนำาเกบไว1837 */1838 for (ia = TAILQ_FIRST(&optinfo->iapd_list); ia;1839 ia = TAILQ_NEXT(ia, link)) {

Page 203: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1840 if (release_binding_ia(ia, &roptinfo.iapd_list, optinfo))1841 goto fail;1842 }1843 for (ia = TAILQ_FIRST(&optinfo->iana_list); ia;1844 ia = TAILQ_NEXT(ia, link)) {1845 if (release_binding_ia(ia, &roptinfo.iana_list, optinfo))1846 goto fail;1847 }--------------------------------------------------------------------------------------------- dhcp6s.c1834–1842 สำาหรบในแตละสวนของ IA_PD ในการปลอยขอความ , ฟงกชน release_binding_ia() จะสรางคลายกบ binding และนำาออกไป . ถา binding ไมถกพบ เพอใหกบ IA ฟงกชน release_binding_ia() จะสราง Option ของ IA ซงประกอบไปดวยสถานะ Option ของ code ดวย code ของ NoBinding และจะถกเพมใน return list1843–1847 นอกจากน�น , bindind แตละสวนของ IA_NA จะถกเอาออก

ก�รตงสถ�นะของ Codeร�ยก�รท 4-124-----------------------------------------------------------------------------------------------------------dhcp6s.c1849 /*1850 * หลงจาก address ท�งหมดถกดำาเนนการใชไปแลว, Server จะสราง1851 * ขอความตอบรบ อนประกอบดวยสถานะ Option ของ code และคาทใชงานได.

Page 204: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1852 * [RFC3315 Section 18.2.6]1853 */1854 stcode = DH6OPT_STCODE_SUCCESS;1855 if (dhcp6_add_listval(&roptinfo.stcode_list,1856 DHCP6_LISTVAL_STCODE, &stcode, NULL) == NULL) {1857 dprintf(LOG_NOTICE, FNAME, "failed to add a status code");1858 goto fail;1859 }-----------------------------------------------------------------------------------------------------------dhcp6s.c1849–1859 สวน comment ทเหนน�นช�ใหเหนวา สถานะ Option ของ code ทแยกกออกจากกน จะถกเพมลงไปใน ขอความตอบรบ

ก�รสงก�รตอบรบร�ยก�รท 4-125-----------------------------------------------------------------------------------------------------------dhcp6s.c18601861 (void)server6_send(DH6_REPLY, ifp, dh6, optinfo, from, fromlen,1862 &roptinfo, relayinfohead, client_conf);18631864 end:1865 dhcp6_clear_options(&roptinfo);1866 return (0);18671868 fail:1869 dhcp6_clear_options(&roptinfo);1870 return (-1);1871 }----------------------------------------------------------------------------------------------------------dhcp6s.c

Page 205: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1861–1862 ฟงกชน server6_send() สรางขอความตอบรบและสงไปยงผใช , ขอสงเกตทสงไปไมไดประกอบไปดวยการปรบแตงสวนทเพมเขาไปในขอมล , ตวอยางเชน Option ของ stateless

ฟงกชน release_binding_ia() ,แสดงดานลางน� , ถกเรยกใชงานจากฟงกชน react_release()ร�ยก�รท 4-126-------------------------------------------------------------------------------------------------------- dhcp6s.c2108 static int2109 release_binding_ia(iap, retlist, optinfo)2110 struct dhcp6_listval *iap;2111 struct dhcp6_list *retlist;2112 struct dhcp6_optinfo *optinfo;2113 {2114 struct dhcp6_binding *binding;21152116 if ((binding = find_binding(&optinfo->clientID, DHCP6_BINDING_IA,2117 iap->type, iap->val_ia.iaid)) == NULL) {2118 /*2119 * แตละขอความทปลอยออกมา สำาหรบ Server ไมม2120 * ไมมขอมลของ binding , Server จะเพม Option IA เพอใชงาน2121 * IAID จากขอความทปลอยออกมาอนประกอบไปดวยสถานะ Option ของ code2122 * ดวยคา NoBinding ใน Option ของ IA .2123 */2124 if (make_ia_stcode(iap->type, iap->val_ia.iaid,2125 DH6OPT_STCODE_NOBINDING, retlist)) {2126 dprintf(LOG_NOTICE, FNAME,2127 "failed to make an option list");2128 return (-1);2129 }

Page 206: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2130 } else {2131 struct dhcp6_listval *lv, *lvia;21322133 /*2134 *ถา  IA ในขอความคอสวนทอยใน binding ของผใช 2135 * และ addresses ใน IAs ถกใชงานโดย2136 * Server ถง IAs เหลาน� , Server จะลบ address จาก2137 * IAs และสราง addresses สำาหรบใชงาน2138 * ใหกบผใชอนๆ 2139 * [RFC3315 Section 18.2.6]2140 * RFC3633 ใชงานไดบางสวนทคลายกบ IA_PD,2141 * แตสามาถใชงานในสวนลอจกได2142 */2143 for (lv = TAILQ_FIRST(&iap->sublist); lv;2144 lv = TAILQ_NEXT(lv, link)) {2145 if ((lvia = find_binding_ia(lv, binding)) != NULL) {2146 switch (binding->iatype) {2147 case DHCP6_LISTVAL_IAPD:2148 dprintf(LOG_DEBUG, FNAME,2149 "bound prefix %s/%d "2150 "has been released",2151 in6addr2str(&lvia->

val_prefix6.addr,2152 0),2153 lvia->val_prefix6.plen);2154 break;2155 case DHCP6_LISTVAL_IANA:2156 dprintf(LOG_DEBUG, FNAME,2157 "bound address %s "2158 "has been released",2159 in6addr2str(&lvia->

val_prefix6.addr,2160 0));2161 break;

Page 207: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2162 }21632164 TAILQ_REMOVE(&binding->val_list, lvia, link);2165 dhcp6_clear_listval(lvia);2166 if (TAILQ_EMPTY(&binding->val_list)) {2167 /*2168 * ถา binding กำาลงจะวางเปลา 2169 * หยดกระบวนการทำางาน2170 */2171 remove_binding(binding);2172 return (0);2173 }2174 }2175 }2176 }21772178 return (0);2179 }-------------------------------------------------------------------------------------------- dhcp6s.cกรณทไมถกตอง : ไมม binding2116–2129 ถา Server ไมพบ binding เพอใหใชงานกบตวแปรเฉพาะในการปลอยขอมล , มนจะสรางคาทเหมอนกบ Option ของ IA ( IA_NA หรอ IA_PD ) ซงประกอบไปดวยสถานะ Option ของ code ดวย code ของ NoBinding2166–2173 ถา binding วางเปลา , binding จะทำาการปลอยตวมนเองโดยใชฟงกชน remove _binding() (ดไดทรายการ 4-120 , หนา 428 )

4.5.11 ฟงกชน react _informreq() ฟงกชน react _ informreq() คอกระบวนการ ขอขอความขาวสารจากผใชร�ยก�รท 4-127

Page 208: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

--------------------------------------------------------------------------------------------------- dhcp6s.c1873 static int1874 react_informreq(ifp, dh6, len, optinfo, from, fromlen, relayinfohead)1875 struct dhcp6_if *ifp;1876 struct dhcp6 *dh6;1877 ssize_t len;1878 struct dhcp6_optinfo *optinfo;1879 struct sockaddr *from;1880 int fromlen;1881 struct relayinfolist *relayinfohead;1882 {1883 struct dhcp6_optinfo roptinfo;1884 int error;18851886 /*1887 * Option IA ไมอนญาตใหเหนในการรองขอขอความ1888 * ดงน�นขอความควรถกนำาออกไป.1889 * [RFC3315 Section 15]1890 */1891 if (!TAILQ_EMPTY(&optinfo->iapd_list)) {1892 dprintf(LOG_INFO, FNAME,1893 "information request contains an IA_PD option");1894 return (-1);1895 }1896 if (!TAILQ_EMPTY(&optinfo->iana_list)) {1897 dprintf(LOG_INFO, FNAME,1898 "information request contains an IA_NA option");1899 return (-1);1900 }19011902 /* ถาการระบOption ของ Server ตองประกอบไปดวยการเขากนไดของทกอยาง. */

Page 209: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1903 if (optinfo->serverID.duid_len &&1904 duidcmp(&optinfo->serverID, &server_duid)) {1905 dprintf(LOG_INFO, FNAME, "server DUID mismatch");1906 return (-1);1907 }------------------------------------------------------------------------------------------------- dhcp6s.c1886–1900 ถา Option IA (IA_PD or IA_NA ) เปนการประกอบดวยขอความในการรองขอขอมล , ขอความจะถกละท�งไป1902–1907 ขอความการรองขอขอมล อาจจะประกอบดวยการระบOption ของ Server .ถามนทำาได , การระบตองเขากนไดกบตวรบของ Server ดวย ; มฉะน�นขอความจะถกละท�งไป

สร�ง Option สำ�หรบก�รตอบรบร�ยก�รท 4-128--------------------------------------------------------------------------------------------- dhcp6s.c1909 /*1910 * การปรบแตงเบ�องตนเปนพ�นฐานของ Option การรองขอ.1911 */1912 dhcp6_init_options(&roptinfo);19131914 /* การระบOption ของ Server */1915 if (duidcpy(&roptinfo.serverID, &server_duid)) {1916 dprintf(LOG_ERR, FNAME, "failed to copy server ID");1917 goto fail;1918 }19191920 /* คดลอกขอมลของผใช */1921 if (optinfo->clientID.duid_id &&

Page 210: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1922 duidcpy(&roptinfo.clientID, &optinfo->clientID)) {1923 dprintf(LOG_ERR, FNAME, "failed to copy client ID");1924 goto fail;1925 }19261927 /* ต�งขอมล stateless */1928 if (set_statelessinfo(DH6_INFORM_REQ, &roptinfo)) {1929 dprintf(LOG_ERR, FNAME,1930 "failed to set other stateless information");1931 goto fail;1932 }----------------------------------------------------------------------------------------------- dhcp6s.c1914–1925 การระบ Server จะประกอบไปดวย การระบOption สำาหรบการตอบรบขอความ . ถาขอความการรองขอขอมลประกอบไปดวย การระบOption ของผใช , มนจะทำาการคดลอกขอความตอบรบน�นไว1927–1932 ฟงกชน set_ statelessinfo() จะปรบแตง stateless ขอมลใน Option ของโครงสรางสำาหรบการตอบรบขอความ. ถาขอมลถกเรมใหมโดยจะบงคบเวลาใน Server , มนจะประกอบไปดวยขอมล Option การเรมใหมของเวลา

สง Packetร�ยก�รท 4-129------------------------------------------------------------------------------------------------ dhcp6s.c1934 error = server6_send(DH6_REPLY, ifp, dh6, optinfo, from, fromlen,1935 &roptinfo, relayinfohead, NULL);19361937 dhcp6_clear_options(&roptinfo);

Page 211: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1938 return (error);19391940 fail:1941 dhcp6_clear_options(&roptinfo);1942 return (-1);1943 }------------------------------------------------------------------------------------------------- dhcp6s.c1934–1935 ฟงกชน server6_send() จะสรางขอความตอบรบและสงมนกลบไปใหผใชงาน

4.5.12 ฟงกชน server6_send() ฟงกชน server6_send() ทแสดงดานลางน� คอกระบวนการสดทายของ ขอความของ Server โครงสร�งของก�รตอบรบร�ยก�รท 4-130--------------------------------------------------------------------------------------- dhcp6s.c2181 static int2182 server6_send(type, ifp, origmsg, optinfo, from, fromlen,2183 roptinfo, relayinfohead, client_conf)2184 int type;2185 struct dhcp6_if *ifp;2186 struct dhcp6 *origmsg;2187 struct dhcp6_optinfo *optinfo, *roptinfo;2188 struct sockaddr *from;2189 int fromlen;2190 struct relayinfolist *relayinfohead;2191 struct host_conf *client_conf;2192 {2193 char replybuf[BUFSIZ];2194 struct sockaddr_in6 dst;2195 int len, optlen;2196 int relayed = 0;

Page 212: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2197 struct dhcp6 *dh6;2198 struct relayinfo *relayinfo;21992200 if (sizeof(struct dhcp6) > sizeof(replybuf)) {2201 dprintf(LOG_ERR, FNAME, "buffer size assumption failed");2202 return (-1);2203 }22042205 dh6 = (struct dhcp6 *)replybuf;2206 len = sizeof(*dh6);2207 memset(dh6, 0, sizeof(*dh6));2208 dh6->dh6_msgtypexid = origmsg->dh6_msgtypexid;2209 dh6->dh6_msgtype = (u_int8_t)type;---------------------------------------------------------------------------------------- dhcp6s.c2205–2209 ชนดของ packet ตอบรบเปนเหมอนการประกาศ ( คำาตอบทเกดจากการรองขอโดยปราศจาก Option การทำางาน ) หรอการตอบรบขอความ . ID ทดำาเนนการ จะถกคดลอกจากขอความทเหมอนกนจากผใช

ก�รตง Optionsร�ยก�รท 4-131------------------------------------------------------------------------------------------------ dhcp6s.c2211 /* ต�ง Option ในการตอบรบขอความ */2212 if ((optlen = dhcp6_set_options(type, (struct dhcp6opt *)(dh6 + 1),2213 (struct dhcp6opt *)(replybuf + sizeof(replybuf)), roptinfo)) < 0) {2214 dprintf(LOG_INFO, FNAME, "failed to construct reply options");2215 return (-1);2216 }

Page 213: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2217 len += optlen;------------------------------------------------------------------------------------------------- dhcp6s.c2211–2217 ฟงกชน dhcp6_set_options() จะทำาการต�ง Option ในการตอบรบ packet

ก�รเพมขอมลทใชง�นจรงร�ยก�รท 4-132-------------------------------------------------------------------------------------------------- dhcp6s.c2219 /* คำานวณ MAC ถาจำาเปน, และใสลงในขอความ */2220 switch (roptinfo->authproto) {2221 case DHCP6_AUTHPROTO_DELAYED:2222 if (client_conf == NULL || client_conf->delayedkey == NULL) {2223 /* This case should have been caught earlier */2224 dprintf(LOG_ERR, FNAME, "authentication required "2225 "but not key provided");2226 break;2227 }2228 if (dhcp6_calc_mac((char *)dh6, len, roptinfo->authproto,2229 roptinfo->authalgorithm,2230 roptinfo->delayedauth_offset + sizeof(*dh6),2231 client_conf->delayedkey)) {2232 dprintf(LOG_WARNING, FNAME, "failed to calculate MAC");2233 return (-1);2234 }2235 break;2236 default:2237 break; /* do nothing */2238 }

Page 214: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

------------------------------------------------------------------------------------------------- dhcp6s.c2219–2238 ถาการตอบรบขอความตองการ ความนาเชอถอโดย อาจเกดลาชาในโปรโตคอล และการต�งคาสำาหรบผใช , ฟงกชน dhcp6_calc_mac() จะคำานวณ HMAC ของขอความทใชงาน . โดยกระบวนการน�จะเหมอนในสวนของผใช ;รายละเอยดดไดในสวนท 4.44

โครงสร�ง Relay-reply ทเกยวเนองกนร�ยก�รท 4-133--------------------------------------------------------------------------------------------------dhcp6s.c2240 /* โครงสราง Relay ทเกยวเนองกน, ถาจำาเปน */2241 for (relayinfo = TAILQ_FIRST(relayinfohead); relayinfo;2242 relayinfo = TAILQ_NEXT(relayinfo, link)) {2243 struct dhcp6_optinfo relayopt;2244 struct dhcp6_vbuf relaymsgbuf;2245 struct dhcp6_relay *dh6relay;22462247 relayed = 1;2248 dhcp6_init_options(&relayopt);22492250 relaymsgbuf.dv_len = len;2251 relaymsgbuf.dv_buf = replybuf;2252 if (dhcp6_vbuf_copy(&relayopt.relay_msg, &relaymsgbuf))2253 return (-1);2254 if (relayinfo->relay_ifid.dv_buf &&2255 dhcp6_vbuf_copy(&relayopt.ifidopt,2256 &relayinfo->relay_ifid)) {2257 dhcp6_vbuf_free(&relayopt.relay_msg);2258 return (-1);2259 }22602261 /* เราสามารถนำา replybuf มาใชใหมไดทน */

Page 215: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2262 dh6relay = (struct dhcp6_relay *)replybuf;2263 memset(dh6relay, 0, sizeof (*dh6relay));2264 dh6relay->dh6relay_msgtype = DH6_RELAY_REPLY;2265 dh6relay->dh6relay_hcnt = relayinfo->hcnt;2266 memcpy(&dh6relay->dh6relay_linkaddr, &relayinfo->linkaddr,2267 sizeof (dh6relay->dh6relay_linkaddr));2268 memcpy(&dh6relay->dh6relay_peeraddr, &relayinfo->peeraddr,2269 sizeof (dh6relay->dh6relay_peeraddr));22702271 len = sizeof(*dh6relay);2272 if ((optlen = dhcp6_set_options(DH6_RELAY_REPLY,2273 (struct dhcp6opt *)(dh6relay + 1),2274 (struct dhcp6opt *)(replybuf + sizeof(replybuf)),2275 &relayopt)) < 0) {2276 dprintf(LOG_INFO, FNAME,2277 "failed to construct relay message");2278 dhcp6_clear_options(&relayopt);2279 return (-1);2280 }2281 len += optlen;22822283 dhcp6_clear_options(&relayopt);2284 }--------------------------------------------------------------------------------------------- dhcp6s.c2240–2259 ถา relayinfohead ไมวาง , มนเหมอนกบขอความทเปน relay เนองจาก เปนสวนกลางในการทำางานของ relay. Option ใหมพรอมทจะทำางานในตวแปร relayopt , และขอความถกเกบรวมในสวนของ Option ขอความ Relay , ถาขอความ Relay-

Page 216: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

forward อนประกอบไปดวย Option Interface-Id , มนจะสามารถคดลอกลงในตวแปร relayopt. 2261–2269 ขอความ Relay-reply โดยสวนมาก คดลอกมาจากขอความ Relay-forward ทเกบไวในโครงสราง relayinfo{} .hop count (นบจำานวน router ทขอมลผาน) ไมมขอความทเหมอน Relay-reply , แตมนกยงคดลอกขอมลจาก ขอความ Reply-forward , มการอธบายใน [RFC3315]. replybuf ถกคดลอกลงใน Option ขอความ Relay , และบฟเฟอรสามารถนำากลบมาใชสำาหรบขอความ Relay-reply2271–2284 Option การเปลยนของฟงกชน dhcp6_set_options() , ดงน�น Option ของขอมลสามารถปลอย. หวขอ 4-37 และ 4-38 แสดงในตวอยางของข �นตอนสำาหรบขอความทแสดงใน หวขอ 4-31 ( หนา 395 ). ในสวนของการวนซำ�า , ลำาดบแรกขอความ Relay-reply ถกสรางเพอใชในขอความตอบรบ และขอมลถกเกบลงในสวนหวของ relayinfo list ( หวขอ 4-37 )

รปภ�พท 4-37

Page 217: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ลำาดบทสองของการวนซำ�าคลายกระบวนการสำาหรบขอความลำาดบแรกของ Relay-reply ต�งแตการสรางและการใสขอมลลงใน relayinfo list , สงผลใหเกดขอความทสามารถไปใชงานไดจรง ,ซงดไดทหวขอ 4-38

รปภ�พท 4-38

รปภ�พท 4-39

ก�รสง packet

Page 218: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ร�ยก�รท 4-134-------------------------------------------------------------------------------------------------- dhcp6s.c2286 /* กำาหนดปลายทางในการสงขอความตอบรบ */2287 dst = relayed ? *sa6_any_relay : *sa6_any_downstream;2288 dst.sin6_addr = ((struct sockaddr_in6 *)from)->sin6_addr;2289 dst.sin6_scope_id = ((struct sockaddr_in6 *)from)->sin6_scope_id;2290 if (transmit_sa(outsock, (struct sockaddr *)&dst,2291 replybuf, len) != 0) {2292 dprintf(LOG_ERR, FNAME, "transmit %s to %s failed",2293 dhcp6msgstr(type), addr2str((struct sockaddr *)&dst));2294 return (-1);2295 }22962297 dprintf(LOG_DEBUG, FNAME, "transmit %s to %s",2298 dhcp6msgstr(type), addr2str((struct sockaddr *)&dst));22992300 return (0);2301 }--------------------------------------------------------------------------------------------------- dhcp6s.c2287–2300 ถาขอความ relay จากกระทำาของ relay , packet ทตอบสนอง เปนการสงผานพอรตทรจกกนด (UDP port 547); มฉะน�น , มนจะสงผานพอรต (UDP port 546) แทน. ปลายทางของ address ของ packet คอ address ของผใช หรอ address ของ relay น�นจะสงขอความ Relay-forward ถง Server . จากน�น packet จะสงออกไปทขาของ socket

Page 219: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

4.6 อปกรณในก�รถ�ยทอดสญญ�ณ เครองถายทดสญญาณเปนอปกรณททำาการถายทอดสญญาณน�น

ไปดานหนา (รายละเอยดสามารถดไดในรปท 4-40) ซงหลงจากทมการถายทอดสญญาณเกดข�น มนจะทำาการรอขอมล (message) ในฟงกชน replay6_loop() และเมอไดรบขอมลจากฟงกชน replay6_loop()ซงจะเปนการดงเอามาจาก Loop เมอขอมลน�นม 2 subroutines อกอยางฟงกชน relay_to_server() จะเปนตวจดการขอมลจากเครองลกขาย (Client) หรอจากเครองถายทอดอนในพ�นทของการสงสญญาณ

รวมไปถงการทจะทำาการสงขอมลเขาไปยงเครองถายทอดสญญาณทจะตองใชฟงกชน relay_to_server() ดวยตวแปรแบบโกบอล (Global)

ในตารางท 4.8 จะเปนการสรปการใชงานของตวแปรแบบโกบอล (Global) ในเครองถายทอดสญญาณ

4.6.1 ฟงกชน relay6_loop ()เปนฟงกชนหลกของการถายทอดสญญาณ

รปท 4-40

ต�ร�งท 4.8ชอ ประเภท คำ�อธบ�ย

Page 220: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ssock int เปนไฟลทใชในการอธบายชอกเกตสำาหรบสอสารกบเครองแมขายหรอระหวางเครองถายทอดสญญาณกบเครองแมขาย (server)โดยการอาศยโปรโตคอล UDP ทport 546 ซงเครองถายทอดน�นสามารถทจะทำาการต�งคาตำาแหนงทอย(Address)สำาหรบชอกเกตทรจกได

csock int เปนตวทใชในการอธบายการสอสารของเครองลกขายหรอระหวางเครองถายทอดสญญาณไปทเครองลกขาย (Client)โดยอาศยโปรโตคอล UDP ท port 547

sa6_server

struct sockaddr_in6

โครงสรางตำาแหนงทอยของชอกเกตของ port 547 จะทำาการต�ง all_DHCP_server เปน multicast address (ff05::1:3) แตวามนสามารถทจะทำาการต�งคาตำาแหนงแบบ Unicast แบบโกบอลไดซงโครงสรางน�ใชเปนแมแบบสำาหรบตำาแหนงทอยปลายทาง

sa6_client

struct sockaddr_in6

โครงสรางตำาแหนงทอยของชอกเกต UDP Port 546 โครงสรางน�จะใชเปนแมแบบเมอมการสงขอมล DHCPv6 แบบ down stream

ร�ยก�รท 4-135

Page 221: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

464-487 ในลปทไมมทส�นสดตวถายทอดจะทำาการดชอกเกตของเครองลกขาย(Client)และชอกเกตของเครองแมขายโดยระบบน�นจะทำาการเรยกใชฟงกชน select() ซงถา Packet มาถงชองของชอกเกตกจะมการเรยกใชฟงกชน replay6_recv()เพอทจะใชในการประมวลผล Packet น�น

4.6.2 ฟงกชน replay6_recv()ฟงกชน replay6_recv() เปนฟงกชนทอยในระดบลางซงฟงกชน

น�จะทำาการรบ DHCPv6 Packet จากชอกเกตและในขณะเดยวกนกจะทำาการเรยกชนดของขาวสารน�นออกมาร�ยก�รท 4-136

Page 222: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

501-520 ฟงกชน recvmsg() ระบบจะทำาการรน Packet กบขอมลทใชสำาหรบชวยเหลอดงน�นตนทางของ Packet จะเปนตำาแหนงของ IPv6 ดงน�นตำาแหนงทใชตรวจสอบจะตองมตำาแหนงทมากพอร�ยก�รท 4-137

547-550 ถา Packet น�นมขนาดใหญมากจนเกนไปซงมขนาดไมเทากบขนาดทกำาหนดใหไว Packet น�นจะถกท�งไปกระบวนก�รของ Packet ร�ยก�รท 4-139

Page 223: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

561-574 ถา Packet DHCPv6 มาถงทเครองลกขาย(client) และเปน Packet ทไดทำาการรองขอ ,renew ,rebind,หรอแมกระทงเปน Packet ทเปนขอมลสาระสรเทศ มนจะมาจากฝงของเครองลกขายซงจะสงไปยงเครองแมขายหรอเครองถายทอดตวอน ซงถงแมวาอปกรณททำาการต�ง DHCPv6 จะไมรองรบประเภทของขอมลบางชนดแตกไมมปญหากบอปกรณททำาหนาทในการถายทอดเพราะมนไมมความจำาเปนทจะตองอธบายขอมลเหลาน�น575-583 ขอจำากดของ DHCPv6 คอการทไมมการกำาหนด port ไปยงเครองแมขายหรอเครองถายทอดสญญาณแบบ upstream ควรทจะมการสงขอมลตอบกลบเครองถายทอดสญญาณดวย แตอยางนอยทสดสำาหรบขอมลทไมไดทำาการแกไขทจะสงไปทเครองแมขายเครองแมขายกจะทำาการสงขอมลแบบอตโนมต

Page 224: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

Note : ถา Packet ถงเครองแมขายแลวมนกจำาเปนทจะตองมการสงขอมลน�นกลบ ซงถาเปน Packet ทมขนาดเลกไมตรงกบขนาดทบรรจไวมนจะทำาการท�งขอมลน�นทนท ซงการถายทอด- สงกลบขอมลมนจะตองสงไปยงเครองลกขาย

4.6.3 ฟงกชน relay_to_server ()ฟงกชน relay_to_server () จะทำางานโดยเครองลกขายและ

เครองลกขายจะทำาการสงไปยงเครองแมขายหรอทำาการสงผานสอกลางอนไปยงเครองแมขาย ซงสามารถดรายละเอยดไดตามโปรแกรมดานลางร�ยก�รท 4-140

671-674 ซงตำาแหนงทอยของขอมลตนทางน�นจะถกทำาการคดลอกใหกบเครองถายทอดทกเครองในขณะทมการถายทอดขอมลขาวสาร

Page 225: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

706-725 ขอจำากดของ DHCPv6 ของเครองถายทอดสญญาณน�นคอเมอขอมลน�นไดมการสงมาจากเครองลกขาย (ซงไมใชจากเครองถายทอดตวอน) จะทำาการเชอมตอหรอตดตอในตำาแหนงทระบไวเทาน�นซงตำาแหนงทระบในฟลดน�นจะตองเปนตำาแหนงทอยแบบโกบอล (Global)

ถาตวแปรแบบโกบอล global_prefixes เปนตวทเรมตนของการรองขอซงใชโดยเครองถายทอดสญญาณในเวอรชนน�จะถกระบคาความแนนอนคอ 2000::13

สำาหรบลปทมการสงขอมลไปดานหนาจะมความลำาบากมากตอการคนหาตำาแหนงทอยและจะมการแกไขการตดตอภายในซงถาไมใชตำาแหนงทอยทถกตอง(ซงในขณะน�นยงมการสงขอมลอย) ตวสงขอมลหรอเครองถายทอดสญญาณจะทำาการยกเลกการสงขอมลน�นทนทซงการทำางานเชนน�จะดตามความเหมาะสม

แตปญหาน�นกยงคงมอยคอเครองถายทอดสญญาณน�นไมไดมทวโลก ซงในทางทฤษฏแลวเครองถายทอดสามารถทจะทำาการกำาหนด non-link-local-address ซงจะแตกตางจากอปกรณตอเชอมบนเครองแมขายทสามารถแกไข link-local address ทเชอมตอไปยงเครองลกขาย

จะเหนวาในรปท 4-41 จะแสดงเทคโนโลยของเครอขาย A Router จะเปนตวถายทอดสญญาณ DHCPv6 ททำาการเชอมตอกบ PPP ซงอเทอรเนตจะทำาการเชอมตอ DHCPv6 ของเครองลกขายกบ DHCPv6 ของเครองแมขาย

เครองถายทอดสญญาณจะแกไขสวนททำาการตดตอกบ PPP ของมนกบ link-local address แตมนกยงทจะสามารถทำาการเชอมตอกนทวโลกไดโดยการแกไขอเทอรเนต

เมอตวถายทอดสญญาณทำาการรบขอมล DHCPv6 จากเครองลกขายมนจะทำาการท�งขอมลน�นหากการคนหาตำาแหนงน�นลมเหลวรปท 4-41

Page 226: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ขอเสนอแนะหรอขอสงเกต จะเหนวาขอมลทมการเชอมตอน �นจะไมมประโยชนหากมการแกไขไว ซงมนจะดกวาถาอาศยพฤตกรรมของประเภทขอมล DHCPv6

เครองถายทอดสญญาณควรจะมการต�งคาของระบบแตกระน�น admin กตองสามารถทจะทำาการระบการเชอมตอกบตำาแหนงทอยทเหมาะสมไดซงจะตองเปนอสระตอจากตำาแหนงทอยภายในเครองถายทอดสญญาณดวย

ร�ยก�รท 4-142

Page 227: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

727 – 749 ถาขอมลทเรมทำาการถายทอดเปนขอมลททำาการสงไปดานหนาซงบงช�วาขอมลน�นไดสงมาจากเครองอนคอการตรวจสอบผาน HOP วาผานมากตวของแตละขอมล ถาขนาดของ Packet ตำากวาขนาดทกำาหนด (32) มนจะไมสามารถทจะทำาการสงตอไดซง Packet น�นจะทำาการท�งไปทนไป757-766 ฟงกชน dhcp6_set_option () จะตองมการต�งคาของระบบเพอเตรยมการสงขอมลแบบการตอบกลบขอมลไปเรอยๆในรปท 4-42 จะเปนการสรปการสรางการประมวลผลของเครองถายทอดสญญาณโดยอาศยขอมลเดมผานทางโครงสรางขอมลภายในตวเครองถายทอดสญญาณ

Page 228: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ร�ยก�รท 4-143

768-787 sa6_server เปนตวแปรแบบโกบอล(Global)จะทำาหนาทเกบตำาแหนงทอยซงเรมทำางานทฟงกชน ralay6_init() ซงเปนกระบวนการระบตำาแหนงปลายทางของการสง Packet โดยทวไปแลว all_DHCP_Server เปนตำาแหนงทอยแบบ Multicast (ff05::1:3) แตยงสามารถทจะเปนตำาแหนงทอยแบบ Uncast ไดเมอมการต�งคาของคำาสง โดยเมอ sa6_server ถกระบเปน Multicast ในสวนของการเชอมตอทปลายทางจะถกระบเปน IPV6_PKTINFO

Page 229: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

รปท 4-42

สวนตวททำาการเชอมตอจะทำาหนาทในการรบคำาสงวาใครเปนคนททำาการเชอมตอและจะทำาการเกบคาไวทตวแปร relay fid ซงเปนตวแปรแบบโกบอลโดยฟงกชน Make_msgcontrol ฟงกชนจะทำาการต�งคาขอมลเพอจะชวยในการรบคำาสงไวทสวนหวของขาวสาร

Page 230: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

4.6.4 ฟงกชน relay_to_client ()ฟงกชน relay_to_client () ทแสดงในดานลางน�เปนฟงกชนท

เพมข�นโดยการทำางานกนตรงกนขามกบ relay_to_server ซงไดบรรยายไปแลวกอนหนาน�

ร�ยก�รท 4-144

829-851 ฟงกชน dhcp6_init_option() จะทำาการตรวจสอบคาของ Option ของ DHCPv6 ทบรรจระหวาการรบ-ตอบกลบทกระทำาผานทางเครองถายทอดสญญาณ ดงน�นการรบขอมลรวมไปถงการสงขอมลอยาง

Page 231: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

สมบรณไดน�นขอมลจะตองมการบรรจ Option ของการถายทอดใหถกตองมเชนน�นและ Packet น�นจะถกท�ง

ร�ยก�รท 4-145

853-856 เปนข�นตอนของการประมวลผลเพอทำาการตดสนใจในการเชอมตอของเครองลกขายเพอทจะทำาใหขอมลน�นถกสงไปดานหนาโดยทวไปตำาแหนงของปลายทางจะเปนทอยของเครองลกขายทอยใน link-local-Address และจะเหนวาตวเครองถายทอดสญญาณจะไมสามารถทำาการตดสนใจไดวาจะทำาการเชอมตอสำาหรบรบขอมลจากตำาแหนงไหนเพราะตำาแหนงทระบน�นเกดความไมแนนอนข�น857-874 ในการถายทอดขอมลหรอการตอบกลบจำาเปนทจะตองบรรจคา Option ตามปกตเพราะอปกรณทถายทอดสญญาณจะรจกคา

Page 232: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

Option น�ขณะทมนทำางานเพราะเครองแมขายจะทำาการคดลอกคา Option น�ไวเพอตรวจสอบขอมลททำาการตอบกลบมาวามคาตรงกนหรอไมซงสวนใหญในเครองแมขายน�นจะใชฟงกชน if_indextoname() ทำาการตรวจสอบการเชอมตอวามความสมบรณหรอไม875-891 ถาหากเครองแมขายทำาการตอบสนองอยางไมเตมท จะไมสามารถทจะเขาถงสวนทเชอมตอกบ option-id ได อยางไรกตามถงแมวาเครองแมขายจะสามารถทำากรเชอมตอและสงขอมลไดอยางอตโนมต ขอมลททำาการตอบกลบน�นสามารถทจะมการต�งคา Option ไอดได ซงในกรณน�เครองน�จะพยายามทจะระบสวนทจะทำาการเชอมตอใหเหมาะสมในสวนของตำาแหนงทเครองถายทอดสญญาณจะทำาการสงขอมลกลบมา

อยางไรกตามถาตำาแหนงทอยไมไดระบตวฟงกชน getifidfromaddr() จะทำางานโดยการคนหาตำาแหนงทถกแกไขเพอทจะทำาการเชอมตอ893-896 ถาการเชอมตอท�งหมดน�นลมเหลวตวอปกรณถายทอดสญญาณจะยกเลกการสงขอมลทนท

ร�ยก�รท 4-146

Page 233: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

904-933 หากการประมวลผลน�นถกตองเครองถายทอดสญญาณ (option_relaymsg_msg) กจะทำาการถายทอดหรอกระจายขอมลไปใหเครองลกขาย ซงทางดานปลายทางเครองถายทอดสญญาณจะทำาการคดลอก Packet จากสวนของตำาแหนงทอยเดยวกนของการขนถายขอมลทไดทำาการระบการเชอมตอเอาไว ในการเชอมตอทางดาน ipi6_ifinder จะถกจดจำาโดยโครงสราง in6_pktinfo {}

ในรปท 4-43 เปนการสรปกระบวนการถายทอดสญญาณรวมถงการสงขอมลการในลกษณะทเทากนหากมการเชอมตอทสมบรณคา option-id ระบบจะทำาการเรยกวา sendmsg มาใชในการสงขอมล

รปท 4-43

4.7 อปกรณทรบรอง DHCPv6

Page 234: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ในสวนน�เปนการเตรยมอปกรณททำาให DHCPv6 มความนาเชอถอมากทสด ดรปท 4-21 และ 4-29 จะเหนวาเครองลกขายและเครองแมขายจะทำาการเรยกฟงกชน procedd_auth() ของแตละตว เพอสรางความนาเชอถอของขอมลทรบเขามา นอกจากน�แลวเครองลกขายยงมการเรยกใชฟงกชน set_auth() เพอสรางความนาเชอถอสำาหรบขอมลทจะสงออกไปยงปลายทาง

4.7.1 โครงสร�งขอมลททำ�ให DHCPv6 มคว�มน�เชอถอกอนอนในหวขอยอยน�จะทำาการแนะนำาโครงสรางขอมลบางตวทระบ

ความนาเชอถอของ DHCPv6 หลงจากน�นกจะทำาการแสดงตวแปรทแชรระหวางเครองแมขายและเครองลกขาย ซงอปกรณจะทำาการสงขอมลโดยมการระบโปรโตคอลร�ยก�รท 4-147

36-45 โครงสราง authparam{} ถกแสดงในรายการท 4-148 เปนโครงสรางขอมลของเครองลกขายเพอทจะปองกนตวแปรทใชในขณะททำาการรนเพอทจะทำาให DHCPv6 มความนาเชอถอร�ยก�รท 4-148

73-80 3 โปรโตคอลแรก อลกอรทม และวธการทใชในการตรวจพบปองกนขอมลทตอบกลบมา AUTHPARAM

Page 235: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

_FLAGS_NOPREVRD ซงจะหมายถงเครองลกขายทไมมขอมลใดๆเลยเกยวกบการตรวจสอบกระบวนการตอบกลบของเครองแมขาย

ซงอปกรณตวน�จะทำาการตรวจสอบอยตลอดเวลาของขอมลทอยอนดบแรกจากเครองแมขายใน DHCPv6 สดทายตวสมาชก prevrd กจะทำาการบนทกการตรวจสอบการตอบกลบของสญญาณทสงโดยเครองแมขายถา AUTHPARAM_FLAGS_NOPREVRD ทำาการต�งคาตว prevrd กจะไรความหมาย

ในรปท 4-44 จะอธบายถงโครงสรางทกลาวมาทใชในการประมวลผลของเครองลกขายเมอเครองลกขายทำาการเรมกระบวนการ DHCPv6 กบความนาเชอถออนดบแรกเลยคอการสรางโครงสราง authparam{} ในตวของขอมลทใชในการแกไขในสวนของมนเองและต�งคาตวแปรทมความนาเชอถอนอยจำานวนหนงในสวนของขอมลทถกรองขอ หลงจากน�นเครองลกขายกจะทำาการสนบสนนขอมลทมการรบรองซงถกระบโดยเครองแมขายสวนเครองลกขายกจะทำาการระบโครงสรางโดย keyinfo{} ในการต�งคาของการระบขอมลของท�งคแถมยงมการแนบมนลงไปในโครงสราง authparam{}

4.7.2 ฟงกชน set_auth()ฟงกชน set_auth() จะถกเรยกใชโดยฟงกชน client_send()

เพอทจะทำาการต�งคาพรอมกบกำาหนดสถานะของความนาเชอถอของขอมลโดยรวมของระบบ

รปท 4-44

Page 236: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ร�ยก�รท 4-149

2115-2120 ตวแปร authparam จะเปน Non-null แตมนกยงจะตองตรวจเพอความปลอดภยซงมนเปนตวเปนแบบธรรมดา ซงโปรโตคอล อลกอรทม rdm จะถกคดลอกจาก authparam เขาไปในสวนของ Option ของขอมล

ร�ยก�รท 4-150

2126-2136 ซงในขณะน�อปกรณไมไดทำาการสนบสนนความนาเชอถอของ DHCPv6 สำาหรบการรองขอขอมลเพราะวาในการระบโปรโตคอลน�นไมกระจางเทาไรนก เกยวกะบการใชงานมนคลายกบจดททำาการสงออก [DHCP6AUTH]แสดงความนาเชอถอของ Solicit

Page 237: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ร�ยก�รท 4-152

2138-2141 โปรโตคอลทแสดงถงความนาเชอถอทอยในอปกรณน�จะแสดงถงความนาเชอถอในดานระยะเวลาในการสงขอมล ซงจะใชในการรองขอขอมลในสวนของเครองลกขายเทาน �นทจะระบความตองการในการเขาใชงานโปรโตคอลน�ซงไมรวมถงขาวสารสาระสนเทศทอยใน Option เพอแสดงความนาเชอถอน�ต�งความนาเชอถอใหกบตวแปร

ร�ยก�รท 4-153

Page 238: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2143-2148 ถาเงอนไขน�นไมไดระบสำาหรบขอมลน� มนจะหมายความวาเครองลกขายน�นมตวตน ซงไมไดมการรบรองหลงจากทมการระบการรบขอมลแลว

ฟงกชน process_auth() มหลกการทำางานดงตอไปน� เปนอปกรณทไมมการสนบสนนการทำางานในรปแบบน� ปกต key มกจะไมเปนคาวาง2150-2154 ถาเงอนไข (key) ไดสญหายไปหรอมการหมดอายการใชงานความนาเชอถอน�นกจะถกยกเลกไปดวย2156-2161 ฟงกชน get_rdvalue() จะเปนตวททำาหนาทในการตรวจนบขอมลททำาการตอบกลบในอปกรณน�จะมวธการตรวจนบโดยจะสนบสนน 64-bit monotonically เพมตวนบข�น ฟงกชน get_rdvalue() เปนฟงกชนทจะรายงานความเปนจรงใรฃนรป NTP โดยการอาศยรปแบบ timestamp 2163-2175 เงอนไขของ ID และ DHCP จะถกทำาการคดลอกคา Option ตางๆ

4.7.3 ฟงกชน process_auth () (ฝ งเครองลกข�ย)ขบวนการของฟงกชน process_auth () คอมนจะทำาการรวบรวม

ขอมลจากเครองแมขายและทำาการรบขอมลทมความตองการขอมลน�นสงซงเปนขอมลทเปนของแทกรณทขอมลนนไมมคว�มน�เชอถอร�ยก�รท 4-154

Page 239: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

1992-1995 ถาโปรโตคอลเปน Undefined(DHCP6_AUTHPROTO_UNDEF) มนจะสงผลใหขาวสารทรบเขามาน�นไมมการบรรจขาวสารทถกตองซงเครองลกขายจะมตารางในการตรวจสอบดไดในรายการท 4-160

กรณทกระบวนก�รนนไมไดระบร�ยก�รท 4-155

1997-2013 ในกรณน�จะเปนการจดการดานความนาเชอถอของโปรโตคอลในเรองของระยะเวลาถา Option ของความนาเชอถอไมไดมการระบขอมล, อลกอรทม รวมไปถงกระบวนการคนหาการตอบกลบของขอมลหลงจากทมการรบขอมลน�นแลว

กระบวนก�รปองกนก�รตอบกลบร�ยก�รท 4-156

Page 240: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2031-2045 ถ�ในสวนของ key มการต�งคาเรยบรอยแลวมนจะทำาการจบคกบ key ทมการระบขอมล key ID และ Key DHCP ถา key ท�งสองน�นไมมการจบคกนขาวสารหรอขอมลน �นจะถกมองวาไมมความนาเชอถอ2046-2060 ฟงกชน find_key() จะทำาการคนหา key ทต�งไวภายในเครองลกขายของคตวแปรน�นทใชในการรบขอมล ซงถาไมใช key ทอยภายในขอมลน�นมนจะถกมองวาไมมความนาเชอถอและขอมลน�นจะถกเกบไวในโครงสราง authparam{}2062-2067 และถา key น�นหมดอายการใชงานกจะถกมองวาไมมความนาเชอถอเชนกน

คว�มน�เชอถอของขอมลร�ยก�รท 4-158

2070-2079 ถา key น�นยงคงทจะสมบรณแบบอยฟงกชน dhcp6_verify_mac() จะทำาการคำานวณ HMAC ของขอมลทใช key น�นและเมอพสจนวามนจบคกนในขอมลแลวตวแปรทรองรบความนาเชอถอคอมนจะทำาการต�งคาเปน 1 เมอการตรวจสอบน�นเสรจส�นลง

Page 241: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ไมรองรบโปรโตคอลร�ยก�รท 4-159

2082-2085 ถาโปรโตคอลทระบความนาเชอถอน �นถกระบโดยเครองแมขาย เครองลกขายกจะไมรองรบขอมลน�นและจะบอกวาขอมลน�นไมมความนาเชอถอ

ร�ยก�รท 4-160

2088-2098 ถาขอมลน�นถกมองวาไมมความนาเชอถอเครองลกขายกจะมความตองการใช DHCPv6 เพอทจะทำาการสรางความนาเชอถอของขอมลกอนทขอมลน�นจะถกท�ง สงเกตวาอปกรณตวน�จะทำางานทแตกตางกนระหวางกรณท HMAC ทมการพสจนแลวลมเหลว

ในขณะทการระบโปรโตคอลเพอใหเกดความแตกตางกนและยอมทจะใหเครองลกขายยอมรบขอมล/ ปญหาเดยวกนในระยะเวลาทลาชา2099-2103 ถาขอมลน�นถกรองรบวาขอมลน�นมความถกตองสมบรณ ตวทตองการคนหาตวททำาการตอบกลบตวสดทายจะทำาการบนทกเอาไวและ NOPREVRD จะถกลางท�งไปซงเครองลกขายจะทราบกตอเมอตวทคนหาตวสดทายน�นทำาการแจงใหทราบ

Page 242: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

4.7.4 ฟงกชน Process_auth () ฟงกชน Process_auth () ทางดานเครองแมขายเปนฟงกชนทใช

ในการประมวลผล Option รวมไปถงขอมลจากเครองลกขายและการรบขอมลวาเปนขอมลทถกตองและสมบรณ ซงฟงกชนน�จะเมอกบทางดานเครองลกขายแตเฉพาะบางกรณพฤตกรรมของทางดานเครองแมขาย

ในรปท 4-45 เปนการแสดงใหเหนถงการประมวลผลของ DHCPv6 กบอปกรณทางดานเครองแมขายเมอเครองแมขายทำาการรบขอมลจากเครองลกขายมนจะทำาการระบโครงสรางของ Host_conf{} ใหตรงกนสำาหรบเครองลกขายถาขอมลน�นมการระบไวเครองลกขายจะตองใช DHCPv6 และโครงสราง keyinfo{} ซงจะเกยวของกบ Host_conf{} ของเครองแมขายจะทำาการรบรองขอมลน�นวาเปนของจรงและจะทำาการคนคากลบไปยงคย

ในการทจะใหประสบความสำาเรจในการแลกเปลยนขอมล จะตองมการรบรองขอมลวาขอมลน�นถกตองและเปนของจรงโดยใชโครงสรางเหลาน�และเครองแมขายจะทำาการเกบ Track ของการสบคนหาการตอบกลบในโครงสรางของ Host_conf{} สำาหรบการปองกนการตอบกลบของขอมล

เชนเดยวกนกบทางดานเครองลกขายในอปกรณทางดานเครองแมขายจะไมทราบอะไรเลยเกยวกบคา RD ดงน�นคา RD ทเครองแมขายไดเจอในคร�งน�จะมการบนทกไว

ขอมลทปร�ศจ�กคว�มน�เชอถอร�ยก�รท 4-161

Page 243: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2872 – 2880 ถาขอมลทรบมาน�นไมไดบรรจการรบรองขอมลเอาไวเครองแมขายจะทำาการรบและดำาเนนการประมวลผลตอเหมอนกบขอมลทวไป ซงในกรณน�เครองแมขายไดตอบสนองใหขอมลทมการรบรองกอนหนาและขอมลทรบรองวาเปนขอมลจรง

รปท 4-45

ร�ยก�รท 4-162

Page 244: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2882-2896 สงทโปรโตคอลน�คอทำาการสนบสนนในอปกรณน�คอ สนบสนนในเรองของอลกอรทมของ HMAC –MD5 และวธการคนหาการตอบกลบของขาวสารซงเปนการใชงานของ monotonically ซงถามการระบถงสงน�ขาวสารน�นจะถกมองวาไมมความนาเชอถอ

ก�รคนห� Keyร�ยก�รท 4-163

2898-2907 ถาเครองแมขายถกกำาหนดโดยการแชรขอมลทเปนความรบของเครองลกขาย ซงตว key น�นจะถกใชเพอรบรองความถกตองของขอมลไมเชนน�นแลวขอมลน�นจะถกมองวาไมถกตองร�ยก�รท 4-164

Page 245: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2909-2921 อยางไรกตามการระบกไมใชสงทกระจางเสมอไมเกยวกบวาจะใหทำาอะไร ถามการรวมกนของขอมลดงน�นอปกรณน�จะตองมการระบตายตวเกยวกบขอเทจจรงและกระบวนการทำางานร�ยก�รท 4-165

2922 – 2940 สำาหรบขอมลอนทตอจากการรองขอ กระบวนการปองกนของตวตอบกลบของขอมลจะถกทำางานถาเครองแมขายไมมขอความใดๆเกยวกบกระบวนการคนหารวมไปถงกระบวนการนบวาผานตวไหนมาบางจากเครองลกขายมนกจะยอมรบจาก counter ตวไหนกได ซงฟงกชน dhcp6_auth_replaycheck() จะทำาการตรวจสอบพรอมกบปองกนการตอบกลบและถาขอมลน�นถกมองวาไมมความนาเชอถอขอมลน�นจะถกท�งทนทร�ยก�รท 4-166

2942-2949 เมอ Option ของการรองรบขอมลน�นถกเปดข�นใชงานในขอมลทมการรองขอตวอนมนตองทำาการระบขาวสารเพมไมเชนน�นขอมลน�นจะถกท�ง

Page 246: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ร�ยก�รท 4-167

2951-2968 ถา key เปนตวทระบใหกบเครองลกขายมนจะทำาการจบค key ใหกบขอมลน�นไมเชนน�นแลวขอมลจะไมมความนาเชอถอ2970-2975 ถา key สำาหรบเครองลกขายมการหมดอายการใชงานลง ขอมลน�นจะถกมองกลบมาวาไมมความนาเชอถอ

คว�มน�เชอถอของขอมลร�ยก�รท 4-168

Page 247: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

2977-2990 ฟงกชน dhcp6_verify_mac() จะทำาการคำานวณ HMAC ของขอมลโดยการใช key และการจบคของ HMAC ถามนไมไดจบคของขอมล ขอมลจะไมมความนาเชอถอ

ร�ยก�รท 4-169

2993-2995 โปรโตคอล อลกอรทม และกระบวนการคนหาการตอบกลบ จะถกคดลอกจากขอมลททำาการรบมาไปจนถง Option ทตอบกลบของขอมล2997-3003 ฟงกชน get_retvalue () จะจดเตรยมกระบวนการนบของการคนหาการตอบกลบของขอมล3005-3016 key ID และ DHCPv6 จะทำาการคดลอกจากเครองแมขายททำาการต�งคาเอาไวไปจนถงคาของ Option

ร�ยก�รท 4-170

Page 248: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

3021-3027 ถาโปรโตคอลททำาการแสดงถงความนาเชอถอโดยเครองลกขายไมถกสนบสนนขอมลกจะถกท�งเปนตนวา ฟงกชน react_solicit () ท�ง packet เลกๆถา process_auth () สงรายงานกลบมาเปน -1 (ดรปท 4-90 หนา 397)

กระบวนก�รของคว�มน�เชอถอร�ยก�รท 4-171

4.8 กระบวนก�รทำ�ง�นของ DHCPv6ในสวนน�จะทำาการแสดงตวอยางการทำางานของ DHCPv6 โดยการ

ใชอปกรณ KAMF อปกรณน�จะประกอบดวยโปรแกรมดงตอไปน� dhcp6c เปนการจำาลองในสวนของ DHCPv6 ฝงของเครองลกขาย dhcp6s เปนการจำาลอง DHCPv6 ของเครองแมขาย dhcp6 relay ,dhcp6ctl

Page 249: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ซงโปรแกรมตอละตวน�นมหลายฟงกชนหลายคำาสง นอกจากน�dhcp6c และ dhcp6s ตองการไฟลทไดทำาการต�งคาเอาไวซงจะมตวจำานวนมากทระบไปทน�น ถาหากเอกสารทตองการอางถงน�นเสรจสมบรณจะตองทำาการเกบ Option หรอหมายเหตตางๆทต�งไวดวย

ซงในสวนน�จะเกดการอดแนนบนตวอยางของกรณทเปนกรณหลกสำาหรบเอกสารการอางองและการตรวจสอบความสามารถท�งหมดจะถกเขยนไวบนคมอของอปกรณน�

4.8.1 ก�รสร�งอปกรณ DHCPv6DHCPv6 ของ KAME จะถกรวมเขาดวยกน สงน�จะถกสรางผาน

การตดต�งโพรซเดอรของชดคดท�งหมดอยางไรกตามโคดในบทน� จะเปนพ�นฐานของการแยก snapshot จากเวอรชนทใชในบทอน

ดงเชนคำาอธบายของการสรางและการตดต�งโปรแกรมเชนเดยวกบการแยก Packet ทรบเขามาทน�

1. ไปท CD-Rom และคลกท program directory :% gzcat kame-dhcp6-20050509.tgz | tar xf -% cd dhcp6

2. แกไข Packet % ./configure --with-opt-refreshtime=32ซงจะเหนข �นตอนการต�งคา Option ซงจะถกเขยนไวในบทน�และจะเหนวาคา Option น�นจะถกต�งอยางไรเปนแบบทางการหรอไม(32) ฉะน�นมนจะตองทำาการระบอยางชดเจน

3. สราง Packet : % make4. ตดต�ง Packet : %su

% suPassword: (type in the root password)# make installมนจะทำาการตดต�ง Packet ท�งหมดภายใต /usr/local/sbin

4.8.2 ก�รแกไข DUID

Page 250: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

DUID ของเครองลกขายหรอเครองแมขายตางกตองการ DUID สำาหรบกระบวนการทำางานของโปรโตคอลหรอการคำานวณของโปรโตคอล ซง User จะตองไมทำาการแกไข ID เอง: dhcp6c และ dhcp6s จะทำาการสราง type 1 มาใหอตโนมต

DUID(DUID-LLT สวนท 4.2.2) ในการรองขอคร�งแรกมนจะทำาการเกบไวในแฟม /var/db/dhcp6c_duid and /var/db/dhcp6s_duid. ซงม 1 ปญหาทเปนไปไดเกยวกบ DUID คอเครองแมขายอาจจะตองแกไข DUID ของเครองลกขาย ซง DUID ของเครองลกขายจะทำาการรนโปรแกรมในโหมดดบกและยงทำาการด log เมอเครองแมขายทำาการรบขอมลจากเครองลกขายแลว

ตวอยาง เปนตนวาเครองแมขายรบขอมลทรองขอจากเครองลกขายดงตอไปน�

Apr/05/2005 23:16:07: server6_recv: received solicit from fe80::203:47ff:fea5:3085%fxp0Apr/05/2005 23:16:07: dhcp6_get_options: get DHCP option client ID, len 14Apr/05/2005 23:16:07: DUID: 00:01:00:01:09:5f:93:76:00:03:47:a5:30:85

ซงสงน�ไดหมายถง DUID ของเครองลกขายถกแสดงเนองจากเครองแมขายถกแกไขเพอใหมการจดสรรทรพยากรใหม

4.8.3 ก�รแกไข DHCPv6 ของเครองแมข�ยสามารถทจะดไดในรปท 4-30 (หนา 386) ในสวนยอยน�จะทำาการ

เตรยมตวอยางของคาทต�งไวของ dhcp6s ดงทใชในตวอยาง dhcp6s จะตองต�งไวท /usr/local/etc/dhcp6s.conf จะเปนสวนททำาการเกบคำาแนะนำาเกยวกบคาทต�งไวของเครองแมขาย ซงแฟมทต �งไวจะประกอบดวยลำาดบของกำาหนดการซงแตละตวน�นจะถกยกเลกดวยเซมโคลอน ( ; ) กำาหนดการน�นจะประกอบดวยเครองทแยกโดยใชพ�นทวางซงพ�นทวางน�สามารถทจะรวมเขาดวยกนได

Page 251: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

และในบางกรณในการกำาหนดเหตการณจะถกมองวาเปนเครองหมายเดยว โดยเรมทเสนกำากบ # ซงกคอขอความก�รตงค�ของสถ�นะ Host (Per-host Stateful Configuration)

เกยวกบการต�งคาของ Host kame ในรปท 4-30 dhcp6s.conf เปนแฟมทบรรจเสนทางดงตอไปน� host kame { duid 00:01:00:01:09:5f:93:76:00:03:47:a5:30:85; address 2001:db8:ffff::1 86400 604800; address 2001:db8:ffff::2 604800 2592000; }; ซง DUID ของเครองลกขาย ( Client ) จะทำาการสมมตเปน 00:01 :...:30:85 ซงคาททำาการต�งไวน� จะสงผลใหเครองแมขาย ( Server) สามารถทจะทำาการกำาหนดตำาแหนงทอย ( Address) 2 ทอย ตามรปแบบ IPv6 ใหกบเครองลกขาย ( Client ) ทชอ kame โดยมตำาแหนงทอย ( Address ) ดงน� 2001:db8:ffff ::1 และ 2001:db8:ffff ::2 แตมขอกำาหนดในการใชงาน ในตำาแหนงทอยแรก( Address ตวแรก ) จะสามารถใชงานได 1 วนและ 7 วน และในตำาแหนงทอยทสอง ( Address ตวทสอง) จะสามารถใชงานได 7 วนและ 30 วน ชวงเวลาการใชงานจะมหนวยเปน วนาท และในเสนทางการเชอมตอดงตอไปน�จะสงผลใหเครองแมขายสรางตวแทนข�นไวดานหนา 2001:db8:1234::/48 ถงเครองลกขาย (Client) ทชอ usagi (สมมต DUID เปน 00:01:...:f1:9d ) และสามารถใชงานได 30 – 90 วน host usagi { duid 00:01:00:01:09:3c:91:d9:00:e0:18:98:f1:9d; prefix 2001:db8:1234::/48 2592000 7776000;}; สดทาย ในเสนทาง dhcp6s.conf จะเปนตวทไวสำาหรบแกไขคาทต�งไวภายใตเงอนไขใหเครองลกขายใดๆ : option domain-name-servers 2001:db8:9999::35 2001:db8:abcd::35; option domain-name "kame.example";ในตวอยางทแสดงในรปท 4-30 กลาวคอสอง Recursive DNS เปนตำาแหนงทอยของเครองแมขาย (server) และจะทำาการคนหา DNS ดวย

Page 252: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

4.8.4 ก�รแกไข DHCP v6 ของเครองลกข�ย ( Client )จะเหมอนกนกบ dhcp6s ของดานแมขาย dhcp6c จะตองมแฟม

ทต�งคาไวท /usr/local/etc/dhcp6c.conf ซงจะเปนพ�นฐานเชนเดยวกนกบ dhcp6s

ก�รตงค�สำ�หรบจดสรรตำ�แหนงทอยตวอยางการต�งคาตำาแหนงทอยใหกบเครองลกขาย ตามรปแบบ IPv6 interface ne0 { send ia-na 100; }; id-assoc na 100 { };

ค�ทตงไวสำ�หรบตวทสมมตขนบนพ�นฐานแลวการทจะสรางตวสมมตข�นน�นจะเปนตวททำาหนาทแกไขการจดสรรตำาแหนงทอย(Address) IA_PD กบตวแปรจำานวนหนงจะทำาการระบ IA_PD ในสวนของเหตการณสำาหรบการตดตอ โดยตวอยางโดยทวไปของคาทต�งไวของเครองลกขาย (Client) สำาหรบสรางหรอกำาหนดตวแทนหรอตวสมมต: interface tun0 {send ia-pd 200;}; id-assoc pd 200 { prefix-interface ne0 { sla-id 1; };};ในเหตการณของ ID- assoc, pd จะเปนสญญาลกษณทใชในการระบอยท IA_PD และ 200 เปน IAID ซงคอนขางทจะแตกตางจากตวอยางกอนหนาน�คอเหตการณท ID-assoc จะถกบรรจไวทดานหนาของการเชอมตอเหตการณ ซงสงน�เปนสงทจำาเปนเพราะวาในการกำาหนดตวสมมตไวทดานหนาน�น Router จะตองการ (DHCPv6 ของ Client) ใช Subnet ตวสมมตหรอตวแทนทอยดานหนาสำาหรบการเชอมตอภายใน

รปท 4-46 แสดงโทโปโลยสำาหรบการรองขอของ Router ทมการต�งคาไว Router ทตองการจะตองม( อยางนองทสด) สองสวนทเชอมตอ สวนทตดตอ PPP ( tun0) เปนตวทรบการเชอมตอกบ อพลงค ( Uplink) ไปยง Router ทเปนตวแทน ( upstream ) และสวนทตดตอกบ Ethernet , ne0 จะเปนตวทเชอมตอกบเครอขายทอยภายใน

Page 253: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

โดยปกตแลว Router จะเปนตวแทนทใชสำาหรบบลอกของคำาทอยดานหนาทอาจเปน subnet คำาหรอขอมลทอยดานหนา จะมขนาดของขอมล 48 บต (Bits) และยงตองการ Router ทมขนาดของ Subnet ทมากๆ

รปท 4-46

ขอมลทอยดานหนาอาจเปน Subnet เดยวหรอหลาย subnet จะตองมความยาว 64 sla-id เปนเหตการณทระบคำาหรอขอมลทอยดานหนาของ subnet แตละตว โดยสงทเพมเขาไปน�นจะตองมขนาด 16 บต (Bits) เชน 2001:db8:1234::/48 เปนตวทอยดานหนาขนาด 64 บต 2001:db8:1234:1 ::/ 64 จะถกกำาหนดจะถกกำาหนดบนสวนททำาการตดตอกบ ne0

ถาหากคาทต�งไวน�นมความซบซอนมากเราสามารถทจะระบไวได เชนตวอยางน� สำาหรบการรองขอของ Router จะมสองสวนททำาหนาทตดตอกนภายในคอ ne0 และ ne1 ( รปท 4-47 ) คาททำาการต�งไวจะยอมให Router ทตองการ Subnet กบการเชอมตอภายในสามารถดไดจากโปรแกรมตอไปน�

id-assoc pd 200 {

Page 254: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

prefix-interface ne0 {sla-id 1;};prefix-interface ne1 {sla-id 2;};};

คาทต�งไวและตวอยางทแสดง ทางททำาการเชอมตอไปยง ne1 จะมความแตกตางกน 64 บต มคำานำาหนาคอ 2001:db8:1234:2 ::/ 64

Router ทเราตองการน�นสามารถมโทโปโลยทซบซอนแมแตสงทประกอบกบทางเชอมตอภายในททำาการเชอมตอกนผานทาง Router (รปท 4-48) เชนโทโปโลยท Router ตองการไปบอกยง Router ตวอนถงวธการทจะเพม subnet จากตวสมมตหรอตวแทน แตกโชคไมดทสงทกลาวมาขางตนน�นไมสำาคญและเครองมอในปจจบนยงไมมการสนบสนนการทำางานในรปแบบน�

สดทาย เราเตอร(Router) สามารถบอกถงสงทเกยวกบตวสมมตหรอตวแทนทอยดานหนาโดยการระบใน id-assoc ตามคาทไดต�งไวดงตอไปน�

รปท 4-47

Page 255: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

รปท 4-48

ตวอยาง หมายถง Router ตองการระบคำานำาหนา 2001:db8:1234 ::/48 โดยปราศจากชวงเวลาในการใชงานหรอในการมชวตอยของมน

id-assoc pd 200 {prefix 2001:db8:1234::/48 0;...;};

ค�ทตงไวสำ�หรบบรก�รแบบไรสญช�ต( Stateless)

Page 256: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ถาเครองลกขายไมมการกำาหนดตำาแหนงทอย ( Address ) IPv6 หรอคำาทเพมอยดานหนาแตวามนตองการทจะทำาการกำาหนดคาใหม เชน recursive DNS จากตำาแหนงทอยของเครองแมขาย มนสามารถทจะใชขอมลททำาการเรยกและการตอบกลบของขอมล

ซงคาทต�งไวน�จะทำาการระบไววาใหตดตอท ne0 โดยไมจำาเปนทจะเรยกรองขอมลวาจะถกสงเขามาในกรณน�

interface ne0 {information-only;};

ก�รแกไขแฟมสครป( Script )

Dhcp6c จะจดหาตำาแหนงทอย ( Address ) หรอขอมลทอยดานหนาททำาการต�งไวทผานกระบวนการของมนเปนตนวามนจะทำาการตดต�งตำาแหนงทอย ( Address ) IPv6 ทจะเปนตวจดสรรโดยตวของมนเอง

เกยวกบ recursive ตำาแหนงทอย ( Address ) ของ DNS ในเครองแมขายอาจตองการ /etc/resolv.conf เพอทจะขามตำาแหนงทอย ( Address )ทอยภายใตเงอนไขโดยเครองแมขาย ( server ) DHCPv6 หรอตองผานกระบานการทแยกมนออกมา แฟมสครป ถกระบโดยเหตการณสครปโดยจะแสดงตวอยางไดดงตอไปน�

interface ne0 {....

script "/usr/local/sbin/dhcp6c-script";};

4.8.5 ก�รแกไข ตวแทนก�รถ�ยทอดของ DHCPv6 Dhcp6replay ไมตองการแกไขแฟมทต�งไว ตวแปรสามารถทจะ

ระบ Option และบรรทดทเปนคำาสงได

Page 257: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

4.8.6 ก�รแกไข DHCPv6 เพอใหเกดคว�มหน�เชอถอ

เมอ DHCPv6 ถกใชงาน เครองลกขายและเครองแมขายกจะถกแกไขกบ key key น�เปนตวทจะถกระบแฟมททำาการแกไขไว โดยการใช keyinfo

keyinfo kamekey {realm "kame.example";keyid 1;secret

"yHShgx8gdo20EIgxi6oO1w==";};

ชอของ key(kamekey) สตรง(*) จะเปนคำาทระบสำาหรบการคนหาของ keyinfo ซงเปนการระบคาของสตรงของ key โดยไมมผลกระทบตอเครองลกขาย ( Client ) แตจะถกใชงานโดยเครองลกขายทเกยวของกบขอมลของเครองลกขายทไดรบการประมวลผลเรยบรอยซงชอของ key สามารถทจะมความแตกตางกนระหวางเครองแมขาย ( Server ) และเครองลกขาย ( Client )

(***) ผทวเคราะหจะทำาการต�งคาไวในอปกรณ แตจะไมยอมรบตวอกษร(-) ทเปนสวนหนงของตวสตรง

เครองแมขาย (Server ) และเครองลกขาย ( Client ) ตองมการแชรใหกบตวแปรท�งหมดของเหตการณของ keyinfo คา value เหตการณ (statement) จะแชรขอมลทเปนขอมลเฉพาะ ของ BASE-64 ทมการเขารหสเอาไว ถาระบบปฏบตการ มชดของ openssl จะเปนเสนทางทสะดวกมากทจะไดเอาพตของคำาสงตอไปน�

% openssl rand -base64 16ซงมนควรทจะมความชดเจน แตเมอมการแกไขหรอปรบคาใหมของ

แฟมทบรรจ keyinfo แฟมตวน�จะไมทำาการอานไมไดยกเวนการคำานวณ

Page 258: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

ของ DHCPv6 เหมอนกบทไดแสดงในตวอยาง แตไมใชการคำานวณทใชงานจรง

อกนยหนงทเครองแมขาย (Server) กตองการขอมลทเกยวของกบคย (key) ทจะทำาการระบกบเครองลกขาย

ซงตวอยางดงตอไปน� ทแสดงในสวนท 4.8.3 ซงมความหมายวาถาเครองลกขาย (Client) จะทำาการรวมเอาคา Option ทแสดงถงความนาเชอถอสำาหรบโปรโตคอลของขอมลทมการรองขอของขอมล โดย dhcp6s จะกระทำาการรบรองโปรโตคอลสำาหรบขอมลทมการแลกเปลยนกนโดยใช key ทมการต�งชอ key วา kamekey

host kame {duid

00:01:00:01:09:5f:93:76:00:03:47:a5:30:85;

address 2001:db8:ffff::1/128 86400 604800;

address 2001:db8:ffff::2/128 604800 2592000;

delayedkey kamekey;};

4.8.7 ก�รตงค�ควบคมคำ�สงของคย ( keys )เพอทำาการควบคมการทำางานของเครองแมขาย ( Server ) หรอ

เครองลกขาย ( Client ) ผานชองทางสญญาณการควบคม ในขณะทำาการประมวลผลและควบคมคำาสง ( dhcp6ctl ) จะตองมการแชร key ดวย

แฟมคย ( key ) ตองประกอบดวยเสนทางเพยงเสนทางเดยวในการบนทกคาโดยจะตองอยในรป BASE-64 ททำาการเขารหสไว

# openssl rand -base64 16 > /usr/local/etc/dhcp6sctlkey

Page 259: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

(for the server key file)# openssl rand -base64 16 > /usr/local/etc/dhcp6cctlkey(for the client key file)

การควบคมแฟมคย ( key ) ไมไดมากจากเครองลกขายหรอเครองแมขายแตอยางใด ถาหากเราไมตองการทจะควบคมกระบวนการใชในขณะทำาการรนโปรแกรม เราสามารถทจะละเวนการต�งคาโพรซเดอร ซงตามความเปนจรงแลวอปกรณน�จะไมทำาการรองรบกระบวนการทำางานทมากเกนไป จงไดมการจดเตรยมเคาโครงสำาหรบทำาการขยายไปใชในอนาคต เชน ตวอยางการใชคำาสง dhcp6ctl ซงจะไมถกแสดงไวในหนงสอเลมน�

4.8.8 กระบวนก�รบรก�รของ DHCPv6สวนน�จะทำาการบรรยายตวอยางของกระบวนการของหนาทหลกท�ง

สามของ DHCPv6 เชน การจดสรรตำาแหนงทอย การต�งคาตวแทนหรอเพมขอมลเขาไปดานหนา และ การทจะบรการแบบไรสญชาตถาหากมขอมลของ DNS ทเดนทางผานมา ซงจะมการจดเตรยมตวอยางเอาไวสำาหรบใช DHCPv6 เพอทจะทำาการถายทอดคำาสงไปยงปลายทาง

กระบวนก�รจดสรรตำ�แหนงทอย

สมมตวาเครอขายหนงมการจดสรรตำาแหนงทอย ( รปท 4- 49 ) จะมเพยงเสนทางเดยวททำาการเชอมตอไปยงเครองแมขายและเครองลกขายทอยดานใน และจะเหนวาเครองแมขายจะทำาการอยางตอเนองจากเราเตอร ( Router ) ไปยงเครอขายทอยดานนอก

แฟมททำาการต�งคาของเครองแมขายน�น คอ dhcp6s.conf ควรจะเปนดงรปภาพน�

รปท 4- 49

Page 260: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

host kame {duid 00:01:00:01:09:5f:93:76:00:03:47:a5:30:85;address 2001:db8:ffff::1/128 86400 604800;address 2001:db8:ffff::2/128 604800 2592000;};option domain-name-servers 2001:db8:9999::35 2001:db8:abcd::35;option domain-name "kame.example";

นอกจากน�แลว ในจดดานเครองแมขาย ( Server ) จะสงเกตวา Router ทางดานเครองแมขายตองการต�งคาเพอทจะทำาการสงคาทต�งไวน�นไปยง Router

ne0:\:addr="2001:db8:ffff::":prefixlen#64:pinfoflags="l":

กระบวนก�รถ�ยทอดของตวแทน

Page 261: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

สงทงายทสดแตในการใชของกรณ DHCPv6 จะทำาการเชอตอสองทศทางการเชอมตอโดยใชตวแทนการถายทอด ในรปท 4 -51 จะแสดงใหเหนถงประเภทของเครอขาย

ในกรณน� Dhcp6relay จะถกใชดงตอไปน�

Relay# dhcp6relay -r ne1 ne0 –r รปท 4 -52

รปท 4-53

เปน Option ทระบการเชอมตอกบตวถายทอดเพอทจะทำาการสงขอมลไปขางหนา ซงบรรทดทเปนคำาสงทจะบงคบน�น คอ ne0 ซงจะเปน

Page 262: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

สวนทระบการตดตอกบเครองลกขายวามนอยทไหน เมอเครองลกขาย ( Client ) สงขอมล DHCPv6 ไปท ff02::1:2 ตวถายทอดสญญาณกจะทำาการรบ Packet จากสวนททำาการเชอมตอกบ ne0 แลวจะทำาการหอมนแลวทำาการสงขอมลตวเดมไปอกรอบโดยการสงจะทำาการสงขอมลไปดานหนาตามทไดระบตำาแหนงทอยเอาไว โดยสงไปถง ff05::1:3 ซงเปนสวนทตดตอกบ ne1 เพราะวาตวททำาการถายทอดสญญาณและเครองแมขาย ( Server ) เองจะตองอยบนเสนทางการเชอมตอเดยวกน ซงเครองแมขายสามารถทจะทำาการรบและทำาการทวนสญญาณออกไปโดยตรงกได ซงจะเปนการตอบสนองขอมลจากดานเครองลกขาย ( Client )

เมอเครองแมขาย (Server) ตวททวนสญญาณไมแชรเสนทางการเชอมตอใหกน จะทำาใหคาทต�งไวมความซบซอนมากยงข�น ถา IPv6 ไมไดถกบรรจไวในเครองแมขายและเครองทวนสญญาณ dhcp6relay สามารถทจะทำาการแสดงได ซงขอมลทไดจากการฟอรเวรดมาจากเครองทวนสญญาณจะทำาการสงใหเครองแมขายเพอใชกระบวนการคนหาแบบ มลตคาส ถาเครองแมขายมมากกวา Multicast โดเมน เครองแมขาย (Server) จะทำาการรบเขามาแลวทำาการคดลอกขอมลจากเครองทวนสญญาณทรบเขาดงแสดงไวในรปท 4 -52

อกนยหนงถาเครองแมขายและตวทวนสญญาณไมไดแชรเสนทางการเชอมตอ IPv6 แบบ Multicast การคนหาเสนทางจะไมมและตวทวนสญญาณเองกจะถกทำาการแกไขตำาแหนงทอยเปนแบบยนคาสโดยใช Option –S

relay# dhcp6relay -s 2001:db8:abcd::547 ne0( เครองแมขายจะทำาการสมมตใหมตำาแหนงทอยแบบยนคาส คอ 2001:db8:abcd::547)

ในกรณน�ตวทวนสญญาณขอมลใหเดนทางไปดานหนาจะถกสงโดยตรงใหกบเครองแมขาย

Page 263: cpe.rmutt.ac.thcpe.rmutt.ac.th/comnet/_Computer_Network/2551-2/Temp/IPv6... · Web viewDHCPv6 บทนำ การ Configuration อ ตโนม ต เป นค ณสมบ

( Server ) โดยทำาการสงแบบยนคาส และจะเหนวาเครองแมขายกจะทำาการตอบสนองตอขอมลของเครองลกขาย ( รปท 4 -53 )

ซงโดยทวไปแลวเครองแมขายจะทำาการใชตำาแหนงทอยแบบ Multicast สำาหรบสงทความแขงแรงเกนความจำาเปน แตกยงมขอเสยอยคอ การคนหาเสนทางแบบ Multicast ไมไดมตลอดเวลา จงมความจำาเปนทจะทำาการต�งคาตำาแหนงทอยเปนแบบยนคาสเพราะมนมความชดเจนมากในเรองของตำาแหนงทอยอยางเชนในกรณน�