840 likes | 1k Views
บทที่ 4 DHCPv6 . DHCPv6 . จัดทำโดย นาย ศุภ ฤกษ์ ทนงค์ แผง รหัส 115030462018-2 นาย สรายุทธ เหลืองอ่อน รหัส 115030462026-5 นายวัช รพงษ์ เรืองภักดี รหัส 115030462037-2 นายภาณุพงศ์ จันทะวงศ์ รหัส 115030462048-9 กลุ่ม 50346 CPE วิศวกรรมคอมพิวเตอร์
E N D
DHCPv6 จัดทำโดย • นายศุภฤกษ์ ทนงค์แผง รหัส 115030462018-2 • นายสรายุทธ เหลืองอ่อน รหัส 115030462026-5 • นายวัชรพงษ์ เรืองภักดี รหัส 115030462037-2 • นายภาณุพงศ์ จันทะวงศ์ รหัส 115030462048-9 กลุ่ม 50346 CPE วิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเทคโนโลยีราชมงคลธัญบุรี
DHCPv6 4.1 บทนำ (Introduction) การ Configuration อัตโนมัติเป็นคุณสมบัติที่สำคัญของ IPV6 ในบทนี้เราพบ Protocol ซึ่งมีความเกี่ยวข้องกับส่วนนี้ โดยไม่มี addressการConfiguration อัตโนมัติจะมีกลไกและจัดเตรียม address เป็นพื้นฐานให้ routers อย่างไรก็ตามการConfigurationชันอัตโนมัติ ไม่เพียงแต่เป็นการคอนฟิก Address และค่ามาตรฐานของ router แต่รวมถึงการได้รับข้อมูลข่าวสารระดับสูงอื่นทั้งหมด หนึ่งในความสำคัญทั่วไป คือ Address ของการเข้าไปสู่ DNS server เนื่องจากขั้นตอนของ dhcpv6 จะคล้ายกันมาก กับ ipv4 ในเรื่องราวของdhcp บทนี้จะมีการกล่าวถึง เรื่องราวipv4 ของdhcp อย่างเหมาะสม เพื่อหลีกเลี่ยงความสับสน dhcpvจะใช้การกล่าวถึงขั้นตอน ของเรื่องipv4 ในบางกรณีdhcp จะยังคงเป็นที่เคยใช้ แต่มันจะเกี่ยวข้องกับdhcpv6 เสมอ
DHCPv6 4.1 บทนำ (Introduction) ต่อ • เป็นรากฐานของ client - server model • วัตถุประสงค์ของขั้นตอนจะต้องจัดหาข้อมูลเครือข่ายภายนอก • ถ้า client และ server อยู่ในที่ตั้งที่เครือข่ายต่างกันและไม่สามารถติดต่อสื่อสารซึ่งกันและกันได้โดยตรง เนื่องจากขาด address เดิมที่ clientถ่ายทอด เรียกว่าการถ่ายทอดผ่านตัวกระทำส่ง
DHCPv6 4.2.1 กรณีของ DHCPv6 ความแตกต่างที่สำคัญอีกระหว่างdhcpv4 และdhcpv6 คือ • DHCPv6 ไม่ให้ข้อมูลเกี่ยวกับ address ของการเลือก router อัตโนมัติ หรือ ระยะเวลา prefix ของ allocated address • รูปแบบของ DHCPv6 ของข้อมูล configuration ใช้แบ่งแยกทางเลือกที่ไม่มี ความต้องการใช้ protocol • ข้อมูลนี้ไม่สามารถจัดหาเส้นทางโดยการใช้ DHCPv6 ได้เพราะว่า Router Advertisement จัดหาข้อมูลเดิมให้
DHCPv6 Prefix Delegation Prefix delegation ใน ระบบงานนี้ปฏิบัติตาม: เมื่อ CPE และ PE แสดงให้เห็น point-to-point linkPE identifies เป็นเจ้าของ line(โดยคู่ที่เหมือนกับ PPP user name เปรียบเทียบกับฐานข้อมูลของลูกค้า แผนการร่วมกันของ automatic site configuration ใช้ DHCPv6 prefix delegation
DHCPv6 Stateless Services stateless subset สามารถจัดเตรียมรูปแบบที่แตกต่างกันของการ configuration ข้อมูลอื่นๆได้ รวมทั้งรับ DNS server addresses ในส่วนของข้อมูล เป็นการทำให้เป็นมาตรฐาน mechanism ให้ข้อมูลนี้ถึง IPv6 hosts.3
DHCPv6 4.2.2 Definitions about DHCPv6 DHCP Unique Identifier DHCP Unique Identifier (DUID) ที่เปลี่ยนแปลงข้อมูลบ่อยๆ ที่มีการระบุลักษณะเฉพาะแต่ละบุคคลนี่คือสิ่งที่เหมือนกับ client หรือบ่งชี้ถึง server ใน DHCPv6 แต่แบบแผนที่แน่นอนจะดีกว่า ลักษณะเฉพาะที่บ่งชี้ในระหว่าง clients และ servers ทั้งหมด DHCPv6 DUID ส่วนใหญ่การเปลี่ยนแปลงข้อมูลในตำแน่งของ DHCPv6 ที่มีส่วนเกี่ยวข้องกับข้อความ สิ่งนั้นคือการเปรียบเทียบ DHCP client หรือ server ที่สามารถทำสอง DUIDs เพื่อพิสูจน์ตรวจสอบถ้าพวกมันเท่ากัน
DHCPv6 4.2.3 DHCPv6 Message Exchanges
DHCPv6 4.2.3 DHCPv6 Message Exchanges (ต่อ)
DHCPv6 Message Retransmission messages สามารถที่จะสูญเปล่า ในกรณีนี้ ผู้รับintendedของ message อาจลดลงและไม่สามารถรับmessageได้ ผู้ริเริ่มในการเปลี่ยน DHCPv6 โดยปกติเป็นclient อาจจำเป็นที่จะต้องส่ง message ใหม่ ดังนั้นจึงต้องใช้ตัวแปรควบคุมคือ • IRT Initial retransmission time • MRC Maximum retransmission count • MRT Maximum retransmission time • MRD Maximum retransmission duration
DHCPv6 การแลกเปลี่ยนข่าวสาร
DHCPv6 การแลกเปลี่ยนสำหรับการแบ่ง Address client เริ่มการแลกเปลี่ยน DHCPv6 เพื่อแบ่งส่วน address กับ Solicit message กำหนด IA_TA หรือ IA_NA เพื่อว่าสิ่งไหน client ต้องการไป configure addresses A B
DHCPv6 การเริ่มใหม่ของ Address แต่ละ IA_NA เก็บไว้ด้วยใน Request message ประกอบไปด้วย ตัวแปร T1 และ T2 อันไหนที่ควบคุมผ่าน IA เวลาของการเริ่มกระบวนการใหม่
DHCPv6 Server-initiated Exchanges DHCPv6 exchanges ปกติจะเริ่มโดย client แต่บางกรณี server อาจต้องการบอก ถึงความต้องการแลกเปลี่ยนใหม่ไปที่ client
DHCPv6 Server-initiated Exchanges Server-initiated Exchanges จะมีรูปแบบการแลกเปลี่ยนดังนี้ • Exchanges for the Stateless Services • • Exchanges with Authentication • • Exchanges with Relay Agents
DHCPv6 4.2.4 Summary of DHCPv6 Options • ข้อกำหนดต่างๆของการกำหนด option ของDHCPv6 จะมีอยู่หลายรูปแบบดังนี้ Client Identifier Option Code: 1 Length: n Data: client DUID (n bytes) ClientIdentifier option เก็บค่าข้อมูลที่แปรปรวนคลุมเครือ อันที่ควรจะ เป็นหนึ่งเดียวที่ชี้ client โดยเฉพาะ
DHCPv6 Server Identifier Option Code: 2 Length: n Data: server DUID (n bytes) Identity Association for Non-temporary Addresses (IA_NA) Option Code: 3 Length: n Data: IAID (4 bytes) T1 (4 bytes) T2 (4 bytes) IA_NA options (n−12 bytes)
DHCPv6 Identity Association for Temporary Addresses (IA_TA) Option Code: 4 Length: n Data: IAID (4 bytes) IA_TA options (n − 4 bytes) 1 IA Address Option Code: 5 Length: n Data: IPv6 address (16 bytes) preferred-lifetime (4 bytes) valid-lifetime (4 bytes) IAaddr-options (n − 24 bytes)
Preference Option Code: 7 Length: 1 Data: 8-bit integer Elapsed Time Option Code: 8 Length: 2 Data: 16-bit integer Relay Message Option Code: 9 Length: n Data: relay message (n bytes)
DHCPv6 Authentication Option Code: 11 Length: n Data: protocol (1 byte) algorithm (1 byte) replay detection method (RDM) (1 byte) replay detection information (8 bytes) authentication information (n − 11 bytes) Server Unicast Option Code: 12 Length: 16 Data: a unicast IPv6 address of the server
DHCPv6 Rapid Commit Option Code: 14 Length: 0 Data: none • Status Code • Option Code: 13 • Length: n • Data: status-code (2 byte) Vendor Class Option Code: 16 Length: n Data:enterprise-number (4 bytes) vendor-class-data (n − 4 bytes) User Class Option Code: 15 Length: n Data:user-class-data (n bytes)
DHCPv6 • Vendor-specific Information • Option Code: 17 • Length: n • Data: enterprise-number (4 bytes) • option-data (n − 4 bytes) Interface-Id Option Code: 18 Length: n Data: interface-id (n bytes) Reconfigure Message Option Code: 19 Length: 1 Data: 5: Renew message Reconfigure Accept Option Code: 20 Length: 0 Data: none
DHCPv6 DNS Recursive Name Server Option Code: 23 Length: 16 * number of addresses Data: list of IPv6 addresses Domain Search List Option Code: 24 Length: n Data: n characters (list of domain names) Identity Association for Prefix Delegation (IA_PD) Option Code: 25 Length: n Data: IAID (4 bytes) T1 (4 bytes) T2 (4 bytes) IA_PD options (n − 12 bytes)
DHCPv6 IA_PD Prefix Option Code: 26 Length: n Data: preferred-lifetime (4 bytes) valid-lifetime (4 bytes) prefix-length (1 byte) IPv6-prefix (16 bytes) IA-prefix options (n − 25 bytes) Information Refresh Time Option Code: 32 Length: 4 Data: 32-bit integer
DHCPv6 4.2.5 ปฏิกิริยาของสิ่งที่พบใกล้เคียงกัน • [RFC2461] และ [RFC2462] แสดงให้เห็นถึงปฏิกิริยาระหว่างโปรโตคอล ใกล้เคียงที่พบ และ DHCPv6 4.2.6 เปรียบเทียบ DHCPv4 เป็นการเปรียบเทียบระหว่าง DHCPv4 และ DHCPv6 โดยเปรียบเทียบกันในส่วนต่างๆ คือ • • การจัดสรรข้อความแบบ multiple addresses• การแยกชนิดของข้อความ • • การกำหนด option
DHCPv6 4.3 code แนะนำ เป้าหมายของ code คือ 20050509 ซึ่งเป็นเวอร์ชันของ KAME snapshots เวอร์ชันใหม่เพื่อให้มาตรฐานของโปรโตคอล DHCPv6 สมบูรณ์ขึ้น 4.3.1 โครงสร้างของข้อมูลทั่วไปและข้อมูลที่ใช้ประจำ โครงสร้างของข้อมูลทั่วไปที่ต่างกัน ที่ถูกใช้โดยผู้ใช้และ relay และรวมถึงโครงสร้างที่ถูกใช้เป็นประจำโดยแสดง ดังตาราง
4.4การทำให้เกิดผล Client การอธิบายคร่าวๆของส่วนที่เจริญเติบโตจากโครงสร้างใหญ่ client
DHCPv6 4.4.1 โครงสร้างข้อมูลclient clientspecifies กำหนด แบ่งออกเป็น 2 desired addresses client สามารถทำกำหนด addresses ใน IA เดี่ยวๆได้เช่นกัน แต่ในขณะนั้น client อาจจะได้รับเพียง address เท่านั้น เพราะว่า addresses โดยเฉพาะใน Solicit message สามารถใช้ได้ โดย server แค่เกริ่น server อาจจะไม่คำนึงถึงหมายเลข addresses specified เท่าๆกัน โดยกำหนด multiple IAsclient ร้องขออย่างชัดเจนของ addresses หลายๆอย่าง (แม้แต่กระนั้น addresses ที่แท้จริงอาจจะหลากหลายจากความต้องการหนึ่งๆ)
DHCPv6 4.4.2 client6_mainloop() Function ทันทีที่ DHCPv6 client ทำการ configuring ตัวมันเองเสร็จ มันเข้าไปมีส่วนร่วม client6_mainloop() function อันที่ loops ไม่มีข้อกำหนด จัดการควบคุม DHCPv6 protocol ทั้งหมด 4.4.3 client6_timo() Function client6_timo() function กำลังติดตาม กิจวัตรประจำของ client สิ่งที่สัมพันธ์กันโดยปกติ คือข้อมูล ระหว่าง client และ serverแลกเปลี่ยนของการขอร้องและ การตอบสนอง messages และ ยืดเวลาการสุ่มปัจจัยที่จำเป็นสำหรับ message แรก หรือ ส่ง messages การตั้งเวลาใหม่
DHCPv6 เช่นเดียวกัน addresses ใน Request message (2001:db8:ffff::1 and 2001:db8:ffff::2) ไม่ถือเป็นส่วนหนึ่งในรายการ client 's configuration หรือ ใน Solicit message client ควรจะนิ่งรับข้อเสนอ ตั้งแต่ addresses ใน Solicit message เพียงแค่เกริ่น ให้แก่ server และมันทำให้เป็นของแท้ เพื่อที่ server จะได้จัดสรร addresses ที่ต่างกัน • เป็นตัวอย่างที่เป็นไปตามที่สร้างขึ้น พร้อมจะทำตาม server แต่ละ IA ใน Advertise message นั่น ไม่ถือเป็นส่วนหนึ่งของกลุ่มที่คล้ายกับ Solicit message
DHCPv6 4.4.4 client6_send() Function เลียนแบบฟังก์ชัน client6_send() มันส่ง DHCPv6 message ไปที่ server หรือ หลายๆ servers message type ขึ้นอยู่กับ argument เช่น • Set Message Type • Select Transaction ID • Set Options • Authenticate Message • Encode Options • ส่ง Packet
DHCPv6 4.4.5 ฟังก์ชัน client6_recv() ฟังก์ชัน client6_recv() ดำเนินการ received DHCPv6 messages และส่ง message-specific ออกไป เช่น • Receive Packet • Identify the Local Configuration • Initial Process • Dispatch Subroutine
DHCPv6 4.4.6 client6_recvadvert() Function ฟังก์ชัน client6_recvadvert() ควบคุม messages ที่ประกาศว่ามาถึง เช่น • Find the Event • Packet Validation • Process Authentication • Check the Case of No Prefix or Address • Unexpected Advertise • Remember the Server • Immediate Request • Reset Timer
DHCPv6 4.4.7 ฟังก์ชัน client6_recvreply() ฟังก์ชัน client6_recvreply() ประมวลผล DHCPv6 Reply messages ในการตอบสนอง messages ต่างๆ ที่ client ส่ง • Initialization and Validation • Process Rapid Commit Case • Process Status Codes • Process Stateless Options • Setup Refresh Timer • Process State full Information • Release Completion
DHCPv6 4.4.8 Processing Identity Association อีกหนึ่งส่วนที่สำคัญมาก หน้าที่ของ DHCPv6 คือจัดการ configuration resources allocated โดย server อันที่สัมพันธ์กัน พร้อมด้วย Identity Associations (IAs) Figure 4-26 สรุปสถานะ การส่งผ่านของ IA ลูกศรแต่ละอันแสดง สถานะ การส่งผ่านที่สัมพันธ์กัน กับ label representing เพราะ event นี้ทำให้เกิดการส่งผ่านและการกระทำนั่นเกิดขึ้นสำหรับการส่งผ่าน สำหรับตัวอย่าง ลูกศรจาก ACTIVE to RENEW เป็นวิธีเมื่อ
DHCPv6 4.4.9 update_ia() Function ฟังก์ชัน update_ia() ติดต่อจาก client6_recvreply() ประมวลผล IAs ใน DHCPv6 reply message เช่น • Identify Local Configuration • Parameter Validation • Find or Make a Local IA • Record Authentication • Update Configuration Information • Adjust Timeout Parameters • Reset Timer • Become Active
DHCPv6 4.4.10 update _address() Function ฟังก์ชั่น update _address() จะเป็นการเรียกการทำงานมาจาก update _ia() หรือ การเรียกข้อมูลที่เหมือนกันกับแอดเดรสใน IA_NA โดยจะทำงานคล้ายๆกันกับฟังก์ชั่น update _prefix() ในหัวข้อที่4.4.9 ตั้งแต่การตกลงในโพรโตคอล DHCPv6 ซึ่งเกือบจะเหมือนกันแต่ในส่วนนี้จะให้ความสำคัญกับดารแบ่งส่วนของแอดเดรส
DHCPv6 รายละเอียดของฟังก์ชั่น update _address() • ระยะเวลาในการให้เหตุผล • การสร้างโครงสร้างของส่วนควบคุม • การสร้างโครงสร้างของแอดเดรส • การตั้งค่าอัพเดทตัวแปรแอดเดรส • การ Configure แอดเดรส • การสร้างหรือการอัพเดทเวลา
DHCPv6 4.4.11 reestablish _ia() Function • ฟังก์ชั่น reestablish _ia() จะใช้ในการเรียกฟังก์ชั่น update _ia() เมื่อ sever ประกอบด้วยสถานะ การเข้ารหัส • สภาพ Check • การลบทิ้งของข้อมูลเก่า • การสร้างเหตุการณ์ • การตั้งค่า Authentication Parameters • การ Reset เวลา • การส่ง Packet
DHCPv6 4.4.12 ia_timo() Functionฟังก์ชั่น ia_timo() ที่ใช้ในการจัดการเรื่องของเวลา จาก IA ซึ่งรักษาเอาไว้ในเครื่องลูกข่าย และจะทำการเรียกฟังก์ชั่น dhcp6_check_timer() เมื่อ IA จะทำการอัพเดท Renew or Rebind message • การเปลี่ยนแปลงของสถานภาพ • การสร้างเหตุการณ์ • การ Reset เวลา
DHCPv6 4.4.13 Release Resourcesบนสัญญาณ SIGTERM ที่ได้รับการยอมรับ หรือส่วนควบคุมที่ได้รับการควบคุมจากช่องทางการควบคุม เครื่องลูกข่ายที่ถูกปลดออกจากการควบคุมข่าวสาร จะนำส่วนที่จัดสรรไว้ส่งออกมาเป็น Release messages โดยฟังก์ชั่น release _all_ia() • การสร้างเหตุการณ์ • การ Reset เวลา • การตั้งค่าตัวแปร authentication • การส่ง packet
DHCPv6 4.5 Server Implementation
DHCPv6 4.5.1 server6_mainloop() Function เป็นฟังก์ชั่นอย่างง่ายโดนที่แต่ละการวนของลูปนั้นจะทำแบบไม่มีที่สิ้นสุด ฟังก์ชั่น dhcp6_check_timer()จะใช้ในการตรวจสอบเรื่องของเวลาของแต่ละส่วนที่สัมพันธ์กันกับฟังก์ชั่น โดยที่ sever จะทำการเฝ้าดูข้อมูลจนกระทั่งข้อมูลของ DHCPv6 มาถึงฟังก์ชั่น server6_recv() จะทำการเรียกขั้นตอนการดำเนินงานของข้อมูล
DHCPv6 4.5.2 server6_recv() Function ฟังก์ชั่น server6_recv() จะทำแสดงในรายการที่ 4-77 โดยที่ประเด็นการดำเนินงานนั้น จะมีข้อมูลในการดำเนินงานใน DHCPv6 จากเครื่องแม่ข่าย • Receive Message • Identify the Interface • Initial Validation • Process Relay-forward Message • Parse Options • Process Message • Cleanup