4 dhcpv6 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
????? 4 DHCPv6 PowerPoint Presentation
Download Presentation
????? 4 DHCPv6

Loading in 2 Seconds...

play fullscreen
1 / 82

????? 4 DHCPv6 - PowerPoint PPT Presentation


  • 122 Views
  • Uploaded on

บทที่ 4 DHCPv6 . DHCPv6 . จัดทำโดย นาย ศุภ ฤกษ์ ทนงค์ แผง รหัส 115030462018-2 นาย สรายุทธ เหลืองอ่อน รหัส 115030462026-5 นายวัช รพงษ์ เรืองภักดี รหัส 115030462037-2 นายภาณุพงศ์ จันทะวงศ์ รหัส 115030462048-9 กลุ่ม 50346 CPE วิศวกรรมคอมพิวเตอร์

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '????? 4 DHCPv6' - verena


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
dhcpv6
DHCPv6

จัดทำโดย

  • นายศุภฤกษ์ ทนงค์แผง รหัส 115030462018-2
  • นายสรายุทธ เหลืองอ่อน รหัส 115030462026-5
  • นายวัชรพงษ์ เรืองภักดี รหัส 115030462037-2
  • นายภาณุพงศ์ จันทะวงศ์ รหัส 115030462048-9

กลุ่ม 50346 CPE วิศวกรรมคอมพิวเตอร์

คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเทคโนโลยีราชมงคลธัญบุรี

slide3

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 เสมอ

slide4

DHCPv6

4.1 บทนำ (Introduction) ต่อ

  • เป็นรากฐานของ client - server model
  • วัตถุประสงค์ของขั้นตอนจะต้องจัดหาข้อมูลเครือข่ายภายนอก
  • ถ้า client และ server อยู่ในที่ตั้งที่เครือข่ายต่างกันและไม่สามารถติดต่อสื่อสารซึ่งกันและกันได้โดยตรง เนื่องจากขาด address เดิมที่ clientถ่ายทอด เรียกว่าการถ่ายทอดผ่านตัวกระทำส่ง
slide5

DHCPv6

4.2.1 กรณีของ DHCPv6

ความแตกต่างที่สำคัญอีกระหว่างdhcpv4 และdhcpv6 คือ

  • DHCPv6 ไม่ให้ข้อมูลเกี่ยวกับ address ของการเลือก router อัตโนมัติ หรือ ระยะเวลา prefix ของ allocated address
  • รูปแบบของ DHCPv6 ของข้อมูล configuration ใช้แบ่งแยกทางเลือกที่ไม่มี ความต้องการใช้ protocol
  • ข้อมูลนี้ไม่สามารถจัดหาเส้นทางโดยการใช้ DHCPv6 ได้เพราะว่า Router Advertisement จัดหาข้อมูลเดิมให้
slide6

DHCPv6

Prefix Delegation

Prefix delegation ใน ระบบงานนี้ปฏิบัติตาม: เมื่อ CPE และ PE แสดงให้เห็น point-to-point linkPE identifies เป็นเจ้าของ line(โดยคู่ที่เหมือนกับ PPP user name เปรียบเทียบกับฐานข้อมูลของลูกค้า

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

slide7

DHCPv6

Stateless Services

stateless subset สามารถจัดเตรียมรูปแบบที่แตกต่างกันของการ configuration ข้อมูลอื่นๆได้ รวมทั้งรับ DNS server addresses ในส่วนของข้อมูล เป็นการทำให้เป็นมาตรฐาน mechanism ให้ข้อมูลนี้ถึง IPv6 hosts.3

slide8

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 เพื่อพิสูจน์ตรวจสอบถ้าพวกมันเท่ากัน

slide9

DHCPv6

4.2.3 DHCPv6 Message Exchanges

slide10

DHCPv6

4.2.3 DHCPv6 Message Exchanges (ต่อ)

slide11

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

slide12

DHCPv6

การแลกเปลี่ยนข่าวสาร

slide13

DHCPv6

การแลกเปลี่ยนสำหรับการแบ่ง Address

client เริ่มการแลกเปลี่ยน DHCPv6 เพื่อแบ่งส่วน address กับ Solicit message กำหนด

IA_TA หรือ IA_NA เพื่อว่าสิ่งไหน client ต้องการไป configure addresses

A

B

slide14

DHCPv6

การเริ่มใหม่ของ Address

แต่ละ IA_NA เก็บไว้ด้วยใน Request message ประกอบไปด้วย ตัวแปร T1 และ T2

อันไหนที่ควบคุมผ่าน IA เวลาของการเริ่มกระบวนการใหม่

slide15

DHCPv6

Server-initiated Exchanges

DHCPv6 exchanges ปกติจะเริ่มโดย client แต่บางกรณี server อาจต้องการบอก

ถึงความต้องการแลกเปลี่ยนใหม่ไปที่ client

slide16

DHCPv6

Server-initiated Exchanges

Server-initiated Exchanges จะมีรูปแบบการแลกเปลี่ยนดังนี้

• Exchanges for the Stateless Services

  • • Exchanges with Authentication
  • • Exchanges with Relay Agents
slide17

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 โดยเฉพาะ

slide18

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)

