bzcat OpenWrt SDK Linux i686 1 by Th0OT7

VIEWS: 0 PAGES: 104

									ชื่อโครงงาน IPv6 Home Gateway Stateless Autoconfiguration
 ้ ั
ผูจดทา                      นางสาวพัชรี เล่าตง รหัสนักศึกษา 4610324
สาขาวิ ชา                   วิ ศวกรรมคอมพิ วเตอร์
ปี การศึกษา                 2549


        ่ี
อาจารย์ทปรึกษาโครงงาน                                                               คณะกรรมการสอบ


..........................................                                      ..........................................
(อาจารย์ ธัชชัย เอ้งฉ้วน)                                                         (รศ.ดร. สินชัย กมลภิวงศ์)




                                                                               ..........................................
                                                                                     (Mr. Robert              Elz)




       โครงงานนี้เป็ นส่วนหนึ่งของรายวิชา Computer Engineering Project I-II
                                    ั
ตามหลักสูตรปริญญาวิศวกรรมศาสตร์บณฑิต สาขาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยสงขลานครินทร์


                                                                       ...................................
                                                                      (ผศ.ดร.พิชญา ตัณฑัยย์)
                                                              หัวหน้าภาควิชาวิศวกรรมคอมพิวเตอร์
                                     หนังสือรับรองความเป็ นเอกลักษณ์
              ้ั     ่                                                   ่ ี                     ่ ู้ ั
            ผูจดทำทีลงนำมข้ำงท้ำยนี้ขอรับรองว่ำรำยงำนฉบับนี้เป็ นรำยงำนทีมควำมเป็ นเอกลักษณ์โดยทีผจดทำไม่ได้
คัดลอกมำจำกทีใด  ่                                  ้                  ้
                                          เนื้อหำทังหมดถูกรวบรวมตำมขันตอนกำรดำเนินงำนในกำรจัดทำโครงงำน
                                                  ้
หำกจำเป็ นต้องยกข้อควำมใดมำกล่ำวถึงข้ำพเจ้ำได้อำงอิงเอกสำรต้นฉบับไว้อย่ำงเหมำะสมและขอรับรองว่ำรำยงำนฉบั
               ่
บนี้เป็ นฉบับทีไม่เคยเสนอต่อสถำบันใดมำก่อน




                                                                                          ้ั
                                                                                        ผูจดทำ
                                                                                (…………………………)
                                                                             นำงสำวพัชรี เล่ำตง 4610324




  IPv6 Home Gateway Stateless Autoconfiguration.
                                                                  กิตติกรรมประกาศ
           ในกำรจัดทำโครงงำน IPv6 Home Gateway Stateless Autoconfiguration สำมำรถดำเนินกำรลุล่วงมำได้
เนื่องด้วยควำมช่วยเหลือของหลำยฝำย่              ่     ้ั                       ั
                                              ซึงทำงผูจดทำขอกล่ำวขอบคุณอำจำรย์ธชชัย          เอ้งฉ้วน
  ่             ่ี             ่                  ้
ซึงเป็ นอำจำรย์ทปรึกษำโครงงำนทีคอยให้คำปรึกษำ ชีแนะข้อบกพร่องและเสนอแนวทำงแก้ไขปรับปรุง ขอขอบคุณ
รศ.ดร. สินชัย กมลภิวงศ์                    Mr.Robert        Elz                     ั
                                                                       และอำจำรย์ฉตรชัย จันทร์พริม  ้
    ่
ทีคอยให้คำปรึกษำและควำมช่วยเหลือต่ำงๆ
                                                             ่                ้
          ขอขอบคุณอำจำรย์ภำควิชำวิศวกรรมคอมพิวเตอร์ทุกท่ำนทีได้ถ่ำยทอดควำมรูต่ำงๆ
  ้
ทังในด้ำนวิชำเรียนตลอดจนข้อคิดและคติเตือนใจต่ำงๆ
                                                         ่
ขอขอบคุณบุคลำกรประจำภำควิชำวิศวกรรมคอมพิวเตอร์ทุกท่ำนทีคอยอำนวยควำมสะดวกในกำรจัดทำโครงงำน
            ่                     ่
ขอขอบคุณพีๆเพื่อนๆและน้องๆทุกคนทีได้ให้ควำมช่วยเหลือในด้ำนต่ำงๆ รวมถึงช่วยให้กำลังใจในกำรทำงำนเสมอมำ
                                         ่ ี่                           ่ี ั
         สุดท้ำยนี้ขอกล่ำวขอบคุณทุกท่ำนทีมสวนช่วยเหลือในกำรทำโครงงำนนี้ทยงมิได้กล่ำวถึง




                                                                                            ้ั
                                                                                          ผูจดทำ
                                                                             นำงสำวพัชรี เล่ำตง 4610324




  IPv6 Home Gateway Stateless Autoconfiguration.
                                                                                              บทคัดย่อ

                 ั ั ้                                           ้
            ในปจจุบนผูใช้ทเี่ ชื่อมต่อเครือข่ำยอินเทอร์เน็ตผ่ำนผูให้บริกำรอินเทอร์เน็ต (Internet Service Provider
                      ั
หรือ ISP) จะได้รบ IP รุ่น 4 หรือ IPv4 เพียงหมำยเลขเดียว และเป็นแบบ Dynamic IP
      ้         ้ ี           ่ี ้                                       ้
ดังนันถ้ำหำกผูใช้มอุปกรณ์ทตองกำรเชื่อมต่อมำกกว่ำหนึ่งอุปกรณ์ ผูใช้จำเป็ นต้องเชื่อมต่ออินเทอร์เน็ตผ่ำน NAT
                        ่        ้ ้                                                                 ้ ้
หรือใช้เทคนิคอื่นๆ ซึงถ้ำผูใช้ตองกำรใช้ IPv6 ในกำรรับส่งข้อมูลผ่ำนเครือข่ำยของ IPv4 นัน ผูใช้จำเป็ นต้องใช้
                                                             ่ ี
Transition Technique มำช่วยในกำรเชื่อมต่อเครือข่ำย ซึงวิธกำรทำ Transition สำมำรถทำได้หลำยวิธี เช่น IPv6
                                                                             ิี
Tunnel Broker, 6to4 Tunnel เป็ นต้น สำหรับโครงงำนชุดนี้ได้เลือกใช้วธกำรทำ Transition แบบ 6to4 Tunnel
            ี        ้ ้
เนื่องจำกวิธกำรอื่นนันมีขอจำกัดคือต้องทำกำรติดต่อไปยัง               Broker             ่
                                                                                      ซึงส่วนใหญ่แล้ว        Broker
        ้                 ่
จะติดตังอยู่ต่ำงประเทศซึงส่งผลให้แพคเก็ตจะถูกส่งผ่ำนเครือข่ำยหลำยเครือข่ำยและใช้เวลำในกำรรับส่งเพิมมำกขึน่     ้
          ่                                  ้                                                ่ ู้
ในขณะทีกำรรับส่งแบบ 6to4 Tunnel ผูใช้จะต้องทำกำรติดต่อไปยัง 6to4 relay โดยทีผใช้สำมำรถเลือกใช้ relay
   ่                                       ่                               ่
ทีอยู่ภำยในประเทศได้ แม้ว่ำจะมีกำรเปลียนแปลง relay ก็ตำมจะไม่สงผลกระทบต่อค่ำ prefix ของ IPv6 ทีได้รบ          ่ ั
                                               ้
แต่อย่ำงไรก็ตำม 6to4 tunnel ยังมีขอจำกัดอยู่กล่ำวคือ ค่ำ prefix ของ IPv6 นันสร้ำงมำจำก IPv4        ้
  ่ ั                                                                                       ่         ้
ซึงได้รบกำรกำหนดมำจำก ISP โดยที่ IPv4 ดังกล่ำวเป็ นแบบ Dynamic จึงส่งผลให้ IPv6 ทีได้มำนันมีกำรเปลียนแปลง  ่
                ้               ึ                       ้             ั      ่
          ดังนันโครงงำนชุดนี้จงออกแบบและพัฒนำระบบขึนมำเพื่อแก้ไขปญหำทีกล่ำวมำข้ำงต้น
                             ่ี                       ่
โดยพัฒนำระบบบนเรำท์เตอร์ทใช้ตำมบ้ำนและรองรับกำรสือสำรข้อมูลแบบ End-to-End ระบบนี้ได้นำแนวคิดของ
Dynamic DNS มำปรับใช้ โดยกำรนำหมำย IPv6 มำจดทะเบียน DNS ถ้ำหำก IP เกิดกำรเปลียนแปลงแล้ว      ่
                                            ้
ระบบนี้จะแก้ไขฐำนข้อมูล DNS อัตโนมัติ โดยผูใช้สำมำรถลงทะเบียนขอใช้บริกำรและติดตำมกำรทำงำนของระบบ เช่น
แสดงชื่อเครื่องและหมำยเลข                IP               ของโฮสต์แต่ละเครื่อง             ้         ่
                                                                                      อีกทังสำมำรถเพิม
แก้ไขและลบข้อมูลของโฮสต์แต่ละเครื่องได้ผ่ำนทำงหน้ำเว็บ




   IPv6 Home Gateway Stateless Autoconfiguration.                                                                 i
IPv6 Home Gateway Stateless Autoconfiguration.   ii
                                                                                             Abstract

            Nowadays, users connect to internet through ISP (Internet Service Provider) which uses only one of
IPv4 address and also in dynamic IP. So, if users have many devices, they’ll need to connect internet via
NAT or other techniques. If users want to use IPv6 in the IPv4 network, they’ll need to use “Transition
Technique” to manage connection. There are many solutions of making Transition likes IPv6 Tunnel Broker,
6to4 Tunnel. For this project, I decided to use 6to4 Tunnel to make a Transition because other solutions have
to make a connection to the Broker. And most of brokers will install in foreign country. So, it’ll effect to the
packets that will have to send through many networks and it’ll take more transfer time. But in 6to4 Tunnel,
users connect to the 6to4 relay which can select relay in user’s country. Moreover, changing of relay won’t
effect to the prefix of IPv6 because it make from IPv4 that have been generate from ISP. IPv4 is a dynamic
IP so, it make IPv6 is a dynamic, too that’s mean an IPv6 address will change all the time.
           So, this project aim for design and improve the system for resolve the problem that I mention
above. I developed the system in the home router and support the end-to-end communication. This system
will adapt with an idea of dynamic DNS. The system will register IPv6 address to the DNS database. If IP is
changed, this system will automatic update database. User can register to request the services and see
processes of the system such as show device’s name, host’s IP address, and also can add, edit and delete
host’s information through the webpage.




  IPv6 Home Gateway Stateless Autoconfiguration.                                                              iii
                                                                                                                                                     สารบัญ
หนังสือรับรองความเป็ นเอกลักษณ์ ............................................................................................................................ 1
กิตติกรรมประกาศ ..................................................................................................................................................... 2
บทคัดย่อ.................................................................................................................................................................... i
Abstract ...................................................................................................................................................................iii
สารบัญ .................................................................................................................................................................... iv
สารบัญรูปภาพ.........................................................................................................................................................vii
บทที่ 1           บทนำ .................................................................................................................................................... 1
    1.1           ควำมเป็ นมำ........................................................................................................................................... 1
    1.2           วัตถุประสงค์ .......................................................................................................................................... 1
    1.3           ขอบเขต ................................................................................................................................................. 2
    1.4           แผนกำรดำเนินโครงงำน......................................................................................................................... 2
บทที่ 2                 ้ ้ื
                  ควำมรูพนฐำน ........................................................................................................................................ 4
    2.1           OpenWrt ............................................................................................................................................... 4
    2.2           เทคนิคกำรเชื่อมต่อแบบ 6to4 tunnel ..................................................................................................... 4
         2.2.1         Address Block Allocation................................................................................................................. 4
         2.2.2         Encapsulation และ Transmission .................................................................................................... 5
         2.2.3         Routing ระหว่ำง 6to4 และ Native IPv6............................................................................................ 5
    2.3           Router advertisement daemon ( radvd ) ............................................................................................. 5
    2.4           BIND9 ................................................................................................................................................... 6
    2.5           โครงสร้ำงของระบบโดเมนเนม................................................................................................................ 6
         2.5.1         โดเมนเนมสเปซ (domain name space)............................................................................................ 6
         2.5.2         DNS Server ..................................................................................................................................... 8
         2.5.3         Resolver........................................................................................................................................... 8



    IPv6 Home Gateway Stateless Autoconfiguration.                                                                                                                          iv
      2.5.4       โซน .................................................................................................................................................. 9
      2.5.5               ์
                  ฟอร์เวิรดลุคอัพโซน ........................................................................................................................... 9
      2.5.6             ์
                  รีเวิรสลุคอัพโซน ................................................................................................................................ 9
      2.5.7       โซนทรำนสเฟอร์.............................................................................................................................. 10
      2.5.8       ประเภทของเรคคอร์ด ...................................................................................................................... 11
   2.6        Dynamic DNS..................................................................................................................................... 14
   2.7                                 ั
              กำรกำหนดหมำยเลข IPv6 ให้กบเครื่องลูกข่ำย..................................................................................... 14
      2.7.1       Stateless address autoconfiguration :........................................................................................... 14
      2.7.2       Stateful address autoconfiguation:................................................................................................ 14
   2.8        Toolchain ............................................................................................................................................ 15
   2.9        Html And Shell Embedded Report Language ................................................................................... 15
      2.9.1       คำจำกัดควำม.................................................................................................................................. 16
      2.9.2       โครงสร้ำงของ haserl ...................................................................................................................... 16
      2.9.3       กำรสร้ำงฟอร์ม ................................................................................................................................ 17
      2.9.4       ตัวอย่ำง .......................................................................................................................................... 18
บทที่ 3       กำรออกแบบระบบ ............................................................................................................................... 21
   3.1        หลักกำรทำงำน ของระบบ .................................................................................................................... 21
      3.1.1       หลักกำรทำงำนของ web interface ให้บริกำร homeipv6.net............................................................ 25
      3.1.2       หลักกำรทำงำนของ web interface บนเรำท์เตอร์............................................................................. 26
      3.1.3       หลักกำรทำงำนของโปรแกรมหำ MAC Address .............................................................................. 27
      3.1.4       หลักกำรรับส่งข้อมูลของโปรแกรมบนเรำท์เตอร์และDNS Server ...................................................... 28
บทที่ 4       รำยละเอียดกำรทำงำน ......................................................................................................................... 30
   4.1                   ์
              ส่วนของเซิรฟเวอร์ ............................................................................................................................... 30
      4.1.1               ้
                  กำรติดตัง DNS Server ................................................................................................................... 30
      4.1.2               ้
                  กำรติดตัง Apache2......................................................................................................................... 32
      4.1.3               ้
                  กำรติดตัง PHP5 ............................................................................................................................. 32



   IPv6 Home Gateway Stateless Autoconfiguration.                                                                                                                       v
         4.1.4                ้
                      กำรติดตัง MySQL5 ......................................................................................................................... 34
         4.1.5                ้
                      กำรติดตัง phpMyAdmin.................................................................................................................. 35
         4.1.6                ้
                      กำรติดตัง mail server ..................................................................................................................... 35
         4.1.7        web interface ให้บริกำร homeipv6.net........................................................................................... 36
         4.1.8                              ้ ู
                      web interface สำหรับผูดแลระบบ ................................................................................................... 57
         4.1.9        โปรแกรมส่วนติดต่อกับเรำท์เตอร์ .................................................................................................... 62
    4.2           ส่วนของเรำท์เตอร์................................................................................................................................ 63
         4.2.1        Web interface ................................................................................................................................ 63
         4.2.2                                              ่ี      ั
                      โปรแกรมเพื่อหำ MAC Address ของอุปกรณ์ทต่ออยู่กบตัวเรำท์เตอร์ .............................................. 65
         4.2.3        กำรทำ Cross Compile โปรแกรมเพื่อทำงำนบนเรำท์เตอร์............................................................... 66
         4.2.4        โปรแกรมส่วนติดต่อกับ DNS Server ............................................................................................... 68
บทที่ 5           กำรทดสอบระบบ ................................................................................................................................. 69
    5.1           กำรทดสอบ web interface ให้บริกำร homeipv6.net บน DNS Server ................................................. 69
    5.2                                          ้ ู
                  กำรทดสอบ web interface สำหรับผูดแลระบบ ..................................................................................... 70
    5.3           กำรทดสอบ web interface บนเรำท์เตอร์.............................................................................................. 70
    5.4                                                ั
                  กำรทดสอบกำรรับส่งข้อมูลของเรำท์เตอร์กบ DNS Server.................................................................... 71
    5.5                            ้
                  กำรทดสอบระบบโดยผูใช้ ..................................................................................................................... 72
บทที่ 6           บทสรุปและข้อเสนอแนะ ....................................................................................................................... 73
    6.1           บทสรุป ................................................................................................................................................ 73
    6.2           ข้อเสนอแนะ......................................................................................................................................... 73
         6.2.1        กำรจัดเก็บข้อมูลบนเรำท์เตอร์ ......................................................................................................... 73
         6.2.2                    ่
                      จำนวนโดเมนทีให้บริกำร ................................................................................................................. 73
         6.2.3        กำรตรวจสอบรำยละเอียดของอุปกรณ์ทเี่ ชื่อมต่อกับเครือข่ำย ........................................................... 74
บรรณานุกรม .......................................................................................................................................................... 75
ภำคผนวก ............................................................................................................................................................... 77




    IPv6 Home Gateway Stateless Autoconfiguration.                                                                                                                       vi
                                                                                                             สารบัญรูปภาพ
รูปภำพที่ 2 - 1 แสดงเทคนิคกำรเชื่อมต่อแบบ 6to4.................................................................................................. 4
รูปภำพที่ 2 - 2 แสดงหมำยเลข 6to4 ........................................................................................................................ 5
รูปภาพที่ 2 - 3 แสดงไฟล์คอนฟิก radvd .................................................................................................................. 6
รูปภำพที่ 2 - 4 ตัวอย่ำงโครงสร้ำงของ DNS ............................................................................................................ 7
                      ้
รูปภำพที่ 2 - 5 แสดงขันตอนกำรทำงำนของ dynamic DNS................................................................................... 14
                                             ั
รูปภำพที่ 3 - 1 แสดงกำรกำหนดหมำยเลข IPv6 ให้กบอุปกรณ์ต่ำง.........................................................................21
รูปภำพที่ 3 - 2 แสดงกำรแปลง MAC Address ให้เป็ นหมำยเลข IPv6 โดยใช้หลักกำร EUI64 ................................. 22
รูปภำพที่ 3 - 3 แสดงกำรส่งข้อมูลไปอัพเดทที่ DNS Server .................................................................................... 22
รูปภำพที่ 3 - 4 แสดงกำรทำงำนของระบบโดยรวม .................................................................................................. 24
รูปภำพที่ 3 - 5 แสดงกำรทำงำนของ web interface ให้บริกำร homeipv6.net.......................................................... 25
รูปภำพที่ 3 - 6 แสดงกำรทำงำนของ web interace บนเรำท์เตอร์ ............................................................................ 26
รูปภำพที่ 3 - 7 แสดงกำรทำงำนของโปรแกรมหำ MAC Address ............................................................................ 27
รูปภาพที่ 3 - 8 แสดงการส่งสัญญาณระหว่าง DNS Server กับเราท์เตอร์................................................................. 28
รูปภำพที่ 4 - 1 แสดงหน้ำ web ของ apache ......................................................................................................... 32
รูปภำพที่ 4 - 2 แสดงหน้ำ web ของ php5 ............................................................................................................. 33
รูปภำพที่ 4 - 3 แสดงตำรำง db_database .............................................................................................................. 37
รูปภำพที่ 4 - 4 แสดงตำรำง db_database2 ............................................................................................................ 38
รูปภำพที่ 4 - 5 แสดงตำรำง db_database3 ............................................................................................................ 38
รูปภำพที่ 4 - 6 แสดงหน้ำสมัคร account ................................................................................................................ 39
                                             ้
รูปภำพที่ 4 - 7 แสดงหน้ำสมัคร account เมื่อผูใช้กรอกข้อมูลไม่ครบ ....................................................................... 39
                                             ้
รูปภำพที่ 4 - 8 แสดงหน้ำสมัคร account เมื่อผูใช้กรอกอีเมลล์ไม่ถูกต้อง ................................................................. 40
                                                 ้ ี ู้ ื
รูปภำพที่ 4 - 9 แสดงหน้ำสมัคร account เมื่อชื่อผูใช้มผอ่นใช้แล้ว ........................................................................... 40
                                                  ้
รูปภำพที่ 4 - 10 แสดงหน้ำสมัคร account เมื่อชื่อผูใช้กรอกรหัสผ่ำนน้อยกว่ำ 6 ตัวอักษร........................................ 41



    IPv6 Home Gateway Stateless Autoconfiguration.                                                                                                      vii
                                              ้                    ้
รูปภำพที่ 4 - 11 แสดงหน้ำสมัคร account เมื่อผูใช้กรอกรหัสผ่ำน 2 ครังไม่ตรงกัน .................................................. 41
                                                  ้
รูปภำพที่ 4 - 12 แสดงหน้ำสมัคร account เมื่อชื่อผูใช้กรอกโดเมนเนมผิดรูปแบบ .................................................... 42
                                                       ู้ ื
รูปภำพที่ 4 - 13 แสดงหน้ำสมัคร account เมื่อโดเมนเนมมีผอ่นใช้แล้ว.................................................................... 42
รูปภำพที่ 4 - 14 แสดงหน้ำสมัคร account เมื่อ id ไม่ตรงกับฐำนข้อมูล .................................................................... 43
                                                                 ้
รูปภำพที่ 4 - 15 แสดงหน้ำสมัคร account เมื่อส่งยืนยันเมลล์ไปยังผูใช้เรียบร้อยแล้ว ............................................... 44
                                     ่ี ู้   ั
รูปภำพที่ 4 - 16 แสดงหน้ำยืนยันเมลล์ทผใช้ได้รบ ................................................................................................. 44
                                     ้
รูปภำพที่ 4 - 17 แสดงหน้ำ web เมื่อผูใช้ทำกำรยืนยันเมลล์ .................................................................................... 45
รูปภำพที่ 4 - 18 แสดงหน้ำ login ............................................................................................................................ 45
                                       ้
รูปภำพที่ 4 - 19 แสดงหน้ำ login เมื่อผูใช้กรอกข้อมูลไม่ครบ................................................................................... 46
                                       ้
รูปภำพที่ 4 - 20 แสดงหน้ำ login เมื่อผูใช้กรอกข้อมูลผิด......................................................................................... 47
รูปภำพที่ 4 - 21 แสดงหน้ำข้อควำมเพื่อลิงค์ไปยังหน้ำเว็บต่ำงๆ .............................................................................. 47
รูปภำพที่ 4 - 22 แสดงหน้ำลืมรหัสผ่ำนเข้ำระบบ ..................................................................................................... 48
                                                    ้
รูปภำพที่ 4 - 23 แสดงหน้ำลืมรหัสผ่ำนเข้ำระบบ เมื่อผูใช้กรอกข้อมูลไม่ครบ............................................................ 48
                                                        ้      ี
รูปภำพที่ 4 - 24 แสดงหน้ำลืมรหัสผ่ำนเข้ำระบบ เมื่อชื่อผูใช้ไม่มในฐำนข้อมูล .......................................................... 49
                                                                                     ้
รูปภำพที่ 4 - 25 แสดงหน้ำลืมรหัสผ่ำนเข้ำระบบ เมื่อระบบทำกำรส่งรหัสผ่ำนไปยังเมลล์ของผูใช้ ............................. 49
รูปภำพที่ 4 - 26 แสดงหน้ำหลักของระบบสมำชิก .................................................................................................... 50
รูปภำพที่ 4 - 27 แสดงหน้ำ my host ....................................................................................................................... 51
รูปภำพที่ 4 - 28 แสดงหน้ำลบโฮสต์ ........................................................................................................................ 51
                             ่
รูปภำพที่ 4 - 29 แสดงหน้ำเปลียนรหัสผ่ำนสำหรับสมำชิก ....................................................................................... 52
                             ่                 ้
รูปภำพที่ 4 - 30 แสดงหน้ำเปลียนรหัสผ่ำน เมื่อผูใช้กรอกข้อมูลไม่ครบถ้วน............................................................. 53
                             ่                 ้
รูปภำพที่ 4 - 31 แสดงหน้ำเปลียนรหัสผ่ำน เมื่อผูใช้ใส่รหัสผ่ำนอันเดิมไม่ถูกต้อง ..................................................... 53
                             ่                 ้                       ้
รูปภำพที่ 4 - 32 แสดงหน้ำเปลียนรหัสผ่ำน เมื่อผูใช้ใส่รหัสผ่ำนใหม่ 2 ครังไม่เหมือนกัน .......................................... 54
                             ่                            ่
รูปภำพที่ 4 - 33 แสดงหน้ำเปลียนรหัสผ่ำน เมื่อระบบทำกำรเปลียนรหัสผ่ำน ........................................................... 54
                             ่
รูปภำพที่ 4 - 34 แสดงหน้ำเปลียนโดเมนเนม .......................................................................................................... 55
                             ่                 ้
รูปภำพที่ 4 - 35 แสดงหน้ำเปลียนโดเมนเนม เมื่อผูใช้กรอกข้อมูลไม่ครบ................................................................. 56
                             ่                 ้
รูปภำพที่ 4 - 36 แสดงหน้ำเปลียนโดเมนเนม เมื่อผูใช้กรอกโดเมนเนมเดิมผิด.......................................................... 56



    IPv6 Home Gateway Stateless Autoconfiguration.                                                                                                         viii
                             ่                            ่
รูปภำพที่ 4 - 37 แสดงหน้ำเปลียนโดเมนเนม เมื่อระบบทำกำรเปลียนโดเมนใหม่ ..................................................... 57
รูปภำพที่ 4 - 38 แสดงตำรำง db_admin ................................................................................................................. 57
                                       ้ ู
รูปภำพที่ 4 - 39 แสดงหน้ำlogin สำหรับผูดแลระบบ................................................................................................ 58
                                        ้ ู                ้
รูปภำพที่ 4 - 40 แสดงหน้ำ login สำหรับผูดแลระบบ เมื่อชื่อผูใช้กรอกข้อมูลไม่ครบ ................................................ 59
                                        ้ ู                ้
รูปภำพที่ 4 - 41 แสดงหน้ำ login สำหรับผูดแลระบบ เมื่อชื่อผูใช้กรอกข้อมูลผิด ...................................................... 59
                                            ้ ู
รูปภำพที่ 4 - 42 แสดงหน้ำหลักของระบบสำหรับผูดแลระบบ................................................................................... 60
รูปภำพที่ 4 - 43 แสดงหน้ำโดเมนเมน ..................................................................................................................... 61
รูปภำพที่ 4 - 44 แสดงหน้ำโฮสต์เนม....................................................................................................................... 62
                                    ้
รูปภำพที่ 4 - 45 แสดงหน้ำเว็บเมื่อผูใช้กรอกข้อมูลไม่ครบถ้วน ................................................................................ 63
                                    ้ ้
รูปภำพที่ 4 - 46 แสดงหน้ำเว็บเมื่อผูชำกรอกโดเมนเนม .......................................................................................... 64
                                       ู้
