# IP Masquerade

# การนำเน็ตเวอร์กขององค์กรขึ้นสู่ระบบอินเทอร์เน็ต

อธิบายคำศัพท์ตามพจนานุกรม อังกฤษ-ไทย ของ สอ เสถบุตร
masquerade (มาซ-เคอะเรด-) n. a. การเต้นรำสวมหน้ากาก, การเล่นตบตา, การหลอกลวง, ปลอมแปลง S. deception, mask
จากบทความที่แล้วเมื่อคุณสามารถเชื่อมต่อลีนุกซ์โดยใช้วิธี PPP ได้แล้ว ยังมีข้อจำกัดอยู่ประการหนึ่งสำหรับการเชื่อมต่อกับอินเทอร์เน็ต นั่นคือคอมพิวเตอร์ของคุณที่เป็นลีนุกซ์นั้นสามารถเข้าสู่อินเทอร์เน็ตได้เพียงเครื่องเดียวเท่านั้น ส่วนคอมพิวเตอร์เครื่องอื่นๆที่อยู่บนเครือข่ายเดียวกันและใช้ลีนุกซ์ของคุณเป็นเกตเวย์ หรือทางผ่านสู่อินเทอร์เน็ตนั้นไม่สามารถจะเข้าใช้อินเทอร์เน็ตได้ ปัญหาแบบนี้จะไม่เกิดขึ้นกับการต่ออินเทอร์เน็ตแบบ slip จำลอง หรือโปรแกรมที่เป็นพวกอีมูเล็ต slip เช่นพวก slirp แต่จะเป็นปัญหาอย่างมากสำหรับการเชื่อมต่อในแบบ PPP โดยเฉพาะ true PPP ทั้งที่เป็น dynamic และ static
ในปัจจุบันเริ่มมีบริษัทผู้ให้บริการเชื่อมต่ออินเทอร์เน็ต (ISP) หลายๆแห่ง ที่เริ่มเปลี่ยนมาให้บริการการเชื่อมต่อแบบ true PPP ขึ้นเรื่อยๆ ซึ่งจะทำให้คุณไม่สามารถใช้ลีนุกซ์เป็นเกตเวย์แบบเดิมได้ ทั้งนี้เนื่องจากการให้บริการ ISP ในแบบบุคคลทั่วไปนั้นจะจำกัดหมายเลข IP ให้เพียงหมายเลขเดียวเท่านั้น ซึ่งเครื่องที่ได้รับก็คือเครื่องลีนุกซ์ของคุณที่ต่อเข้าไปกับโฮสต์ของ ISP นั่นเอง เครื่องคอมพิวเตอร์เครื่องอื่นในเครือข่ายของคุณถึงแม้ว่าจะมีหมายเลข IP ที่คุณกำหนดเอาเอง แต่ก็ไม่ได้เป็นที่รับรู้ของโฮสต์ของ ISP ทั้งนี้เนื่องจากเป็น IP ที่ไม่ได้ถูกจดทะเบียนไว้อย่างเป็นทางการ
แต่ก็ไม่โชคร้ายไปเสียทีเดียว สำหรับองค์กรที่มีงบประมาณจำกัดจะสามารถใช้คุณสมบัติ IP Masquerade ของลีนุกซ์เข้ามาแก้ปัญหาเรื่องนี้ได้ โดยจะทำให้เครื่องคอมพิวเตอร์ลูกข่ายอื่นๆของคุณทำการ "ขี่" บนลีนุกซ์เกตเวย์ ซึ่งเสมือนว่าได้ใช้ IP เดียวกันกับลีนุกซ์เกตเวย์ของคุณ
เครื่องคอมพิวเตอร์ลูกข่ายในเน็ตเวอร์กที่จะสามารถใช้งานอินเทอร์เน็ตโดยใช้ลีนุกซ์เป็นเกตเวย์ที่มีคุณสมบัติของ IP Masquerade นี้เป็นเครื่องคอมพิวเตอร์ได้ทุกแบบตั้งแต่ Unix, Windows 95, Windows NT, Windows for Workgroup (ที่มีแพ็คเกจ TCP/IP ), OS/2, Macintosh System's OS ที่ใช้ Mac TCP, Mac Open Transport, DOS ที่รัน NCSA Telnet package, VAX, ลีนุกซ์บน Alpha, และแม้กระทั่ง Amiga ที่มี AmiTCP หรือ AS225-stack
ข้อสังเกตุ : ในขณะนี้ IP Masquerade ยังคงอยู่ในช่วงการทดลอง แอพพลิเคชั่นบางอย่างที่สามารถใช้งานได้จากการต่ออินเทอร์เน็ตโดยตรงกับ ISP อาจจะยังใช้ไม่ได้กับ IP Masquerade แต่อย่างไรก็ดีโปรโตคอลที่ได้ทำการทดสอบบน IP Masquerade แล้ว ได้แก่ http, smtp, telnet ส่วน irc, ftp และ realtime audio จะต้องมีการติดตั้งโมดูลบางตัวเพิ่มเติม