slide19

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)

slide20

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)

slide21

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

slide22

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)

slide23

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

slide24

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)

slide25

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

slide26

DHCPv6

4.2.5 ปฏิกิริยาของสิ่งที่พบใกล้เคียงกัน

• [RFC2461] และ [RFC2462] แสดงให้เห็นถึงปฏิกิริยาระหว่างโปรโตคอล ใกล้เคียงที่พบ และ DHCPv6

4.2.6 เปรียบเทียบ  DHCPv4

เป็นการเปรียบเทียบระหว่าง DHCPv4 และ DHCPv6 โดยเปรียบเทียบกันในส่วนต่างๆ คือ

  • • การจัดสรรข้อความแบบ multiple addresses• การแยกชนิดของข้อความ
  • • การกำหนด option
slide27

DHCPv6

4.3 code  แนะนำ

เป้าหมายของ code คือ 20050509 ซึ่งเป็นเวอร์ชันของ KAME snapshots เวอร์ชันใหม่เพื่อให้มาตรฐานของโปรโตคอล DHCPv6 สมบูรณ์ขึ้น

4.3.1 โครงสร้างของข้อมูลทั่วไปและข้อมูลที่ใช้ประจำ

โครงสร้างของข้อมูลทั่วไปที่ต่างกัน ที่ถูกใช้โดยผู้ใช้และ relay และรวมถึงโครงสร้างที่ถูกใช้เป็นประจำโดยแสดง ดังตาราง

client

4.4การทำให้เกิดผล Client

การอธิบายคร่าวๆของส่วนที่เจริญเติบโตจากโครงสร้างใหญ่ client

dhcpv61
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 ที่แท้จริงอาจจะหลากหลายจากความต้องการหนึ่งๆ)

dhcpv62
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 การตั้งเวลาใหม่

dhcpv66
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
dhcpv67
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
dhcpv68
DHCPv6

4.4.5 ฟังก์ชัน client6_recv() ฟังก์ชัน client6_recv() ดำเนินการ received DHCPv6 messages และส่ง message-specific ออกไป เช่น

  • Receive Packet
  • Identify the Local Configuration
  • Initial Process
  • Dispatch Subroutine
dhcpv69
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
dhcpv610
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
dhcpv611
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 เป็นวิธีเมื่อ

dhcpv613
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
dhcpv614
DHCPv6

4.4.10 update _address() Function

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

dhcpv615
DHCPv6

รายละเอียดของฟังก์ชั่น update _address()

  • ระยะเวลาในการให้เหตุผล
  • การสร้างโครงสร้างของส่วนควบคุม
  • การสร้างโครงสร้างของแอดเดรส
  • การตั้งค่าอัพเดทตัวแปรแอดเดรส
  • การ Configure แอดเดรส
  • การสร้างหรือการอัพเดทเวลา
dhcpv616
DHCPv6

4.4.11 reestablish _ia() Function

  • ฟังก์ชั่น reestablish _ia() จะใช้ในการเรียกฟังก์ชั่น update _ia() เมื่อ sever ประกอบด้วยสถานะ การเข้ารหัส
  • สภาพ Check
  • การลบทิ้งของข้อมูลเก่า
  • การสร้างเหตุการณ์
  • การตั้งค่า Authentication Parameters
  • การ Reset เวลา
  • การส่ง Packet
dhcpv617
DHCPv6

