Apa itu DHCP Server ?
Dynamic Host Configuration Protocol (DHCP) adalah protokol standar yang ditentukan oleh RFC 1541 (yang digantikan oleh RFC 2131) yang memungkinkan server untuk mendistribusikan alamat IP dan informasi konfigurasi secara dinamis kepada klien.
Apa itu NAT ?
Network Address Translation (NAT) adalah proses untuk memodifikasi sumber atau alamat tujuan dalam header IP dari sebuah paket saat paket sedang dalam transit. Secara umum, pengirim dan penerima aplikasi tidak menyadari bahwa paket IP sedang dimanipulasi.
Pada tutorial ini saya akan mendemonstrasikan cara install DHCP Server dan Konfigurasi NAT di CentOS 7 menggunakan dua NIC.
Prerequisite
- CentOS 7
- 2 NIC
- eth0: internet
- eth1: dhcp server
Define Interface
Pastikan eth0 sudah terdapat NIC, berikut IP internet saya pada interface eth0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | [root@gateway ~]# nano /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no IPV6_AUTOCONF="no" IPV6_DEFROUTE="no" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME=eth0 UUID=217c4ha-12e9-4a2e-a3de-fb416345f DEVICE=eth0 ONBOOT=yes IPADDR=xxx.xxx.xxx.xxx PREFIX=28 GATEWAY=xxx.xxx.xxx.xxx DNS1=8.8.8.8 DNS2=1.1.1.1 DOMAIN:google.com IPV6_PRIVACY=no |
Pastikan eth1 sudah terdapat NIC, berikut IP internet saya pada interface eth1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | [root@gateway ~]# nano /etc/sysconfig/network-scripts/ifcfg-eth1 HWADDR=92:A4:X9:24:09:9B TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none IPADDR=10.177.10.1 PREFIX=27 DNS1=8.8.8.8 DNS2=1.1.1.1 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME="eth1" UUID=ea0bfb67-497e-3859-9d38-e23ad97122 ONBOOT=yes AUTOCONNECT_PRIORITY=-999 |
Instalasi DHCP
Pastikan login sebagai root dan login melalui SSH, kemudian lakukan konfigurasi berikut
- Tentukan subnet
- Range: tentukan rentang IP yang akan di share
1 2 3 4 5 6 7 8 9 10 11 12 13 | [root@centos ~]# yum -y update [root@centos ~]# yum -y install dhcp [root@centos ~]# nano /etc/dhcp/dhcpd.conf subnet 10.177.10.0 netmask 255.255.255.224 { range 10.177.10.2 10.177.10.30; option domain-name-servers 1.1.1.1, 8.8.8.8; option domain-name "dns.iaas.web.id"; option routers 10.177.10.1; option broadcast-address 10.177.10.31; default-lease-time 600; max-lease-time 7200; } [root@centos ~]# systemctl start dhcpd && systemctl enable dhcpd |
Routing
Konfigurasi berikutnya adalah melakukan masquerade atau NAT, untuk topologi ini seperti yang sudah dijelaskan bahwa eth0 sebagai internet gateway, dan eth1 sebagai port untuk mendistribusikan IP DHCP
1 2 3 4 5 6 7 | [root@centos ~]# nano /etc/sysctl.d/ip_forward.conf net.ipv4.ip_forward = 1 [root@centos ~]# sysctl -p /etc/sysctl.d/ip_forward.conf [root@centos ~]# firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o eth0 -j MASQUERADE -s 10.177.10.0/27 [root@centos ~]# firewall-cmd --change-interface=eth0 --zone=external --permanent [root@centos ~]# firewall-cmd --set-default-zone=internal [root@centos ~]# firewall-cmd --complete-reload |
Bind IP
Konfigurasi ini bersifat opsional, dan biasanya saya gunakan untuk melakukan binding atau simpelnya adalah memaksa server DHCP untuk memberikan IP Address secara static kepada client yang di bind melalui MAC ADDRESS NIC.
Edit file dhcpd.conf dan taruh script berikut di bagian paling bawah, namun juga sesuaikan dengan MAC Address NIC dan IP Address yang telah ditentukan.
1 2 3 4 5 6 7 8 9 | [root@centos ~]# nano /etc/dhcp/dhcpd.conf --- -- --- host user1 { hardware ethernet IA:AS:WE:BA:19:FF; fixed-address 10.177.10.27; } [root@centos ~]# systemctl restart dhcpd |