รูปภำพที่ 4 - 47 แสดงหน้ำเว็บสำหรับให้ผใช้กำหนดชื่อโฮสต์และส่งข้อมูลไปอัพเดท ............................................... 64
                                    ้
รูปภำพที่ 4 - 48 แสดงหน้ำเว็บเมื่อผูใช้กรอกข้อมูลไม่ครบ ....................................................................................... 65
                                    ้
รูปภำพที่ 4 - 49 แสดงหน้ำเว็บเมื่อผูใช้กรอกชื่อหรือรหัสผ่ำนหรือโดเมนเนมผิด ....................................................... 65
รูปภำพที่ 5 - 1 แสดงภำพจำลองกำรทดสอบระบบ……………………………………………………………………….69




    IPv6 Home Gateway Stateless Autoconfiguration.                                                                                                      ix
บทที่ 1 บทนำ
1.1      ความเป็ นมา
            อินเทอร์เน็ตยุคหน้ำ(Next Generation Internet) หรือ IPv6 เป็ นอินเทอร์เน็ตโพรโตคอล (IP)
  ่                                 ั ั
ทีออกแบบมำแทนที่ IP รุ่นปจจุบน(IPv4) ด้วยกำรขยำยขนำดของ address field ให้กว้ำงขึน                        ้
          ั                                ่ ้       ั ั                                       ั
เพื่อแก้ปญหำกำรขำดแคลนของหมำยเลข IP ทีเกิดขึนในปจจุบน นอกจำกนี้ IPv6 ยังได้ออกแบบเพื่อแก้ปญหำทีพบใน    ่
IPv4                                                                                   ่ี          ้
                                         และเพื่อปรับปรุงประสิทธิภำพและรองรับเทคโนโลยีทจะเกิดขึนในอนำคต
หลำยประเทศได้ตระหนักถึงควำมสำคัญของกำรเปลียนแปลงครังนี้โดยเฉพำะประเทศในเอเชียได้แก่ ญีป
                                               ่          ้                                  ่   ุ่น เกำหลี
                       ั             ่ ี ้                           ่
และจีน เนื่องจำกได้รบควำมร่วมมือทีดจำกทังภำครัฐและเอกชน ประเทศทีให้ควำมสำคัญกับ กำรปรับเปลียนสู่ IPv6่
ย่อมจะได้เปรียบและมีโอกำสทีจะนำ่                  IPv6                                    ้
                                                                       มำพัฒนำโครงสร้ำงพืนฐำนของประเทศ
                                                                               ่ ่ ้
เพื่อให้สำมำรถตอบสนองควำมต้องกำรในกำรใช้งำนเทคโนโลยีบนเครือข่ำยอินเทอร์เน็ตทีเพิมขึนอย่ำงรวดเร็ว[1]
                          ั ั ้                       ่                       ี
             แต่ทว่ำในปจจุบนผูให้บริกำรอินเตอร์เน็ตทัวๆไปในประเทศไทยยังไม่มกำรให้บริกำร IPv6 แบบ Native
     ้                          ่                                                        ่
ดังนันจึงจำเป็ นต้องนำเทคนิคอืนๆ เช่น IPv6 Tunnel Broker , 6to4 Tunnel มำใช้เพื่อทีจะสำมำรถใช้งำน IPv6 ได้
  ่ ี        ่                    ุ่
ซึงวิธกำรทีสะดวกและเหมำะสมทีสดสำหรับ Home Users น่ำจะเป็ นกำรใช้งำนแบบ 6to4 Tunnel ซึง IPv6 address่
   ่
ทีได้จำกกำร           configure    แบบ      6to4        นันจะได้จำกกำร
                                                          ้                converse          จำกหมำยเลข   IPv4
       ้
ดังนันเรำจึงสำมำรถใช้งำนหมำยเลข IPv6 ได้โดยไม่จำเป็ นต้องมีกำรจดทะเบียนหมำยเลข IPv6 ดังกล่ำวแต่อย่ำงใด
                                                   ่             ้                      ี ั่
และหำกหมำยเลข IPv6 แบบ 6to4 มีกำรเปลียนแปลงแล้วผูใช้ไม่จำเป็ นต้องแจ้งให้อกฝงของ Tunnel รับทรำบ
         ้
ดังนันเรำสำมำรถนำอุปกรณ์ต่ำงๆมำต่อกับ                Home          Router         ่ ิ ้
                                                                                ทีตดตัง         6to4    Tunnel
           ่        ั                           ้                         ้ ้
ได้โดยทีอุปกรณ์ดงกล่ำวไม่จำเป็ นต้องมีกำรติดตังโปรแกรมหรือเซ็ตค่ำใดๆ ทังสิน
                                              ่                       ้
             สำหรับ Home Router ทีนำมำใช้ในกำรพัฒนำในครังนี้เป็ นเรำท์เตอร์ Linksys รุ่น WRT54GL
  ่           ่                             ้
ซึงเหตุผลทีเลือกใช้เรำท์เตอร์รุ่นดังกล่ำวนัน เนื่องมำจำกเรำท์เตอร์รุ่นดังกล่ำวรองรับเฟริมแวร์ทเี่ ป็ น Open Source
จำก OpenWrt [2]                         ่          ั
                                      ซึงเฟริมแวร์ดงกล่ำวสนับสนุน Home Router [3] หลำยๆ รุ่น
    ่    ่             ่ ี       ุ่
ซึงรุ่นทีใช้เป็ นรุ่นทีมรำคำถูกทีสดในขณะนี้
             โครงงำนนี้                  ้ ่
                                จัดทำขึนเพืออำนวยควำมสะดวกให้กำรใช้งำน         6to4                  ้ ั่
                                                                                           สำหรับผูใช้ทวไป
  ่                                ่ ี                ่ ่                                          ่
ซึงเชื่อมต่ออินเตอร์เน็ตผ่ำนระบบทีมกำรจัดสรรหมำยเลขทีอยูแบบไม่คงที่ (Dynamic Address Allocation) ซึงหำกเมื่อ
Address                      ่            ั
                           ทีกำหนดให้กบอุปกรณ์ต่ำงๆภำยในบ้ำน                        ่
                                                                           มีกำรเปลียนแปลงเป็ นค่ำใดๆก็ตำม
         ่ ั     ้                     ่          ่ ั
ระบบทีพฒนำขึนจะทำกำรแจ้งกำรเปลียนแปลงเลขทีอยู่ดงกล่ำว                                                 ์
                                                                              ไปยังระบบโดเมนเนมเซิรฟเวอร์
เพื่อทำกำรปรับปรุงชื่อของเครื่องต่ำงๆ ให้สอดคล้องกับหมำยเลขใหม่ได้โดยทันที



1.2      วัตถุประสงค์
           เพื่อพัฒนำเครื่องมือสำหรับกำรแก้ไข IPv6 ในฐำนข้อมูลของระบบโดเมนเนม ซึงประยุกต์ใช้ใน Home
                                                                                  ่
            Gateway
           เพื่อพัฒนำ web interface สำหรับกำรจัดกำรระบบโดเมนเนม ซึงจะช่วยเพิมควำมสะดวกให้กบผูใช้
                                                                    ่        ่              ั ้


   IPv6 Home Gateway Stateless Autoconfiguration.                                                               1
1.3     ขอบเขต
          พัฒนำโปรแกรมบนเรำท์เตอร์เพื่อตรวจสอบหำอุปกรณ์และหมำยเลข                   MAC             Address
           ของอุปกรณ์ทเี่ ชื่อมต่อกับเรำท์เตอร์
          พัฒนำโปรแกรมบนตัวเรำท์เตอร์เพื่อปรับปรุงฐำนข้อมูลของระบบโดเมนเนมบน DNS Server
          พัฒนำโปรแกรมบน DNS Server เพื่อรับข้อมูลจำกเรำท์เตอร์มำทำกำรอัพเดท
          พัฒนำ web interface บนเรำท์เตอร์เพื่อให้ผู้ ใช้กำหนดชื่อโฮสต์ให้กบอุปกรณ์ทต่ออยู่กบเรำท์เตอร์
                                                                            ั        ่ี      ั
          พัฒนำ web interface บน DNS Server เพื่อให้ผใช้ลงทะเบียนโดเมนเนมภำยใต้ช่อ homeipv6.net
                                                           ู้                           ื

1.4     แผนการดาเนิ นโครงงาน
          กำรดำเนินงำนในช่วงที่ 1

             ้
           ขันตอนที่                ุ
                                มิ ถนายน           กรกฎาคม         สิ งหาคม           กันยายน
                1
                2
                3
                4
                5
                6
                7

                     ั
รำยละเอียดกำรทำงำนมีดงนี้
           ้                                      ่
         ขันตอนที่ 1 ศึกษำกำรทำงำนโปรแกรม bind9 ซึงเป็ น DNS Server
           ้                                         ่
         ขันตอนที่ 2 ศึกษำกำรทำงำนโปรแกรม nsupdate ซึงใช้ในกำรอัพเดทข้อมูลที่ DNS Server
           ้
         ขันตอนที่ 3 ออกแบบโปรแกรม Auto update Dynamic DNS
           ้
         ขันตอนที่ 4 ศึกษำกำรทำ coss compile
           ้                                                                         ่ี      ั
         ขันตอนที่ 5 พัฒนำโปรแกรมบนเรำท์เตอร์ให้สำมำรถตรวจสอบ MAC Address ของอุปกรณ์ทต่ออยู่กบ
                       เรำท์เตอร์
           ้
         ขันตอนที่ 6 วิเครำะห์และสรุปผล
           ้
         ขันตอนที่ 7 เสนอผลงำน



  IPv6 Home Gateway Stateless Autoconfiguration.                                                          2
          กำรดำเนินงำนในช่วงที่ 2

              work            พฤศจิ กายน           ธันวาคม       มกราคม             กุมภาพันธ์
                1
                2
                3
                4
                5
                6

                     ั
รำยละเอียดกำรทำงำนมีดงนี้
           ้
         ขันตอนที่ 1 พัฒนำโปรแกรมบนเรำท์เตอร์เพื่อส่งข้อมูลไปอัพเดทที่ DNS Server
           ้
         ขันตอนที่ 2 พัฒนำโปรแกรมบน DNS Server เพื่อรับข้อมูลจำกเรำท์เตอร์ไปอัพเดท
           ้                                                    ู้
         ขันตอนที่ 3 พัฒนำ web interface บนเรำท์เตอร์ สำหรับให้ผใช้สำมำรถกำหนดชื่อโฮสต์ของแต่ละอุปกรณ์
           ้
         ขันตอนที่ 4 พัฒนำ web interface บน DNS Server เพื่อบริกำร homeipv6.net
           ้
         ขันตอนที่ 5 วิเครำะห์และสรุปผล
           ้
         ขันตอนที่ 6 เสนอผลงำน




  IPv6 Home Gateway Stateless Autoconfiguration.                                                         3
             ้
บทที่ 2 ควำมรูพ้ ืนฐำน
2.1     OpenWrt
                          ่ ั
           เป็ นองค์กรทีพฒนำ      Home        Router          ้
                                                          บนพืนฐำนของลินุกซ์                       ์
                                                                                    โดยกำรพัฒนำเฟิรมแวร์
  ้         ่ี ี        ิ
ขึนมำใหม่ทมคุณสมบัตคล้ำยกับ             เฟิรมแวร์ตวเดิม
                                            ์     ั                             โดยที่         OpenWrt
         ์       ่ี ี         ่       ่
จะใช้เฟิรมแวร์ทมขนำดเล็กทีรองรับกำรเพิมแพคเก็ต                                           ลงไปภำยหลังได้
                      ้         ่                                       ์
สำหรับนักพัฒนำนันก็สำมำรถทีจะนำโปรแกรมหรือแพคเก็ตอื่นๆมำพัฒนำบนเฟิรมแวร์ของ            OpenWrt       ได้
                                               ่                  ่
โดยไม่จำเป็ นต้องผ่ำนกำรตรวจสอบจำก OpenWrt ซึงมีฮำร์ดแวร์หลำยรุ่นทีสนับสนุน [3]


2.2     เทคนิ คการเชื่อมต่อแบบ 6to4 tunnel




                             รูปภาพที่ 2 - 1 แสดงเทคนิ คการเชื่อมต่อแบบ 6to4
                         ่
           6to4 คือระบบซึงยอมให้แพคเก็ต IPv6 ถูกส่งผ่ำนเครือข่ำย IPv4 โดยไม่จำเป็ นต้องมีกำร configure tunnel
  ่                     ั ั
ซึง 6to4 มีกำรทำงำน 3 ฟงก์ชนด้วยกันคือ [4]

          2.2.1 Address Block Allocation
                                        ั้               ่        ้
           6to4 IPv6 prefix จะมีทงหมด 48 บิท ซึงจะสร้ำงขึนจำก prefix 2002 (เลขฐำนสิบหก)
แล้วตำมด้วยหมำยเลข         IPv4 ( จำนวน 32 บิท ) ดังตัวอย่ำงเช่น มีหมำยเลข IPv4 เป็ น 163.162.1.1
  ่                                                  ้
ซึงเมื่อแปลงเป็ นเลขฐำนสิบหกแล้วจะได้ A3A2:0101 ดังนัน 6to4 prefix คือ 2002:A3A2:0101::/48 (หมำยเลข
                                   ่
IPv4 จะแทนด้วยเลขฐำนสิบ ในขณะทีหมำยเลข IPv6 จะแทนด้วยเลขฐำนสิบหก)




  IPv6 Home Gateway Stateless Autoconfiguration.                                                           4
                                     รูปภาพที่ 2 - 2 แสดงหมายเลข 6to4

         2.2.2 Encapsulation และ Transmission
                                                                            ้
           6to4 จะทำกำร encapsulate แพคเก็ต IPv6 ไว้ในแพคเก็ต IPv4 หลังจำกนันก็จะส่งแพคเก็ตนี้ไปยัง 6to4
                                      ่                                             ่ ้      ี
destination ผ่ำนทำงเครือข่ำย IPv4 ซึง IPv4 destination address ของแพคเก็ต IPv4 ทีห่อหุมอยู่น้จะเอำมำจำก
         ่                                                                        ่
32 บิททีตำมหลัง prefix 2002 (hex) ของ IPv6 destination address ของแพคเก็ตทีอยู่ภำยใน ส่วน IPv4
                       ้ ื                                             ่
source address นันก็คอหมำยเลข IPv4 ของโฮสต์หรือเรำท์เตอร์ ทีกำลังส่งแพคเก็ตไปบนเครือข่ำย IPv4
  ่                                                                ่
ซึงหลักกำรนี้ทำให้กำรส่งแพคเก็ต 6to4 เหมือนกับกำรส่งแพคเก็ต IPv4 ทัวๆไป

         2.2.3 Routing ระหว่าง 6to4 และ Native IPv6
                             ่ี                        ่                ่ี
            เพื่อยอมให้โฮสต์ทใช้หมำยเลข 6to4 แลกเปลียนข้อมูลกับโฮสต์ทใช้หมำยเลข IPv6 ได้ จึงต้องมี “relay
          ่
router” ซึง relay router นี้จะเชื่อมต่อกับเครือข่ำย IPv4 และเครือข่ำย IPv6 โดย relay router จะทำกำร de-
capsulate 6to4 packet ออกจำกแพคเก็ต IPv4 และทำกำรหำเส้นทำงเพื่อส่งแพคเก็ตไปยังปลำยทำง[5]


2.3     Router advertisement daemon ( radvd )
                                  ่                                ่
          radvd เป็ นตัว daemon ทีใช้ในกำรแจกหมำยเลข prefix IPv6 ซึงมีหลักกำรทำงำนคือ radvd จะทำกำรส่ง
                                          ั     ่ี                   ั
router advertisement messages ไปให้กบโฮสต์ทต่ออยู่ เมื่อโฮสต์ได้รบ router advertisement messages
ก็จะทำกำรส่ง router solicitation messages ไปให้ router router ก็จะทำกำร ส่งหมำยเลข prefix ไปให้โฮสต์
                                       ั
เพื่อทำกำรแปลงเป็ นหมำยเลข IPv6 ให้กบโฮสต์ [6]
           ่     ่ี
         ซึงไฟล์ทใช้ในกำร configure จะอยู่ท่ี /etc/radvd.conf ตัวอย่ำงไฟล์ configure เช่น




  IPv6 Home Gateway Stateless Autoconfiguration.                                                       5
                                   รูปภาพที่ 2 - 3 แสดงไฟล์คอนฟิ ก radvd


2.4     BIND9
                                                                                            ่
          BIND(Berkeley Internet Name Domain) เป็ น DNS Server บริกำร Domain Name Service ซึงมีหลำย
                              ั ้
version ให้เลือกใช้ ในกำรทำวิจยครังนี้จะใช้ version 9.3.1 [7]


2.5     โครงสร้างของระบบโดเมนเนม
          2.5.1 โดเมนเนมสเปซ (domain name space)
                                             ั                                         ้      ้
           โดเมนเนมสเปซ หรือ เนมสเปซ มีลกษณะเป็ นโครงสร้ำงต้นไม้ มีกำรแบ่งเป็ นลำดับชันจำกชันบนสุดคือ รำก
                                  ่                                                   ี ื ้
หรือ root node ถัดลงมำเป็ นกิงก้ำนสำขำไปจนถึงปลำยสุดไม่สำมำรถแตกสำขำย่อยได้อกก็คอชัน leaf node
   ่
ซึงจะหมำยถึงโฮสต์หรือโหนด ตัวอย่ำงเช่น coe.psu.ac.th หมำยถึง โฮสต์ coe ของโดเมนเนม psu.ac.th แต่ละ leaf
node              หรือ            โฮสต์             ่                      ื
                                                  ทีอยู่ในบัญชีโดเมนจะมีช่อและข้อมูลเฉพำะระบุอยู่เป็ นเรคคอร์ด
                    ่                           ึ
ชื่อของแต่ละโหนดทีระบุในฐำนข้อมูลจะมีควำมยำวได้ถง 63 ไบต์ในลักษณะ case-insensitive และชื่อของโหนด
       ่                                ั้
ทีอยู่ในระดับเดียวกันจะถูกสงวนไว้ไม่ให้ตงซ้ำกัน                          ้
                                                            ภำยใต้ระดับชันเดียวกันสำมำรถมีโหนดได้หลำยโหนด
ระดับบนสุดคือ                           root                       node                                 ี ื
                                                                                                  จะไม่มช่อระบุ
         ้                                            ื ่                                       ้
ดังนันกำรเขียนกำกับชื่อโดเมนของโหนดใดโหนดหนึ่งจะมีช่อซึงระบุเป็ นเส้นทำง หรือ path จำกโหนดนัน ไปจนถึงรำก
     ่                         ่
ซึงอ่ำนเรียงจำกซ้ำยไปขวำ โดยคันแต่ละโหนดด้วยจุดดังตัวอย่ำง [8]




  IPv6 Home Gateway Stateless Autoconfiguration.                                                             6
                                 รูปภาพที่ 2 - 4 ตัวอย่างโครงสร้างของ DNS
           จำกตัวอย่ำง root โดเมนประกอบด้วย 3 โดเมนย่อยได้แก่ MIL EDU และ ARPA
เมื่อต้องกำรจะกำหนดชื่อโดเมน                XX                                 ื
                                                                 ทำได้โดยระบุช่อประจำโหนดและเรียกชื่อ
                      ้            ้                     ั่
โดยไล่ลำดับจำกโหนดนันไปตำมเส้นทำงขึนไปยังรำก กำรเขียนให้คนแต่ละโหนดด้วยจุดเช่น XX.LCS.MIT.EDU หรือ
VAXA.ISI.EDU เป็ นต้น
            เมื่อมีกำรสอบถำมหมำยเลข           IP                  ่
                                                         จำกชื่อทีกำหนด                ื
                                                                                จะใช้ช่อเป็ นดรรชนีในกำรค้นหำ
  ่
ซึงชื่อดังกล่ำวจะอยู่ภำยใต้โดเมนเนมใดระบบหนึ่งเสมอหรือเรียกว่ำ                                   ดรรชนีโดเมน
    ้                  ่                                            ่              ่
ขันตอนกำรค้นหำจะเริมจำกตำแหน่งขวำมือสุดไปยังซ้ำยมือสุดของชื่อ ซึงเป็ นกำรค้นหำเริมจำกตำแหน่งบนสุดคือ root
node                           เรียงลงมำตำมลำดับจนถึง                        leaf                       node
                                   ่ ้
จนพบชื่อโดเมนและโฮสต์ตรงกับทีตองกำรในเรคคอร์ดข้อมูลของระบบโดเมนเนมจะปรำกฏ ชื่อ หมำยเลข IP
                               ้
และข้อมูลอธิบำยลักษณะรวมทังควำมหมำยต่ำง              ๆ         ของโฮสต์        กำรสอบถำมหมำยเลข            IP
          ่                               ้
จำกชื่อทีกำหนดไม่ว่ำจะเป็ นหมำยเลข IP ทังรุ่น 4 และv6 ใช้หลักกำรเช่นเดียวกัน
                                                    ่           ่
          ตัวอย่ำงกำรค้นหำหมำยเลข IP จำกชื่อทีกำหนด เมื่อให้เครือง DNS Server ชื่อ NS.LCS.MIT.EDU
    ื                                                                             ่ื
มีช่อโฮสต์ XX เก็บอยู่ในฐำนข้อมูล และต้องกำรค้นหำหมำยเลข IP ของโฮสต์ชอ XX.LCS.MIT.EDU
                   ่              ์
ไคลเอ็นต์จะส่งคำสังถำมไปยังเนมเซิรฟเวอร์ทเี่ ครื่อง   DNS  Server                         ่
                                                                        จะทำกำรค้นหำโดยเริมจำก   root
                                                            ่         ่ี ่                     ื
เรียงลำดับลงมำเป็ นโซน EDU ถัดลงมำเป็ นโซน MIT และ LCS ซึงมีโฮสต์ทอยูภำยใต้โซน LCS คือโฮสต์ช่อ XX
ปรำกฏอยู่ในฐำนข้อมูล DNS Server จะส่งหมำยเลข IP กลับไปยังเครื่องไคลเอ็นต์
                                                                                                    ื
          ตำมข้อกำหนดของมำตรฐำนในระบบโดเมนเนม ทุกเรคคอร์ดทีเ่ ก็บอยู่ในฐำนข้อมูลจะประกอบ ด้วยฟิลด์ช่อ
หมำยเลข         IP                        ่
                           ชนิดและหน้ำทีของโฮสต์           ั ้                              ิ
                                                 นอกจำกนี้ยงมีขอมูลอธิบำยลักษณะและคุณสมบัตของโฮสต์
โครงสร้ำงข้อมูลเช่นนี้เรียกว่ำ resource record


  IPv6 Home Gateway Stateless Autoconfiguration.                                                           7
          2.5.2 DNS Server
           DNS                                                            ่         ่
                                                          Serverจะทำหน้ำทีในกำรเก็บชือและหมำยเลขเครื่อง
                      ่
หรืออุปกรณ์เครือข่ำยทีลงทะเบียนไว้ในโดเมนเนม                                                เครื่องDNS
Serverเครื่องหนึ่งสำมำรถเก็บข้อมูลได้มำกกว่ำหนึ่งโดเมนเนม
                                                  ่
และระบบโดเมนเนมระบบหนึ่งสำมำรถกระจำยไปอยูบนเครื่องDNS Serverได้มำกกว่ำหนึ่งเครื่อง
        ประเภทของDNS Serverสามารถแบ่งได้สองประเภทคือ
          Master DNS Server
          แต่ละโซนจะต้องมี       Master     DNS       Server             ่
                                                                ทำหน้ำทีเก็บข้อมูลโดเมนเนมในโซนของตนเอง
                         ่     ้                                             ่ ้
และถือว่ำมีอำนำจหน้ำทีในโซนนันเพียงเครื่องเดียว และยังสำมำรถให้บริกำรข้อมูลทัวทังเนมสเปซ ปกติ Master DNS
                             ่
Server สำมำรถส่งข้อมูลทีทำกำรปรับปรุงแล้วไปยัง Master DNS Server ทีประจำอยูโซนอื่นได้    ่      ่
ทำให้ฐำนข้อมูลมีกำรปรับปรุงให้ถูกต้องทันสมัยอยู่ตลอดเวลำ ข้อมูลในโดเมนเนมหนึ่งสำมำรถกระจำยไปอยู่ท่ี DNS
                       ้
Server โซนอื่นได้ ดังนัน DNS Server แต่ละโซนก็สำมำรถเก็บข้อมูลได้มำกกว่ำหนึ่งโดเมนเนม
           Slave DNS Server
                                                         ่                ่
         Slave DNS Server เป็ น DNS Server สำรอง ทำหน้ำทีเก็บข้อมูลสำรองซึงถ่ำยโอนข้อมูลมำจำก Master
DNS Server นำมำใช้งำนทดแทนเมื่อ Master DNS Server ไม่สำมำรถให้บริกำรได้

          2.5.3 Resolver
              Resolver                                        ่
                                เป็ นโปรแกรมในเครื่องลูกข่ำยทีขอบริกำรโดเมนเนม                      Resolver
  ่
ทีเป็ นส่วนหนึ่งของโปรแกรมประยุกต์จะเรียกว่ำ        สตับ          Resolver             (stub        resolver)
                     ่
หำกเป็ นโพรเซสทีแยกออกมำจำกโปรแกรมประยุกต์จะเรียกว่ำ ฟูล Resolver (full resolver) Resolver ทัง 2         ้
                   ่                    ่ี
รูปแบบจะรับคำสังจำกโปรแกรมประยุกต์ทขอสอบถำมข้อมูลจำก                           DNS                    Server
                 ่ี ่
และนำผลลัพธ์ทได้สงกลับไปยังประยุกต์                                             ์
                                               กำรทำงำนนี้อำศัยหลักไคลเอ็นต์เซิรฟเวอร์     โดย      Resolver
          ่                                            ่        ์         ้
ทำหน้ำทีเป็ นไคลเอ็นต์และ DNS Server ทำหน้ำทีเป็ นเซิรฟเวอร์ ทัง Resolver และ DNS Server
                       ่ ื
จะเก็บรักษำข้อมูลทีสบค้นได้ไว้ในแคช                         DNS         Server      จะสืบค้นข้อมูลในแคชก่อน
หำกพบก็จะส่งข้อมูลในแคชตอบกลับไป ปกติแล้ว DNS Server จะเก็บข้อมูลไว้ในแคชเพียงช่วงระยะเวลำหนึ่ง
            ้           ้                  ่
หลังจำกนันก็จะลบทิงไปเพรำะข้อมูลอำจเปลียนแปลงตลอดเวลำ Resolver ชนิดใดก็ตำมมีกำรทำงำนได้ 2 แบบคือ
           แบบทำซ้ำ(iterative)
                               ่                            ี ้    ่ ้
         เมื่อ Resolver ส่งคำสังถำมไปยัง DNS Server แล้วไม่มขอมูลทีตองกำร DNS Server จะส่งหมำยเลข IP
                                                                ่                      ่ี ั
ของ DNS Server อื่นมำให้ Resolver ค้นหำเอง Resolver จะส่งคำสังถำมไปยัง DNS Server ใหม่ทได้รบ Resolver
                             ่
จะทำกระบวนกำรเช่นนี้จนกระทังได้คำตอบ
          ั ิิี                           ่ ี