### การทำให้ลีนุกซ์มีความสามารถของ IP Masquerade

สิ่งที่จะต้องใช้ในการทำ IP Masquerade

1. Kernel ของลีนุกซ์ตั้งแต่เวอร์ชั่น 2.0.0 ขึ้นไป และต้องสนับสนุนการทำโมดูลเคอร์เนลด้วย
2. ระบบเครือข่ายของคุณเองที่ใช้โปรโตคอล TCP/IP
3. ทำการเชื่อมต่อลีนุกซ์ของคุณเข้ากับ ISP เรียบร้อยแล้วโดยผ่าน PPP
4. การกำหนดเรื่องไฟร์วอลล์ ซึ่งจะต้องใช้โปรแกรม Ipfwadm ตั้งแต่เวอร์ชั่น 2.3 ขึ้นไป

### การคอมไพล์เคอร์เนล

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

- make xconfig สำหรับการกำหนดโดยใช้ GUI บน X window
- make menuconfig สำหรับการกำหนดโดยใช้รูปแบบ text base menu
- make config สำหรับการกำหนดโดยใช้การถาม-ตอบแบบธรรมดา
- แก้ไขไฟล์ /usr/src/linux/.config โดยตรง

ในการกำหนดคุณลักษณ์ของเคอร์เนล ไม่ว่าจะโดยวิธีใดก็ตามสำหรับเรื่องของ IP Masquerade แล้ว คุณจะต้องทำการกำหนดค่าให้กับเคอร์เนลโดยทำการกำหนดให้ตัวเลือกเป็น "Yes" สำหรับหัวข้อต่อไปนี้

- CONFIG_EXPERIMENTAL
- CONFIG_MODULES
- CONFIG_NET
- CONFIG_FIREWALL
- CONFIG_INET
- CONFIG_IP_FORWARD
- CONFIG_IP_FIREWALL
- CONFIG_IP_MASQUERADE
- CONFIG_IP_ALWAYS_DEFRAG
- CONFIG_DUMMY

เมื่อกำหนดเสร็จเรียบร้อยแล้ว ให้ทำการคอมไพล์เคอร์เนลโดยใช้คำสั่ง

    $ make zImage

และคอมไพล์โมดูล รวมทั้งสั่งให้โปรแกรมทำการติดตั้งโมดูลโดยใช้คำสั่ง

    $ make modules; make modules_install

อย่าลืมนำเอาเคอร์เนลไปใส่ไว้ในไดเรกทอรีที่ได้กำหนดตอนทำการบูตเครื่อง ให้ดูรายละเอียดในไฟล์ /etc/lilo.conf ของเครื่องคุณ (โดยปกติเคอร์เนล 2.0.0 ขึ้นไปจะถูกใส่ในไดเรกทอรี /boot) และให้ทำการสั่ง lilo ด้วยเพื่อโปรแกรมจะได้สามารถจดจำเคอร์เนล ใหม่ของเราในตอนบูตได้
จากนั้นคุณจะต้องเพิ่มคำสั่งสำหรับให้ทำการโหลดโมดูลที่เกี่ยวกับ IP Masquerade โดยอัตโนมัติในตอนเริ่มบูตเครื่อง โดยจะต้องไปทำการเพิ่มคำสั่งต่อไปนี้ในไฟล์ /etc/rc.d/rc.local (หรือไฟล์ใดก็ได้ที่ถูกเรียกใช้ตอนบูตเครื่อง)

              .
              .
              .
      /sbin/depmod -a
      /sbin/modprobe ip_masq_ftp
      /sbin/modprobe ip_masq_raudio
      /sbin/modprobe ip_masq_irc
      (หรืออาจจะเป็นโมดูลอื่นๆเช่น ip_masq_cuseeme, ip_masq_vdolive
       หากคุณมี patch ของโมดูลเหล่านี้อยู่)
              .
              .
              .

