CentOS6 and DHCP server with vlan

โจทย์ไม่ยาก ไม่ง่าย … แค่ไม่เคยทำ

ความต้องการ

1. dhcp server บน CentOS6
2. แจก ip-address บน subnet ตามต้องการ
3. มี switch layer 2 เป็นตัวแยก vlan

ิวิธีทำ

1. สร้าง vlan id ใน switch ก่อน
ตัวอย่าง

2. ติดตั้ง dhcp server , vconfig

# yum install dhcp vconfig -y

3. load module 802.1q

# modprobe 8021q

check :

# lsmod | grep 8021q
8021q                  19587  0 
garp                    5901  1 8021q

4. สร้าง vlan interfaces

# cat /etc/sysconfig/network-scripts/ifcfg-eth0.2
DEVICE="eth0.2"
ONBOOT="yes"
BOOTPROTO=none
VLAN="yes"
IPADDR=10.156.3.2
NETMASK=255.255.255.0

# cat /etc/sysconfig/network-scripts/ifcfg-eth0.3
DEVICE="eth0.3"
ONBOOT="yes"
BOOTPROTO=none
VLAN="yes"
IPADDR=10.156.4.2
NETMASK=255.255.255.0

# cat /etc/sysconfig/network-scripts/ifcfg-eth0.4
DEVICE="eth0.4"
ONBOOT="yes"
BOOTPROTO=none
VLAN="yes"
IPADDR=10.156.5.2
NETMASK=255.255.255.0

# cat /etc/sysconfig/network-scripts/ifcfg-eth0.5
DEVICE="eth0.5"
ONBOOT="yes"
BOOTPROTO=none
VLAN="yes"
IPADDR=10.156.6.2
NETMASK=255.255.255.0

# cat /etc/sysconfig/network-scripts/ifcfg-eth0.6
DEVICE="eth0.6"
ONBOOT="yes"
BOOTPROTO=none
VLAN="yes"
IPADDR=10.156.7.2
NETMASK=255.255.255.0

# cat /etc/sysconfig/network-scripts/ifcfg-eth0.7
DEVICE="eth0.7"
ONBOOT="yes"
BOOTPROTO=none
VLAN="yes"
IPADDR=10.156.9.2
NETMASK=255.255.255.0

# cat /etc/sysconfig/network-scripts/ifcfg-eth0.8
DEVICE="eth0.8"
ONBOOT="yes"
BOOTPROTO=none
VLAN="yes"
IPADDR=10.156.11.2
NETMASK=255.255.255.0

# cat /etc/sysconfig/network-scripts/ifcfg-eth0.9
DEVICE="eth0.9"
ONBOOT="yes"
BOOTPROTO=none
VLAN="yes"
IPADDR=10.156.13.2
NETMASK=255.255.255.0

5. สร้าง /etc/dhcp/dhcpd.conf

ddns-update-style interim;
ignore client-updates;

authoritative;