ในทำงปฏิบตวธกำรนี้เหมำะกับเครื่องลูกข่ำยทีมประสิทธิภำพกำรทำงำนสูง
           แบบเวียนซ้ำ (recursive)
          เมื่อ      Resolver              ่
                                    ส่งคำสังถำมไปยัง       DNS          Server                ี ้    ่ ้
                                                                                      แล้วไม่มขอมูลทีตองกำร
                ั                 ่
เนมเซอร์เวอร์ดงกล่ำงจะต้องทำหน้ำทีในกำรดำเนินกำรติดต่อไปยัง             DNS            Server            อื่น
จนกว่ำจะได้คำตอบแล้วส่งกลับมำให้ Resolver


  IPv6 Home Gateway Stateless Autoconfiguration.                                                           8
            2.5.4 โซน
                                                               ่                      ้ึ
          แต่ละหน่วยของ DNS จะเรียกว่ำ “ โซน (Zone)” ซึงแต่ละโซนสำมำรถจัดกำรได้โดยไม่ขนต่อกัน
แต่ละโซนจะประกอบด้วยหนึ่งโดเมนหรือโดเมนย่อย          (subdomain)       โดย        DNS    Server
                                                   ั
หนึ่งสำมำรถจัดกำรได้หลำยโดเมน แต่ละโซนจะยึดติดอยู่กบโหนดใดโหนดหนึ่งในโครงสร้ำงของ DNS
                                ่
          ในแต่ละโดเมนสำมำรถทีจะแตกเป็ นโดเมนย่อยได้อก    ี
  ่                                     ่               ์
ซึงแต่ละโดเมนย่อยอำจจะเป็ นอีกโซนหนึ่งทีถูกจัดกำรโดยเซิรฟเวอร์เครื่องอื่นก็ได้
                              ี                                                          ์
กำรแตกเป็ นหลำยโดเมนย่อยนี้มประโยชน์ในเรื่องของควำมสะดวกในกำรจัดกำร และประสิทธิภำพของเซิรฟเวอร์

                           ์
            2.5.5 ฟอร์เวิ รดลุคอัพโซน
                             ์
           โซนประเภทฟอร์เวิรดลุคอัพโซน(Forward                                                  Lookup)
จะเก็บข้อมูลทีใช้สำหรับกำรแปลงชื่อโดเมนให้เป็ นหมำยเลข IP ในโซนประเภทนี้ตองมีเรคคอร์ ด
              ่                                                          ้                 SOA และ NS
และสำมำรถมีรซอร์สเรคคอร์ ดประเภทใดก็ได้ยกเว้น เรคคอร์ด PTR
                ี

                         ์
            2.5.6 รีเวิ รสลุคอัพโซน
                                      ่                    ์
           โซนประเภทนี้จะเก็บข้อมูลทีจะใช้สำหรับกำรทำรีเวิรสลุคอัพ ในโซนนี้จะมีเรคคอร์ด SOA , NS , PTR และ
                ่                                                            ู้ ื         ้    ้
CNAME โดยทัวไปแล้วกำรคิวรีของดีเอ็นเอสมี 2 ประเภทคือ เมื่อไคลเอ็นต์รช่อโดเมนแต่ตองกำรรูหมำยเลข IP
จะเรียกว่ำ             ์
              “ฟอร์เวิรดลุคอัพโซน(Forward         Lookup)”                        ่
                                                               ส่วนกำรคิวรีแบบทีไคลเอ็นต์ทรำบหมำยเลข    IP
        ้      ้ ื                       ์
แล้วแต่ตองกำรรูช่อโดเมนจะเรียกว่ำ “รีเวิรสลุคอัพ (Reverse Lookup)”
                              ์
           เพื่อให้กำรทำรีเวิรสลุ๊คอัพทำงำนได้             ี              ่ ื
                                                    จึงได้มกำรสร้ำงโดเมนทีช่อ            in-addr.arpa
โดเมนนี้จะใช้หมำยเลขตำมลำดับตรงกันข้ำมกับหมำยเลข                                                   IP
     ้ ้ ู
ดังนันผูดแลระบบของโดเมนระดับต่ำกว่ำสำมำรถจัดกำรหมำยเลข IP ในคลำส A , B และ C ได้
                 ์                                                              ี
ตัวอย่ำงของรีเวิรสลุ๊คอัพของโซนไฟล์ 137.101.203. in-addr.arpa โดเมนนี้จะต้องใช้รซอร์สเรคคอร์ด PTR
ดังตัวอย่ำงด้ำนล่ำง
@      IN     SOA   ( ns1.thaibestserver.net.           ;authoritative server for the zone

       administrator.thaibestserver.net.                ;zone admin email

       2000051501                                      ;serial number

       3600                                             ;refresh (1 hour)

       60                                               ;retry ( 1 minute)

       85400                                            ;expire ( 1 day )

       61             )

4      IN PTR             ns1.thaibestserver.net.

5      IN PTR             www.thaibestserver.net.




    IPv6 Home Gateway Stateless Autoconfiguration.                                                      9
          2.5.7 โซนทรานสเฟอร์
           โซนทรำนสเฟอร์ ( Zone Transfer) เป็ นขบวนกำรถ่ำยโอนโซนไฟล์จำก DNS Server หลัก(Primary Name
server ) หรือ มำสเตอร์ DNS Server (Master Name server) ไปยัง DNS Server รอง(Secondary Name server)
                      ้           ิ ั        ์           ่
โซนทรำนสเฟอร์จะเกิดขึนโดยอัตโนมัตทนทีทเี่ ซิรฟเวอร์รองเริมต้นทำงำน
         ้       ่                        ั้
หลังจำกนันควำมถีในกำรทำโซนทรำนสเฟอร์นนจะกำหนดในฟิลด์รเี ฟรช ( Refresh ) ในโซนไฟล์
                                                      ่ี ี    ่                 ์
             กำรทำโซนทรำนสเฟอร์สำมำรถกำหนดให้ทำในกรณีทมกำรเปลียนแปลงข้อมูลในเซิรฟเวอร์หลักก็ได้ DNS
                                     ่                      ั
Server หลักจะส่งแพ็กเก็ตแจ้งกำรเปลียนแปลงของโซนไฟล์ ให้กบ DNS Server ทีอยู่ในลิสต์ทรำบ ่
         ์            ั
เมื่อเซิรฟเวอร์รองได้รบข่ำว  ก็จะติดต่อกลับมำยัง  DNS      Server     หลักทันทีเพื่อทำโซนทรำนสเฟอร์
           ้
โดยไม่ตองรอช่วงเวลำรีเฟรช
โซนไฟล์และเรคคอร์ด
                                         ่
           DNS Server จะเก็บข้อมูลเกียวกับโดเมนไว้ในไฟล์หรือฐำนข้อมูล โดยจะเก็บไว้เป็ นโซน (Zone)
ในหนึ่งโซนจะเก็บข้อมูลของหนึ่งโดเมน ในแต่ละรำยกำรในโซนจะเรียกว่ำ “ รีซอร์สเรคคอร์ด ” หรือ RR ( Resource
Record ) โดยบำงเรคคอร์ดอำจจะจับคู่ระหว่ำงหมำยเลข IP และชื่อโฮสต์
                           ่ ั                ู
          รีซอร์สเรคคอร์ดทีบนทึกในโซนไฟล์จะมีรปแบบดังนี้

          Owner                  TTL         Class        Type        RDATA



ตารางแสดงฟิ ลด์ต่างๆของรีซอร์สเรคคอร์ด
                     รายการ                                                   คาอธิ บาย
Owner                                                                      ่
                                                   ชื่อของโฮสต์หรือโดเมนทีเป็ นเจ้ำของรีซอร์สเรคคอร์ดนี้
                                                   โดยถ้ำเป็ นเครื่องหมำย @ จะหมำยถึงชื่อเดียวกับชื่อโซน
                                                                   ็
                                                   หรือถ้ำว่ำงไว้กจะหมำยถึงชื่อเดียวกับเรคคอร์ดก่อนหน้ำเรคคอร์ดนี้
Time to Live (TTL)                                 ช่วงเวลำเป็ นวินำทีท่ี DNS Server จะเก็บข้อมูลนี้ไว้ในแคช
                                                          ี                      ่
                                                   ฟิลด์น้ไม่จำเป็ นต้องกำหนด ซึงถ้ำไม่กำหนด
                                                                            ่
                                                   ไคลเอ็นต์จะใช้ค่ำต่ำสุดซึงจะเก็บไว้ในเรคคอร์ด SOA
Class                                                         ่ี                        ่          ่
                                                   เป็ นฟิลด์ทกำหนดว่ำชุดโปรโตคอลใดทีจะใช้ โดยทัวไปแล้วจะใช้
                                                        ่                                  ่
                                                   IN ซึงย่อมำจำกอินเตอร์เน็ต (Internet) ซึงหมำยถึงชุดโปรโตคอล
                                                                    ่
                                                   TCP/IP ค่ำอื่นๆทีเป็ นไปได้เช่น CH สำหรับระบบ Choas
                                                     ่           ่
                                                   ทีใช้ทดลองทีมหำวิทยำลัย MIT
Type                                               กำหนดประเภทของเรคคอร์ด
RDATA                                                                              ่
                                                   เป็ นข้อมูลของรีซอร์สเรคคอร์ดทีจะส่งกลับ เช่น หมำยเลข IP
                                                   หรือชื่อโดเมนหรือโฮสต์ เป็ นต้น



  IPv6 Home Gateway Stateless Autoconfiguration.                                                               10
                                                                                                            ้
          แต่ละเรคคอร์ดจะเก็บหนึ่งบรรทัด ถ้ำข้อมูล,ไม่สำมำรถเขียนไว้ในหนึ่งบรรทัด ให้ใช้วงเล็บครอบเรคคอร์ดนัน
                               ่                  ้ ่           ี
โดยส่วนใหญ่แล้วเฉพำะเรคคอร์ดทีเป็ น SOA เท่ำนันทีอนุญำตให้มได้มำกกว่ำหนึ่งบรรทัด เพื่อควำมง่ำยต่อกำรอ่ำน
ในโซนไฟล์สำมำรถใส่บรรทัดว่ำงและคำอธิบำยได้                                          ่ ์
                                                                                  ซึงเซิรฟเวอร์จะไม่สนใจส่วนนี้
ส่วนคำอธิบำยจะนำหน้ำด้วยเครื่องหมำยเซมิโคลอน (;)

          2.5.8 ประเภทของเรคคอร์ด
        รีซอร์สเรคคอร์ดเป็ นข้อมูลทีอธิบำยเกียวกับคอมพิวเตอร์ทอยูในเครือข่ำย
                                    ่        ่                ่ี ่                     ่
                                                                                     ซึงแบ่งออกเป็ นหลำยประเภท
             ่ ั ่          ั
โดยเรคคอร์ดทีใช้กนทัวๆไปมีดงนี้
           เรคคอร์ด SOA ( Start of Authority )
                              ่                              ู
          เป็ นข้อมูลส่วนแรกทีกำหนดกำรทำงำนของ DNS Server มีรปแบบคือ

           psu.ac.th.             IN          SOA        ns.psu.ac.th           root.ns.psu.ac.th.


                        ี                     ื
            เรคคอร์ดนี้มขนำด 4 คอลัมน์ โดยมีช่อโดเมนเป็ น psu.ac.th และชื่อ DNS Server คือ ns.psu.ac.th
                  ้ ู                                                       ่
และมีอเี มล์ ของผูดแลระบบคือ root@ns.psu.ac.th โดยระบบโดเมนเนมจะแปลงจุดทีตำแหน่งแรกเป็ น “@”
                            ่                                                                     ั
         ถัดมำเป็ นหมำยเลขทีอยู่ในวงเล็บแสดงช่วงจังหวะเวลำในกำรทำงำนร่วมกันระหว่ำง DNS Server นี้กบ
                                                            ้   ่                           ่
Slave DNS Server และ DNS Server อื่นนอกโซน เพื่อให้ขอมูลทีให้บริกำรมีควำมทันสมัยต่อกำรเปลียนแปลง
     ้
ค่ำทังหมดประกอบด้วยตัวเลข 5 ชุดได้แก่

           1997081303                         ;serial


           ค่ำแรกเป็ นเลขลำดับ               (serial             number)                  ใช้กำหนดรุ่นของฐำนข้อมูล
                         ่           ้         ้
เลขมำกแสดงฐำนข้อมูลทีปรับปรุงครังล่ำสุด ทังมำสเตอร์และ Slave DNS Server จะมีค่ำนี้ประจำตัว หำก Slave
DNS          Server          พบว่ำเลขลำดับใน         Master      DNS         Server           มำกกว่ำเลขของตนเอง
                               ่          ์
แสดงว่ำมีกำรปรับปรุงข้อมูลทีมำสเตอร์เซิรฟเวอร์                          Slave               DNS            Server
                                 ่ี
จะต้องถ่ำยโอนข้อมูลใหม่ไปไว้ทฐำนข้อมูลตนเอง              เลขลำดับเป็ นเลขชนิดไม่มเี ครื่องหมำยขนำด 32 บิต
                           ้ ่ ี
จะต้องมีกำรปรับค่ำทุกครังทีมกำรปรับปรุงฐำนข้อมูล                          ่ ้ ้
                                                          กำรปรับค่ำอำจเพิมขึนครังละเท่ำใดก็ได้ตำมควำมเหมำะสม
         ่       ื
เทคนิคทีนิยมใช้คอใช้หรัส ปี -เดือน-วัน-รุ่น ตัวอย่ำงเช่น 1997081303 หมำยถึงปรับปรุงครังทีสำมของวันที่้ ่
13/08/1997

           108000                 ;refresh every 3 hours


            ค่ำ        refresh            ใช้กำหนดว่ำ              Slave                 DNS               Server
                   ู               ์
จะต้องกลับมำอ่ำนข้อลจำกมำสเตอร์เซิรฟเวอร์เพื่อปรับปรุงข้อมูลของตนเองบ่อยเพียงใด           ตัวเลขมีหน่วยเป็ นวินำที
        ี ื                      ่
ในกรณีน้คอ 108000 วินำทีหรือ 3 ชัวโมง
           36000                  ;retry every 1 hour




   IPv6 Home Gateway Stateless Autoconfiguration.                                                              11
                               ่
           ค่ำ retry เป็ นค่ำทีบอกให้ DNS Server พยำยำมติดต่อ Master DNS Server ทุกๆ ช่วงเวลำ retry
                                                                                          ่
ดังกล่ำวมีหน่วยเป็ นวินำที หำก Slave DNS Server ไม่สำมำรถติดต่อ Master DNS Server ได้ตำมทีกำหนดค่ำ
refresh

           2592003                ;expire after 30 days


           ค่ำ expire เป็ นค่ำที่ Slave DNS Server ไม่สำมำรถติดต่อ Master DNS Server เป็ นระยะเวลำ expire
วินำที           Slave        DNS       Server                      ่ ี
                                                  ต้องถือว่ำข้อมูลทีมอยู่หมดอำยุแล้ว      DNS      Server
                      ่
จะไม่ให้บริกำรข้อมูลทีหมดอำยุแล้วออกไปภำยนอก

                                  86400)                    ;minimum TTL of 1 day

            ค่ำ                 TTL                           ่                 ่ ้                               ้
                                                    เป็ นค่ำทีใช้กำหนดช่วงเวลำทีตองรักษำข้อมูลก่อนจะยกเลิกข้อมูลนัน
         ์           ั        ้
เมื่อเซิรฟเวอร์ใดได้รบข้อมูลนันไปแล้ว
           เรคคอร์ด NS
                                                   ี ี
           เรคคอร์ดนี้กำหนดชื่อ DNS Server ในกรณีน้มสองเครื่องคือ ns.psu.ac.th                 และ ns2.psu.ac.th
ดังตัวอย่ำงจำกเรคคอร์ดต่อไปนี้

           psu.ac.th.           IN             NS            ns.psu.ac.th.
           psu.ac.th.           IN             NS            ns2.psu.ac.th.

           เรคคอร์ด MX
                                  ์      ่ึ       ่              ่
          เรคคอร์ดนี้กำหนดชื่อเซิรฟเวอร์ซงทำหน้ำทีเป็ นตัวแลกเปลียนอีเมล์ (mail exchanger) ดังตัวอย่ำงจำกเรค
คอร์ดต่อไปนี้

           psu.ac.th.             IN          MX            10         mail.psu.ac.th.
           psu.ac.th.             IN          MX            20         maliwan.psu.ac.th.


                                                                            ่
             หมำยถึงโฮสต์ mail.psu.ac.th และ maliwan.psu.ac.th ทำหน้ำทีเป็ นตัวรับส่งเมล์ประจำโดเมน
ตัวเลขกำกับหน้ำชื่อโฮสต์เป็ นค่ำลำดับควำมสำคัญ             ค่ำตัวเลขน้อยมีลำดับควำมสำคัญสูงกว่ำเลขมำก
                           ุ่         ั ้
ลำดับควำมสำคัญสูงมำกทีสดคือศูนย์ดงนันโฮสต์                                              mail.psu.ac.th
                    ่               ่
จะเป็ นเครื่องหลักทีให้บริกำรแลกเปลียนอีเมล์เป็ นอันดับแรก หำกไม่สำมำรถขอบริกำรจำก mail.psu.ac.th
    ิ
ให้ตดต่อไปที่ maliwan.psu.ac.th แทน
           เรคคอร์ด A
                                                                       ี
          เรคคอร์ด A (Address) ใช้กำหนดหมำยเลข IP ประจำโฮสต์ กรณีน้เป็ นเลข IPv4 มีขนำด 32 บิต
                              ี            ่                                             ึ ื
ต่อมำได้ออกแบบหมำยเลข IP ให้มขนำด 128 บิตซึงมีขนำดเป็ น 4 เท่ำของหมำยเลขเดิม เรคคอร์ดนี้จงมีช่อเรียกว่ำ
AAAA records



   IPv6 Home Gateway Stateless Autoconfiguration.                                                               12
ns.psu.ac.th.                      IN          A          192.100.77.5
www.psu.ac.th.                     IN          A          192.100.77.10
maliwan.psu.ac.th.                 IN          A          192.100.77.4
mail.psu.ac.th.                    IN          A          192.100.77.7
ns2.psu.ac.th.                     IN          A          192.100.77.6
test.psu.ac.th.                    IN          A          192.100.77.120

            เรคคอร์ด PTR
             ั ั
           ฟงก์ชนของรีซอร์สเรคคอร์ด PTR (Pointer to Resource Record) จะตรงกันข้ำมกับเรคคอร์ด A กล่ำวคือ
                 ื                             ่
เรคคอร์ดนี้ระบุช่อโดเมน (FQDN) ของหมำยเลขIPทีอยู่ในโดเมนนี้ ตัวอย่ำงเช่น เรคคอร์ด PTR ของหมำยเลข IP
                     ู
203.101.137.4 จะมีรปแบบดังนี้

4.137.101.203.in-addr.arpa.                    IN         PTR         ns1.thaibestserver.net.

            เรคคอร์ด CNAME
                                                                                     ่
          รีซอร์สเรคคอร์ด CNAME ( Canonical Name) เป็ นเรคคอร์ดทีเป็ นชื่อสมมติ ( alias )
      ั     ่ี ี                                         ์                         ่      ้        ์
ให้กบโฮสต์ทมเรคคอร์ด A อยู่แล้ว ตัวอย่ำงเช่น สมมติว่ำเซิรฟเวอร์เครื่องหนึ่งทำหน้ำทีเป็ นทังเว็บเซิรฟเวอร์ และ FTP
    ์                                       ั      ์
เซิรฟเวอร์ เรำสำมำรถเซ็ตเรคคอร์ด A ให้กบเว็บเซิรฟเวอร์ และเซตเรคคอร์ด CNAME ให้กบ FTP เซิรฟเวอร์ั           ์
ดังแสดงในตัวอย่ำงข้ำงล่ำง

www         IN                     A                   203.101.137.4
FTP         IN                     CNAME       www.thaibestserver.net.



                                           ิ                                                    ั้
       จากเรคคอร์ ดที่กาหนดข้ างบน ทาให้ ตดต่อกับโฮสต์ที่มีหมายเลข IP 203.101.137.4 ได้ โดยใช้ ทงสองชื่อ คือ
www.thaibestserver.net และ ftp.thaibestserver.net ก็ได้
          เรคคอร์ด MX
           ระบบเมลบนอินเตอร์เน็ตจะทำงำนร่วมกับ                                                           DNS
                 ่ี       ่              ์
เพื่อค้นหำโฮสต์ททำหน้ำทีเป็ นเมลล์เซิรฟเวอร์สำหรับโดเมน เรคคอร์ด           MX     (     Mail    Exchanger )
               ่                             ์
เป็ นเรคคอร์ดทีระบุว่ำโฮสต์ใดทีเ่ ป็ นเมลเซิรฟเวอร์ของโดเมน ตัวอย่ำงเช่น

@           IN                     MX                     1                     mail
@           IN                     MX                     10                    mail2



                                                                                              ์
           จำกเรคคอร์ดข้ำงบน mail.thaibestserver.net และ mail2.thaibestserver.net เป็ นเมลเซิรฟเวอร์ของโดเมน
thaibestserver.net โดยคอลัมที่ 3 จะเป็ นหมำยเลขบอกลำดับควำมสำคัญ ( Preference ) ของเมลเซิรฟเวอร์       ์
      ่     ่
เลขยิงน้อยยิงมีลำดับควำมสำคัญมำกกว่ำ            เช่น                 ์       ี
                                                          ถ้ำเมลเซิรฟเวอร์มหมำยเลขลำดับควำมสำคัญเท่ำกัน
    ์                ่
เซิรฟเวอร์จะทำหน้ำทีเท่ำๆกัน ( Load Balancing )




    IPv6 Home Gateway Stateless Autoconfiguration.                                                            13
2.6     Dynamic DNS
                                                  ู้                                                  ้ ่
            DDNS คือ (Dynamic DNS) จะช่วยให้ผใช้ Internet แบบ Dynamic IP (IP ที่ ISP จะจ่ำยให้แต่ละครังทีเรำ
                       ้
Connect Internet) ไม่ตองจำหมำยเลข IP ทำให้เรำสำมำรถทำ Web server, FTP Server ได้โดย DDNS จะ
                             ่ ่             ้
Mapหมำยเลข IP ให้ตรงกับชือทีเรำกำหนดขึน ทำให้จำง่ำย หรือเรียกอีกแบบว่ำ DNS (Domain Name Service)
                      ่ ้ั
ตัวอย่ำงชื่อแบบ DNS ทีเรำรูจกกันอยู่แล้ว เช่น... www.hotmail.com, www.dcomputer.com เป็ นต้น
                                                                                             ู้
            หลักกำรทำงำนเรำท์เตอร์ จะทำกำรส่งค่ำหมำยเลข IPไปอัพเดทในฐำนข้อมูล ของเว็บไซต์ผให้บริกำร DNS
              ่                    ้                            ้
เมื่อมีกำรเปลียนแปลงหมำยเลข IP ผูใช้งำนจำเพียงชื่อ DNS เท่ำนัน จึงง่ำยและสะดวกกว่ำกำรเรียกแบบหมำยเลข IP
  ่                                  ่      ู้
ซึงก่อนอื่นจะต้องไปสมัคร Account ทีเว็บไซต์ผให้บริกำร เช่น... www.dyndns.org, www.no-ip.com เป็ นต้น [9],[10]




                                               ้
                         รูปภาพที่ 2 - 5 แสดงขันตอนการทางานของ dynamic DNS


2.7                              ั
        การกาหนดหมายเลข IPv6 ให้กบเครื่องลูกข่าย
                         ั    ่
การกาหนดหมายเลข IPv6 ให้กบเครืองลูกข่ายมื 2 วิ ธีคือ

          2.7.1 Stateless address autoconfiguration :
                                                               ่        ้         ้ ้     ี
            stateless autoconfiguration จะเป็ นกำร configure ทีโฮสต์ไม่ตองทำอะไรทังสิน วิธกำรของ stateless
                                                                                      ่
จะอนุญำตให้โฮสต์สร้ำงหมำยเลข ด้วยตัวเองโดยจะใช้กำรรวมกันของข้อมูลเฉพำะกับข้อมูลทีได้มำจำกเรำท์เตอร์ ซึง  ่
                              ่                     ่                        ่
เรำท์เตอร์จะส่งค่ำ prefix ทีจะใช้ระบุ subnet ทีเชื่อมโยงกับลิงค์ ในขณะทีโฮสต์จะสร้ำง interface token
  ่                                                   ้              ่     ้
ซึงจะเป็ นตัวระบุ interface ใน subnet นันๆ หมำยเลขทีได้มำนันจะประกอบไปด้วยสองส่วนด้วยกัน
                 ่                              ั้
สำหรับในส่วนทีไม่ได้ถูกกำหนดมำจำกเรำท์เตอร์นน โฮสต์จะทำกำรสร้ำง link-local address [11],[12]

          2.7.2 Stateful address autoconfiguation:
                                                                          ั
           ในส่วนของรูปแบบ stateful address autoconfiguration โฮสต์จะได้รบ interface address และข้อมูลกำร
configuration           ้
                   รวมทังพำรำมิเตอร์ต่ำงๆ             ์
                                               จำกเซิรฟเวอร์             ่ ์
                                                                   โดยทีเซิรฟเวอร์จะคอยดูแลระบบฐำนข้อมูล


  IPv6 Home Gateway Stateless Autoconfiguration.                                                          14
  ่                                                     ่ ี
ซึงจะเก็บข้อมูลในส่วนของกำรควบคุมเส้นทำงของแอดเดรสทีได้มกำรกำหนดไว้ของแต่ละโฮส stateful address
                                                                                ์      ่ึ ้
autoconfiuration protocol จะจัดสรรหมำยเลขและข้อมูลกำร configure ต่ำงๆ จำกเซิรฟเวอร์ซงทัง stateless และ
                                                      ่         ่ึ
stateful address autoconfiguration จะเป็ นองค์ประกอบทีสมบูรณ์ซงกันและกัน ตัวอย่ำงเช่น โฮสต์จะใช้ stateless
                                                              ั
         address autoconfiguration ในกำรกำหนดหมำยเลขแต่มนจะใช้ stateful address autoconfiguration
ในกำรรับข้อมูลอื่นๆมำ
             ่
           ซึง        stateless                    ่ี ้                                       ่    ั้ ั
                                      จะใช้ในกรณีทไม่ตองกำรเน้นควำมถูกต้องแม่นยำของแอดเดรสทีโฮสต์นนได้รบ
  ่
ซึงมันไม่จำเป็ นจะต้องเป็ น     unique      และไม่เน้นกำร      routable     ่
                                                                          ทีถูกต้อง   ถ้ำเป็ น    stateful
               ่ี ้                                          ่
จะใช้ในกรณีทตองกำรเข้มงวดในกำรควบคุมกำรจัดสรรแอดเดรสทีถูกต้องแม่นยำ


2.8     Toolchain
          เป็ นเครื่องมือทีใช้ในกำรพัฒนำโปรแกรม
                           ่                                                   ั
                                                                    สำหรับสถำปตยกรรมแบบหนึ่งโดยเฉพำะ
  ่               ั          ่ั
ซึงส่วนใหญ่จะใช้กบระบบทีรนอยู่บนอุปกรณ์ต่ำงๆ                       เป็ นต้น                   toolchain
                                                         ่       ั