4.4.12 ia_timo() Functionฟังก์ชั่น ia_timo() ที่ใช้ในการจัดการเรื่องของเวลา จาก IA ซึ่งรักษาเอาไว้ในเครื่องลูกข่าย และจะทำการเรียกฟังก์ชั่น dhcp6_check_timer() เมื่อ IA จะทำการอัพเดท Renew or Rebind message

  • การเปลี่ยนแปลงของสถานภาพ
  • การสร้างเหตุการณ์
  • การ Reset เวลา
dhcpv618
DHCPv6

4.4.13 Release Resourcesบนสัญญาณ SIGTERM ที่ได้รับการยอมรับ หรือส่วนควบคุมที่ได้รับการควบคุมจากช่องทางการควบคุม เครื่องลูกข่ายที่ถูกปลดออกจากการควบคุมข่าวสาร จะนำส่วนที่จัดสรรไว้ส่งออกมาเป็น Release messages โดยฟังก์ชั่น release _all_ia()

  • การสร้างเหตุการณ์
  • การ Reset เวลา
  • การตั้งค่าตัวแปร authentication
  • การส่ง packet
slide49

DHCPv6

4.5.1 server6_mainloop() Function

เป็นฟังก์ชั่นอย่างง่ายโดนที่แต่ละการวนของลูปนั้นจะทำแบบไม่มีที่สิ้นสุด ฟังก์ชั่น dhcp6_check_timer()จะใช้ในการตรวจสอบเรื่องของเวลาของแต่ละส่วนที่สัมพันธ์กันกับฟังก์ชั่น โดยที่ sever จะทำการเฝ้าดูข้อมูลจนกระทั่งข้อมูลของ DHCPv6 มาถึงฟังก์ชั่น server6_recv() จะทำการเรียกขั้นตอนการดำเนินงานของข้อมูล

slide50

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
slide51

DHCPv6

4.5.3process _relayforw() Function

ฟังก์ชั่น process _relayforw() จะทำห่อหุ้มข้อมูลสำหรับส่งแบบ Relay-forward จนกระทั่งข้อมูลที่เป็นต้นฉบับจากเครื่องลูกข่ายถูกค้นพบ

  • Validation
  • Parse and Validate Options
  • Remember the Relay Information
  • Move to the Inner Message
slide52

DHCPv6

4.5.4 react_solicit() Function

ฟังก์ชั่น react_solicit() เป็นขั้นตอนการดำเนินงานของ DHCPv6 ในการเรียกร้องข้อมูลจากเครื่อง client

  • Identify the Client
  • Build Options for Response
  • Send Response
slide53

DHCPv6

4.5.5 react_request() Functionฟังก์ชั่น react_request() จะเป็นขั้นตอนที่ใช้ในการร้องขอข้อมูลจากเครื่อง client โดยที่จะมีขั้นตอนการดำเนินงานบางขั้นตอนที่เหมือนกันฟังก์ชั่น react_solicit()

  • Validation
  • Build Options for Reply and Identify Client
  • Handle Unexpected Unicast Request
  • Delegate Prefix
  • Allocate Address
  • Add Stateless Options
  • Send Reply
slide54

DHCPv6

4.5.6 ฟังก์ชัน make_ia()

ฟังก์ชัน make_ia () เป็นการเรียกใช้จากฟังก์ชัน react_solicit ()

และฟังก์ชัน react_request () นั้นจะพยายามที่จะค้นหา IA ให้กับผู้ใช้

ตัวแปรเฉพาะสำหรับ IA ฟังก์ชัน make_match_ia()

• จะพยายามค้นหาค่าที่เหมาะสมให้กับตัวแปรเฉพาะ

• ส่วนหนึ่งของ address ของ prefix ที่เหมือนกัน และ prefix ที่มี ระยะ (length) เท่ากัน

• ทำการค้นหาค่าตัวแปรอื่นๆที่เข้ากันได้กับความยาวหรือระยะของ prefix ค่าที่ได้

จะถูกนำออกจาก server และถูกนำไปวางไว้ที่ new local list ( ialist )

dhcpv619
DHCPv6

4.5.7 ฟังก์ชัน react_renew ()