หรือคุณอาจจะบังคับให้เคอร์เนลทำการโหลดโมดูลข้างต้นลงไปภายหลังได้ โดยการใช้คำสั่ง "insmod" กับโมดูลแต่ละตัวตามตัวอย่างดังต่อไปนี้

    $ insmod ip_masq_ftp
    $ insmod ip_masq_raudio
    $ insmod ip_masq_irc

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

### การกำหนดค่าของ IP ให้กับเครื่องในเน็ตเวอร์ก

ตามข้อเสนอ RFC ที่ 1579 หน่วยงานที่อนุมัติหมายเลข IP ประจำคอมพิวเตอร์ IANA (Internet Assigned Numbers Authority) ได้มีการสำรองกลุ่มหมายเลข IP สำหรับคอมพิวเตอร์ที่ไม่ได้ต่อกับอินเทอร์เน็ตหรือเน็ตเวอร์กที่ใช้งานเป็นลักษณะส่วนตัว โดยจะมีกลุ่มหมายเลข IP อยู่ 3 กลุ่มดังต่อไปนี้

- หมายเลข 10.0.0.0 - 10.255.255.255 เน็ตเวอร์กขนาด 24 bit ใช้เป็นเน็ตเวอร์กคลาส A หนึ่งกลุ่ม
- หมายเลข 172.16.0.0 - 172.31.255.255 เน็ตเวอร์กขนาด 20 bit ใช้เป็นเน็ตเวอร์กคลาส B จำนวน 16 กลุ่ม
- หมายเลข 192.168.0.0 - 192.168.255.255 เน็ตเวอร์กขนาด 16 bit ใช้เป็นเน็ตเวอร์กคลาส C จำนวน 255 กลุ่ม

หากคุณเลือกใช้เน็ตเวอร์กคลาส C คุณจะต้องทำการกำหนดค่าหมายเลข IP ให้กับเครื่องคอมพิวเตอร์ในเน็ตเวอร์กของคุณเป็น 192.168.1.1, 192.168.1.2, 192.168.1.3, ... โดยปกติแล้วเครื่องที่ใช้เป็นทางผ่านหรือเกตเวย์ (gateway) ไปสู่เน็ตเวอร์กอื่นจะกำหนดให้ IP เป็น 192.168.1.1 ซึ่งลีนุกซ์จะถูกใช้สำหรับทำหน้าที่เป็นเกตเวย์นี้ ส่วนหมายเลข IP 192.168.1.0 และ 192.168.1.255 จะถูกสำรองไว้ โดยหมายเลขแรกจะถูกใช้เป็น หมายเลขประจำของเน็ตเวอร์กและหมายเลขหลังจะถูกใช้เป็นหมายเลขสำหรับทำการบรอดคาสท์ (Broadcast) ดังนั้นจึงไม่ควรใช้หมายเลขทั้งสองนี้กำหนดให้กับเครื่องคอมพิวเตอร์อื่นของคุณ

รูปแสดงลีนุกซ์ที่ใช้ IP Masquerade

### การกำหนดเครื่องคอมพิวเตอร์อื่นๆให้สามารถใช้อินเทอร์เน็ตผ่านเกตเวย์