ส่วนใหญ่จะใช้ในกำรคอมไพล์โปรแกรมเพื่อจะนำไปใช้บนเครื่องทีต่ำงสถำปตยกรรมกัน เพื่อให้โปรแกรมสำมำรถรันได้
          Tool chain ประกอบด้วย
           text editor สำหรับไว้เขียนโค้ด
           ตัวคอมไพล์และตัวลิงค์ เพื่อใช้ในกำรคอมไพล์โค้ด
           ไลบรำรี เพื่อใช้ในกำรคอมไพล์
                    ั ้                                   ์
          ในกำรทำวิจยครังนี้ใช้ toolchain ในกำรคอมไพล์เฟิรมแวร์ OpenWRT [13]


2.9     Html And Shell Embedded Report Language
                           ่
          เป็ นเครื่องมือทีใช้ในกำรเขียน web โดยสำมำรถทำงำนร่วมกับ shell script ได้ มีหลักกำรเขียนคล้ำยๆกับ
        ี                                  ่ ี ้ื ่      ้
PHP แต่มขนำดเล็กกว่ำ จึงเหมำะกับเครื่องทีมพนทีน้อยๆ ดังนันจึงใช้ในกำรเขียน web บนเรำท์เตอร์ WRT54G [14]
            ่               ้         ั           ั ิ                       ่ ู้ ั                 ่
          ซึง haserl เขียนขึนเพื่อใช้กบระบบปฏิบตกำรลีนุกซ์ แต่จะเป็ นทีรจกกันในกำรรันบน Free BSD ซึงตัว
                       ่                        ่                                ่ ี ้ื ่
คอมไพล์ของ haserl มีขนำดเล็กกว่ำ 20 K ซึงมีประโยชน์มำกกับเครื่องทีมพนทีอยู่ไม่มำก ในกำรใช้จะรัน cgi
                                                                          ่
สคริปต์ภำยใต้ web sever ขนำดเล็ก ได้แก่ mini-httpd, thttpd, หรือ server ซึงอยู่ใน busybox
            ่           ้ ั
          ซึง haserl มีขอดีดงนี้
           Automatic FORM parsing                  ประกอบด้วย parsed(ไวยำกรณ์)และ placed(หน้ำที)             ่
                             ่ ่
            ในสภำพแวดล้อมทีเปลียนแปลงไปสำหรับใช้ใน            cgi                    ่ ื
                                                                                ซึงก็คอ        shell     script
                   ี ั     ่
            จะไม่มปญหำเกียวกับกำรถอดรหัส POST                                     ่ ั่
                                                               หรือ GET data ทีสงโดย Browser
           ไวยำกรณ์จะคล้ำยกับ "php-lite" ทุกสิงทุกอย่ำงจะไม่ได้อยู่ภำยใน <?.........?> ซึงจะเหมือนกับกำรเขียน
                                               ่                                          ่
                                                                           ่
            html จึงทำให้สำมำรถเขียน cgi ได้เหมือนกับกำรเขียนโดยใช้ php ซึงมันง่ำยกว่ำใช้คำสัง่ echo มำก
           มีขนำดเล็ก และยังมีตว complie ขนำดเล็กกว่ำ 20 KB มี module ทีเป็ น option เสริม (haserldb)
                                ั                                                  ่
              ่ ี
            ทีมขนำดน้อยกว่ำ 20 KB



  IPv6 Home Gateway Stateless Autoconfiguration.                                                            15
          2.9.1 คาจากัดความ
           Haserl เป็ นแพคเก็ต แบบ cgi ทีทำให้เชลล์สคริปต์บน embeded ใน html document มีขนำดเล็กมำก
                                          ่
                                                         ่                         ่
            สำมำรถใช้แทน PHP ได้เนื่องจำก PHP มีขนำดทีใหญ่เกินไปสำหรับ embeded ซึง haserl จะรวมเอำ
            3 ฟงก์ชนเข้ำไว้ดวยกัน haserl มีไวยากรณ์ที่ตรงไปตรงมา ในการ POST และ GET การจัดการ
                ั ั         ้
             FORM-element เป็ นแบบ name=value ประกอบกันภายใน environment ของ cgi script
           haserl สำมำรถแสดง content ของ script แบบ html และเงื่อนไขทีแสดง text อยู่ภำยใน <?.....?>
                                                                                ่
                                    ึ                                     ้
            เหมือน shell script นี่จงทำให้กำรเขียน haserl script บำงส่วนนันคล้ำยกับ PHP CGI scripts
           --shell=pathspec
                   ใช้ระบุทำงเลือกของ bash คล้ำยเชลล์ สำมำรถใช้ระบุ option ในกำรรัน command-line สำหรับ
                                                                           ่
shell เช่น -- shell='/bin/dash -x' จะใช้ dash shell กับ debugging option ซึงdefault คือ "/bin/sh"
           --upload-limit=limit
                                                 ้     ั              ่
                 อนุญำต mime-encoded file ขึนอยู่กบ limit KB ทีจะอัพโหลด โดยดีฟอลต์จะเท่ำกับ 0 KB
              ี                  ่           ั
(ไม่อนุญำตให้มกำร upload) เพื่อทีจะให้ใช้ได้กบ haserl version 0.8.0และรวดเร็วทำได้โดยใช้ option no parameter
  ่
ซึงอนุญำตให้ upload ได้ 2 MB
           --verbatim
                                                             ่                           ้
                 Version ก่อนของ haserl จะแสดงส่วนของ html ทีประกอบด้วย whitespace เท่ำนัน ตัวอย่ำงเช่น
<? echo -n "hello" ?>
<? echo -n "world" ?>


          2.9.2 โครงสร้างของ haserl
                 โครงสร้ำงของ haserl
           RUN
<? [shell script] ?>

                    ่
          ทุกอย่ำงทีอยู่ภำยใน <? ?> จะถูกส่งไปยัง sub-shell เพื่อทำกำร execution โดยที่ text
จะถูกส่งไปเป็ นคำต่อคำ
           IF / THEN / ELSE
 <?if [shell script]?>
 [ <?el [optional comment] ?> ]
 <?fi [optional comment] ?>

                          ่ี ั              ุ      ่                        ่ ่
             เชลล์สคริปต์ทรนอยู่ ถ้ำผลลัพธ์สดท้ำยทีได้ ($?) มีค่ำเป็ น 0, สิงทีถูกประเมินผลจะเป็ นสัญลักษณ์ the.
           ุ         ่                                                                    ่ี
ถ้ำผลลัพธ์สดท้ำยทีได้ไม่เป็ น 0 แล้วส่วนของ else (<?el) จะถูกประเมินผล. เป็ นไปได้ทจะสำมำรถรันหลำยคำสัง่
                   ่           ุ                ั     ่
ภำยใน <?if โดยทีผลลัพธ์สดท้ำยจะแสดงเมื่อได้รนคำสังสุดท้ำยแล้ว
            Note: Commands สำมำรถวำงเป็ นระเบียบ. เป็ นไปได้ทจะมีกำรแทรก raw text และภำยใน <?.. สำมำรถมี
                                                             ่ี
if/else อีกได้


  IPv6 Home Gateway Stateless Autoconfiguration.                                                             16
            ABORT
<?ab [optional comment] ?>

                    ่ ่                                                 ้
           เป็ นคำสังทีใช้หยุดกำร processing หรือต้องกำรออกจำกเงื่อนไขนัน โดยจะ return code อื่นนอกเหนือจำก
0
            INCLUDE
<?in pathspec ?>

                                  ื    ่          ี                        ี                 ่
        เป็ นกำรทำงำนร่วมกับไฟล์อ่น ซึงในสคริปต์น้ไฟล์จะถูกรวมเมื่อสคริปต์มกำรวิเครำะห์ค่ำเริมต้นและerror
           ่้                                                       ้
messages ทีอำงอิงถึงจำนวนบรรทัด จะรวมหมำยเลขบรรทัดเข้ำไปในไฟล์ นี้ดวย

           2.9.3 การสร้างฟอร์ม
                     ั                                                         ้
          Haserl ได้รบ input จำกไคลเอ็นต์(ผ่ำนทำงวิธี POST หรือ GET ) จำกนันจะสร้ำงตัวแปร environment
                           ่      ี
จำกรูปแบบของcontent ซีงมันไม่มอะไรใหม่และสำมำรถกระทำได้โดยใช้ cgi wrapper อย่ำงไรก็ตำม haserl
        ่                                                                         ่        ิี ี
สำมำรถทีจะจัดกำรกำรส่งข้อมูลผ่ำนทำง enctype="multipart/form-data" ได้ ซึงจะใช้วธน้เมื่อ upload
                             ่
ไฟล์จำกไคลเอ็นต์และสำมำรถทีจะเขียน cgi แบบง่ำยๆเพื่อ upload binary ไฟล์ โดยใช้ shell script ได้
            ตัวอย่ำง
      1      #!/usr/bin/haserl
      2      content-type: text/html
      3
      4      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
      5      <html>
      6      <head>
      7      <title>Sample Haserl Form</title>
      8      </head>
      9
     10      <body>
     11      <h1>Sample form running on <? hostname ?></h1>
     12      <form action="<? echo -n $SCRIPT_NAME ?>" method=POST>
     13      <textarea name=textarea1><? echo -n $FORM_textarea1 | tr a-z A-Z ?>
     14      </textarea>
     15      <input type=submit value=GO>
     16      </form>
     17
     18     <?if [ "$FORM_textarea1" != "$(echo -n $FORM_textarea1 | tr a-z A-
            Z)" ] ?>
     19       <b>Please note that I had to uppercase some of your input</b>
     20       <?el?>
     21       <?if [ -n "$FORM_textarea1" ] ?>
     22              <b>Input above was already uppercased
     23              <?fi?>
     24       <?fi?>
     25     </body>
     26     </html>

           อธิบำยโค้ด
                   ่
           บรรทัดที1 :                             ่
                            เป็ นกำรกำหนดตัวแปรคำสังของ Haserl
                   ่
           บรรทัดที2 :                                               ่
                            กำหนด http header เป็ น “content-type” ซึงจะเป็ นรูปแบบมำตรฐำน


    IPv6 Home Gateway Stateless Autoconfiguration.                                                      17
                            ของ cgi scripts ที่จะผ่าน http header ก่อนที่จะเป็ น content
                  ่                                                                 ่
          บรรทัดที4-10: single-blank ใช้แยก http header ออกจำก content เรำสำมำรถทีจะกำหนด http header
                               ่ ีั
                        อื่นๆทีมลกษณะเฉพำะ เช่น audio , image , plan-text โดยใช้ haserl เป็ น html มำตรฐำน
                  ่
          บรรทัดที11:      <?hostname?> เป็ นโครงสร้ำงสำหรับรัน “hostname” และ print hostname ไปยัง stdout
                  ่
          บรรทัดที12:      ใช้ web-server ในกำร generate SCRIPT_NAME เพื่อสร้ำงตัวอ้ำงอิงแบบ cgi
                             ่       ่           ์      ั ั                     ่ ้       ่
                           ซึงถ้ำเปลียนชื่อบนเซิรฟเวอร์มนก็ยงสำมำรถทำงำนได้โดยทีไม่ตองเปลียนโค้ด
                  ่
          บรรทัดที13:                                            ื
                           create : textarea จำก element โดยให้ช่อว่ำ textarea1 และ script ถัดไปจะเป็ น content
                             ่
                           ซึงเป็ นตัวพิมพ์ใหญ่ ของค่ำ “FORM_textarea1” ใน element โปรแกรม haserl
                                                          ้        ่                              ่
                           จะวิเครำห์จำก element ดังนันเมื่อกดปุม “submit”จำก element ทีอยู่ในตัวแปร
                                                                                  ์
                           “FORM_textarea1” อย่ำงไรก็ตำมไคลเอ็นต์จะเข้ำไปยังเซิรฟเวอร์
                  ่
          บรรทัดที18:                                   ้ ่
                           เงื่อนไขในบรรทัดที่ 19 เท่ำนันทีถูก execute เมื่อ shell expression เป็ น “จริง”
                           และบรรทัดที่ 20 เป็ น “เท็จ”
                  ่                                                               ่ี
          บรรทัดที21-23: เงื่อนไขจะถูก execute ภำยในเงื่อนไขอื่น และมันเป็ นไปได้ทจะมีเงื่อนไขซ้อนกัน

          2.9.4 ตัวอย่าง
           ข้อควรระวัง
                                                                        ่         ้
          ตัวอย่ำงข้ำงล่ำงนี้จะแสดงให้เห็นว่ำใช้ haserl อย่ำงไร เรำควรทีจะทำควำมคุนเคยกับ basic web scripting
               ่
security ก่อนทีจะใช้ haserl
           ตัวอย่ำงคำสังง่ำยๆ
                        ่
#!/usr/local/bin/haserl
content-type: text/plain
<? env ?>

                                                                           ื
          แสดงผลลัพธ์ของคำสัง่ env เหมือนเอกสำร mime-type "text/plain" นี่คอ haserl version printenv cgi
ธรรมดำ
           เงื่อนไข if ทีไม่มี else
                          ่
#!/usr/local/bin/haserl
content-type: text/html
<html>
<body>
<?if [ "$(hostname)" = "localhost" ] ?>
        My hostname is localhost
        <?fi?>
</body>
</html>

         ส่ง mime-type "text/html" document ไปยังไคลเอ็นต์ ถ้ำ hostname มีค่ำเท่ำกับ "localhost"
จะแสดงข้อควำม My hostname is localhost ถ้ำไม่ตรงตำมเงื่อนไขจะไม่แสดงอะไรออกมำ
           เงื่อนไข if-else


  IPv6 Home Gateway Stateless Autoconfiguration.                                                            18
#!/usr/local/bin/haserl
content-type: text/html
<html>
<body>f
<?if [ "$(hostname)" = "localhost" ] ?>
        You really should change your hostname
<?el?>
        Congratulations! Your host is now named <? hostname ?>
<?fi?>
</body>
</html>

           ส่ง mime-type "text/html" document ไปยังไคลเอ็นต์ ถ้ำ hostname เท่ำกับ "localhost" จะแสดง You
really should change your hostname ถ้ำไม่ใช่กจะแสดง Congratulations! Your host is now named hostname
                                              ็
                                     ่ี
โดยที่ hostname คือ name ของโฮสต์ทสคริปต์กำลังรันอยู่
          กำรส่งค่ำผ่ำนฟอร์ม