ฟังก์ชัน react_renew() เป็นกระบวนการของฟังก์ชันที่ สร้างข้อความใหม่จาก ผู้ใช้ และ binding ถึงข้อความใหม่ที่สร้างขึ้น

  • ** เหตุผลที่การสร้างข้อมูลใหม่ที่ต้องประกอบไปด้วยการระบุoption ของ server และ ยังต้องเข้ากันได้กับ option ของ server เครื่องรับด้วย ยิ่งไปกว่านั้นยังต้องประกอบไปด้วย การระบุ option ผู้ใช้งาน ถ้าสิ่งเหล่านี้ไม่เกิดขึ้น ข้อความใหม่นั้นจะทุกละทิ้งทันที
slide56

DHCPv6

4.5.8 ฟังก์ชัน react_rebind()

ฟังก์ชัน react_rebind () เป็นกระบวนการ ที่ข้อความRebind จากผู้ใช้และ

การอัพเดท binding ถึงข้อความ Rebind

**ข้อความ Rebind ต้องมีการระบุ option ของผู้ใช้งาน ,ซึ่งไม่ต่างจากการสร้างข้อความใหม่, ข้อความ Rebind ต้องไม่ประกอบไปด้วย การระบุ option ของผู้ใช้งาน , ตั้งแต่ มันทำการส่ง address แบบ multicast และถ้าServer ยังอยู่ในช่วงที่มีระยะเวลาในการส่งข้อความตอบรับ หากไม่พบข้อความที่ต้องการ ข้อความ rebind จะถูกลบทิ้ง

dhcpv620
DHCPv6

4.5.9 ฟังก์ชัน binding_timo()

ฟังก์ชัน binding_timo() ส่วนที่จัดการเกี่ยวกับเวลาของ binding ซึ่งจะเรียกใช้

มาจาก ฟังก์ชัน server6_mainloop() โดยผ่านฟังก์ชัน dhcp6_check_timer()

  • ซึ่ง address หรือ prefix ของ binding ที่หมดเวลาการทำงาน แล้วจะถูกนำออกไปจาก binding เมื่อเรียกใช้ฟังก์ชันนี้

>>คำนวณเวลาที่ใช้ไป

>> การนำส่วนที่หมดเวลาในการใช้งานออก

>> เริ่มเวลาใหม่

dhcpv621
DHCPv6

4.5.10 ฟังก์ชัน react_release ()

ฟังก์ชัน react_release() เป็นกระบวนการปล่อยข้อความจาก ผู้ใช้ และ เอาออกจาก binding ที่ใช้กับข้อความ

เหตุที่ต้องมีการปล่อยข้อความต้องประกอบด้วย.

• option เฉพาะของserver และต้องเข้ากันได้กับตัวรับของ Server ด้วย

• ข้อความที่ปล่อยออกมาต้องประกอบด้วยออฟชันเฉพาะของผู้ใช้งาน

• ถ้าไม่พบการร้องขอข้อความนั้นก็จะถูกทิ้งไป

slide59

DHCPv6

4.5.11 ฟังก์ชันreact_informreq()

ฟังก์ชัน react_informreq() คือกระบวนการ ขอข้อความข่าวสารจากผู้ใช้ (client)

การร้องขอข้อมูล

• ข้อความการร้องขอข้อมูล จะต้องประกอบด้วยการระบุ option ของ server

• ต้องระบุความเข้ากันได้กับตัวรับของ server ด้วย

เมื่อทำการร้องขอข้อความแล้ว ฟังก์ชัน server6_send() จะสร้างข้อความตอบรับและส่งมันกลับไปให้ผู้ใช้งาน

dhcpv622
DHCPv6

4.5.12 ฟังก์ชัน server6_send()

ฟังก์ชัน server6_send() คือกระบวนการสุดท้ายของการตอบรับข้อความของ server

>> ในฟังก์ชัน server6_send() จะประกอบไปด้วย <<

• การตั้ง Options

• การเพิ่มข้อมูลที่ใช้งานจริง

• โครงสร้าง Relay-reply ที่เกี่ยวเนื่องกัน

  • • การส่ง packet
dhcpv623
DHCPv6

4.6 Relay Agent Implementation

Relay เป็นตัวที่ทำให้เกิด การเรียกฟังก์ชันใช้งานโดยตรง หลังจากที่เริ่มทำงานแล้วมันจะรอข้อความในการวนซ้ำไม่สิ้นสุดด้วยฟังก์ชัน relay6_loop() . เมื่อข้อความมาถึง, ฟังก์ชัน relay6_recv() จะเรียกใช้การวนซ้ำซึ่งมีสองขั้นตอนย่อย.