สำหรับคอมพิวเตอร์เครื่องอื่นในเน็ตเวอร์ก คุณจะต้องกำหนดให้หมายเลข IP ของเกตเวย์เป็นหมายเลข IP ของเครื่องลีนุกซ์ (ในที่นี้เป็น 192.168.1.1) หมายเลข DNS หรือ Domain Name Service ให้กำหนดตามที่ ISP ของคุณแจ้งมาให้ (กำหนดตามเครื่องลีนุกซ์ก็ได้) ส่วนหมายเลข IP ประจำตัวของเครื่องคอมพิวเตอร์ก็ให้เลือกจากช่วงที่คลอบคลุมเน็ตเวอร์กของคุณ (ตามตัวอย่างจะเลือกได้ตั้งแต่ 192.168.1.2 จนถึง 192.168.1.254)
สำหรับเครื่องที่เป็น Win95

1. คลิกที่ปุ่ม Start
2. เลือก Setting / Control Panel / Network
3. ถ้าคุณยังไม่มีโปรโตคอลแบบ TCP/IP ให้ทำการติดตั้งจากแผ่นติดตั้งต้นฉบับ
4. ให้คลิกเมาส์ไปไฮไลต์ที่โปรโตคอล TCP/IP แล้วคลิกที่ปุ่ม Properties (หรือจะดับเบิลคลิกก็ได้)
5. ในส่วนของ IP Address ให้ทำการกำหนดค่าของหมายเลข IP ประจำเครื่อง (เลือกได้ตั้งแต่ 192.168.1.2 - 192.168.1.254) พร้อมกับกำหนดค่า Netmask เป็น 255.255.255.0
6. ในส่วนของเกตเวย์ ให้เลือก 192.168.1.1 (เครื่องลีนุกซ์) เป็นเกตเวย์ของระบบ
7. ในส่วนของ DNS Configuration ให้ใส่หมายเลข IP ของ DNS ที่ทาง ISP ของคุณได้กำหนดมาให้
8. หากคุณต้องการจะใช้งานติดต่อกับเครื่องคอมพิวเตอร์ที่อยู่ในเน็ตเวอร์กของคุณเอง คุณจะต้องกำหนดรายละเอียดของ IP ไว้ในไฟล์ HOSTS (ดูตัวอย่างจาก HOSTS.SAM)

สำหรับเครื่องที่เป็น Windows for workgroup 3.11

1. ถ้าคุณยังไม่ได้ติดตั้งส่วนของไดรเวอร์ของเน็ตเวอร์กการ์ด ให้ทำการติดตั้งให้เสร็จเรียบร้อยเสียก่อน
2. ติดตั้งแพ็คเก็จ TCP/IP 32bit (ดาวน์โหลดได้จากเวปไซต์ของไมโครซอฟท์)
3. ใน Main / Windows setup / Network Setup ให้คลิกเมาส์ไปที่ ไดรเวอร์
4. คลิกเมาส์ไปไฮไลต์ที่ 'Microsoft TCP/IP-32 3.11b' ในส่วนของ 'Network Driver Section' จากนั้นคลิกที่ปุ่ม 'Setup'
5. กำหนดหมายเลข IP ประจำเครื่องโดยเลือกได้ตั้งแต่ 192.168.1.2 - 192.168.1.254 กำหนด subnet mask ให้เป็น 255.255.255.0 กำหนด default gateway เป็น 192.168.1.1
6. อย่าทำการเปิดคุณลักษณ์ 'Automatic DHCP Configuration' ถ้าคุณยังไม่ได้อยู่ในส่วนของ domain ของ Window NT และคุณยังไม่ทราบความหมายดังกล่าว (อย่างไรก็ตามลีนุกซ์สามารถกำหนดให้มีความสามารถ DHCP ได้ ดังจะได้อธิบายในโอกาสถัดไป)
7. คลิกส่วนของ DNS และใส่ข้อมูลดังที่ได้แสดงไว้ข้างต้น
8. คลิกส่วนของ Advanced และเช็คช่อง 'Enable DNS for Windows Name Resolution' และ 'Enable LMHOSTS lookup' สำหรับการติดต่อกับคอมพิวเตอร์ที่อยู่ในเน็ตเวอร์กของคุณเอง
9. คลิกปุ่ม OK ในทุกหน้าต่างและให้เริ่มใช้งาน Windows ใหม่
10. ทดลองว่าเครื่องของคุณใช้งานได้ โดยลองทำการใช้คำสั่ง 'ping 192.168.1.1' เพื่อทดลองติดต่อกับเครื่องลีนุกซ์ (ยังไม่ได้เป็นการต่อออกไปยังอินเทอร์เน็ต)