#!/usr/local/bin/haserl
content-type: text/html
<html><body>
<h1>Sample Form</h1>
<form action="<? echo -n $SCRIPT_NAME ?>" method="GET">
<? # Do some basic validation of FORM_textfield
   # To prevent common web attacks
   FORM_textfield=$( echo "$FORM_textfield" | sed "s/[^A-Za-z0-9 ]//g"
   ?>
<input type=text name=textfield
        Value="<? echo -n "$FORM_textfield" | tr a-z A-Z ?>" cols=20>
<input type=submit value=GO>
</form><html>
<body>

                          ่                                                   ้
          ถ้ำหำกไคลเอ็นต์คำ text ไปใน form จะทำให้ CGI จะถูกโหลดขึนมำ(defined by $SCRIPT_NAME)
     ้                               ่ ู้
จำกนัน form จะถูกแสดงพร้อมกับ text ทีผใช้ ใส่เข้ำไป โดยที่ text จะเป็ นตัวอักษรพิมพ์ใหญ่
          Uploading a File
#!/usr/local/bin/haserl -u
content-type: text/html
<html><body>
<form action="<? echo -n $SCRIPT_NAME ?>" method=POST
        enctype="multipart/form-data" >
<input type=file name=uploadfile>
<input type=submit value=GO>
<br>
<?if test -n "$FORM_uploadfile" ?>
        <p>
        You uploaded a file named <b><? echo -n $FORM_uploadfile_name
        ?></b>, and it was
        temporarily stored on the server as <i><? echo $FORM_uploadfile
        ?></i>. The
        file was <? cat $FORM_uploadfile | wc -c ?> bytes long.</p>
        <? rm -f $FORM_uploadfile ?><p>Don't worry, the file has just been
        deleted
        from the web server.</p>
<?el?>
        You haven't uploaded a file yet.



  IPv6 Home Gateway Stateless Autoconfiguration.                                                     19
<?fi?>
</form>
</body></html>

         แสดง form ทีอนุญำตให้ upload file ซึงเป็ นผลมำจำกกำรใช้คำสัง่ -u บน command line และโดยกำร set
                        ่                        ่
                                               ่                ้             ่ ่
enctype เป็ น multipart/form-data ถ้ำไคลเอ็นต์สงไฟล์เข้ำมำ จะมีขอมูลบำงอย่ำงทีเกียวข้องกับไฟล์เถูกแสดงออกมำ
                             ่                          ็
และจะถูกลบออกไป ถ้ำเป็ นเงือนไขเป็ น else ไคลเอ็นต์กจะไม่สำมำรถ upload file ได้
           คำสังใช้ยกเลิกกำรทำงำน
                ่
#!/usr/local/bin/haserl --verbatim
<?if [ "$(hostname)" = "localhost" ] ?><?ab?>
<?el?>content-type: text/html
<html>
<body>
        ...
</body>
</html>
<?fi?>

                                                        ้                  ั         ่
         ถ้ำคำสัง่ hostname return ค่ำ "localhost" จำกนันก็จะออกจำกสคริปต์ทนที จะไม่สง HTTP headers
ออกไป ถ้ำเป็ น else ก็จะทำกำร processing script ต่อไป




  IPv6 Home Gateway Stateless Autoconfiguration.                                                        20
บทที่ 3 กำรออกแบบระบบ
3.1     หลักการทางาน ของระบบ
                     ั ั                          ั                    ้
           ในปจจุบนกำรกำหนดหมำยเลข IP ให้กบเครื่องลูกข่ำยมีอยู่ดวยกัน 2 แบบ คือกำร stateful address
                                                                         ่             ้
autoconfiguration และ stateless address autoconfiguration ซึงในกำรทำโครงงำนครังนี้ จะทำในส่วนของ
stateless           address autoconfiguration     เนื่องจำก         stateful address       autoconfiguration
      ั่        ์                           ั               ่                    ์
ทำงฝงของเซิรฟเวอร์และไคลเอ็นต์จะต้องมีตวเอเจนต์เพื่อทำหน้ำทีในกำรติดต่อกันเซิรฟเวอร์และไคลเอ็นต์
แต่อุปกรณ์ทเี่ รำจะควบคุมไม่ใช่เครื่องคอมพิวเตอร์             จึงไม่สำมำรถลงโปรแกรมได้                     ้
                                                                                                      ดังนัน
                         ้ ึ                                                   ่
ในกำรทำโครงงำนครังนี้จงเลือกใช้แบบ stateless address autoconfiguration ซึงจะใช้ โปรแกรม radvd(router
advertisement daemon) ในกำรกำหนดหมำยเลข IPv6 ให้กบอุปกรณ์ต่ำงๆ       ั                   ่
                                                                                       ซึงหมำยเลข IPv6
  ่                   ั         ้                                            ่
ทีนำมำแจกให้กบอุปกรณ์เหล่ำนัน เกิดจำกกำรนำ prefix + MAC address ทีแปลงเป็ น EUI 64 แล้ว ในส่วนของ
                                                      ้                    ่       ้
prefix จะได้จำกกำรทำ 6to4 tunnel จะเห็นว่ำเรำไม่ตองไปลงโปรแกรมทีอุปกรณ์ แต่ขอควรระวังในกำรใช้ 6to4 คือ
                  ั
6to4 จะใช้ได้กบ public IPv4 Address เท่ำนัน   ้




                     รูปภาพที่ 3 - 1 แสดงการกาหนดหมายเลข IPv6 ให้กบอุปกรณ์ต่างๆ
                                                                  ั




  IPv6 Home Gateway Stateless Autoconfiguration.                                                         21
                              ่            ี ้
           กำรทำงำนของระบบทีได้ออกแบบไว้มอยู่ดวยกัน         2       ส่วนใหญ่ๆคือส่วนของ       DNS     Server
                       ่                         ้
และส่วนของเรำท์เตอร์ ซึงมีหลักกำรทำงำนคือ เมื่อผูใช้ต่ออุปกรณ์เข้ำกับเรำท์เตอร์ เรำท์เตอร์จะทำกำรแจกหมำยเลข
         ่                                    ั
prefix ทีได้มำจำกกำรทำ 6to4 tunnel ไปให้กบอุปกรณ์ต่ำงๆโดยใช้ radvd (router advertisement daemon)
                ้               ้                        ่                                          ่
ในกำรแจก จำกนันอุปกรณ์เหล่ำนันจะนำหมำยเลข prefix ทีได้มำจำกเรำท์เตอร์มำต่อกับ MAC Address ทีแปลงเป็ น
IPv6 โดยใช้หลักกำร EUI64 ก็จะได้หมำยเลข IPv6 ตัวอย่ำงเช่น
                              ื                                                            ่
          IPv4 ของเรำท์เตอร์คอ 202.12.74.234 จะได้ prefix เป็ น 2002:ca0c:4aea:1234::/64 ซึงหำได้จำกนำ
                                                                                             ่
IPv4 มำแปลงเป็ นเลขฐำนสิบหก จะได้ ca0c:4aeaนำมำต่อกับ 2002 แล้วใส่หมำยเลข subnet ต่อท้ำย ซึงหมำยเลข
subnet จะใส่หมำยเลขอะไรก็ได้ ก็จะได้ prefix เป็ น 2002:ca0c:4aea:1234/64
                             ี
         สมมติว่ำอุปกรณ์มหมำยเลข MAC Address เป็ น 00-80-48-26-88-6B นำไปแปลงโดยใช้หลักกำร EUI64
                           ่
จะได้ 280:48ff:fe26:886b ซึงได้มำจำก




         รูปภาพที่ 3 - 2 แสดงการแปลง MAC Address ให้เป็ นหมายเลข IPv6 โดยใช้หลักการ EUI64

               ้
          ดังนันอุปกรณ์จะมีหมำยเลข IPv6 เป็ น 2002:ca0c:4aea:1234:280:48ff:fe26:886b




                          รูปภาพที่ 3 - 3 แสดงการส่งข้อมูลไปอัพเดทที่ DNS Server

  IPv6 Home Gateway Stateless Autoconfiguration.                                                         22
                            ้       ้ ้                               ั
                   หลังจำกนันเมื่อผูใช้ตองกำรกำหนดชื่อโฮสต์ให้กบอุปกรณ์ต่ำงๆ
  ้ ้
ผูใช้ตองไปลงทะเบียนเพื่อขอใช้โดเมนเนมที่                    web         interface              บน      DNS         Server      ก่อน
                                       ่ี    ั
อำจจะใช้เครื่องคอมพิวเตอร์ทต่ออยู่กบเรำท์เตอร์หรือไม่กได้           ็
           ้                                    ั
จำกนันจึงจะสำมำรถกำหนดชื่อโฮสต์ให้กบอุปกรณ์ต่ำงๆผ่ำน                                   web         interface         บนเรำท์เตอร์ได้
   ่                           ั้                                             ่ี
ซึงกำรกำหนดชื่อโฮสต์นนจะต้องกำหนดผ่ำนเครื่องคอมพิวเตอร์ทต่ออยู่กบเรำท์เตอร์เท่ำนัน         ั               ้
เมื่อผูใช้กำหนดชื่อโฮตส์แล้วกดปุม
         ้                                ่              submit                          ่
                                                                                       ทีหน้ำ                web          interface
                   ั่
โปรแกรมฝงเรำท์เตอร์จะทำกำรส่งข้อมูลไปให้โปรแกรมฝง่ั DNS Server เพื่อนำข้อมูลทีได้ไปอัพเดทที่ DNS Server  ่
โปรแกรมทำงฝง่ั                DNS           Server                       ่
                                                          จะนำข้อมูลทีได้มำตรวสอบว่ำครบถ้วนหรือไม่โดยใช้                  md5sum
                              ั่
ถ้ำไม่ถูกต้องโปรแกรมฝงเรำท์เตอร์จะต้องส่งข้อมูลมำใหม่                                ้
                                                                           แต่ถำข้อมูลครบโปรแกรมทำง                DNS       Server
จะทำกำรตรวจชื่อผูใช้      ้                                                                                      ่
                                                                                       รหัสผ่ำนละโดเมนเนมว่ำมีอยูในฐำนข้อมูลหรือไม่
             ี                                                  ้
ถ้ำไม่มจะส่งข้อมูลไปบอกเรำท์เตอร์ว่ำข้อมูลผิด แต่ถำมีอยู่ระบบจะทำกำรนำข้อมูลไปอัพเดทที DNS Server
     ่
ซึงถ้ำหมำยเลข                     IPv4                            ี         ่
                                                  ของเรำท์เตอร์มกำรเปลียนแปลง                       จะทำให้หมำยเลข            prefix
       ่
ทีแจกให้กบอุปกรณ์ต่ำงๆเปลียนแปลงด้วย ดังนันโปรแกรมทำงฝ
                 ั                   ่                    ้                        ่
                                                                                 ังเรำท์เตอร์จะส่งข้อมูลใหม่ไปให้ท่ี DNS Server
               ิ                                      ู้ ั
อัตโนมัตโดยใช้หลักกำรของ hotplug ทำให้ผใช้ยงสำมำรถเข้ำถึงอุปกรณ์ภำยในบ้ำนผ่ำนโดเมนเนมได้แม้ว่ำหมำยเลข
IPv6 จะเปลียนก็ตำม    ่




   IPv6 Home Gateway Stateless Autoconfiguration.                                                                               23
                            รูปภาพที่ 3 - 4 แสดงการทางานของระบบโดยรวม


IPv6 Home Gateway Stateless Autoconfiguration.                          24
          3.1.1 หลักการทางานของ web interface ให้บริ การ homeipv6.net




                  รูปภาพที่ 3 - 5 แสดงการทางานของ web interface ให้บริการ homeipv6.net
                     หลักกำรทำงำนของเว็บให้บริกำร                     homeipv6.net                            คือ
                      ้                                                           ้
ในตอนแรกผูใช้จะต้องทำกำรลงทะเบียนเพื่อขอใช้บริกำร homeipv6.net ก่อน โดยผูใช้จะต้องทำกำรกรอกข้อมูลได้แก่
       ้                                             ้                          ้
ชื่อผูใช้ รหัสผ่ำน อีเมลล์และโดเมนเนม จำกนันระบบจะทำกำรตรวจสอบชื่อผูใช้และโดเมนเนมซ้ำกับผูอ่นรึเปล่ำ    ้ ื
                                                               ้ ี
ตรวจสอบรูปแบบของอีเมลล์ถูกหรือไม่และตรวจสอบรหัสผ่ำนของผูใช้มควำมยำวมำกกว่ำ              6         ตัวอักษรหรือไม่
                 ้
จำกนันถ้ำข้อมูลไม่ถูกต้องทำงระบบจะทำกำรแสดงข้อควำมเตือน
         ้                                        ู้ ื
แต่ถำข้อมูลถูกต้องระบบจะทำกำรส่งเมลล์เพื่อให้ผใช้ยนยันกำรลงทะเบียน
             ้                                         ่
เมื่อผูใช้ทำกำรยืนยันกำรลงทะเบียนแล้วถึงจะสำมำรถเข้ำสูระบบได้
               ้                  ้                               ่
โดยผูใช้จะต้องกรอกชื่อผูใช้และรหัสผ่ำนให้ถูกต้องถึงจะสำมำรถเข้ำสูระบบได้                             ่
                                                                                          เมื่อเข้ำสูระบบได้แล้ว
ผูใช้จะสำมำรถดูโฮสต์ทมอยู่ในปจจุบนได้
   ้                           ่ี ี     ั ั
           ้                             ่ี ้            ่      ่
อีกทังยังสำมำรถทำกำรลบโฮสต์ทไม่ตองกำรรวมถึงสำมำรถทีจะเปลียนโดเมนเนมและรหัสผ่ำน
     ่             ่                ้                                      ้ ื
ซึงกำรเปลียนโดเมนเนมนันทำงระบบจะทำกำรเช็คว่ำโดเมนเนมใหม่ถูกใช้โดยผูอ่นหรือไม่
                        ้ ื           ิ
ถ้ำถูกใช้โดยผูอ่นแล้วจะไม่ยนยอมให้เปลียน      ่                     ้ ู        ้ ื              ่
                                                            แต่ถำไม่ถกใช้โดยผูอ่นก็จะทำกำรเปลียนโดเมนเนมให้


   IPv6 Home Gateway Stateless Autoconfiguration.                                                             25
       ้
อีกทังระบบจะทำกำรตรวจสอบรูปแบบของโดเมนเนมด้วยกล่ำวคือโดเมนเนมจะประกอบด้วยตัวอักษรอย่ำงเดียวต้องไ
   ี ั                 ่                   ่         ้                                     ่ ั้
ม่มสญลักษณ์เข้ำมำเกียวข้อง ส่วนกำรเปลียนรหัสผ่ำนนันทำงระบบจะทำกำรตรวจสอบว่ำรหัสผ่ำนทีใช้นนมำกกว่ำ 6
                                             ่                    ่ี ู้ ื         ้ ้
ตัวอักษรหรือไม่ ถ้ำน้อยกว่ำจะไม่สำมำรถเปลียนรหัสผ่ำนได้ ในกรณีทผใช้ลมรหัสผ่ำนนัน ผูใช้สำมำรถขอรหัสผ่ำนได้
         ้         ื ้                   ้                                             ้
โดยผูใช้จะต้องใส่ช่อผูใช้ให้ถูกต้อง จำกนันทำงระบบจะทำกำรส่งรหัสผ่ำนไปให้ทำงอีเมลล์ของผูใช้

          3.1.2 หลักการทางานของ web interface บนเราท์เตอร์




                        รูปภาพที่ 3 - 6 แสดงการทางานของ web interace บนเราท์เตอร์
                              ี ี            ้                          ั
            เว็บบนเรำท์เตอร์น้มไว้สำหรับให้ผูใช้มำกำหนดชื่อโฮสต์ให้กบอุปกรณ์ต่ำงๆเพื่อส่งข้อมูลนี้ไปอัพเดทยัง
                   ่                                       ้
DNS Server ซึงมีหลักกำรทำงำนคือ ในตอนแรกเมื่อผูใช้เปิ ดหน้ำเว็บเพื่อจะกำหนดชื่อโฮสต์ โปรแกรมหำค่ำ MAC
                                                                ่ี        ั             ้
Address จะถูกรันเพื่อหำค่ำ MAC Address ของอุปกรณ์ทต่ออยู่กบเรำท์เตอร์ จำกนันจะนำค่ำ MAC Address
   ่
ทีได้มำแสดงบนหน้ำเว็บ                              ้                                                     ั
                                                 ผูใช้สำมำรถเลือกได้ว่ำจะกำหนดหรือไม่กำหนดชื่อโฮสต์ให้กบอุปกรณ์
  ่ ้
ซึงผูใช้จะต้องทำกำรกรอกชื่อผูใช้้     รหัสผ่ำน                        ่             ั      ้
                                                       และโดเมนเนมทีได้ลงทะเบียนไว้ยงเว็บผูให้บริกำรให้ถูกต้องด้วย
เมื่อผูใช้กดปุ
       ้       ่ม                 submit                                              ้
                                                             ระบบจะทำกำรตรวจสอบว่ำผูใช้กรอกข้อมูลครบถ้วนหรือไม่
                 ้                                       ้                                          ั
ถ้ำไม่ครบจะขึนข้อควำมเตือนให้กรอกข้อมูลให้ครบ แต่ถำข้อมูลครบแล้วระบบจะทำกำรส่งข้อมูลไปให้ยง DNS Server
ผ่ำนทำงโปแกรม client-server




   IPv6 Home Gateway Stateless Autoconfiguration.                                                              26
          3.1.3 หลักการทางานของโปรแกรมหา MAC Address




                       รูปภาพที่ 3 - 7 แสดงการทางานของโปรแกรมหา MAC Address
                                                               ่ี     ่ ั          ่
         โปรแกรมนี้ใช้สำหรับหำค่ำ MAC Address ของอุปกรณ์ทต่ออยูกบเรำท์เตอร์ ซึงมีหลักกำรทำงำนคือ
                       ่         ี                          ่
โปรแกรมจะอ่ำนข้อมูลทีเรำท์เตอร์มอยู่แล้ว คือจำก arp table ซึงเก็บอยู่ในไฟล์ /proc/net/arp โดยจะเลือกเฉพำะ
                   ้
interface br0 จำกนันจะเก็บลงไฟล์ /tmp/arp ต่อมำโปรแกรมจะนำข้อมูลในไฟล์ /tmp/arp มำตัดเอำเฉพำะ MAC
Address แล้วนำมำเก็บลงไฟล์ /tmp/mac




  IPv6 Home Gateway Stateless Autoconfiguration.                                                            27
       3.1.4 หลักการรับส่งข้อมูลของโปรแกรมบนเราท์เตอร์และDNS Server




                 รูปภาพที่ 3 - 8 แสดงการส่งสัญญาณระหว่าง DNS Server กับเราท์เตอร์

         ้
       ขันตอนที่ 1 :               ิ
                        เราท์เตอร์ตดต่อไปหา DNS Server
         ้
       ขันตอนที่ 2 :                                        ่                              ั
                        เราท์เตอร์จะทาการส่งขนาดของแพคเก็ตทีจะส่งไปให้ DNS Server เมื่อได้รบ
                                               ้ ่
                        DNS Server จะทาการจองพืนทีไว้เพื่อรอรับแพคเก็ตต่อไป
         ้
       ขันตอนที่ 3 :                ่
                        เราท์เตอร์สงขนาดของข้อมูลทังหมดและ
                                                   ้           md5sum       ไปให้    DNS      Server
                                          ้
                        เพื่อใช้ในการจองพืนทีและตรวจสอบความถูกต้องของข้อมูลตามลาดับ เมื่อ DNS Server
                             ั                       ้ ่
                        ได้รบข้อมูลแล้ว จะทาการจองพืนทีเอาไว้
         ้
       ขันตอนที่ 4 :                                 ้                     ่        ้    ้             ้
                        เราท์เตอร์จะทาการส่งข้อมูลทังหมดไปให้ DNS Server ซึงภายในนันจะมีขอมูลคือ ชื่อผูใช้
                        , รหัสผ่าน , โดเมนเนม , ชื่อโฮตส์และหมายเลข ipv6 ของแต่ละโฮสต์
         ้
       ขันตอนที่ 5 :                              ั
                        เมื่อ DNS Server ได้รบข้อมูลแล้ว ก็จะทาการเขียนลงไฟล์ และทาการหา md5sum
                               ้                                    ่        ั
                        จากนันก็จะนามาเปรียบเทียบกับ md5sum ทีเคยได้รบจากเราท์เตอร์ว่ามีค่าเท่ากันหรือไม่
                                                         ู
                        ถ้าไม่เท่ากันแสดงว่าข้อมูลไม่ถกต้อง ทาง DNS Server จะทาการส่ง 400
                                                             ั
                        ไปบอกเราท์เตอร์ เมื่อเราท์เตอร์ได้รบข้อมูลแล้วจะทาการส่งข้อมูลไปหา DNS Server ใหม่
                                                      ้                          ่ ั              ้
                        จนกว่าข้อมูลจะถูกต้อง แต่ถามีค่าเท่ากันแสดงว่าข้อมูลทีได้รบมาถูกต้อง จากนัน DNS
                        Server                          จะทำกำรตรวจสอบว่ำชื่อผูใช้,
                                                                               ้                  รหัสผ่าน
                                        ่ ั         ้                                               ั้
                        และโดเมนเนมทีได้รบมานันมีอยู่ในฐานข้อมูลหรือไม่ ถ้ามีจะทาการอัพเดทชื่อโฮสต์ทงหมด


IPv6 Home Gateway Stateless Autoconfiguration.                                                         28
                        ใน DNS Server และจะทาการส่ง 200 ไปบอกเราท์เตอร์ว่าอัพเดทข้อมูลเสร็จแล้ว
                        เมื่อเราท์เตอร์              ั
                                                 ได้รบ           200           แล้วจะทาการปิ ดการติดต่อ
                              ้ ้ ึ
                        ดังนันผูใช้จงสามารถเข้าไปควบคุมอุปกรณ์ต่างๆผ่านทางโดเมนเนมได้
                               ้   ี
                        แต่ถาไม่มอยู่ในฐานข้อมูล DNS Server จะทาการส่ง 401 Authorization Required
                                        ้                                    ั
                        ไปบอก จากนัน DNS Server จะปิ ดการติดต่อกับเราท์เตอร์ทนที




IPv6 Home Gateway Stateless Autoconfiguration.                                                      29
บทที่ 4 รำยละเอียดกำรทำงำน
4.1                   ์
          ส่วนของเซิ รฟเวอร์
                          ้
           4.1.1 การติ ดตัง DNS Server
                   ้              ่
           กำรติดตัง DNS Server ซึงในส่วนนี้จะใช้ bind9(Berkeley Internet Name Domain) เป็ น DNS Server
  ่                                                                    ั ้
ซึงให้บริกำร Domain Name Service มีหลำย version ให้เลือกใช้ ในกำรทำวิจยครังนี้จะใช้ version 9.3.1 [7],[15]
                ้
           ติดตัง bind9 ด้วยคำสัง่ :

#sudo apt-get install bind9



ตัวอย่ างไฟล์ configure
            กำหนด option ในไฟล์ /etc/bind/named.conf.options
Options {

            directory "/var/cache/bind";
            allow-transfer { any ;};
            allow-query { any;};
            listen-on-v6 { any; };
            recursion yes;
            forwarders { 202.12.74.234; };                                     ่
                                                           //หมายเลข ip ของเครือง server
}


            กำหนดโซน ในไฟล์ /etc/bind/named.conf.local
zone "homeipv6.net" {
        type master;
        notify no;
        file "/etc/bind/db.homeipv6.org";
        allow-update { any; };
};
zone "74.12.202.in-addr.arpa" {
        type master;
        notify no;
        file "/etc/bind/db.74.12.202";
};
// prime the server with knowledge of the root servers
zone "." {
      type hint;
      file "/etc/bind/db.root";
};




    IPv6 Home Gateway Stateless Autoconfiguration.                                                     30
             แก้ไขในไฟล์ /etc/bind/db.local
;
; BIND data file for local loopback interface
;
$TTL    3600
@       IN     SOA      ns.homeipv6.org. hostmaster.homeipv6.org. (
                      1         ; Serial
                     8H         ; Refresh
                     2H         ; Retry
                     1W         ; Expire
                    1D )        ; Negative Cache TTL
        IN     NS       localhost.
localhost.     IN       A       127.0.0.1
        IN     AAAA     ::1


             สร้ำงไฟล์ /etc/bind/db.homeipv6.net เพื่อกำหนดค่ำตำงๆของโซน
; BIND reverse data file for empty rfc1918 zone
;
; DO NOT EDIT THIS FILE - it is used for multiple zones.
; Instead, copy it, edit named.conf, and use that copy.
;
$TTL    3600
@       IN     SOA     ns.homeipv6.net. root.homeipv6.net. (
                     1         ; Serial
                    8H         ; Refresh
                    2H         ; Retry
                    1W         ; Expire
                    1D )       ; Negative Cache TTL
        IN     NS      ns.homeipv6.net.


ns           IN          A                  202.12.74.234
             AAAA                   2002:3c8:9007:1::234




             ไฟล์ /etc/bind/db.74.12.202
; BIND reverse data file for empty rfc1918 zone
;
; DO NOT EDIT THIS FILE - it is used for multiple zones.
; Instead, copy it, edit named.conf, and use that copy.
;
$TTL    3600
@       IN     SOA     na.homeipv6.net. root.homeipv6.net. (
                     1         ; Serial
                    8H         ; Refresh
                    2H         ; Retry
                    1W         ; Expire
                    1D )       ; Negative Cache TTL
        IN     NS      ns.homeipv6.net.
1       IN     PTR     ns.homeipv6.net..
2       IN      PTR     pat.homeipv6.net..




     IPv6 Home Gateway Stateless Autoconfiguration.                         31
              Restart bind9 ใหม่โดยใช้คำสัง่
#/etc/init.d/bind9 restart




                            ้
             4.1.2 การติ ดตัง Apache2
                  ้
             ติดตัง Apache2 ด้วยคำสัง่ :
#sudo apt-get install apache2


             ทดลองเรียกใช้งำน Web Server โดยใช้ Firefox เปิ ดไปที่ URL “http://localhost/test.php” จะเป็นดังรูป
[16],[17]




                                      รูปภาพที่ 4 - 1 แสดงหน้ า web ของ apache

                            ้
             4.1.3 การติ ดตัง PHP5
                  ้
             ติดตัง PHP5 ด้วยคำสัง่ :

#sudo apt-get install php5


              ทดสอบกำรทำงำนด้วยกำรสร้ำงไฟล์ทเี่ ป็ น php ซักไฟล์หนึ่งไว้ในตำแหน่ง Document Root ของ Apache
  ่                         ่
ซึงอยู่ท่ี /var/www ด้วยคำสัง:

#sudo vi /var/www/phpinfo.php



            โดยให้ มีข้อความต่อไปนี ้ในไฟล์



   IPv6 Home Gateway Stateless Autoconfiguration.                                                                 32
<?
             phpinfo();
?>


                 ้
            จำกนันใช้ Firefox เปิ ดไปที่ URL http://localhost/test.php จะปรำกฏข้อควำมรำยละเอียดของ PHP ดังรูป




                                      รูปภาพที่ 4 - 2 แสดงหน้ า web ของ php5
            แก้ไฟล์ /etc/php5/apache2/php.in
             เพิมคำสัง่ "cgi.force_redirect = 0" ในไฟล์ /etc/php5/apache2/php.ini
                 ่




             แก้บรรทัด “register_globals = off “ เป็ น register_globals = on




     IPv6 Home Gateway Stateless Autoconfiguration.                                                         33
          แก้บรรทัด “error_reporting = E_ALL” เป็ น “error_reporting = E_ALL & ~E_NOTICE”




          กำหนดค่ำ session ในไฟล์ php.ini file. ตำมด้ำนล่ำง

session.save_handler = files
session.save_path = /var/lib/php5
session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 1
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.serialize_handler = php
session.gc_divisor      = 100
session.gc_maxlifetime = 1440
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 1
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"


                        ้
         4.1.4 การติ ดตัง MySQL5
              ้
         ติดตัง MySQL5 ด้วยคำสัง่ :

#sudo apt-get install mysql-server-4.1


                                            ี                 ั ้
           เนื่องจำกค่ำ default ยังไม่ได้มกำรกำหนดรหัสผ่ำนให้กบผูใช้ของ      MySQL         ่
                                                                                         ทีเป็ น   root
     ้                     ั
ดังนันต้องกำหนดรหัสผ่ำนให้กบ root user ของ MySQL ด้วยคำสัง่ :

#sudo mysqladmin –u root password yourpassword




  IPv6 Home Gateway Stateless Autoconfiguration.                                                    34
                                              ั
         และเมื่อทดลองเรียกใช้งำน MySQL จะได้ดงรูป




                        ้
         4.1.5 การติ ดตัง phpMyAdmin
              ้
         ติดตัง phpMyAdmin ด้วยคำสัง่ :

#sudo apt-get install phpmyadmin



              ้
         ติดตัง php5-mysql ด้วยคำสัง่ :

#sudo apt-get install php5-mysql


4.1.6                 ้
             การติ ดตัง mail server
              ้
         ติดตัง mail server ด้วยคำสัง่ :

#sudo apt-get install sendmail

                                ่
         ทดสอบ sendmail ด้วยคำสัง[14] :

#sudo ps aux | grep sendmail

         จะได้ผลเป็ นดังรูป




            ่
         เพิมบรรทัด “sendmail_path = /usr/sbin/sendmail –t –I “ ในไฟล์ /etc/php5/apache2/php.ini




  IPv6 Home Gateway Stateless Autoconfiguration.                                                   35
           4.1.7 web interface ให้บริ การ homeipv6.net
            สร้ำงฐำนข้อมูล ชื่อ db_member เพื่อใช้ในกำรเก็บข้อมูลของผูใช้ ใน database db_member
                                                                       ้
             ประกอบไปด้วย 3 ตำรำง คือ db_database , db_database2 และ db_database3. [18],[19],[20]
                                                                                                  ั
                 o สร้ำงตำรำงเก็บรำยละเอียดของสมำชิกชื่อ db_database โดยมีรำยละเอียดของแต่ละฟิลด์ดงนี้
   ตารางแสดงแต่ละฟิ ลด์ ของตาราง db_database
    ชื่อ field                          Type                             รำยละเอียด
    id                                  varchar(200)                                    ู้       ้
                                                                         ใช้ในกำรระบุผใช้ เวลำผูใช้
                                                                                                         ่
                                                                         ยืนยันเมลล์เพื่อสร้ำง account ซึง
                                                                         id จะไม่ซ้ำกัน
    username                            varchar(10)                            ่ ู้
                                                                         ชื่อทีผใช้ ใช้ในกำร login
    password                            varchar(8)                             ่ ู้
                                                                         รหัสทีผใช้ ใช้ในกำร login
    E-mail                              varchar(40)                                  ้
                                                                         อีเมลล์ของผูใช้ เพื่อใช้ในกำร
                                                                         ยืนยันเมลล์เพื่อสร้ำง account
    domainname                          varchar(100)                                  ้
                                                                         โดเมนเนมของผูใช้

                                                   ่ ู้                      ่ ู้
           ตำรำง db_database ใช้เพื่อเก็บข้อมูลทีผใช้ ได้ลงทะเบียนไว้ ก่อนทีผใช้จะยืนยันเมลล์ เปรียบเสมือน
  ่ ั                      ้ ื                                           ่ ื         ั้        ้
ทีพกข้อมูล กล่ำวคือ เมื่อผูใช้ยนยันเมลล์ ระบบจะทำกำรตรวจสอบว่ำ id ทียนยันเมลล์นน ตรงกับผูใช้ คนไหน
ถูกต้องรึเปล่ำ   ถ้ำถูกก็จะทำกำร                 ้
                                      นำข้อมูลทังหมดยกเว้น       id    มำเก็บไว้ในตำรำง      db_database2
      ้
จำกนันจะทำกำรลบข้อมูลในตำรำง db_database ทิง   ้
                                                                                                   ั
                 o สร้ำงตำรำงเก็บรำยละเอียดของสมำชิกชื่อ db_database2 โดยมีรำยละเอียดของแต่ละฟิลด์ดงนี้
   ตารางแสดงแต่ละ field ของตาราง db_database2
                    ชื่อฟิ ลด์                         Type                           รายละเอียด

    username                            varchar(10)                            ่ ู
                                                                         ชื่อทีผ้ ใช้ ใช้ ในการ login

    password                            varchar(8)                                 ู
                                                                         รหัสที่ผ้ ใช้ ใช้ ในการ login

    E-mail                              varchar(40)                      อีเมลล์ของผู้ใช้ เพื่อใช้ ในการส่ง
                                                                         รหัสผ่านไปให้ เวลาที่ ผู้ใช้
                                                                         ลืมรหัสผ่าน

    domainname                          varchar(100)                     โดเมนเนมของผู้ใช้

                                                     ้
           ตำรำง db_database2 ใช้เพื่อเก็บข้อมูลของผูใช้แต่ละคน

  IPv6 Home Gateway Stateless Autoconfiguration.                                                              36
                                                                                               ั
             o สร้ำงตำรำงเก็บรำยละเอียดของสมำชิกชื่อ db_database3 โดยมีรำยละเอียดของแต่ละฟิลด์ดงนี้
ตารางแสดงแต่ละ field ของตาราง db_database3
                ชื่อฟิ ลด์                           Type                           รายละเอียด

 username                             varchar(10)                                ู
                                                                       ชื่อที่ผ้ ใช้ ใช้ ในการ login

 password                             varchar(8)                                 ู
                                                                       รหัสที่ผ้ ใช้ ใช้ ในการ login

 domainname                           varchar(100)                     โดเมนเนมของผู้ใช้

 hostname                             varchar(150)                     ชื่อโฮสต์ของอุปกรณ์

 prefix                               varchar(20)                      หมายเลข prefix ของอุปกรณ์

 eui64                                varchar(20)                      หมายเลข eui64 ของอุปกรณ์

                                                  ่                                          ้
          ตำรำง db_database3 ใช้เพื่อเก็บข้อมูลเกียวกับชื่อโฮสต์และหมำยเลข IP ของอุปกรณ์ของผูใช้แต่ละคน




                                 รูปภาพที่ 4 - 3 แสดงตาราง db_database




IPv6 Home Gateway Stateless Autoconfiguration.                                                            37
                                    รูปภาพที่ 4 - 4 แสดงตาราง db_database2




                                    รูปภาพที่ 4 - 5 แสดงตาราง db_database3

            สร้ำงสคริปต์ตดต่อฐำนข้อมูล MySQL
                          ิ
                                                     ี                                    ่
                   สร้ำงสคริปต์ connect.php สคริปต์น้จะใช้ในกำรติดต่อกับฐำนข้อมูล MySQL ซึงจะทำ
     ่
ให้ งายต่อการเขียนสคริ ปต์และการเรี ยกใช้ ได้ สะดวก
            สร้ำงฟอร์มสมัครสมำชิก




   IPv6 Home Gateway Stateless Autoconfiguration.                                                 38
                                 รูปภาพที่ 4 - 6 แสดงหน้ าสมัคร account
                                  ั ั
           o หน้ำสมัคร account มีฟงก์ชนก์กำรใช้งำนดังนี้
                         ั ั
                    ฟงก์ชนในการตรวจสอบว่าผูใช้กรอกข้อมูลสมบูรณ์หรือไม่
                                               ้
                       ่
                     ซึงหากข้อมูลไม่ครบจะมีแจ้งข้อความผิดพลาดดังรูป




                                                               ้
                  รูปภาพที่ 4 - 7 แสดงหน้ าสมัคร account เมื่อผูใช้กรอกข้อมูลไม่ครบ


IPv6 Home Gateway Stateless Autoconfiguration.                                        39
                      ั
                    ฟงชันก์ในการตรวจสอบรูปแบบของอีเมลล์ทผใช้กรอกว่ารูปแบบถูกต้องหรือไม่
                                                             ่ี ู้
                     หากรูปแบบอีเมลล์ไม่ถูกต้องก็จะแจ้งข้อความเตือนดังรูป




                                                             ้                  ู
                รูปภาพที่ 4 - 8 แสดงหน้ าสมัคร account เมื่อผูใช้กรอกอีเมลล์ไม่ถกต้อง
                       ั ั
                    ฟงก์ชนในการตรวจสอบว่าชื่อผูใช้กบรหัสผ่านซ้ากับฐานข้อมูลทีมอยูหรือไม่
                                                     ้ ั                       ่ ี ่
                                      ื ้                                                  ้
                     เพราะเราต้องใช้ช่อผูใช้เป็ นตัวตรวจสอบในการเข้าใช้ระบบสมาชิก ถ้าชื่อผูใช้ท่ี     ้
                                                                                                    ผูใช้
                     กรอกมีอยู่ในฐานข้อมูลแล้วจะแจ้งข้อความเตือนดังรูป




                                                                     ้      ู้
                    รูปภาพที่ 4 - 9 แสดงหน้ าสมัคร account เมื่อชื่อผูใช้มีผอื่นใช้แล้ว



IPv6 Home Gateway Stateless Autoconfiguration.                                                       40
                       ั ั
                    ฟงก์ชนในการเช็คว่ารหัสผ่านทีผใช้กรอก
                                                  ่ ู้          มากกว่า       6       ตัวอักษรหรือไม่
                     ถ้าหากว่ารหัสผ่านน้อยกว่า 6 ตัวอักษรระบบจะแสดงข้อความเตือนดังรูป




                                                          ้
        รูปภาพที่ 4 - 10 แสดงหน้ าสมัคร account เมื่อชื่อผูใช้กรอกรหัสผ่านน้ อยกว่า 6 ตัวอักษร
                         ั ั
                    ฟงก์ชนในการเช็คว่ารหัสผ่านทีผใช้กรอก เหมือนกันทัง 2 ครังหรือไม่ เพื่อให้แน่ใจว่า
                                                  ่ ู้                ้     ้
                       ้
                     ผูใช้กรอกรหัสผ่านถูกต้องตามต้องการ
                     ถ้าหากว่ารหัสผ่านไม่เหมือนกันจะแสดงข้อความเตือนดังรูป




                                                          ้                     ้
            รูปภาพที่ 4 - 11 แสดงหน้ าสมัคร account เมื่อผูใช้กรอกรหัสผ่าน 2 ครังไม่ตรงกัน



IPv6 Home Gateway Stateless Autoconfiguration.                                                    41
                       ั ั
                    ฟงก์ชนในการเช็คว่าโดเมนเนมทีผใช้กรอกมีรปแบบถูกต้องหรือไม่
                                                   ่ ู้     ู
                     กล่าวคือโดเมนจะต้องประกอบไปด้วยตัวอักษรเพียงอย่างเดียว
                                  ่ ู้
                     ถ้าโดเมนเนมทีผใช้กรอกไม่ถูกรูปแบบจะแจ้งข้อความเตือนดังรูป




                                                              ้
            รูปภาพที่ 4 - 12 แสดงหน้ าสมัคร account เมื่อชื่อผูใช้กรอกโดเมนเนมผิดรูปแบบ
                       ั ั
                    ฟงก์ชนในการเช็คว่าโดเมนเนมซ้ากับฐานข้อมูลทีมอยู่หรือไม่
                                                                  ่ ี
                                                    ้
                     เพราะเราต้องใช้โดเมนเนมในการตังชื่อชื่อโฮสต์ให้อุปกรณ์ต่างๆ
                                  ่ ู้
                     ถ้าโดเมนเนมทีผใช้กรอกมีอยู่ในฐานข้อมูลแล้วจะแจ้งข้อความเตือนดังรูป




                                                                         ู้
                 รูปภาพที่ 4 - 13 แสดงหน้ าสมัคร account เมื่อโดเมนเนมมีผอื่นใช้แล้ว


IPv6 Home Gateway Stateless Autoconfiguration.                                            42
            เมื่อผูใช้กรอกข้อมูลถูกต้องแล้ว
                   ้                                                              ่
                                                                       หลังจำกกดปุม                           submit
                         ้             ้
ระบบจะทำเก็บข้อมูลทังหมดของผูใช้ลงฐำนข้อมูลในตำรำง                  db_database          พร้อมสร้ำง      id         1
            ่                   ่
หมำยเลขซึงประกอบด้วยกำรสุมตัวอักษรและตัวเลขทังหมด          ้         100        ตัว               ้
                                                                                            จำกนันเก็บลงในฐำนข้อมูล
      ้                            ้              ู้ ื
จำกนันจะทำกำรส่งอีเมลล์ไปหำผูใช้เพื่อให้ผใช้ยนยันเมลล์ก่อนถึงค่อยสมัคร              account         ให้       ภำยใน
          ิ          ู้
เมลล์จะมีลงค์ให้ผใช้กด                       ซึงลิงค์นนจะต่อท้ำยด้วย
                                                ่       ั้                            id                       ้ ั้
                                                                                                         ของผูใช้นน
                                     ้              ่ ื            ้ ื
เพื่อนำไปเปรียบกับฐำนข้อมูลว่ำผูใช้คนไหนทียนยันเมลล์ เมื่อผูใช้ยนยันเมลล์ทำงระบบจะทำกำรเช็คว่ำเป็ นผูใช้คนใด้
                                         ู้   ้                           ้
และจะทำกำรสร้ำง account ให้ผใช้คนนัน และจะทำกำรเก็บข้อมูลทังหมดยกเว้น id ลงในตำรำง db_database2
                                            ้ ่              ่          ี                            ี
และลบข้อมูลในตำรำง db_database ทิง ซึงถ้ำ id ทีต่อท้ำยไฟล์ไม่มอยู่ในฐำนข้อมูลแสดงว่ำไม่ได้มกำรสมัครสมำชิก
ทำงระบบจะแสดงข้อควำมเตือนดังรูป




                     รูปภาพที่ 4 - 14 แสดงหน้ าสมัคร account เมื่อ id ไม่ตรงกับฐานข้อมูล




   IPv6 Home Gateway Stateless Autoconfiguration.                                                                 43
                                                                           ้
          รูปภาพที่ 4 - 15 แสดงหน้ าสมัคร account เมื่อส่งยืนยันเมลล์ไปยังผูใช้เรียบร้อยแล้ว




                                                                     ู้     ั
                            รูปภาพที่ 4 - 16 แสดงหน้ ายืนยันเมลล์ที่ผใช้ได้รบ




IPv6 Home Gateway Stateless Autoconfiguration.                                                 44
                                                            ้
                       รูปภาพที่ 4 - 17 แสดงหน้ า web เมื่อผูใช้ทาการยืนยันเมลล์

        สร้ำงฟอร์ม login เข้ำระบบสมำชิก




                                     รูปภาพที่ 4 - 18 แสดงหน้ า login
                           ั ั
           o หน้ำ login มีฟงก์ชนก์กำรใช้งำนดังนี้



IPv6 Home Gateway Stateless Autoconfiguration.                                     45
                         ั ั
                    ฟงก์ชนในการตรวจสอบว่าผูใช้กรอกข้อมูลสมบูรณ์หรือไม่
                                               ้
                       ่
                     ซึงหากข้อมูลไม่ครบจะมีแจ้งข้อความผิดพลาดดังรูป




                                                              ้
                       รูปภาพที่ 4 - 19 แสดงหน้ า login เมื่อผูใช้กรอกข้อมูลไม่ครบ
                       ั ั
                    ฟงก์ชนในการตรวจสอบว่าชื่อผูใช้กบรหัสผ่านทีผใช้กรอกมีอยู่ในระบบสมาชิกหรือไม่
                                                  ้ ั          ่ ู้
                                  ี
                     ถ้าหากว่าไม่มอยู่ระบบจะแจ้งเตือนดังรูป




IPv6 Home Gateway Stateless Autoconfiguration.                                                     46
                                                                ้
                         รูปภาพที่ 4 - 20 แสดงหน้ า login เมื่อผูใช้กรอกข้อมูลผิด
                    ข้อความทีลงก์ไปยังหน้าเว็บต่างๆ คือ หน้า สมัครสมาชิก หน้าลืมรหัสผ่าน
                              ่ิ




                     รูปภาพที่ 4 - 21 แสดงหน้ าข้อความเพื่อลิ งค์ไปยังหน้ าเว็บต่างๆ

        ฟอร์มลืมรหัสผ่ำนเข้ำระบบ



IPv6 Home Gateway Stateless Autoconfiguration.                                              47
                             รูปภาพที่ 4 - 22 แสดงหน้ าลืมรหัสผ่านเข้าระบบ
                ั ั
           o มีฟงก์ชนก์กำรใช้งำนดังนี้
                         ั ั
                    ฟงก์ชนในการตรวจสอบว่าผูใช้กรอกข้อมูลสมบูรณ์หรือไม่
                                               ้
                       ่
                     ซึงหากข้อมูลไม่ครบจะมีแจ้งข้อความผิดพลาดดังรูป




                                                                ่ ้
               รูปภาพที่ 4 - 23 แสดงหน้ าลืมรหัสผ่านเข้าระบบ เมือผูใช้กรอกข้อมูลไม่ครบ




IPv6 Home Gateway Stateless Autoconfiguration.                                           48
                       ั ั
                    ฟงก์ชนในการตรวจสอบว่าชื่อผูใช้ทผใช้กรอกมีอยูในฐานข้อมูลหรือไม่
                                                ้ ่ี ู้             ่
                                                        ั      ่ี ี
                     ถ้ามีระบบจะทาการส่งรหัสผ่านไปให้ยงอีเมลล์ทมอยู่ในฐานข้อมูล
                          ้   ี
                     แต่ถาไม่มแจ้งข้อความผิดพลาดดังรูป




                                                               ่     ้
              รูปภาพที่ 4 - 24 แสดงหน้ าลืมรหัสผ่านเข้าระบบ เมือชื่อผูใช้ไม่มีในฐานข้อมูล




                                                     ่                                  ้
    รูปภาพที่ 4 - 25 แสดงหน้ าลืมรหัสผ่านเข้าระบบ เมือระบบทาการส่งรหัสผ่านไปยังเมลล์ของผูใช้



IPv6 Home Gateway Stateless Autoconfiguration.                                                 49
        หน้ำหลักของระบบสมำชิก




                             รูปภาพที่ 4 - 26 แสดงหน้ าหลักของระบบสมาชิ ก
                ั ั
           o มีฟงก์ชนในกำรใช้งำนดังนี้
                         ั ั
                 ฟงก์ชนในการตรวจสอบว่า ผ่านการ login มาหรือไม่ เพื่อกันผูใช้ทแอบเข้ามา  ้ ่ี
                      ่       ั
                    ซึงจะใช้ตวแปร session ในการตรวจสอบ กล่าวคือ จะดูว่าตัวแปร session
                        ่ ั                               ่                                   ้
                    ทีได้รบมาจากหน้า login มีค่าเท่ากับทีหน้า main หรือไม่ ถ้าเท่ากันแสดงว่าผูใช้ผ่านการ
                                                                 ่                                   ่
                    login เข้ามา ถ้าไม่เท่ากันจะไม่สามารถเข้ามาทีหน้า main ได้ ทางระบบจะส่งกลับไปทีหน้า
                    login แทน
        หน้ำ my host ใช้สำหรับดูว่ำตอนนี้ผใช้มโฮสต์อะไรอยู่บำงและแต่ละโฮสต์มหมำยเลข ipv6 เป็ นอะไร
                                           ู้ ี              ้                ี
                ั ั
           o มีฟงก์ชนในกำรใช้งำนดังนี้
                          ั ั
                    จะมีฟงก์ชนในการสังรัน command line เพื่อดูว่าผูใช้คนนี้มโฮสต์อะไรบ้างทีอยู่ใน DNS
                                      ่                             ้        ี              ่
                     Server และแต่ละโฮสต์มี ipv6 เป็ นอะไร




IPv6 Home Gateway Stateless Autoconfiguration.                                                       50
                                    รูปภาพที่ 4 - 27 แสดงหน้ า my host
        หน้ำลบโฮสต์
                ั ั
           o มีฟงก์ชนในกำรใช้งำนดังนี้
                    ใช้สาหรับลบโฮสต์ทไม่ตองการออกจาก
                                         ่ี ้                            DNS                Server
                       ่ ้                                     ั
                     ซึงผูใช้สามารถเลือกได้ว่าจะทาการลบโฮสต์ตวใดออกจากระบบ
                     เมื่อเลือกแล้วหลังจากกดปุ ่ม submit ระบบจะทาการ ลบโฮสต์ตวนันออกจาก DNS Server
                                                                             ั ้
                             ั
                     ทันทีดงรูป




                                    รูปภาพที่ 4 - 28 แสดงหน้ าลบโฮสต์



IPv6 Home Gateway Stateless Autoconfiguration.                                                 51
        หน้ำเปลียนรหัสผ่ำนสำหรับสมำชิก
                 ่




                        รูปภาพที่ 4 - 29 แสดงหน้ าเปลี่ยนรหัสผ่านสาหรับสมาชิ ก
                ั ั
           o มีฟงก์ชนในกำรใช้งำนคือ
                         ั ั
                    ฟงก์ชนในการตรวจสอบว่าผูใช้กรอกข้อมูลสมบูรณ์หรือไม่
                                               ้
                       ่
                     ซึงหากข้อมูลไม่ครบจะมีแจ้งข้อความผิดพลาดดังรูป




IPv6 Home Gateway Stateless Autoconfiguration.                                   52
                                                               ้
               รูปภาพที่ 4 - 30 แสดงหน้ าเปลี่ยนรหัสผ่าน เมื่อผูใช้กรอกข้อมูลไม่ครบถ้วน
                       ั ั
                    ฟงก์ชนในการตรวจสอบว่าผูใช้ใส่รหัสผ่านของเดิม
                                             ้                                                 ถูกหรือไม่
                     ถ้าผิดทางระบบจะแจ้งเตือนดังรูป




                                                            ้                          ู
            รูปภาพที่ 4 - 31 แสดงหน้ าเปลี่ยนรหัสผ่าน เมื่อผูใช้ใส่รหัสผ่านอันเดิ มไม่ถกต้อง




IPv6 Home Gateway Stateless Autoconfiguration.                                                        53
                         ั ั
                    ฟงก์ชนในการตรวจสอบว่าผูใช้ใส่รหัสผ่านทัง 2 ครังตรงกันหรือไม่ เพื่อกันในกรณีท่ี
                                              ้             ้      ้
                       ้                    ่
                     ผูใช้กรอกรหัสผ่านผิด ซึง




                                                         ้                        ้
         รูปภาพที่ 4 - 32 แสดงหน้ าเปลี่ยนรหัสผ่าน เมื่อผูใช้ใส่รหัสผ่านใหม่ 2 ครังไม่เหมือนกัน
                    ถ้ากรอกข้อมูลครบและถูกต้องทางระบบจะทาเปลียนรหัสผ่านให้ และจะแจ้งบอกดังรูป
                                                              ่




               รูปภาพที่ 4 - 33 แสดงหน้ าเปลี่ยนรหัสผ่าน เมื่อระบบทาการเปลี่ยนรหัสผ่าน


IPv6 Home Gateway Stateless Autoconfiguration.                                                    54
        หน้ำเปลียนโดเมนเนม
                 ่




                               รูปภาพที่ 4 - 34 แสดงหน้ าเปลี่ยนโดเมนเนม
                ั ั
           o มีฟงก์ชนในกำรใช้งำนคือ
                         ั ั
                    ฟงก์ชนในการตรวจสอบว่าผูใช้กรอกข้อมูลสมบูรณ์หรือไม่
                                               ้
                       ่
                     ซึงหากข้อมูลไม่ครบจะมีแจ้งข้อความผิดพลาดดังรูป




IPv6 Home Gateway Stateless Autoconfiguration.                             55
                                                                ้
                รูปภาพที่ 4 - 35 แสดงหน้ าเปลี่ยนโดเมนเนม เมื่อผูใช้กรอกข้อมูลไม่ครบ
                       ั ั
                    ฟงก์ชนในการตรวจสอบว่าโดเมนเนมอันเก่าทีผใช้กรอกถูกต้องหรือไม่
                                                           ่ ู้
                     ถ้าไม่ถูกต้องจะแจ้งข้อความเตือนดังรูป




                                                              ้
              รูปภาพที่ 4 - 36 แสดงหน้ าเปลี่ยนโดเมนเนม เมื่อผูใช้กรอกโดเมนเนมเดิ มผิด




IPv6 Home Gateway Stateless Autoconfiguration.                                           56
                       ถ้าผูใช้กรอกข้อมูลถูกต้องทางระบบจะทาการเปลียนโดเมนเนมให้ และจะขึนข้อความดังรูป
                             ้                                     ่                    ้




                รูปภาพที่ 4 - 37 แสดงหน้ าเปลี่ยนโดเมนเนม เมื่อระบบทาการเปลี่ยนโดเมนใหม่


                                     ้ ู
          4.1.8 web interface สาหรับผูดแลระบบ
           สร้ำงตำรำง ชื่อ db_admin เพิมในฐำนข้อมูล db_member เพื่อใช้ในกำรเก็บข้อมูลของผูดแลระบบ
                                        ่                                                  ้ ู
ตารางแสดงแต่ละฟิ ลด์ ของตาราง db_admin
   ชื่อ field                           Type                         รำยละเอียด
   username                             varchar(10)                        ่ ู้ ู
                                                                     ชื่อทีผดแลระบบใช้ในกำร login
   password                             varchar(15)                        ่ ู้ ู
                                                                     รหัสทีผดแลระบบใช้ในกำร login
                                                ้ ู
          ตำรำง db_admin ใช้เพื่อเก็บข้อมูลของผูดแลระบบ




                                    รูปภาพที่ 4 - 38 แสดงตาราง db_admin


  IPv6 Home Gateway Stateless Autoconfiguration.                                                     57
        สร้ำงฟอร์ม login เข้ำระบบ




                                                                  ้ ู
                           รูปภาพที่ 4 - 39 แสดงหน้ าlogin สาหรับผูดแลระบบ
                           ั ั
           o หน้ำ login มีฟงก์ชนก์กำรใช้งำนดังนี้
                         ั ั
                    ฟงก์ชนในการตรวจสอบว่าผูดแลระบบกรอกข้อมูลสมบูรณ์หรือไม่
                                               ้ ู
                       ่
                     ซึงหากข้อมูลไม่ครบจะมีแจ้งข้อความผิดพลาดดังรูป




IPv6 Home Gateway Stateless Autoconfiguration.                                58
                                                     ้ ู         ่     ้
             รูปภาพที่ 4 - 40 แสดงหน้ า login สาหรับผูดแลระบบ เมือชื่อผูใช้กรอกข้อมูลไม่ครบ
                      ้ ู
แสดงหน้ำ login เมื่อผูดแลระบบกรอกข้อมูลไม่ครบ
                          ั ั
                      ฟงก์ชนในการตรวจสอบว่าชื่อผูใช้กบรหัสผ่านทีผดแลระบบกรอกมีอยู่ในระบบฐานข้อมูลห
                                                   ้ ั            ่ ู้ ู
                                           ี
                       รือไม่ ถ้าหากว่าไม่มอยู่ระบบจะแจ้งเตือนดังรูป




                                                       ้ ู         ่     ้
               รูปภาพที่ 4 - 41 แสดงหน้ า login สาหรับผูดแลระบบ เมือชื่อผูใช้กรอกข้อมูลผิด



  IPv6 Home Gateway Stateless Autoconfiguration.                                                 59
        หน้ำหลักของผูดแลระบบ
                      ้ ู




                                                                   ้ ู
                       รูปภาพที่ 4 - 42 แสดงหน้ าหลักของระบบสาหรับผูดแลระบบ
                ั ั
           o มีฟงก์ชนในกำรใช้งำนดังนี้
                          ั ั
                    ฟงก์ชนในการตรวจสอบว่า ผ่านการ login มาหรือไม่ เพื่อกันผูใช้ทแอบเข้ามา้ ่ี
                       ่       ั
                     ซึงจะใช้ตวแปร session ในการตรวจสอบ กล่าวคือ จะดูว่าตัวแปร session
                         ่ ั                               ่                                   ้
                     ทีได้รบมาจากหน้า login มีค่าเท่ากับทีหน้า main หรือไม่ ถ้าเท่ากันแสดงว่าผูใช้ผ่านการ
                                                                  ่                                   ่
                     login เข้ามา ถ้าไม่เท่ากันจะไม่สามารถเข้ามาทีหน้า main ได้ ทางระบบจะส่งกลับไปทีหน้า
                     login แทน




IPv6 Home Gateway Stateless Autoconfiguration.                                                        60
        หน้า domain




                                   รูปภาพที่ 4 - 43 แสดงหน้ าโดเมนเมน
                ั ั
           o มีฟงก์ชนในกำรใช้งำนดังนี้
                          ั ั
                    จะมีฟงก์ชนนาข้อมูลจากฐานข้อมูลมาแสดงผลว่า                   ี ู้        ้     ่
                                                                        ในขณะนี้มผลงทะเบียนทังหมดกีคน
                     แต่ละคนมีโดเมนเนมและอีเมลล์เป็ นอย่างไร
                              ั ั
                    จะมีฟงก์ชนในการเลือกแสดงผลทีละ 10 บรรทัด เพื่อรองรับเมื่อผูใช้มจานวนมาก
                                                     ่                          ้ ี
                            ้ ู                                     ่ ุ่
                     เมื่อผูดแลระบบต้องการดูหน้าถัดไปจะต้องทาการกดทีปม                   Next
                                                   ่
                     และถ้าอยากดูหน้าก่อนหน้ากดปุม Prev




IPv6 Home Gateway Stateless Autoconfiguration.                                                    61
           หน้ำ hostname




                                     รูปภาพที่ 4 - 44 แสดงหน้ าโฮสต์เนม
                  ั ั
             o มีฟงก์ชนในกำรใช้งำนดังนี้
                             ั ั
                       จะมีฟงก์ชนนาข้อมูลจากฐานข้อมูลมาแสดงผลว่า
                                 ู้ ่ี                                       ี
                        ในขณะนี้ผทลงทะเบียนแต่ละคนมีโฮสต์อะไรบ้าง แต่ละโฮสต์มหมายเลข IPv6 เป็ นอะไร
                                 ั ั
                       จะมีฟงก์ชนในการเลือกแสดงผลทีละ 10 บรรทัด เพื่อรองรับเมื่อผูใช้มจานวนมาก
                                                        ่                          ้ ี
                               ้ ู                                     ่ ุ่
                        เมื่อผูดแลระบบต้องการดูหน้าถัดไปจะต้องทาการกดทีปม                   Next
                        และถ้าอยากดูหน้าก่อนหน้ากดปุ  ่ม Prev

          4.1.9 โปรแกรมส่วนติ ดต่อกับเราท์เตอร์
          โปรแกรมจะเขียนด้วยภำษำซี                (client-server)         เป็ นกำรรับส่งข้อมูลแบบ         UDP
  ่                                                                                                     ้
ซึงโปรแกรมนี้จะเปิ ดรอกำรติดต่อจำกเรำท์เตอร์ อยู่ตลอดเวลำ ถ้ำมีเรำท์เตอร์ มำติดต่อกับ DNS Server จำกนัน DNS
                                   ่ ั        ้
Server จะทำกำรตรวจสอบว่ำข้อมูลทีได้รบมำนันถูกต้องหรือไม่ โดยใช้ md5sum ในกำรตรวจสอบ ถ้ำข้อมูลถูกต้อง
            ้
จะนำข้อมูลนันมำตรวจสอบว่ำ                 ้
                                    ชื่อผูใช้       ,                                   ้ ี
                                                             รหัสผ่ำนและโดเมนเนมของผูใช้มอยู่ในฐำนข้อมูลหรือไม่
      ็
ถ้ำมีกจะทำกำรอัพเดทโฮสต์ต่ำงๆให้ และจะรอรับกำรติดต่อจำกเรำท์เตอร์ ตัวอื่นต่อไป




  IPv6 Home Gateway Stateless Autoconfiguration.                                                            62
4.2     ส่วนของเราท์เตอร์
          4.2.1 Web interface
                                          ั้
          ในกำรสร้ำง web บนตัวเรำท์เตอร์นนจะใช้ภำษำ Haserl ( Html And Shell Embedded Report Language
                 ่ ี                                                 ้ื ่                ่
) เนื่อง web ทีมอยู่บนตัวเรำท์เตอร์ ใช้ภำษำนี้ เพรำะว่ำเรำท์เตอร์ มีพนทีในกำรเขียนน้อย ซึงภำษำ Haserl
    ้ื ่
ใช้พนทีน้อยมำกจึงเหมำะกับตัวเรำท์เตอร์            ้        ั ั
                                             อีกทังภำษำนี้ยงมีลกษณะคล้ำยกับ          PHP       อีกด้วย
และยังสำมำรถทำงำนร่วมกับ shell script ได้
                                            ั้
            ในกำรใช้งำนผ่ำนหน้ำ web นี้นน จะต้องไปลงทะเบียนสมัคร account ที่ web ของ DNS
                                        ่         ้ ้                                ่ ้
Serverก่อนถึงจะสำมำรถใช้งำนได้ ซึงกำรใช้งำนนันผูใช้จะต้องกรอกข้อมูล คือ ชือผูใช้ , รหัสผ่ำน
                        ่ี            ุ
,โดเมนเนมและชื่อโฮสต์ทจะกำหนดให้อปกรณ์แต่ละตัว              ่ ้
                                                          ซึงผูใช้จะต้องทรำบว่ำ          MAC          Address
  ่     ้                  ั
ทีเห็นนันเป็ นของอุปกรณ์ตวไหน                           ่ ้
                                                      ซึงผูใช้สำมำรถเลือกได้ว่ำจะกำหนดชื่อโฮสต์หรือไม่กำหนด
                             ็    ่ ่
ถ้ำต้องกำรกำหนดชื่อโฮสต์กให้กดทีปุมหน้ำ        MAC    Address        ของโฮสต์นนๆั้              ้
                                                                                         ถ้ำไม่ตองกำรก็ไม่ได้กด
หลังจำกนันเมื่อกรอกข้อมูลครบแล้ว ก็กดปุ
          ้                               ่ม submit จำกนันเรำท์เตอร์ จะทำกำรส่งข้อมูลไปยัง DNS Server
                                                          ้
                    ่
ผ่ำนทำงโปรแกรมทีได้เขียนไว้ เพื่อให้ DNS Server ทำกำรอัพเดทโฮสต์และ ipv6 ของโฮสต์นนๆ  ั้
            ซึง
              ่        web       interface               ั ั                    ้
                                                 นี้จะมีฟงก์ชนในกำรตรวจสอบว่ำผูใช้กรอกข้อมูลครบถ้วนหรือไม่
  ่     ้
ซึงถ้ำผูใช้กรอกไม่ครบถ้วนระบบจะทำกำรแจ้งข้อควำมเตือนดังรูป                                            4-36
แต่ถำกรอกข้อมูลครบถ้วนระบบจะทำกำรส่งข้อมูลไปอัพเดทยัง
      ้                                                        DNS     Server               ี ังก์ชนหนึ่งคือ
                                                                                   และยังมีอกฟ ั
    ั ั
ฟงก์ชนในกำรป้องกันผูใช้กรอกชื่อ domain name หลำยชื่อ ซึงในควำมเป็ นจริงผูใช้จะมี domain name เพียงอันเดียว
                        ้                                 ่              ้
                ้ ิ                  ่
กล่ำวคือเมื่อผูใช้พมพ์ domain name ทีช่องไหนก็ตำมทำงระบบจะทำกำรคัดลอกไปยังช่องอื่นๆ ด้วย ดังรูป 4-37




                                                            ้
                        รูปภาพที่ 4 - 45 แสดงหน้ าเว็บเมื่อผูใช้กรอกข้อมูลไม่ครบถ้วน




  IPv6 Home Gateway Stateless Autoconfiguration.                                                            63
                                                             ้
                         รูปภาพที่ 4 - 46 แสดงหน้ าเว็บเมื่อผูช้ากรอกโดเมนเนม




 .
                                                  ู้
          รูปภาพที่ 4 - 47 แสดงหน้ าเว็บสาหรับให้ผใช้กาหนดชื่อโฮสต์และส่งข้อมูลไปอัพเดท




IPv6 Home Gateway Stateless Autoconfiguration.                                            64
                                                             ้
                         รูปภาพที่ 4 - 48 แสดงหน้ าเว็บเมื่อผูใช้กรอกข้อมูลไม่ครบ




                                                  ้
              รูปภาพที่ 4 - 49 แสดงหน้ าเว็บเมื่อผูใช้กรอกชื่อหรือรหัสผ่านหรือโดเมนเนมผิด


        4.2.2 โปรแกรมเพื่อหา MAC Address ของอุปกรณ์ ที่ต่ออยู่กบตัวเราท์เตอร์
                                                               ั
                                   ่                                      ่       ั
        โปรแกรมนี้เขียนกับภำษำ C ซึงไว้ใช้หำ MAC Address ของอุปกรณ์ต่ำงๆทีต่ออยู่กบตัวเรำท์เตอร์ ว่ำมี
MAC                                                           ้
       Address อะไรบ้ำง โดยกำรหำค่ำ MAC Address นันจะต้องไปอ่ำนจำกไฟล์ /proc/net/arp


 IPv6 Home Gateway Stateless Autoconfiguration.                                                    65
       ้
จำกนันทำกำรตัดเอำเฉพำะค่ำ        MAC        Address     ของ      interface   br0                   ่
                                                                                       และเก็บค่ำทีได้ลงไฟล์
                   ่ ู้      ่
เพื่อเอำไว้ใช้ตอนทีผใช้กำหนดชือโฮสต์ให้อุปกรณ์ต่ำงๆผ่ำนหน้ำ web บนเรำท์เตอร์
           ่
         ซึงเมื่อเขียนโปรแกรมเสร็จแล้ว                                       ่     ้
                                                      ยังไม่สำมรถนำโปรแกรมทีเขียนนันไปใช้บนเรำท์เตอร์ได้
                               ่
จะต้องนำไปทำเป็ นแพคเก็ตก่อน ซึงจะต้องทำ coss complie ก่อนถึงจะสำมำรถนำมำใช้ได้
             ่                       ้                        ั
           ซึงโปแกรมนี้จะทำงำนเมื่อผูใช้จะเข้ำไปกำหนดโฮสต์ให้กบอุปกรณ์                       ้
                                                                             และจะทำงำนอีกครังเมื่อ       ip
                        ่
ของเครื่องเรำท์เตอร์เปลียน

          4.2.3 การทา Cross Compile โปรแกรมเพื่อทางานบนเราท์เตอร์
                                                                              ั
           เมื่อพัฒนำโปรแกรมเสร็จแล้วยังไม่สำมำรถนำโปแกรมมำใช้ได้เนื่องจำกสถำปตยกรรมของเครื่อง
                ั                                                     ้
คอมพิวเตอร์กบเรำท์เตอร์ไม่เหมือนกัน จึงไม่สำมำรถใช้งำนได้ ดังนันจะต้องมีกำรทำ           cross compile
                                    ่
ก่อนเพื่อใช้สำมำรถนำไปใช้งำนได้ ซึงเรำท์เตอร์ WRT54G นี้จะใช้ OpenWrt SDK( OpenWrt Software
                                                  ั
Development Kit ) ในกำรทำให้เป็ นแพคเก็ตเพื่อใช้กบเรำท์เตอร์ ได้ โดย OpenWrt SDK จะใช้ toolchain ในกำรทำ
cross compile โดยมีหลักกำรดังนี้ [12],[18]
             o ดำวน์โหลด SDK
                 ดำวน์โหลด SDK จำก web “http://downloads.openwrt.org/whiterussian/newes” ไปไว้ท่ี
                             ้                 ้                ่                  ่
        โฮมไดเร็กทอรี โดยไม่ตองเป็ น root จำกนัน untar แพคเก็ตทีดำวน์โหลดมำ ดังคำสังด้ำนล่ำง [21],[22] :

cd ~
wget http://downloads.openwrt.org/whiterussian/newest/OpenWrt-SDK-Linux-
        i686-1.tar.bz2
bzcat OpenWrt-SDK-Linux-i686-1.tar.bz2 | tar -xvf -
cd ~/OpenWrt-SDK-Linux-i686-1



                                    ้                             ่ ้
             o สร้ำงไดเร็กทอรี โดยตังชื่อให้เหมือนกับชื่อแพคเก็ตทีตองกำร      โดยสร้ำงในโฟลเดอร์ package
               ด้วยคำสัง่
cd ~/OpenWrt-SDK-Linux-i686-1

mkdir      -p package/getmac

                                                        ้       ื
             o เข้ำไปที่ .../package/getmac จำกนันสร้ำงไฟล์ช่อ Config.in ในไฟล์จะระบุ option
                             ่    ้
               ของโปรแกรมทีสร้ำงขึน เพื่อไว้แสดงเวลำเข้ำไป configuration ตอน built       ์
                                                                                     เฟิรมแวร์
                 ่
               ซึงมีรำยละเอียดในกำร configuration ดังด้ำนล่ำง :
config BR2_PACKAGE_GETMAC
tristate
default y
help
     This file for indicate                MAC Address      of device that connect with
      router.

             o สร้ำงไฟล์ control                       ้                      ่ี
                                             เพื่อระบุขอมูลต่ำงๆของแพคเก็ตไว้ทpackage/getmac/getmac.control
               ดังด้ำนล่ำง


  IPv6 Home Gateway Stateless Autoconfiguration.                                                         66
Package: getmac
Priority: optional
Section: misc
Description: This file for indicate MAC Address of device that connect with
             router.

          แต่ละ filed คือ
                        Package                                      ่ ี ื
                                            - เป็ นชื่อของแพคเก็ต ในทีน้คอชื่อ getmac
                        Priority           - ควร set เป็ น optional
                        Section                                        ู้
                                            - ระบุชนิดของแพคเก็ต ถ้าไม่รจะใส่อะไรก็ใส่ misc
                        Description                                                  ้
                                            - เป็ นคาอธิบายข้อมูลว่าแพคเก็ตนี้ทาอะไรสันๆ ควรจะใส่ให้เหมือนกับ
                                              help ในไฟล์ Config.in
             o สร้ำง Makefile ในไดเร็กทอรี package. ใน Makefile จะประกอบด้วย กำรดำวน์โหลดแพคเก็ต ,
                                                          ้
               กำร configuration , กำร compile และกำรติดตัง
1.        include $(TOPDIR)/rules.mk
2.        PKG_NAME:=getmac
3.        PKG_VERSION:=1.0
4.        PKG_RELEASE:=1
5.        PKG_MD5SUM:=16800bd637d64dcafcb8e0355b537cc3
6.        PKG_SOURCE_URL:=http://takasila.coe.psu.ac.th/~s4610324/ \
7.        PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
8.        PKG_CAT:=zcat
9.        PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
10.       PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
11.
12.       include $(TOPDIR)/package/rules.mk

13.       $(eval $(call PKG_template,GETMAC,$(PKG_NAME),$(PKG_VERSION)-
          $(PKG_RELEASE),$(ARCH)))
14.
15.       $(PKG_BUILD_DIR)/.configured: $(PKG_BUILD_DIR)/.prepared
16.       touch $@
17.       $(PKG_BUILD_DIR)/.built:
18.       mkdir -p $(PKG_INSTALL_DIR)/usr/bin
19.       $(TARGET_CC) $(PKG_BUILD_DIR)/$(PKG_NAME).c -o
          $(PKG_BUILD_DIR)/$(PKG_NAME)
20.       $(CP) $(PKG_BUILD_DIR)/getmac $(PKG_INSTALL_DIR)/usr/bin
21.       touch $@
22.       $(IPKG_READ2):
23.       install -d -m0755 $(IDIR_READ2)/usr/bin
24.       $(CP) $(PKG_INSTALL_DIR)/usr/bin/read2 $(IDIR_READ2)/usr/bin
25.       $(RSTRIP) $(IDIR_READ2)
26.       $(IPKG_BUILD) $(IDIR_READ2) $(PACKAGE_DIR)
27.       mostlyclean:
28.       make -C $(PKG_BUILD_DIR) clean
29.       rm $(PKG_BUILD_DIR)/.built

          แต่ละ filed คือ :



  IPv6 Home Gateway Stateless Autoconfiguration.                                                           67
                      PKG_NAME                    - ชื่อของแพคเก็ตจะเห็นในหน้า menuconfig
                      PKG_VERSION                         ั
                                                   - เวอร์ชนของแพคเก็ต
                      PKG_RELEASE                                                    ่ี ื
                                                   - หมายเลขการปล่อยแพคเก็ตจะเห็นอยู่ทช่อของ
                                                              ่
                                                     แพคเก็ตทีเป็ น ipkg แล้ว.
                      PKG_BUILD_DIR                          ่
                                                   - ตาแหน่งทีคอมไพล์แพคเก็ต
                      PKG_SOURCE                          ้
                                                   - ชื่อดังเดิมไฟล์
                      PKG_SOURCE_URL                           ่                    ่
                                                   - ชื่อ web ทีไปดาวน์โหลดแพคเก็ต ซึงต้องบอกพาท ให้
                                                      ถูกต้อง


                      PKG_MD5SUM                  - หมายเลข md5sum ของแพคเก็ตใช้เพื่อตรวจสอบความ
                                                     ถูกต้องของแพคเก็ต สามารถใช้คาสัง่ “#md5sum ชื่อ
                                                     แพคเก็ต” ในการหา
                           md5sum
                           PKG_CAT                - ระบุชนิดในการใช้ untar แพคเก็ต เช่น zcat, bzcat,unzip


             o คอมไพล์แพคเก็ตด้วยคำสัง่ :

cd ~/OpenWrt-SDK-Linux-i686-1
make clean && make compile



                                                  ่
          เมื่อคอมไพล์เสร็จจะได้แพคเก็ตเป็ นipkgซึงอยู่ในไดเร็กทอรี “~/OpenWrt-SDK-Linux-i686-1/bin/packages”
                                                     ้     ้
             o นำไฟล์ ipkg ไปใส่ไว้ในเรำท์เตอร์ จำกนันติดตังแพคเก็ตด้วยคำสัง่ :

ipkg install packagename.ipk




          4.2.4 โปรแกรมส่วนติ ดต่อกับ DNS Server
          โปรแกรมจะเขียนด้วยภำษำซี               (client-server)            เป็ นกำรรับส่งข้อมูลแบบ     UDP
  ่
ซึงโปรแกรมนี้จะทำกำรติดต่อไปหำ           DNS         Server      เพื่อส่งข้อมูลต่ำงๆให้กบ ั      DNS   Server
ซึงโปรแกรมนี้จะทำงำนเมื่อผูใช้กดปุ
    ่                        ้      ่ม submit ตอนทีกำหนดชือโฮสต์ให้กบอุปกรณ์ต่ำงๆ และจะทำงำนอีกครังเมื่อ ip
                                                   ่        ่           ั                            ้
                  ่
ของเรำท์เตอร์ เปลียน เพื่อส่งข้อมูลไปอัพเดท

  IPv6 Home Gateway Stateless Autoconfiguration.                                                             68
บทที่ 5 กำรทดสอบระบบ




                              รูปภาพที่ 5 - 1 แสดงภาพจาลองการทดสอบระบบ

5.1     การทดสอบ web interface ให้บริ การ homeipv6.net บน DNS Server
            กำรทดสอบระบบในหัวข้อนี้เป็ นกำรทดสอบ       web    interface     ให้บริกำร  homeipv6.net
                                                                                  ู้ ื
เป็ นกำรทดสอบกำรทำงำนของโมดูลต่ำงๆ ได้แก่ กำรสมัครสมำชิก กำรส่งเมลล์เพื่อให้ผใช้ยนยันกำรสมัครสมำชิก
กำรเข้ำสูระบบ กำรป้องกันไม่ให้บุคคลทีไม่ใช่สมำชิกเข้ำระบบ กำรเรียกดูโฮสต์ในขณะนันๆ กำรเปลียนรหัสผ่ำน
          ่                             ่                                       ้         ่
        ่                                 ่
กำรเปลียนชื่อโดเมนเนมและกำรลบโฮสต์ ซึงมีกำรทดสอบดังตำรำงด้ำนล่ำง


                การทดสอบ                                                 ผลการทดสอบ
กำรสมัครสมำชิก                                                             ้
                                              สำมำรถสมัครสมำชิกได้โดยชื่อผูใช้และโดเมนเนมจะต้องไม่ซ้ำกับในฐำนข้อมูล
                                                   ้
                                              และผูใช้จะต้องกรอกข้อมูลให้ครบถ้วน
                    ู้ ื                                       ้              ้ ่ี
กำรส่งเมลล์เพื่อให้ผใช้ยนยันกำรสมัครสมำชิก สำมำรถส่งเมลล์ไปหำผูใช้ได้ ยกเว้นผูใช้ทใช้บริกำรของ hotmail
                                           ไม่สำมำรถส่งเมลล์ไปหำได้
         ่
กำรเข้ำสูระบบ                                   ้              ่                    ื ้
                                              ผูใช้สำมำรถเข้ำสูระบบได้ โดยต้องใส่ช่อผูใช้และรหัสผ่ำนให้ถูกต้อง
                                                       ่ี ู้ ื                    ั
                                              ในกรณีทผใช้ลมรหัสผ่ำนสำมำรถแก้ปญหำได้โดยจะส่งรหัสผ่ำนไปยัง E-mail
                                                  ่       ้
                                              ทีระบุในขันตอนสมัครสมำชิก



  IPv6 Home Gateway Stateless Autoconfiguration.                                                         69
กำรป้องกันไม่ให้บุคคลทีไม่ใช่สมำชิกเข้ำระบบ ระบบจะสำมำรถตรวจสอบชื่อและรหัสผ่ำนของผูใช้ได้ โดยใช้ตวแปร session
                       ่                                                                    ้    ั
                                              ่                         ่                 ่
                                            ซึงจะไม่อนุญำตให้บุคคลอื่นทีไม่ใช่สมำชิกเข้ำสูระบบ
                      ้
กำรเรียกดูโฮสต์ในขณะนันๆ                        ้                     ่ี ี ่     ้                       ่
                                              ผูใช้สำมำรถเรียกดูโฮสต์ทมอยูในขณะนันๆได้ เมื่อผ่ำนกำรเข้ำสูระบบแล้ว
       ่
กำรเปลียนรหัสผ่ำน                               ้            ่                                          ู
                                              ผูใช้สำมำรถเปลียนรหัสผ่ำนได้ โดยต้องใส่รหัสผ่ำนอันเดิมให้ถกต้อง
                                                                 ่
                                              ระบบถึงจะยอมให้เปลียนรหัสผ่ำนใหม่
       ่
กำรเปลียนชื่อโดเมนเนม                           ้            ่
                                              ผูใช้สำมำรถเปลียนชื่อโดเมนเนมได้ โดยจะต้องใส่โดเมนเนมอันเดิมก่อน
                                                                         ี
                                              และโดเมนเนมใหม่จะต้องไม่มอยู่ในฐำนข้อมูล
                                                                   ่
                                              ระบบถึงจะทำกำรเปลียนโดเมนเนมให้
กำรลบโฮสต์                                      ้                ่ี ้                                  ั้
                                              ผูใช้สำมำรถลบโฮสต์ทไม่ตองกำรออกได้ โดยทำกำรคลิกหน้ำโฮสต์นนๆ
                                                       ่
                                              แล้วกดปุม remove

5.2                                   ้ ู
        การทดสอบ web interface สาหรับผูดแลระบบ
           กำรทดสอบระบบในหัวข้อนี้เป็ นกำรทดสอบ         web           interface                  ้ ู
                                                                                         สำหรับผูดแลระบบ
เป็ นกำรทดสอบกำรทำงำนของโมดูลต่ำงๆ ได้แก่ กำรเข้ำสูระบบ กำรป
                                                      ่           ้ องกันไม่ให้บุคคลทีไม่ใช่สมำชิกเข้ำระบบ
                                                                                      ่
                       ้ ่ี                     ื          ้ ่ี          ่
กำรเรียกดูโดเมนเนมของผูทลงทะเบียนและกำรเรียกดูช่อโฮสต์ของผูทลงทะเบียนซึงมีกำรทดสอบดังตำรำงด้ำนล่ำง


                 การทดสอบ                                                   ผลการทดสอบ
         ่
กำรเข้ำสูระบบ                                        ้ ู                   ่
                                                   ผูดแลระบบสำมำรถเข้ำสูระบบได้
                                                               ื ้
                                                   โดยต้องใส่ช่อผูใช้และรหัสผ่ำนให้ถูกต้อง
กำรป้องกันไม่ให้บุคคลทีไม่ใช่ผดแลระบบเข้ำระบบ ระบบจะสำมำรถตรวจสอบชื่อและรหัสผ่ำนของผูใช้ได้ โดยใช้ตวแปร
                       ่      ู้ ู                                                           ้         ั
                                                        ่               ุ        ่      ู้ ู         ่
                                              session ซึงจะไม่อนุญำตให้บคคลอื่นทีไม่ใช่ผดแลระบบเข้ำสูระบบ
                       ้ ่ี
กำรเรียกดูโดเมนเนมของผูทลงทะเบียน                    ้                                     ้ ่ี
                                                   ผูใช้สำมำรถเรียกดูโดเมนเนมและอีเมล์ของผูทลงทะเบียนแต่ละคนได้
            ื          ้ ่ี
กำรเรียกดูช่อโฮสต์ของผูทลงทะเบียน                    ้                 ื
                                                   ผูใช้สำมำรถเรียกดูช่อโฮสต์และหมำยเลข IPv6
                                                         ้ ่ี
                                                   ของผูทลงทะเบียนแต่ละคนได้



5.3     การทดสอบ web interface บนเราท์เตอร์
           กำรทดสอบระบบในหัวข้อนี้เป็ นกำรทดสอบ          web             interface        บนเรำท์เตอร์
เป็ นกำรทดสอบกำรทำงำนของโมดูลต่ำงๆ ได้แก่ กำรแสดง MAC Address บนหน้ำ web interface
        ื                                           ั              ่
กำรใส่ช่อโดเมนเนม กำรกรอกข้อมูลและกำรส่งข้อมูลไปให้ยง DNS Server ซึงมีกำรทดสอบดังตำรำงด้ำนล่ำง




  IPv6 Home Gateway Stateless Autoconfiguration.                                                            70
                    การทดสอบ                                           ผลการทดสอบ
กำรแสดง MAC Address บนหน้ำ web interface           ระบบสำมำรถแสดง MAC Address
                                                              ่ี      ั
                                                   ของอุปกรณ์ทต่ออยู่กบเรำท์เตอร์ได้
        ื
กำรใส่ช่อโดเมนเนม                                         ่ี ี
                                                   ในกรณีทมอุปกรณ์หลำยเครื่อง
                                                   ระบบจะอนุญำตให้ผใช้ป้อนโดเมนเนมเพียงชื่อเดียวเท่ำนัน
                                                                   ู้                                 ้
กำรกรอกข้อมูล                                                 ่ี ู้
                                                   ในกรณีทผใช้กรอกข้อมูลไม่ครบ
                                                   ทำงระบบจะทำกำรแจ้งเตือนข้อควำมว่ำ “ERROR: You did
                                                   not fill in a required filed ”
                                                                 ้     ู้
                                                   หลังจำกนันจะให้ผใช้กรอกข้อมูลใหม่
                  ั
กำรส่งข้อมูลไปให้ยง DNS Server                     ระบบสำมำรถส่งข้อมูลไปให้ DNS Server
                                                   ได้โดยใช้โปรแกรมบนเรำท์เตอร์เป็ นตัวส่งข้อมูล
                                                   เมื่อส่งข้อมูลเสร็จแล้วระบบจะทำกำรแสดงข้อควำมบนหน้ำ
                                                   web interface ว่ำทำกำรส่งข้อมูลได้หรือไม่
                                                     ่        ั ั                   ้
                                                   ซึงจะมีฟงก์ชนในกำรตรวจสอบว่ำผูใช้กรอกข้อมูลครบหรือไม่
                                                   หำกไม่ครบระบบจะทำกำรแจ้งเตือนว่ำกรอกข้อมูลไม่ครบ

5.4                                          ั
        การทดสอบการรับส่งข้อมูลของเราท์เตอร์กบ DNS Server
                                                                           ั
          กำรทดสอบระบบในหัวข้อนี้เป็ นกำรทดสอบกำรรับส่งข้อมูลของเรำท์เตอร์กบ           DNS        Server
เป็ นกำรทดสอบกำรทำงำนของโมดูลต่ำงๆ        ได้แก่    กำรส่งข้อมูลจำกเรำท์เตอร์ไปยัง       DNS      Server
                  ์ ้ ่
และกำรตรวจสอบสิทธิของผูใช้ ซึงมีกำรทดสอบดังตำรำงด้ำนล่ำง


                    การทดสอบ                                             ผลการทดสอบ
กำรส่งข้อมูลจำกเรำท์เตอร์ไปยัง DNS Server            โปรแกรมบนเรำท์เตอร์สำมำรถส่งข้อมูลไปให้ DNS
                                                                       ่ี ้     ่่
                                                     Server ได้ ในกรณีทขอมูลทีสงไปไม่ครบถ้วน
                                                     โปรแกรมบนเรำท์เตอร์จะต้องทำกำรส่งข้อมูลไปให้ DNS
                                                                  ้                ่
                                                     Server อีกครัง จนกว่ำข้อมูลทีได้จะครบ
               ์ ้
กำรตรวจสอบสิทธิของผูใช้                                                                ้
                                                     DNS Server จะทำกำรตรวจสอบชื่อผูใช้ รหัสผ่ำน
                                                     และโดเมนเนมว่ำมีอยู่ในฐำนข้อมูลผรือไม่
                                                     ถ้ำมีจะอนุญำตให้ทำกำรอัพเดทข้อมูลใน DNS Server




  IPv6 Home Gateway Stateless Autoconfiguration.                                                      71
5.5                         ้
            การทดสอบระบบโดยผูใช้
                                                                        ้ ื
           กำรทดสอบระบบในหัวข้อนี้เป็ นกำรทดสอบเพื่อหำข้อผิดพลำดโดยผูใช้อ่นๆ
      ้
โดยผูใช้แต่ละคนลงทะเบียนเป็ นสมำชิกและทดสอบกำรทำงำนของโมดูลต่ำงๆ               ได้แก่                    ้
                                                                                           กำรกำหนดชื่อผูใช้
กำหนดรหัสผ่ำน               กำรยืนยันผลกำรลงทะเบียน                      ้            ่            ่
                                                              หลังจำกนันสมำชิกเพิมข้อมูลของโดเมนซึงได้แก่
                                    ้                   ่                               ้
ชื่อโดเมนและชื่อเครื่องภำยใต้โดเมนนันและทดสอบโมดูลกำรเพิม ลบชื่อเครื่องและชื่อโดเมนของผูใช้แต่ละคน
                                       ้
            กำรทดสอบชุดนี้ได้ทดสอบโดยผูใช้จำนวน 5 คนโดยแต่ละคนกำหนดข้อมูลดังต่อไปนี้

     ้
ชื่อผูใช้       E-Mail                      ชื่อโดเมน                                  ่
                                                                               ชื่อเครือง

toy             s4910130006@psu.ac.th cjundang.homeipv6.net                    chaiyut

                                            cjundang.homeipv6.net              toy

karn            t.karn@hotmail.com          เกิดข้อผิดพลำด                     เกิดข้อผิดพลำด

pikky           abcd_pat@yahoo.com          pikky. homeipv6.net                pavinee

                                            pikky. homeipv6.net                pikky

                                            pikky. homeipv6.net                pikzilla

dome            s4610610@psu.ac.th          joolong.homeipv6.net               dome

ple             S4610616                    aphisada.homeipv6.net              pizzy

                                            aphisada.homeipv6.net              apple

           จำกกำรทดสอบระบบข้ำงต้นสรุปได้ว่ำ
  ้ ้
ผูใช้ตองเข้ำใจแนวคิดของกำรกำหนดชื่อเครื่องและชื่อโดเมนของระบบในระดับหนึ่ง
       ่                ้               ่ ้
เพื่อทีจะกำหนดข้อมูลเบืองต้นแก่เครื่องทีตองกำร                                          ้            ่
                                                                            ส่วนติดต่อผูใช้ค่อนข้ำงยุงยำกเนื่องจำก
ข้อมูลบำงหน้ำสำมำรถแสดงได้ในหน้ำเดียว                   เช่นส่วนของกำรแสดงชื่อเครื่อง              กำรลบชื่อเครื่อง
              ่              ั้                        ่ ้ ู้ ึ
สำหรับกำรเพิมชื่อเครื่องใหม่นนต้องเข้ำเว็บอีกหน้ำเว็บซึงผูใช้รสกว่ำระบบใช้งำนยำก
                 ้ ื
ข้อเสนอแนะของผูใช้คอส่วนของกำรจัดกำรข้อมูลเครื่องควรรวมอยู่ในหน้ำเดียวกันนันคือ ่                  ส่วนของกำรเพิม ่
กำรลบและกำรแก้ไขฐำนข้อมูล เป็ นต้น




   IPv6 Home Gateway Stateless Autoconfiguration.                                                               72
บทที่ 6 บทสรุปและข้อเสนอแนะ
6.1     บทสรุป
                                                                 ั่
          โครงงำนชุดนี้ประกอบไปด้วย 3 ส่วนหลักได้แก่ โปรแกรมฝงเรำท์เตอร์ โปรแกรมบนเครื่อง DNS Server
               ้
และส่วนติดต่อผูใช้ (web interface) โดยโปรแกรมแต่ละส่วนมีรำยละเอียดดังนี้
          โปรแกรมฝงเรำท์เตอร์ สำมำรถค้นหำ MAC Address ของอุปกรณ์ต่ำงๆ ทีเชื่อมต่อกับเรำท์เตอร์ได้
                       ั่                                                                 ่
           และสำมำรถส่งข้อมูลไปปรับปรุงฐำนข้อมูลบนเครื่อง DNS Server ผ่ำนโปรแกรม socket (5300/UDP)
          โปรแกรมบนเครื่อง DNS Server สำมำรถรับข้อมูลสำหรับกำรปรับปรุงฐำนข้อมูลของระบบโดเมนเนม
                 ่                  ้
           ก่อนทีจะปรับปรุงข้อมูลนันมีกระบวนกำรตรวจสอบควำมถูกต้องของข้อมูลด้วย                          md5sum
                                                 ุ่
           และสิทธิของกำรแก้ไขฐำนข้อมูล ท้ำยทีสดโปรแกรมนี้สำมำรถปรับปรุงฐำนข้อมูลได้อตโนมัติ
                   ์                                                                          ั
          ส่วนติดต่อผูใช้ (web interface) ซึงแบ่งออกเป็ นสองระบบย่อยคือ โปรแกรมซึงทำงำนบน DNS Server
                          ้                   ่                                         ่
           และโปรแกรมบนเรำท์เตอร์ โดยโปรแกรมบน DNS Server สำมำรถรับลงทะเบียนโดยเพิมชื่อผูใช้            ่     ้
                            ่
           กำหนดหรือเปลียนรหัสผ่ำน                               ้ ่                            ่ี ู้ ื
                                                  ส่งเมลล์ไปยังผูใช้เพือยืนยันกำรสมัครหรือกรณีทผใช้ลมรหัสผ่ำน
                              ่
           กำหนดหรือเปลียนโดเมนเนม                   ลบโฮสต์ในฐำนข้อมูลของ                DNS             Server
                     ่                     ั้                        ้                ้
           ในขณะทีโปรแกรมบนเรำท์เตอร์นนสำมำรถรับข้อมูลจำกผูใช้ ได้แก่ ชื่อผูใช้ รหัสผ่ำน ชื่อโฮสต์
                                      ้
           และโดเมนเนม หลังจำกนันส่งข้อมูลดังกล่ำวไปยัง DNS Server เพื่อปรับปรุงข้อมูลในฐำนข้อมูล
                                ั                            ี
             เนื่องจำกสถำปตยกรรมของคอมพิวเตอร์และเรำท์เตอร์มควำมแตกต่ำงกัน
      ้             ่
ดังนันจึงจำเป็ นทีจะต้องแปลโปรแกรมแบบ                             cross                        compile
                      ่ ั     ้                                                            ่ี        ์
เพื่อให้โปรแกรมทีพฒนำขึนมำสำมำรถทำงำนบนเรำท์เตอร์ได้แต่โปรแกรมนี้สำมำรถใช้งำนกับเรำท์เตอร์ทรองรับเฟิรม
แวร์ของ                   OpenWrt    รุ่น         White            Russian       RC5                   ้
                                                                                                 เท่ำนัน
          ่ี                                  ้                ่ี
อุปกรณ์ทรองรับกำรทำงำนของระบบในโครงงำนนี้ตองเป็ นอุปกรณ์ทสนับสนุนกำรกลไกกำรสร้ำงหมำยเลข            IPv6
        ี                                          ้
ด้วยวิธกำร EUI64 ระบบกำรส่งเมลล์ไม่รองรับเมลล์ของผูให้บริกำร hotmail

6.2     ข้อเสนอแนะ
         6.2.1 การจัดเก็บข้อมูลบนเราท์เตอร์
               ี                 ่                                               ่
            วิธกำรจัดเก็บข้อมูลทีจะส่งไปอัพเดทที่ DNS Server ควรจะสร้ำงแบบฟอร์มทีเป็ นมำตรฐำน เพื่อให้
ใช้งำนได้ง่ำยขึน ้

         6.2.2 จานวนโดเมนที่ให้ บริ การ
                                 ่            ่                  ู้              ้
         DNS Server ควรจะมีกำรเพิมจำนวนโดเมนทีให้บริกำร เพื่อให้ผใช้เลือกได้มำกขึน




  IPv6 Home Gateway Stateless Autoconfiguration.                                                             73
          6.2.3 การตรวจสอบรายละเอียดของอุปกรณ์ ที่เชื่อมต่ อกับเครือข่าย
               กำรตรวจสอบรำยละเอียดของอุปกรณ์ทเี่ ชื่อมต่อกับเครือข่ำย
            ิี     ่              ่ี
ควรจะมีวธกำรทีจะระบุว่ำอุปกรณ์ทต่ออยู่กบตัวเรำท์เตอร์นนเป็นอุปกรณ์อะไร
                                        ั                 ั้                   ื
                                                                           มีช่อว่ำอะไร   เป็ นต้น
         ู้                               ้
เพื่อให้ผใช้สำมำรถกำหนดชื่อโฮสต์ได้ง่ำยขึนและง่ำยต่อกำรจำอุปกรณ์อกด้วย ี




  IPv6 Home Gateway Stateless Autoconfiguration.                                               74
                                                                           บรรณานุกรม
 [1] ควำมพร้อมของประเทศไทยสำหรับอินเทอร์เน็ตยุคหน้ำ,
     http://wiki.nectec.or.th/ngiwiki/pub/IPv6forum/PublishedThaiArticles/IPV6TechTrends3.pdf , 25 มกรำคม
     2550.

 [2] OpenWrt,http://openwrt.org,10 มิถุนำยน 2548.


 [3] TableOfHardware , http://wiki.openwrt.org/TableOfHardware , 20 มิถุนำยน 2548.


 [4] 6to4 , http://en.wikipedia.org/wiki/6to4 , 12 กรกฎำคม 2549.

                  ิ                                                          ั่
 [5] สมประสงค์ ธิตนิลนิธ.ิ 2547.เรียนลัด PHP4 ครอบคลุม PHP เวอร์ชน 4.2.โปรวิชน.กรุงเทพ.
                                                                 ั

 [6] radvd , http://www.linuxcommand.org/man_pages/radvd8.html , 26 มิถุนำยน 2549.

 [7] Bind 9 administrator reference manual ,http://www.isc.org/sw/bind/arm93/Bv9ARM.pdf , 20 มิถุนำยน
     2549.

         ั                          ิ
 [8] จตุชย แพงจันทร์ และ อนุโชติ วุฒพรพงษ์ .2546.เจาะระบบ Network ฉบับสมบูรณ์ .ด่ำนสุทธำกำร
     พิมพ์.กรุงเทพฯ.

 [9] การเซ็ท Synology ให้ใช้งาน FTP Server, Photo Station, Web Server ,
     http://www.dcomputer.com/proinfo/support/support/server/synology/FTPServer.htm ,25 เมษายน 2549.

 [10] Secure dynamic DNS howto , http://www.ops.ietf.org/dns/dynupd/secure-ddns- howto.html#intro ,
      17 มิถุนำยน 2549.

 [11] Mobile IP (The internet unplugged), http://fivedots.coe.psu.ac.th/~ple/ipv6/mobileIP.html,5 กรกฎำคม
      2549




IPv6 Home Gateway Stateless Autoconfiguration.                                                          75
 [12] IPv6 Stateless Address Autoconfiguration , http://www.faqs.org/ftp/rfc/pdf/rfc1971.txt.pdf ,26 มิถุนำยน
      2548.

 [13] Toolchain ,http://en.wikipedia.org/wiki/Toolchain,20 สิงหำคม 2548.

 [14] Html And Shell Embedded Report Language , http://haserl.sourceforge. net/ haserl.html ,
      13 กรกฎำคม 2549.

 [15] The NetBSD Operating System: A Guide , http://people.allbsd.org/~hrs/ NetBSD/guide/en/chap-
      dns.html , 10 มิถุนำยน 2549.

                ้
 [16] การติดตัง Apache, PHP, MySQL, PHPMyAdmin บน Ubuntu 6.06 ,
      http://research.crma.ac.th/2549/idex.php/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%95%E0
      %B8%B4%E0%B8%94%E0%B8%95%E0%B8%B1%E0%B9%89%E0%B8%87_Apache,_PHP,_MyS
      QL,_PHPMyAdmin_%E0%B8%9A%E0%B8%99_Ubuntu_6.06 , 12 พฤศจิกายน 2549.

                     ้
 [17] บันทึกการติดตัง Apache2, PHP5, MySQL5, phpMyAdmin บน ubuntu 6.06 ,
      http://www.itwizard.info/technology/linux/ubuntu/apache2_php5_mysql5_phpmyadmin_ubuntu606/apac
      he2_php5_mysql5_phpmyadmin.html , 10 พฤศจิกำยน 2549.

                   ิ                                                          ั่
 [18] สมประสงค์ ธิตนิลนิธ.ิ 2547.เรียนลัด PHP4 ครอบคลุม PHP เวอร์ชน 4.2.โปรวิชน.กรุงเทพ
                                                                  ั

                         ิ                             ั่
 [19] สมศักดิ ์ โชคชัยชุตกุล.2547. อินไซท์ PHP 5.โปรวิชน.กรุงเทพ

          ั            ิ
 [20] อดิศกดิ ์ จันทร์มน.2548.สร้าง web application อย่างมืออาชีพด้วย PHP.เอชเอ็นกรุ๊ป.กรุงเทพ.

 [21] BuildingPackagesHowTo ,http://wiki.openwrt.org/BuildingPackagesHowTo#head-
      377a39cb03fe3d725d7eae59effd4634b9d9bde2 , 26 สิงหำคม 2549.

 [22] OpenWrt Buildroot , http://downloads.openwrt.org/docs/buildrootdocumentation.html#about ,
      13 กรกฎำคม 2549.




IPv6 Home Gateway Stateless Autoconfiguration.                                                             76
                                                                                        ภำคผนวก
                                          ้            ้
                                        ขันตอนการติ ดตัง เฟิ ร์มแวร์
1.ดาวโหลดเฟิ ร์มแวร์
          1.1 เข้าไปที่ http://downloads.openwrt.org/whiterussian/rc5/bin/ จะปรากฏดังรูปด้านล่างกดเลือก version
                               ่       ่ ่ ี                      ้
ให้ตรงกับ รุ่นของเราท์เตอร์ ทีเราใช้ ซึงในทีน้ใช้รุ่น wrt54g ดังนันจึงเลือกใช้ openwrt-wrt54g-jffs2.bin จะเห็นว่ามี
                                                             ่
root filesystems อยู่ 2 ชนิด คือ SquashFS กับ JFFS2 ซึงต่างกันที่ SquashFS เป็ น filesystems แบบ readonly
ส่วน JFFS2 เป็ น filesystems แบบ writable จึงเลือกใช้ JFFS2




                                      รูปที่ 1 แสดงการ ดาวโหลด เฟิ ร์มแวร์
         **Note
                    ์
                เฟิรมแวร์ มีหลาย version เช่น whiteRussianRC1 , whiteRussianRC2 ,whiteRussianRC3 ,
                                                            ่         ่
whiteRussianRC4 , whiteRussianRC5 , whiteRussianRC6 ซึงสามารถทีจะเลือกใช้ได้ และจะมีการพัฒนา version
                  ่ ้                                                           ่
ใหม่ๆ อยู่เสมอๆ ซึงตังแต่ version whiteRussianRC4 เป็ นต้นไปจะมี webinterface ซึงทาให้ง่ายต่อการใช้งาน




   IPv6 Home Gateway Stateless Autoconfiguration.                                                               77
2.upgrade เฟิ ร์มแวร์
            ี               ์             ี ั
         วิธการ upgrade เฟิรมแวร์ มี 2 วิธดงต่อไปนี้
                 ี                                             ์          ่                        ่     ์
          2.1 วิธแรก จะทาผ่านหน้า webinterface จะใช้สาหรับ เฟิรมแวร์ ตัวทีมากับเครื่องเราท์เตอร์ ซึง เฟิรมแวร์
  ่                               ้ ั้
ทีใช้จะต้องเป็ นไฟล์ “.bin” เท่านัน มีขนตอนดังนี้
                  2.1.1 เปิ ด web browser แล้วเข้าไปที่ URL “http://192.168.1.1” ดังรูปด้านล่าง




                             รูปที่ 2 แสดงการเข้าไปยังเราท์เตอร์ ผ่าน web browse
                                 ้                                ื ้
                  2.1.2 หลังจากนันจะปรากฏ dialog box เพื่อให้ใส่ช่อผูใช้และ รหัสผ่าน
  ่          ี      ่        ่ ้                       ื ้ ื        ้
ซึงถ้ายังไม่มการเปลียนแปลงชือผูใช้และรหัสผ่าน ดีฟอลต์ช่อผูใช้คอไม่ตองใส่อะไร ส่วนรหัสผ่านคือ “admin”
ดังรูปด้านล่าง




                                                              ้ ั
                                     รูปที่ 3 แสดงการใส่ ชื่อผูใช้กบรหัสผ่าน
                                 ้ ๊                                 ์
                  2.1.3 หลังจากนันคลิก Administration -> Upgrade เฟิรมแวร์ บน menu bar ดังรูปด้านล่าง




   IPv6 Home Gateway Stateless Autoconfiguration.                                                                78
                          รูปที่ 4 แสดงการ upgrade เฟิ ร์มแวร์ ผ่านหน้ า webinterface
                            ่                       ์      ่                         ้
                 2.1.4 กดปุม Browse เพื่อเลือก เฟิรมแวร์ ทีได้ทาการ load เก็บไว้จากขันตอนที่ 1
                        ๊                    ้               ่      ่
หลังจากเลือกเสร็จแล้วคลิก Upgrade หลังจากนันต้องรอสักพัก ซึงขณะทีทาการ upgrade เฟิรมแวร์ ์
             ่ ั           ้ ้             ๊
ห้ามทาอะไรทีตวเราท์เตอร์ ทังนัน เช่น ดึงปลักออก เนื่องจากจะทาให้เราท์เตอร์ เสียหายได้ ดังรูปด้านล่าง




                         รูปที่ 5 แสดงขณะ upgrade เฟิ ร์มแวร์ ผ่านหน้ า webinterface
                                          ์
                  2.1.5 เมื่อ upgrade เฟิรมแวร์ เสร็จแล้วจะปรากฏ ดังรูปด้านล่าง




   IPv6 Home Gateway Stateless Autoconfiguration.                                                      79
                                        รูปที่ 6 แสดงการ upgrade สาเร็จ
                  ส่วนถ้าการ upgrade ผิดพลาดจะปรากฏ ดังรูปด้านล่าง




                                      รูปที่ 7 แสดงการ upgrade ผิดพลาด


                                                            ่ ี ี
         2.2 กรณีท่ี 2 จะใช้ผ่าน command line โดยใช้ tftp ซึงวิธน้ก่อนทาจะต้อง set boot_wait = on ก่อน
                    ่ ี ี
                  ซึงวิธน้จะต้องแน่ใจก่อนว่า boot_wait = on เนื่องจาก ถ้า boot_wait ไม่ on จะไม่สามารถ upgrade
    ์
เฟิรมแวร์ ได้
                                      ั ิ
                  2.2.1 ถ้าใช้ระบบปฏิบตการ debian หรือ ubuntu ต้อง install tftp-hpa ก่อน โดยใช้คาสัง่



   IPv6 Home Gateway Stateless Autoconfiguration.                                                          80
            #apt-get       install       tftp-hpa

                               ๊                               ้         ่
                   2.2.2 ถอดปลัก power ของ เราท์เตอร์ ออก จากนันพิมพ์คาสังด้านล่าง ทีละบรรทัด จนถึงบรรทัด
                         ่ี ่      ์       ่                 ้                                        ๊
สุดท้าย หลัง put ให้ใส่ทอยูของ เฟิรมแวร์ ทีได้ดาวโหลดมา จากนันกด enter หลังจากกด enter แล้ว ก็เสียบปลัก
power ของเราท์เตอร์ทนทีั


            tftp 192.168.1.1
            tftp> binary
            tftp> rexmt 1
            tftp> timeout 60
            tftp> trace
            Packet tracing on.
            tftp>   put openwrt-wrt54g-jffs2.bin




                   ถ้าได้ set boot_wait=on รวมถึงทาได้ถูกต้องแล้ว จะได้ผลดังรูปด้านล่าง




                                 รูปที่ 8 แสดงขณะ upgrade เฟิ ร์มแวร์ โดยใช้ tftp
                                     ั                  ี ้
                 ระหว่างส่งข้อมูลให้กบ เราท์เตอร์ อยู่น้ตองรอสักพัก จนกว่าจะส่งข้อมูลเสร็จ อาจจะใช้เวลาสักนิด
          ่               ั้                                     ๊     ้
ในขณะทีกาลังส่งข้อมูลอยู่นนห้ามทาอะไรตัวเราท์เตอร์ เช่น ถอดปลัก มิฉะนันจะทาให้เราท์เตอร์ พังได้
  ่         ่่                                                     ั      ่ ั
ซึงหลังจากทีสงข้อมูลเสร็จแล้วเราท์เตอร์ จะ reboot ตัวเองก่อน ให้สงเกตไฟทีตวเราท์เตอร์
                             ั ่
ว่าอยู่ในสถานะพร้อมใช้งานรึยง ซึงถ้าเสร็จแล้วจะแสดงไฟดังรูปด้านล่าง
.




    IPv6 Home Gateway Stateless Autoconfiguration.                                                              81
                                   รูปที่ 9 แสดงไฟในสถานะพร้อมที่จะใช้งาน
                                                     ่                ่               ์        ่
                   เมื่อเราท์เตอร์อยู่ในสถานะพร้อมทีจะใช้งาน สามารถทีจะ check เฟิรมแวร์ ทีได้ upgrade
                                                              ่                                   ้      ่
ว่าเรียบร้อยรึเปล่า โดยใช้คาสัง่ “ telnet 192.168.1.1 “ ซึงถ้าสาเร็จจะเห็นดังรูปด้านล่าง หลังจากนันต้องสังให้
                          ้                                      ๊
เราท์เตอร์ reboot อีกครังหนึ่งโดยใช้คาสัง่ reboot หรืออาจจะถอดปลัก power ออก




               รูปที่ 10 แสดงการเข้าไปยัง เราท์เตอร์ ที่มี เฟิ ร์มแวร์ ตัวใหม่ ที่ได้ upload เข้าไป
3. install software
                              ี ื
                  มีอยู่ 2 วิธคอ ผ่านทาง terminal กับ ผ่านหน้า webinterface
                  3.1 ผ่านทางหน้า webinterface
                                                                                                 ้
                           3.1.1 เปิ ด web browser แล้วเข้าไปที่ URL “http://192.168.1.1” พร้อมทังใส่รหัสผ่าน
                                      ้
                           3.1.2 จากนันเลือกเมนู System >> Installed software ดังรูปด้านล่าง




   IPv6 Home Gateway Stateless Autoconfiguration.                                                               82
                                         รูปที่ 11 แสดงรายการซอฟท์แวร์
                                          ้
                           3.1.3 หลังจากนันเลือก install package ดังต่อไปนี้


kmod-ipv
radvd
ip
kmod-ip6tables
ip6tables

                  3.2 ผ่านทาง terminal
                                                                                                    ้
                           3.2.1 เข้าไปยังตัวเราท์เตอร์โดยใช้คาสัง่ “ telnet 192.168.1.1 “ หลังจากนัน สามารถที่
     ้                                            ้
จะตังรหัสผ่านได้ โดยใช้คาสัง่ “ passwd ” หลังจากนันเมื่อต้องการจะเข้ามายังroute จะต้องใช้คาสัง่ “ ssh ” แทน
                   ้          ่
“telnet” หลังจากนันพิมพ์คาสังด้านล่าง
        Update ipkg


ipkg         update



              ้
         ติ ดตัง IPv6 kernel modules
ipkg install kmod-ipv6




   IPv6 Home Gateway Stateless Autoconfiguration.                                                                 83
     ติ ดตัง routing software
            ้


ipkg install radvd
ipkg install ip


     ติ ดตัง ip6tables kernel modules
            ้
ipkg install kmod-ip6tables

             ้
        ติ ดตัง ip6tables package

ipkg install ip6tables



4. setup software
        4.1 Kernel
                                                             ้ ิี ี            ้
                 4.1.1 พิมพ์คาสัง่ “ insmod ipv6” แต่ถาใช้วธน้จะต้องพิมพ์ทุกครังหลังจาก reboot เราท์เตอร์
                      ่
เนื่องจาก การพิมพ์คาสังนี้จากหน้า terminal จะได้ถูกเก็บไว้ใน system
                 4.1.2 เข้าไปแก้ใน “/etc/modules” โดยเพิม ่                   ่ ี
                                                                     “ipv6” ซึงวิธน้ี IPv6 modules จะถูก load
      ้                               ้          ้
ทุกครังหลังจาก reboot เราท์เตอร์ ดังนันทาเพียงครังเดียวพอ
                                                                                   ั้                  ี
                4.1.3เข้าไปยัง “ /etc/modules.d” สร้างไฟล์ “20-ipv6” และในไฟล์นนพิมพ์ “ipv6” วิธน้ี IPv6
                         ้                                                             ี ุ ้ ่ ี
modules จะถูก load ทุกครังหลังจาก reboot เราท์เตอร์ เนื่องจาก เราท์เตอร์ จะไปอ่านไฟล์น้ทกครังทีมการ reboot
        4.2 IPTables
                                                   ้ ่
                 เข้าไปที่ /etc/firewall.user จากนันเพิม rule ดังด้านล่าง
iptables -I INPUT -p 41 -i $WAN -j ACCEPT



                              ่             ่                      ่
        ถ้าเราท์เตอร์ของเราอยูใน NAT ต้องเพิม rule ด้านล่าง เพื่อทีจะทาให้ใช้ protocol 41 ได้

iptables -t nat -D POSTROUTING -o $WAN -j MASQUERADE

iptables -t nat -A POSTROUTING --protocol ! 41 -o $WAN -j MASQUERADE

5. configure RADVD
                                                                    ่
        The router advertisement daemon (radvd) เป็ นตัว daemon ซึงใช้ในการส่งแพคเก็ต router advertisement
                                                ่        ่                              ่ ั้
ไปยังโฮสต์และรับ router solicitation messages ซึงมีหน้าทีในการแจก prefix IPv6 address ซึงมีขนตอนดังนี้




  IPv6 Home Gateway Stateless Autoconfiguration.                                                          84
       เข้าไปแก้ไขในไฟล์          “/etc/radvd.conf”   โดย       set   interface   เป็ น   br0   ดังรูปด้านล่าง
และสามารถจะเพิมฟ ั
              ่   ังก์ชนอื่นๆของ radvd ได้ เช่น


MaxRtrAdvInterval seconds
MinRtrAdvInterval seconds




                                รูปที่ 12 แสดงการ configure ไฟล์ radvd.conf
6. 6to4 tunnel
           ่
        เพิม script ด้านล่างลงไปในไฟล์ /etc/init.d/S42tun6to4
#!/bin/sh
# 6to4 tunnel

ipv4=`nvram get wan_ipaddr`

# get the IPv6 prefix from the IPv4 address
ipv6prefix=`echo $ipv4 | awk -F. '{ printf "2002:%02x%02x:%02x%02x",
        $1, $2, $3, $4}'`

# the local subnet (any 4 digit hex number)
ipv6subnet=1234

# The 6to4 relay: here are a few, use anycast address when possible
# For others see http://www.kfu.com/~nsayer/6to4/#list or google

# anycast
relay6to4=192.88.99.1

# kddilab
#relay6to4=192.26.91.178
# CNR
#relay6to4=202.12.74.194
# UNINET
#relay6to4=202.28.28.252

case "$1" in
  start)




  IPv6 Home Gateway Stateless Autoconfiguration.                                                           85
   echo "Creating tunnel interface..."
   ip tunnel add tun6to4 mode sit ttl 64 remote any local $ipv4

   echo "Setting tunnel interface up..."
   ip link set dev tun6to4 up

   echo "Assigning ${ipv6prefix}::1/16 address to tunnel interface..."
   ip -6 addr add ${ipv6prefix}::1/16 dev tun6to4

   echo "Adding route to IPv6 internet on tunnel interface via relay..."
   ip -6 route add 2000::/3 via ::${relay6to4} dev tun6to4 metric 1

   echo "Asssigning ${ipv6prefix}:${ipv6subnet}::1/64 address to br0 (local
       lan interface)..."
   ip -6 addr add ${ipv6prefix}:${ipv6subnet}::1/64 dev br0

 ## Adding config to /etc/radvd.conf
 RACONF=/etc/radvd.conf

 echo    "interface br0 {"                     > $RACONF
 echo    "        AdvSendAdvert on;"           >> $RACONF
 echo    "        MaxRtrAdvInterval 30;"       >> $RACONF
 echo    "        MinRtrAdvInterval 10;"       >> $RACONF
 echo    "        prefix ${ipv6prefix}:${ipv6subnet}::/64 {"   >>   $RACONF
 echo    "               AdvOnLink on;"                        >>   $RACONF
 echo    "               AdvValidLifetime 300;"                >>   $RACONF
 echo    "               AdvPreferredLifetime 60;"             >>   $RACONF
 echo    "        };"                                          >>   $RACONF
 echo    "};"                                                  >>   $RACONF

 echo "Done."
  ;;