• ฟังก์ชัน relay_to_server() ใช้ข้อความจากผู้ใช้หรือ relay อื่นๆ เพื่อ

ดำเนินการตามที่ได้วางไว้

• ฟังก์ชัน relay_to_client() จะทำกระบวนการตรงข้าม คือจะใช้

ข้อความจาก server แทน

dhcpv624
DHCPv6

ตัวแปรแบบโกบอล (Global)

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

dhcpv625
DHCPv6

4.6.1 ฟังก์ชัน relay6_loop ()

เป็นฟังก์ชันหลักของการถ่ายทอดสัญญาณ

main

Relay6_loop

Relay6_recv

Relay_to_server

Relay_to_client

dhcpv626
DHCPv6

4.6.2 ฟังก์ชัน replay6_recv()

ฟังก์ชัน replay6_recv() เป็นฟังก์ชันที่อยู่ในระดับล่างจะทำการรับ DHCPv6 Packet จากช็อกเกตและในขณะเดียวกันก็จะทำการเรียกชนิดของข่าวสารนั้นออกมา

ฟังก์ชัน recvmsg() ระบบจะทำการรัน Packet กับข้อมูลที่ใช้สำหรับช่วยเหลือ พร้อมกับตรวจสอบ Packet ว่ามีขนาดเท่าไร ถ้า Packet มีขนาดใหญ่มากจนเกินไปมันจะทำการทิ้ง Packet นั้นไป

ข้อจำกัดของ DHCPv6 คือการที่ไม่มีการกำหนด port ไปยังเครื่องแม่ข่ายหรือเครื่องถ่ายทอดสัญญาณแบบ upstream

Note : ถ้า Packet ถึงเครื่องแม่ข่ายแล้วมันก็จำเป็นที่จะต้องมีการส่งข้อมูลนั้นกลับ ถ้าเป็น Packet ที่มีขนาดเล็กไม่ตรงกับขนาดที่บรรจุไว้มันจะทำการทิ้งข้อมูลนั้นทันที

dhcpv627
DHCPv6

4.6.3 ฟังก์ชัน relay_to_server ()

ฟังก์ชัน relay_to_server () จะทำงานโดยเครื่องลูกข่ายและเครื่องลูกข่ายจะทำการส่งไปยังเครื่องแม่ข่าย ซึ่งตำแหน่งที่อยู่ของข้อมูลต้นทางนั้นจะถูกทำการคัดลอกให้กับเครื่องถ่ายทอดทุกเครื่องในขณะที่มีการถ่ายทอดข้อมูลข่าวสาร

ข้อจำกัดของ DHCPv6 ของเครื่องถ่ายทอดสัญญาณนั้นคือเมื่อข้อมูลนั้นได้มีการส่งมาจากเครื่องลูกข่าย (ซึ่งไม่ใช่จากเครื่องถ่ายทอดตัวอื่น) จะทำการเชื่อมต่อหรือติดต่อในตำแหน่งที่ระบุไว้เท่านั้นซึ่งตำแหน่งที่ระบุในฟิลด์นั้นจะต้องเป็นตำแหน่งที่อยู่แบบโกบอล (Global)

slide66

DHCPv6

4.6.3 ฟังก์ชัน relay_to_server ()

ถ้าตัวแปรแบบโกบอล global_prefixesเป็นตัวที่เริ่มต้นของการร้องขอซึ่งใช้โดยเครื่องถ่ายทอดสัญญาณจะถูกระบุค่าความแน่นอนคือ 2000::13

ปัญหาที่สำคัญคือเครื่องถ่ายทอดสัญญาณนั้นไม่ได้มีทั่ว ในรูปที่ 4-41 จะแสดงเทคโนโลยีของเครือข่าย A เราเตอร์จะเป็นตัวถ่ายทอดสัญญาณ DHCPv6 ที่ทำการเชื่อมต่อกับ PPP ซึ่งอีเทอร์เนตจะทำการเชื่อมต่อ DHCPv6ของเครื่องลูกข่ายกับ DHCPv6 ของเครื่องแม่ข่าย เมื่อตัวถ่ายทอดสัญญาณทำการรับข้อมูล DHCPv6 จากเครื่องลูกข่ายมันจะทำการทิ้งข้อมูลนั้นหากการค้นหาตำแหน่งนั้นล้มเหลว