สำหรับเครื่องที่เป็น UNIX (ในที่นี้จะอ้างอิงถึง RedHat Linux)

1. ถ้าเครื่องของคุณยังไม่ได้ทำการติดตั้งไดรเวอร์ของเน็ตเวอร์กการ์ดหรือคอมไพล์เคอร์เนลให้ทำการสนับสนุนเน็ตเวอร์กการ์ด ให้ทำงานในส่วนนี้ก่อน
2. ถ้ายังไม่ได้ติดตั้งโปรแกรมส่วนที่เกี่ยวข้องกับ TCP/IP ให้ทำการติดตั้งเสียก่อน
3. กำหนดค่าดังต่อไปนี้
   - IPADDR เลือกจาก 192.168.1.2 จนถึง 192.168.1.254
   - NETMASK 255.255.255.0
   - NETWORK 192.168.1.0
   - BROADCAST 192.168.1.255
   - GATEWAY 192.168.1.1
   ค่าดังกล่าวจะต้องทำการแก้ไขโดยอ้างอิงคู่มือตามระบบนั้นๆ ไม่ว่าจะเป็น SunOS, FreeBSD, BSDi, Slackware Linux, และอื่นๆ โดยแต่ละระบบจะทำการกำหนดค่าด้วยวิธีการที่ต่างกัน สำหรับ RedHat Linux 3.0+ สามารถกำหนดได้ที่ไฟล์ /etc/sysconfig/network-scripts/ifcfg-eth0
4. เพิ่มหมายเลข IP ของ Domain Name Service (DNS) และลำดับการค้นหาตามที่ทาง ISP ของคุณกำหนดมาให้ ในไฟล์ /etc/resolv.conf
5. คุณอาจต้องแก้ไขไฟล์ /etc/network ทั้งนี้ขึ้นอยู่กับระบบที่คุณใช้งานอยู่
6. ให้ทำการเริ่มบริการของเดมอนโพรเซสที่เกี่ยวข้องใหม่ หรือไม่ก็เริ่มระบบทั้งหมดใหม่
7. ทดลองใช้คำสั่ง ping กับเครื่องลีนุกซ์ที่เป็นเกตเวย์เพื่อทดสอบระบบ

สำหรับเครื่องที่เป็นระบบดอสที่ใช้งาน NCSA telnet
NCSA telnet เป็นโปรแกรมที่จะทำให้คุณสามารถติดต่อกับยูนิกซ์ในระบบต่างๆได้ โดยจะ มีโปรแกรม telnet, ftp, lpr, rsh และอื่นๆรวมอยู่ในแพ็คเกจ ซึ่งทาง NCSA เป็นผู้จัดทำขึ้นมา คุณสามารถจะดาวน์โหลดจากอินเทอร์เน็ตจากไซต์ของ NCSA ได้หรือไม่คุณก็อาจจะซื้อแผ่นซีดีที่ทำการรวบรวม shareware เช่นแผ่นของ Walnut Creek หรือ Infomagic

1. ถ้าคุณยังไม่ได้ติดตั้งเน็ตเวอร์กการ์ด ให้ทำการติดตั้งเสียก่อน
2. ให้ทำการโหลดแพ็คเก็ตไดร์เวอร์ที่ใช้กับเน็ตเวอร์กการ์ดของคุณ ดังตัวอย่าง
   สำหรับการ์ด NE2000 ที่กำหนด IRQ เป็น 10 และ H/W address เป็น 0x300 ใช้คำสั่ง

         	nwpd 0x60 10 0x300

   สำหรับการ์ด 3 COM รุ่น 3c509 ที่ H/W address เป็น 0x300 ใช้คำสั่ง

               3c509 0x60 0x300