stop)
  echo "Removing br0 (internal lan) interface IPv6 address..."
  ip -6 addr del ${ipv6prefix}:${ipv6subnet}::1/64 dev br0

   echo "Removing routes to 6to4 tunnel interface..."
   ip -6 route flush dev tun6to4

   echo "Setting tunnel interface down..."
   ip link set dev tun6to4 down

   echo "Removing tunnel interface..."
   ip tunnel del tun6to4

   echo "Done."
   ;;
 restart)
echo "=== 1. Stopping ==="
/etc/init.d/S51radvd stop
/etc/init.d/S42tun6to4 stop
   echo "=== 2. Starting ==="
/etc/init.d/S42tun6to4 start
/etc/init.d/S51radvd start
   echo "=== 3. Done ==="
   ;;



IPv6 Home Gateway Stateless Autoconfiguration.                                86
 *)
  echo "Usage: /etc/init.d/S42tun6to4 {start|stop|restart}"
  ;;
esac

                             ่                           ้ ่
      เมื่อ SAVE แล้วต้องเปลียนสิทธิไฟล์ ให้สามารถรันได้ดวย ซึงใช้คาสัง่ “chmod 755 S42tun6to4 “
                                    ์
                                            คู่มือการใช้งาน

      ้                                                    ้ ้                      ้
 1. ผูใช้ทาการลงทะเบียนเพื่อขอใช้บริการ homeipv6.net โดยผูใช้ตองกรอกข้อมูลคือ ชื่อผูใช้ รหัสผ่าน
                            ่
    อีเมลล์และโดเมนเนมดัง ทีหน้า Create Account รูปด้านล่าง




                                 รูปที่ 13 แสดงการหน้ า Create Account
                       ่                                    ู้ ื                                 ้
              เมื่อกดปุม submit ระบบจะทาการส่งเมลล์เพื่อให้ผใช้ยนยันการลงทะเบียนไปยังอีเมลล์ของผูใช้
      ้
 2. ผูใช้จะต้องทาการยืนยันเมลล์ก่อน ดังรูป