dhcpv628
DHCPv6

4.6.3 ฟังก์ชัน relay_to_server ()

dhcpv629
DHCPv6

4.6.4 ฟังก์ชัน relay_to_client ()

สรุปกระบวนการถ่ายทอดสัญญาณรวมถึงการส่งข้อมูลการในลักษณะที่เท่ากันหากมีการเชื่อมต่อที่สมบูรณ์ค่า option-id ที่เรียกว่า sendmsgจะนำมาใช้ในการส่งข้อมูล

dhcpv630
DHCPv6

4.7 อุปกรณ์ที่รับรอง DHCPv6

เป็นการเตรียมอุปกรณ์ที่ทำให้ DHCPv6 มีความน่าเชื่อถือมากที่สุด เพื่อสร้างความน่าเชื่อถือสำหรับข้อมูลที่จะส่งออกไปยังปลายทาง

  • โครงสร้างข้อมูลที่ทำให้ DHCPv6 มีความน่าเชื่อถือ
  • ฟังก์ชัน set_auth()
  • ฟังก์ชัน process_auth () (ฝั่งเครื่องลูกข่าย)
  • ฟังก์ชัน Process_auth ()
slide70

DHCPv6

4.7 อุปกรณ์ที่รับรอง DHCPv6

  • โครงสร้างข้อมูลที่ทำให้ DHCPv6 มีความน่าเชื่อถือ

โครงสร้าง authparam{} เป็นโครงสร้างข้อมูลของเครื่องลูกข่ายเพื่อที่จะป้องกันตัวแปรที่ใช้ในขณะที่ทำการรันเพื่อที่จะทำให้ DHCPv6 มีความน่าเชื่อถือ

dhcpv631
DHCPv6

4.7 อุปกรณ์ที่รับรอง DHCPv6

  • ฟังก์ชัน set_auth()

ฟังก์ชัน set_auth() จะถูกเรียกใช้โดยฟังก์ชัน client_send() เพื่อที่จะทำการตั้งค่าพร้อมกับกำหนดสถานะของความน่าเชื่อถือของข้อมูลโดยรวมของระบบ

dhcpv632
DHCPv6

4.7 อุปกรณ์ที่รับรอง DHCPv6

  • ฟังก์ชัน set_auth()

ตัวแปร authparam จะเป็น Non-null แต่มันก็ยังจะต้องตรวจเพื่อความปลอดภัย อัลกอริทึม rdmจะถูกคัดลอกจาก authparam เข้าไปในส่วนของ Option ของข้อมูล

dhcpv633
DHCPv6

4.7 อุปกรณ์ที่รับรอง DHCPv6

  • ฟังก์ชัน process_auth () (ฝั่งเครื่องลูกข่าย)

ขบวนการของฟังก์ชัน process_auth () คือมันจะทำการรวบรวมข้อมูลจากเครื่องแม่ข่ายและทำการรับข้อมูลที่มีความต้องการข้อมูลนั้นสูงซึ่งเป็นข้อมูลที่เป็นของแท้

dhcpv634
DHCPv6

4.7 อุปกรณ์ที่รับรอง DHCPv6

  • ฟังก์ชัน process_auth () (ฝั่งเครื่องลูกข่าย)
    • ความน่าเชื่อถือของข้อมูล

ถ้าในส่วนของkey มีการตั้งค่าเรียบร้อยแล้วมันจะทำการจับคู่กับ key ที่มีการระบุข้อมูล key ID และ Key DHCP ถ้าkey ทั้งสองนั้นไม่มีการจับคู่กันข่าวสารหรือข้อมูลนั้นจะถูกมองว่าไม่มีความน่าเชื่อถือถ้า key นั้นหมดอายุการใช้งานก็จะถูกมองว่าไม่มีความน่าเชื่อถือเช่นกัน

dhcpv635
DHCPv6

4.7 อุปกรณ์ที่รับรอง DHCPv6

  • ฟังก์ชัน Process _auth () (ฝั่งเครื่องแม่ข่าย)