3. สร้างไดเรกทอรีและทำการคลี่แพ็คเก็จ NCSA telnet ที่คุณได้มา ลงไปในไดเรกทอรีนั้น โดยใช้คำสั่ง

       	pkunzip tel2308b.zip

4. แก้ไขไฟล์ config.tel
5. กำหนด myip เป็นค่า IP ตั้งแต่ 192.168.1.2 ถึง 192.168.1.254 และ netmask เป็น 255.255.255.0
6. ในตัวอย่างนี้กำหนด hardware=packet interrupt=10 และ ioaddr=60
7. คุณจำเป็นจะต้องมีคอมพิวเตอร์ที่กำหนดไว้เป็นเกตเวย์อย่างน้อยหนึ่งเครื่อง ในที่นี้เป็นเครื่องลีนุกซ์ และกำหนดค่าดังต่อไปนี้

              name=default
              host=yourlinuxhostname
              hostip=192.168.1.1
              gateway=1

8. กำหนดค่าของ domain name service ตามรูปแบบดังนี้ (ให้ใช้ค่าจาก ISP ของคุณ)

              name=dns.domain.com ; hostip=123.123.123.123; nameserver=1

9. บันทึกข้อมูลที่แก้ไขทั้งหมดลงไปในไฟล์ config.tel
10. ทดลองใช้คำสั่ง telnet ไปที่เครื่องลีนุกซ์เพื่อทดสอบการทำงานทั้งหมด

สำหรับเครื่องแมคอินทอชที่ใช้ MacTCP

1. ถ้าคุณยังไม่ได้ติดตั้งไดรเวอร์สำหรับเนตเวอร์กการ์ดของคุณ ให้ทำการติดตั้งเสียก่อน
2. เปิด control panel ของ MacTCP เลือก Network driver ที่ต้องการ โดยให้เลือก Ethernet ไม่ใช่ Ethertalk แล้วคลิกบนปุ่ม 'More...'
3. ใต้ส่วน 'Obtain Address:' ให้คลิกที่ 'Manually'
4. ใต้ 'IP Address:' เลือก class C จาก popup menu ส่วนอื่นๆไม่ต้องสนใจ
5. ให้เติมหมายเลข IP ของ DNS ใต้ 'Domain Name Server Information:'
6. ใต้ 'Gateway' ให้ใส่ '192.168.1.1'
7. คลิกที่ปุ่ม 'OK' เพื่อบันทึกข้อมูลทั้งหมด และให้ใส่หมายเลข IP ประจำเครื่อง โดยเลือกจาก 192.168.1.2 จนถึง 192.168.1.254 ในช่อง 'IP Address:'
8. ให้ปิด control panel ของ MacTCP และเริ่มระบบใหม่
9. ลองทดสอบโดยทำการ ping ไปยังเครื่องลีนุกซ์ อาจจะทำการทดสอบได้โดยใช้โปรแกรม MacTCP watcher ซึ่งเป็นโปรแกรมแบบ freeware ให้กดไปที่ปุ่ม 'ping' และใส่หมายเลขของเครื่องที่ต้องการ (ในที่นี้เป็น 192.168.1.1) ในช่องไดอะลอกที่ปรากฏขึ้นมา
10. ถ้าคุณต้องการติดต่อกับเครื่องที่อยู่ภายในเน็ตเวอร์กของคุณเอง ให้ทำการแก้ไขไฟล์ Hosts ใน System Folder (ปกติจะมีไฟล์นี้มาให้อยู่แล้วพร้อมทั้งตัวอย่างที่ถูกคอมเมนท์อยู่)

สำหรับเครื่องแมคอินทอชที่ใช้ Open Transport