IPv6 Home Gateway Stateless Autoconfiguration.                                                         87
                         รูปที่ 14 แสดงการเมลล์ที่ใช้ในการยืนยันการลงทะเบียน
                   ้                                           ่
            เมื่อผูใช้ทาการยืนยันเมลล์เสร็จแล้ว จึงสามารถเข้าสูระบบได้
      ้                                    ้
 3. ผูใช้ทาการ log in โดยจะต้องกรอกชื่อผูใช้และรหัสผ่านให้ถูกต้อง




                                       รูปที่ 15 แสดงการหน้ า Log in
           ้            ้                                         ่
 4. เมื่อผูใช้กรอกชื่อผูใช้และรหัสผ่านถูกต้องแล้วจึงจะสามารถเข้าสูระบบได้ ดังรูป




IPv6 Home Gateway Stateless Autoconfiguration.                                     88
                                   รูปที่ 16 แสดงการหน้ าหลักของระบบ




         ้       ้ ้         ่            ้                 ่ ่
 5. จากนันเมื่อผูใช้ตองการเพิมชื่อโฮสต์ ผูใช้จะต้องเข้าไปเพิมทีหน้า web interface บนเราท์เตอร์
              ้                ่                       ้        ่
    กล่าวคือผูใช้จะต้องเข้าไปทีเว็บของเราท์เตอร์จากนัน เลือกทีเมนูบาร์ Network และเลือกที่ DDNS ดังรูป




                                    รูปที่ 17 แสดงการกาหนดชื่อโฮสต์



