วิธีแก้ไข PSU12-Sritrang Server ใช้งาน 2 subnets แบบ manual
เป็นคำแนะนำสำหรับผู้ที่ต้องการใช้ server เดียว (อาจเป็น VM server จะสะดวก) สำหรับบริการ network สองวง (2 subnets)
เป็นวิธีการที่ต้องแก้ไขแบบค่อย ๆ แก้ไข และ เพิ่มไฟล์ที่จำเป็น
ที่ PSU12-Sritrang server เดิมมีเพียง eth0 เพิ่ม LAN Card อีก 1 การ์ด จะได้
เป็น eth1 สมมติให้มี IP address 10.0.200.251
การแก้ไขสำหรับเรื่อง backup และ cloning PC
แก้ไข 1
vi /etc/network/interfaces
เพิ่มบรรทัด
auto eth1 iface eth1 inet static address 10.0.200.251 netmask 255.255.255.0
และทำการ reboot เครื่อง 1 ครั้ง
แก้ไข 2
vi /etc/default/isc-dhcp-server
เพิ่ม "eth0 eth1"
แก้ไข 3
vi /etc/dhcpd/dhcpd.conf
เพิ่ม subnet ชุดที่สอง (สมมติชุดแรกคือ 10.0.100.0)
subnet 10.0.200.0 netmask 255.255.255.0 { ... ... }
และลงทะเบียน MAC แบบ manual
และรันคำสั่ง service isc-dhcp-server restart
แก้ไข 4
cd /var/lib/tftpboot/zone2/
เปลี่ยนใช้ ip address 10.0.200.251 โดยเข้าไปแก้ไขไฟล์ menu-zone2-0.mnu ด้วย editor
หรือสั่งรันแบบนี้
sed -i.bak 's/ipของeth0/10.0.200.251/g' menu-zone2-0.mnu
แก้ไข คำว่า autoruns=1 เป็น autoruns=2
sed -i.bak 's/autoruns=1/autoruns=2/g' menu-zone2-0.mnu
เปลี่ยนใช้ ip address 10.0.200.251 โดยเข้าไปแก้ไขไฟล์ menu-zone2-10.mnu ด้วย editor
หรือสั่งรันแบบนี้
sed -i.bak 's/ipของeth0/10.0.200.251/g' menu-zone2-10.mnu
แก้ไข คำว่า autoruns=10 เป็น autoruns=20
sed -i.bak 's/autoruns=10/autoruns=20/g' menu-zone2-10.mnu
แก้ไข 5
backup file เผื่อทำผิดพลาด
cp -rp /var/www/sysresccd /var/www/sysresccd2
cd /var/www/sysresccd/
cp autorun1 autorun2
เปลี่ยนใช้ ip address ใหม่ โดยเข้าไปแก้ไขไฟล์ autorun2 ด้วย editor
หรือสั่งรันแบบนี้
sed -i 's/ipของeth0/10.0.200.251/g' autorun2
sed -i 's/welcome.sh/welcome2.sh/g' autorun2
sed -i 's/backup.sh/backup2.sh/g' autorun2
sed -i 's/menubackuprestore.sh/menubackuprestrore2.sh/g' autorun2
แก้ไข 6
cd /var/www/cloning/
cp welcome.sh welcome2.sh
cp backup.sh backup2.sh
cp menubackuprestore.sh menubackuprestore2.sh
เปลี่ยนใช้ MYSERVER="10.0.200.251" โดยเข้าไปแก้ไขไฟล์ welcome2.sh ด้วย editor
หรือสั่งรันแบบนี้
sed -i 's/ipของeth0/10.0.200.251/g' welcome2.sh
เปลี่ยนใช้ MYSERVER="10.0.200.251" โดยเข้าไปแก้ไขไฟล์ backup2.sh ด้วย editor
หรือสั่งรันแบบนี้
sed -i 's/ipของeth0/10.0.200.251/g' backup2.sh
เปลี่ยนเมนู โดยเข้าไปแก้ไขไฟล์ menubackuprestrore2.sh ด้วย editor
หรือสั่งรันแบบนี้
sed -i 's/welcome.sh/welcome2.sh/g' menubackuprestrore2.sh
sed -i 's/backup.sh/backup2.sh/g' menubackuprestrore2.sh
ทดสอบ backup ต้นฉบับ
แก้ไข 7
cd /home/papa
cp -p preparetocreateautorun.sh preparetocreateautorun20.sh
แก้ไข คำว่า autoruns=10 เป็น autoruns=20 โดยเข้าไปแก้ไขไฟล์ preparetocreateautorun20.sh ด้วย editor
หรือสั่งรันแบบนี้
sed -i 's/autorun10/autorun20/g' preparetocreateautorun20.sh
และเปลี่ยนไปใช้ตัวแปร INTF=eth1 โดยเข้าไปแก้ไขไฟล์ preparetocreateautorun20.sh ด้วย editor
หรือสั่งรันแบบนี้
sed -i 's/eth0/eth1/g' preparetocreateautorun20.sh
แก้ไข 8
cp -p multicast.sh multicast2.sh
เปลี่ยนไปใช้ตัวแปร INTF=eth1 โดยเข้าไปแก้ไขไฟล์ multicast2.sh ด้วย editor
หรือสั่งรันแบบนี้
sed -i 's/eth0/eth1/g' multicast2.sh
แก้ไข 9
แก้ไขไฟล์ mystart.sh ด้วย editor ดังนี้
vi mystart.sh
เพิ่ม menu
"INITIALIZE2-multicast-zone${AREA}" "Initialize value for cloning subnet2 zone${AREA}" "MULTICAST2-menu-zone${AREA}" "multicast sender subnet2 zone${AREA}"
และ เพิ่ม choice
INITIALIZE2-multicast-zone${AREA}) bash preparetocreateautorun20.sh zone${AREA} MULTICAST2-menu-zone${AREA}) bash multicast2.sh zone${AREA}
ทดสอบ clone เครื่องใหม่
การแก้ไขสำหรับ Wake on LAN
ให้เพิ่ม option -i "IP broadcast address ของ subnet" ในคำสั่ง wakeonlan
เช่น wakeonlan -i 10.0.200.255 $mac1
แก้ไข 1
cd /root/scripts
cp -p wakeonlanspecial.sh wakeonlanspecial2.sh
เข้าไปแก้ไขไฟล์ wakeonlanspecial2.sh ด้วย editor
หรือสั่งรันแบบนี้
sed -i 's/wakeonlan $mac1/wakeonlan -i 10.0.200.255 $mac1/g' wakeonlanspecial2.sh
แก้ไข 2
cp -p wakeonlanspecialformulticast.sh wakeonlanspecialformulticast2.sh
เข้าไปแก้ไขไฟล์ wakeonlanspecialformulticast2.sh ด้วย editor
หรือสั่งรันแบบนี้
sed -i 's/wakeonlan $mac1/wakeonlan -i 10.0.200.255 $mac1/g' wakeonlanspecialformulticast2.sh
แก้ไข 3
แก้ไขไฟล์ othermenu.sh ด้วย editor ดังนี้
vi othermenu.sh
เพิ่ม menu จากเดิม
echo '7 "Wake-on-LAN-normal wakeonlanspecial.sh"' >> ${TEMP3} echo '8 "Wake-on-LAN-for-multicast wakeonlanspecialformulticast.sh"' >> ${TEMP3}
เป็น
echo '7 "Wake-on-LAN-normal wakeonlanspecial.sh"' >> ${TEMP3} echo '77 "Wake-on-LAN-normal2 wakeonlanspecial2.sh"' >> ${TEMP3} echo '8 "Wake-on-LAN-for-multicast wakeonlanspecialformulticast.sh"' >> ${TEMP3} echo '88 "Wake-on-LAN-for-multicast2 wakeonlanspecialformulticast2.sh"' >> ${TEMP3}
ทดสอบ wakeonlan
การเพิ่ม iproute2
สำหรับ server เมื่อเราเพิ่ม LAN Card อีก 1 การ์ด จะช่วยให้เครื่อง client Windows ที่อยู่ใน subnet ที่ 2 นั้นสามารถ ping หรือเรียกใช้ service ไปที่ IP ของ eth0 ของ server ได้ ดังนี้
ตรวจสอบ network interfaces ได้ผลลัพธ์ดังนี้
root@ubuntu:~# ifconfig eth0 Link encap:Ethernet HWaddr 00:4d:60:1e:fb:ab inet addr:10.0.100.20 Bcast:10.0.100.255 Mask:255.255.255.0 eth1 Link encap:Ethernet HWaddr 00:04:a5:fd:a4:9c inet addr:10.0.200.251 Bcast:10.0.200.255 Mask:255.255.255.0 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0
เพิ่ม 2 บรรทัดนี้ต่อท้ายในไฟล์ /etc/iproute2/rt_tables (ผมตั้งชื่อ routing table 1 ว่า rt1 และ routing table 2 ว่า rt2)
1 rt1 2 rt2
ผลลัพธ์ได้ดังนี้
root@ubuntu:~# cat /etc/iproute2/rt_tables # # reserved values # 255 local 254 main 253 default 0 unspec # # local # #1 inr.ruhep 1 rt1 2 rt2
เพิ่ม 4 บรรทัดนี้สำหรับ eth0
post-up ip route add 10.0.100.0/24 dev eth0 src 10.0.100.20 table rt1 post-up ip route add default via 10.0.100.1 dev eth0 table rt1 post-up ip rule add from 10.0.100.20/32 table rt1 post-up ip rule add to 10.0.100.20/32 table rt1
และเพิ่ม 4 บรรทัดนี้สำหรับ eth1
post-up ip route add 10.0.200.0/24 dev eth1 src 10.0.200.251 table rt2 post-up ip route add default via 10.0.200.1 dev eth1 table rt2 post-up ip rule add from 10.0.200.251/32 table rt2 post-up ip rule add to 10.0.200.251/32 table rt2
ผลลัพธ์ได้ดังนี้
root@ubuntu:~# cat /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 10.0.100.20 netmask 255.255.255.0 gateway 10.0.100.1 dns-nameservers 192.100.77.10 192.100.77.11 post-up ip route add 10.0.100.0/24 dev eth0 src 10.0.100.20 table rt1 post-up ip route add default via 10.0.100.1 dev eth0 table rt1 post-up ip rule add from 10.0.100.20/32 table rt1 post-up ip rule add to 10.0.100.20/32 table rt1 auto eth1 iface eth1 inet static address 10.0.200.251 netmask 255.255.255.0 post-up ip route add 10.0.200.0/24 dev eth1 src 10.0.200.251 table rt2 post-up ip route add default via 10.0.200.1 dev eth1 table rt2 post-up ip rule add from 10.0.200.251/32 table rt2 post-up ip rule add to 10.0.200.251/32 table rt2
ทำการ restart server
root@ubuntu:~# reboot