1. ถ้าคุณยังไม่ได้ติดตั้งไดรเวอร์สำหรับเน็ตเวอร์กการ์ดของคุณ ให้ทำการติดตั้งไดรเวอร์เสียก่อน
2. ให้เปิด Control Panel ของ TCP/IP และให้เลือก 'User Mode ...' จากเมนู Edit ให้กำหนด user mode เป็น 'Advanced' แล้วกดปุ่ม 'OK'
3. เลือก 'Configurations...' จากเมนู File เลือก 'Default' แล้วให้คลิกปุ่ม 'Duplicate...' ให้ตั้งชื่อว่า 'IP Masq' หรือชื่อที่อื่นๆที่ต้องการแล้วให้คลิกที่ปุ่ม 'OK' และปุ่ม 'Make Active'
4. ให้เลือก 'Eternet' ในส่วนของ 'Connect via:' ที่ปรากฏขึ้นมา
5. เลือกตัวเลือกจาก 'Configure:' ในที่นี่เลือก 'Manually'
6. ใส่หมายเลข IP (เลือกตั้งแต่ 192.168.1.2 จนถึง 192.168.1.254) ในช่อง 'IP Address:'
7. ในช่อง 'Subnet mask:' ให้ใส่หมายเลข 255.255.255.0
8. ในช่อง 'Router address:' ให้ใส่หมายเลขของเครื่องลีนุกซ์ 192.168.1.1
9. ให้ใส่หมายเลข ของ DNS ที่ทาง ISP แจ้งมาให้ในช่องของ 'Name server addr.:'
10. ให้ใส่ชื่อของ Internet Domain ของคุณ (เช่น 'microsoft.com') ในช่อง 'Starting domain name' ภายใต้ 'Implicit Search Path:'

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

