หากต้องการใช้ IPv6 Apache เป็นอีกหนึ่งบริการที่เราต้องไปตั้งค่าให้ถูกต้อง สำหรับค่า config ที่เกี่ยวข้องกับ IPv6 มีดังนี้

  • Listen
  • VirtualHost

มาดูวิธีการกันครับ ค่า Listen จะเป็นการกำหนดว่าเราจะให้ Apache Listen จาก IP Address อะไร port อะไร เช่น Listen 0.0.0.0:80 หรือ Listen 80 ก็คือ Listen IP Address อะไรก็ได้ port ที่ใช้คือ 80 แต่ถ้าต้องการตั้งค่าสำหรับ IPv6 ต้องตั้งค่าอย่างนี้ครับ

Listen [::]:80
Listen 0.0.0.0:80

สำหรับในส่วน VirtualHost ก็ง่ายๆ ใส่ IPAddres ลงใน [] เท่านี้ก็เรียบร้อย

<VirtualHost [2001:db8::a00:20ff:fea7:ccea]>
ServerAdmin webmaster@host.example.com
DocumentRoot /www/docs/host.example.com
ServerName host.example.com
ErrorLog logs/host.example.com-error_log
TransferLog logs/host.example.com-access_log
</VirtualHost>

ค้างเรื่อง IPv6 ไว้เมื่อครั้งที่แล้ว ว่าจะเขียน How-to เกี่ยวกับ IPv6 ที่เราจะต้องเรียนรู้กันใหม่อีกนิดหน่อย เริ่มต้นจากการตั้งค่า Network กันก่อน วิธีการเพิ่ม IPv6 ลงใน /etc/network/interfaces ก็ง่ายมาก เหมือนเราเพิ่มลงใน IPv4 นั่นแหละครับ ถ้ามี IPv4 ตั้งค่าอยู่ แค่เอาไปต่อท้ายเท่านั้นก็เรียบร้อยแล้ว เล่น

#IPV6 configuration
iface eth0 inet6 static
pre-up modprobe ipv6
address 2607:f0d0:2001:0000:0000:0000:0000:0010
netmask 64
gateway 2607:f0d0:2001:0000:0000:0000:0000:0001

อธิบายกันหน่อย รายบรรทัดนะครับ

  1. iface eth0 inet6 static ก็คือ ข้าพเจ้าจะใช้ IPv6 ที่ interface eth0 แบบ static คือกำหนด IP Address เอง (ทางการไปมั๊ย)
  2. บอกระบบให้ load module IPv6 มาด้วย (ถ้าแน่ใจว่า load module IPv6 มาแล้วบรรทัดนี้ไม่ต้องมีก็ได้)
  3. ค่า IP Address ของเราที่ได้มา
  4. ค่า netmask สำหรับ IPv6 subnet
  5. ค่า gateway ของ IPv6 subnet

เมื่อตั้งค่าให้สั่ง restart network service ดังนี้

/etc/init.d/networking restart

วิธีการทดสอบ ก็ง่ายมากใช้คำสั่ง ip ดังนี้

ip -6 address show eth0

วิธีดูค่า default gateway ใช้คำสั่ง

ip -6 route show dev eth0

ต้องการกำหนดค่า default gateway ใช้คำสั่ง

ip -6 route add default via 2607:f0d0:2001::1

นอกจากจะจำเลข IP กันไม่ได้แล้ว หากต้องการ browse เว็บไซต์ด้วย IPv6 จะทำยังไง โอ้ววววว ปวดสมอง เนื่องจาก IPv6 รูปแบบของ IP Address มีเครื่องหมาย : คั่นอยู่ทำให้ browser เข้าใจผิดว่าค่าหลังจาก : นั้นคือ port ก็มีคนคิดวิธีการแก้ปัญหาเหล่านี้มาแล้วครับ อ้างอิงจาก STD66 (RFC3986 – 3.2.2) และ RFC2732 เขาบอกว่า

  1. Literal IPv6 Address Format in URL’s Syntax

    To use a literal IPv6 address in a URL, the literal address should be
    enclosed in “[” and “]” characters. For example the following
    literal IPv6 addresses:

    FEDC:BA98:7654:3210:FEDC:BA98:7654:3210
    1080:0:0:0:8:800:200C:4171
    3ffe:2a00:100:7031::1
    1080::8:800:200C:417A
    ::192.9.5.5
    ::FFFF:129.144.52.38
    2010:836B:4179::836B:4179

    would be represented as in the following example URLs:

    http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html
    http://[1080:0:0:0:8:800:200C:417A]/index.html
    http://[3ffe:2a00:100:7031::1]
    http://[1080::8:800:200C:417A]/foo
    http://[::192.9.5.5]/ipng
    http://[::FFFF:129.144.52.38]:80/index.html
    http://[2010:836B:4179::836B:4179]

พอเข้าใจมั๊ยครับ นั่นก็คือถ้าจะ browse เว็บโดยใช้ web browser ก็ใช้เครื่องหมาย [ ] คร่อมระหว่าง IP Address ที่เราจะใช้ ถ้าต้องการระบุ port ก็ใส่เครื่องหมาย : ต่อเข้าไปอีกแล้วตามด้วยหมายเลข port ที่เหลือเหมือนเดิมครับ :)

เก็บตกเรื่อง Internet Protocal version 6 หรือ IPv6 กันหน่อย หลังจากผ่านมาได้ 2 วัน ซึ่งเป็นวันประกาศใช้ IPv6 ทั้งโลกไปเมื่อวันที่ 6 มิถุนายน 2555 ที่ผ่านมา เว็บไซต์ Thai Open Source ก็ได้ร่วมฉลอง IPv6 กับชาวโลกด้วยเช่นกัน ซึ่งเราได้ IPv6 เป็นที่เรียบร้อยแล้ว สามารถทดสอบดูได้ครับ สำหรับการเปลี่ยนไปเป็น IPv6 นั้นมีหลายอย่างที่เราต้องทำความเข้าใจกันใหม่ทั้งในเรื่องเครื่องมือที่เราต้องใช้ร่วมกับ IPv6 เช่น DNS, DHCP, ICMP, Web Server เป็นต้น

สำหรับอาทิตย์นี้เราจะมาเล่นกับ IPv6 กันให้มากขึ้น ทั้งในเรื่องการคอนฟิกระบบปฏบัติการให้ทำงานร่วมกับ IPv6 การตั้งค่า DHCPv6 การตั้งค่า Domain Name Server ตลอดจนการตั้งค่า Web Server ให้ทำ
านร่วมกับ IPv6 ได้ คุณสามารถติดตามบทความเหล่านี้ได้ทางเว็บไซต์ Thai Open Source ในหมวดบทความและสอนการใช้งานครับ