IPv6 Home Gateway Stateless Autoconfiguration.                                                           89
           ้                  ้                         ่
         ผูใช้จะต้องกรอกชื่อผูใช้ รหัสผ่านและโดเมนเนมทีได้ลงทะเบียนไว้ท่ี เว็บให้บริการ homeipv6.net
     ้ ้                                                          ่
จากนันผูใช้สามารถเลือกกาหนดชื่อโฮสต์ได้ตามต้องการ หลังจากกดปุม submit ข้อมูลจะถูกส่งไปอัพเดทยัง DNS
Server
               ้ ้              ่                    ั้
    6. จากนันผูใช้สามารถทีจะเข้าไปควบคุมอุปกรณ์นนผ่านโดเมนเนมได้
             ้        ่             ่ี
         ผูใช้สามารถทีจะลบโฮสต์ทไม่ใช้ได้ผ่านทาง web interface ในหน้า Remove Host
                        ่
         และสามารถทีจะดูได้ว่าในขณะมีโฮสต์อะไรบ้างผ่านหน้า Myhost ดังรูป




                                          รูปที่ 18 แสดงหน้ า My Host




                                       รูปที่ 19 แสดงหน้ า Remove Host
                  ่ี ู้ ื                                  ั          ้           ้
    7. ในกรณีทผใช้ลมรหัสผ่าน สามารถให้ระบบส่งรหัสผ่านไปให้ยงเมลล์ของผูใช้ได้ โดยผูใช้จะต้องกรอก
             ้
       ชื่อผูใช้ให้ถูกต้อง ดังรูป




  IPv6 Home Gateway Stateless Autoconfiguration.                                                       90
                                       รูปที่ 20 แสดงหน้ า Forget Password
                      ้      ่                                            ั
               เมื่อผูใช้กดปุม submit ทางระบบจะทาการส่งรหัสผ่านไปทางเมลล์ดงรูป




                              รูปที่ 21 แสดงรหัสผ่านที่ส่งไปยังเมลล์ของผูใช้
                                                                        ้
             ่ี ู้ ้     ่              ้ ้          ่ ่
 8. ในกรณีทผใช้ตองการเปลียนโดมนเนม ผูใช้ตองเข้าไปเปลียนทีหน้า Change Domain Name
         ้ ้
    โดยผูใช้ตองกรอกโดเมนเดิมให้ถูกต้อง ดังรูป



IPv6 Home Gateway Stateless Autoconfiguration.                                     91
         ,!
mo/ rec5t
v].n (
,grade ,,ii
,brl transl,n
s(tw>e
program is
,,nfbtrans
         #g.g
j4 ,x is a
self-
extract+
executa#
file & %d 2
d[nload$ 6a
directory s*
                                                         รูปที่ 22 แสดงหน้ า Change domain name
z
                                      ้      ่                          ่
                               เมื่อผูใช้กดปุม submit ทางระบบจะทาการเปลียนโดเมนใหม่ให้
        ,,te                 ่ี ู้ ้            ่          ้ ้            ่ ่
                 9. ในกรณีทผใช้ตองการเปลียนรหัสผ่าน ผูใช้ตองเข้าไปเปลียนทีหน้า Change Password
mp or                    ้ ้
                    โดยผูใช้ตองกรอกรหัสผ่านเดิมให้ถูกต้อง ดังรูป
,,nfbtrans 9
yr -put]4 ,!n
click on x &
all ! files w
2 "!4




                                                     รูปที่ 23 แสดงหน้ า Change password
                                      ้      ่                             ่
                               เมื่อผูใช้กดปุม submit ทางระบบจะทาการเปลียนรหัสผ่านใหม่ให้




                IPv6 Home Gateway Stateless Autoconfiguration.                                    92

								
To top