1. ถ้าคุณยังไม่ได้ติดตั้งไดรเวอร์ที่ใช้กับการ์ดของคุณ ให้ทำการติดตั้งเสียก่อน
2. ติดตั้งโปรแกรม tcpip16.exe (ดาวน์โหลดได้จากไซต์ของโนเวลล์ ftp://ftp.novell.com/pub/updates/unixconn/lwp5>
3. แก้ไขไฟล์ c:\nwclient\startnet.bat ดังต่อไปนี้

           SET NWLANGUAGE=ENGLISH
           LH LSL.COM
           LH KTC2000.COM
           LH IPXODI.COM
           LH tcpip
           LH VLM.EXE
           F:

4. แก้ไขไฟล์ c:\nwclient\net.cfg ดังต่อไปนี้

            Link Driver KTC2000
                    Protocol IPX 0 ETHERNET_802.3
                    Frame ETHERNET_802.3
                    Frame Ethernet_II
                    FRAME Ethernet_802.2

            NetWare DOS Requester
                       FIRST NETWORK DRIVE = F
                       USE DEFAULTS = OFF
                       VLM = CONN.VLM
                       VLM = IPXNCP.VLM
                       VLM = TRAN.VLM
                       VLM = SECURITY.VLM
                       VLM = NDS.VLM
                       VLM = BIND.VLM
                       VLM = NWP.VLM
                       VLM = FIO.VLM
                       VLM = GENERAL.VLM
                       VLM = REDIR.VLM
                       VLM = PRINT.VLM
                       VLM = NETX.VLM

            Link Support
                    Buffers 8 1500
                    MemPool 4096

            Protocol TCPIP
                    PATH SCRIPT     C:\NET\SCRIPT
                    PATH PROFILE    C:\NET\PROFILE
                    PATH LWP_CFG    C:\NET\HSTACC
                    PATH TCP_CFG    C:\NET\TCP
                    ip_address      xxx.xxx.xxx.xxx
                    ip_router       xxx.xxx.xxx.xxx

5. แก้ไขไฟล์ c:\bin\resolv.cfg โดยให้ใส่หมายเลข DNS ที่ได้จากทาง ISP ของคุณตามตัวอย่างต่อไปนี้

            SEARCH DNS HOSTS SEQUENTIAL
            NAMESERVER xxx.xxx.xxx.xxx
            NAMESERVER xxx.xxx.xxx.xxx

### การกำหนดหลักเกณฑ์ของ IP forwarding

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

           ipfwadm -F -p deny
           ipfwadm -F -a m -S yyy.yyy.yyy.yyy/x -D 0.0.0.0/0

x เป็นตัวเลขระบุจำนวนบิตของเน็ตเวอร์ก และ yyy.yyy.yyy.yyy เป็นหมายเลขของเน็ตเวอร์ก

netmask | x | Subnet
255.0.0.0 | 8 | Class A
255.255.0.0 | 16 | Class B
255.255.255.0 | 24 | Class C
255.255.255.255 | 32 | Point-to-point

ในที่นี้เรากำหนดให้ 192.168.1.0 เป็น subnet class C ดังนั้นจะต้องใช้คำสั่งตามตัวอย่างดังนี้

           ipfwadm -F -p deny
           ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0

คุณสามารถใช้ค่าของ netmask แทนจำนวนบิตของเน็ตเวอร์กได้ ดังตัวอย่าง

           ipfwadm -F -a m -S 192.168.1.0/255.255.255.0 -D 0.0.0.0/0

คุณอาจใช้คำสั่ง ipfwadm กับออปชัน -V 192.168.1.1 และ -W eth0 เพิ่มเติมเพื่อเจาะจงให้แพ็คเก็ต masquerade วิ่งผ่านทางเกตเวย์และอินเทอร์เฟสที่ระบุไว้ การกำหนดในลักษณะนี้อาจไม่จำเป็น ถ้าคุณไม่ได้เคร่งเครียดเรื่องระบบรักษาความปลอดภัยมากนัก
สำหรับ client ที่ใช้งานในลักษณะของ bootp (Bootstrap Protocol) เพื่อให้มีลักษณะเป็น Diskless client อ่านรายละเอียดเกี่ยวกับเรื่องของ bootp ได้จาก

- RFC951 Bootstrap Protocol
- RFC1532 Clarifications and Extensions for the Bootstrap Protocol
- RFC1533 DHCP Options and BOOTP Vendor Extensions

จะต้องใช้คำสั่งเพื่อกำหนดเรื่องของ masquerade เพิ่มเติมดังนี้

       ipfwadm -I -a accept -S 0/0 68 -D 0/0 67 -W bootp_clients_net_if_name -P udp

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

      ipfwadm -F -p deny
      ipfwadm -F -a m -S 192.168.1.2/32 -D 0.0.0.0/0
      ipfwadm -F -a m -S 192.168.1.8/32 -D 0.0.0.0/0

การกำหนดหลักเกณฑ์ให้ทุกเครื่องสามารถใช้ masquerade ได้เป็นค่าโดยปริยาย (default) ตามคำสั่งดังนี้

      ipfwadm -F -p masquerade

เป็นสิ่งที่ไม่ควรกระทำถึงแม้ว่าจะทำให้สะดวกต่อการจัดการ แต่ควรจะทำการอนุญาตให้เป็นกลุ่มเน็ตเวอร์ก หรือระบุเครื่องจะดีกว่า
คุณสามารถจะนำเอาคำสั่งที่กำหนดเรื่องของ masquerade ข้างต้นใส่ไว้เป็นเชลล์สคริปต์ หรืออาจจะนำเอาไปใส่ในไฟล์ /etc/rc.local เพื่อจะให้ทำการเรียกใช้งานโดยอัตโนมัติตอนบูตเครื่องก็ได้

### ข้อมูลเพิ่มเติม และบรรณานุกรม

- Linux IP Masquerade mini HOWTO โดย Ambrose Au, achau@wwonline.com http://www.wwonline.com/~achau/ipmasq/ipmasq-HOWTO.html
- IP Masquerade HOWTO for kernel 1.2.x http://www.wwonline.com/~achau/ipmasq/ipmasq-HOWTO-1.2.x.txt
- IP Masquerade Resource page http://www.wwonline.com/~achau/ipmasq/ และ http://www.hwy401.com/achau/ipmasq/
- IP masquerade mailing list archive http://www.indyramp.com/masq/list/
- IP masquerade FAQ http://www.indyramp.com/masq/ip_masquerade.txt
- X/OS Ipfwadm page http://www.xos.nl/linux/ipfwadm/
- Linux Firewalling and Proxy Server HOWTO http://www.caldera.com/LDP/HOWTO/Firewall-HOWTO.html

HTML developed by Kaiwal Development Team (kaiwal@geocities.com)