subnet 10.156.3.0 netmask 255.255.255.0 {
 option routers      10.156.3.1;                                
 option subnet-mask  255.255.255.0;
 option domain-name-servers 208.67.222.222,8.8.8.8;
 option time-offset  -18000; # Eastern Standard Time
 range dynamic-bootp 10.156.3.21 10.156.3.200;                  
 default-lease-time 21600;
 max-lease-time 43200;
}
subnet 10.156.4.0 netmask 255.255.255.0 {
 option routers      10.156.4.1;                                
 option subnet-mask  255.255.255.0;
 option domain-name-servers 208.67.222.222,8.8.8.8;
 option time-offset  -18000; # Eastern Standard Time
 range dynamic-bootp 10.156.4.21 10.156.4.200;                  
 default-lease-time 21600;
 max-lease-time 43200;
}
subnet 10.156.5.0 netmask 255.255.255.0 {
 option routers      10.156.5.1;                                
 option subnet-mask  255.255.255.0;
 option domain-name-servers 208.67.222.222,8.8.8.8;
 option time-offset  -18000; # Eastern Standard Time
 range dynamic-bootp 10.156.5.21 10.156.5.200;                  
 default-lease-time 21600;
 max-lease-time 43200;
}
subnet 10.156.6.0 netmask 255.255.255.0 {
 option routers      10.156.6.1;                                
 option subnet-mask  255.255.255.0;
 option domain-name-servers 208.67.222.222,8.8.8.8;
 option time-offset  -18000; # Eastern Standard Time
 range dynamic-bootp 10.156.6.21 10.156.6.200;                  
 default-lease-time 21600;
 max-lease-time 43200;
}
subnet 10.156.7.0 netmask 255.255.255.0 {
 option routers      10.156.7.1;                                
 option subnet-mask  255.255.255.0;
 option domain-name-servers 208.67.222.222,8.8.8.8;
 option time-offset  -18000; # Eastern Standard Time
 range dynamic-bootp 10.156.7.21 10.156.7.200;                  
 default-lease-time 21600;
 max-lease-time 43200;
}
subnet 10.156.9.0 netmask 255.255.255.0 {
 option routers      10.156.9.1;                                
 option subnet-mask  255.255.255.0;
 option domain-name-servers 208.67.222.222,8.8.8.8;
 option time-offset  -18000; # Eastern Standard Time
 range dynamic-bootp 10.156.9.21 10.156.9.200;                  
 default-lease-time 21600;
 max-lease-time 43200;
}
subnet 10.156.11.0 netmask 255.255.255.0 {
 option routers      10.156.11.1;                               
 option subnet-mask  255.255.255.0;
 option domain-name-servers 208.67.222.222,8.8.8.8;
 option time-offset  -18000; # Eastern Standard Time
 range dynamic-bootp 10.156.11.21 10.156.11.200;                
 default-lease-time 21600;
 max-lease-time 43200;
}
subnet 10.156.13.0 netmask 255.255.255.0 {
 option routers      10.156.13.1;                               
 option subnet-mask  255.255.255.0;
 option domain-name-servers 208.67.222.222,8.8.8.8;
 option time-offset  -18000; # Eastern Standard Time
 range dynamic-bootp 10.156.13.21 10.156.13.200;                
 default-lease-time 21600;
 max-lease-time 43200;
}

ปล. ปรับได้ตามความเหมาะสม

6. แก้ไข /etc/sysconfig/dhcpd

DHCPDARGS=eth0.2
DHCPDARGS=eth0.3
DHCPDARGS=eth0.4
DHCPDARGS=eth0.5
DHCPDARGS=eth0.6
DHCPDARGS=eth0.7
DHCPDARGS=eth0.8
DHCPDARGS=eth0.9

ปล. ปรับได้ตามความเหมาะสม

7. start ซะ!

# service dhcpd start

3 responses to “CentOS6 and DHCP server with vlan”

  1. ictrefresh says:

    บทความนี้มีประโยชน์มาก ทดสอบแล้ว ลองแล้ว VLAN ใช้งานได้จริง ทดสอบกับระบบยืนยันตัวตนผุ้ใช้งานอินเตอร์เน็ต ม.บุรพา ใช้ chilli ในการแจกไอพี บน CentOS 5.8 (ไม่ได้ใช้ dhcp เหมือนในนี้) โดยสร้าง VLAN 7 VLAN ในสวิตซ์เลเยอร์ 2 ของ 3 3Com Baseline Switch 2426 PWR Plus แต่ต้องเพิ่มเติมคำสั่งถัดจากคำสั่ง modprobe 8021q (ข้อ 3) คือ
    #vconfig add eth1 2 (เพิ่มวีแลนวง 2)
    .
    .
    .
    #vconfig add eth1 7 (เพิ่มวีแลนวง 7)

    แต่มีข้อสงสัยนิดหนึ่ง (เพื่อความแน่ใจ)
    1.ค่าไอพีที่กำหนดใน Console (ก่อนที่จะไปจัดการวีแลนหน้าเว็บเพจ) จำเป็นต้องตรงกับค่าไอพีของ VLANID วง 1 ที่แจกโดย Chilli หรือไม่
    2. VLANID วง 1 จำเป็นจะต้องกำหนดค่า tag port เหมือนวีแลนอื่น ๆ หรือไม่

    ขอบพระคุณอย่างสูง

    อ้างอิง : http://www.linuxthai.org/showthread.php?7030-%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD%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-CentOS-5-3_Authen_Log_Server

    อ้างอิง : http://www.sptc.ac.th/webboard/viewtopic.php?f=6&t=4

  2. ictrefresh says:

    — ต่อ —
    หมายเหตุ ทำถึงขั้นตอนที่ 4 เท่านั้นเนื่องจากใช้ chilli ในการแจกไอพี แค่ถ้าใช้ dhcp ในการแจกไอพี ก็ทำตามนี้หมดเลย ครับ

  3. admin says:

    ตอนนี้ไม่มี switch ให้ลองเลยครับ T_T