เป็นฟังก์ชันที่ใช้ในการประมวลผล Option รวมไปถึงข้อมูลจากเครื่องลูกข่ายและการรับข้อมูลว่าเป็นข้อมูลที่ถูกต้องและสมบูรณ์ หรือไม่

dhcpv636
DHCPv6

4.8 กระบวนการทำงานของ DHCPv6

  • การสร้างอุปกรณ์ DHCPv6
  • การแก้ไข DUID
  • การแก้ไข DHCPv6 ของเครื่องแม่ข่าย
  • การแก้ไข DHCP v6 ของเครื่องลูกข่าย ( Client )
  • การแก้ไข ตัวแทนการถ่ายทอดของ DHCPv6
  • การแก้ไข DHCPv6 เพื่อให้เกิดความน่าเชื่อถือ
  • การตั้งค่าควบคุมคำสั่งของคีย์ ( keys )
  • กระบวนการบริการของ DHCPv6
dhcpv637
DHCPv6

4.8 กระบวนการทำงานของ DHCPv6

  • การสร้างอุปกรณ์ DHCPv6

คำอธิบายของการสร้างและการติดตั้งโปรแกรมเช่นเดียวกับการแยก Packet ที่รับเข้ามาที่นี้

ไปที่ CD-Rom และคลิกที่ program directory :

% gzcat kame-dhcp6-20050509.tgz | tar xf -

% cd dhcp6

แก้ไข Packet

% ./configure --with-opt-refreshtime=32

สร้าง Packet : % make

ติดตั้ง Packet: %su

% su

Password: (type in the root password)

# make install /// มันจะทำการติดตั้ง Packet ทั้งหมดภายใต้ /usr/local/sbin

dhcpv638
DHCPv6

4.8 กระบวนการทำงานของ DHCPv6

  • การแก้ไข DUID

เครื่องลูกข่ายหรือเครื่องแม่ข่ายต่างก็ต้องการ DUID สำหรับกระบวนการทำงานของโปรโตคอลหรือการคำนวณของโปรโตคอล ซึ่งUser จะต้องไม่ทำการแก้ไข ID เอง: dhcp6c และ dhcp6s จะทำการสร้าง type 1 มาให้อัตโนมัติ

DUID ในการร้องขอครั้งแรกมันจะทำการเก็บไว้ในแฟ้ม /var/db/dhcp6c_duid and /var/db/dhcp6s_duid.

ตัวอย่าง เครื่องแม่ข่ายรับข้อมูลที่ร้องขอจากเครื่องลูกข่าย

Apr/05/2005 23:16:07: server6_recv: received solicit from fe80::203:47ff:fea5:3085%fxp0

Apr/05/2005 23:16:07: dhcp6_get_options: get DHCP option client ID, len 14

Apr/05/2005 23:16:07: DUID: 00:01:00:01:09:5f:93:76:00:03:47:a5:30:85

dhcpv639
DHCPv6

4.8 กระบวนการทำงานของ DHCPv6

  • การแก้ไข ตัวแทนการถ่ายทอดของ DHCPv6
  • การแก้ไข DHCPv6 เพื่อให้เกิดความน่าเชื่อถือ

keyinfokamekey {

realm "kame.example";

keyid1;

secret "yHShgx8gdo20EIgxi6oO1w==";

};

(***) ผู้ที่วิเคราะห์จะทำการตั้งค่าไว้ในอุปกรณ์ แต่จะไม่ยอมรับตัวอักษร(-) ที่เป็นส่วนหนึ่งของตัวสตริง

dhcpv640
DHCPv6

4.8 กระบวนการทำงานของ DHCPv6

  • กระบวนการบริการของ DHCPv6
    • กระบวนการจัดสรรตำแหน่งที่อยู่
    • กระบวนการถ่ายทอดของตัวแทน
dhcpv641
DHCPv6

4.8 กระบวนการทำงานของ DHCPv6

  • กระบวนการบริการของ DHCPv6
    • กระบวนการจัดสรรตำแหน่งที่อยู่

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";

dhcpv642
DHCPv6

4.8 กระบวนการทำงานของ DHCPv6

  • กระบวนการบริการของ DHCPv6
    • กระบวนการถ่ายทอดของตัวแทน

Relay# dhcp6relay -r ne1 ne0

B

A