Rabu, 18 Maret 2020

Mikrotik QOS Browsing dan Games Online

Manajemen Bandwidht menggunakan Queue Tree

Kendala yang sering dihadapi dalam jaringan adalah manajemen bandwidht, logikanya adalah bandwidht yang tidak seimbang dengan jumlah pemakaian. 
Untuk mengatasi hal ini manajemen pengaturan bandwidht harus semaksimal mungkin agar user atau klien merasa nyaman saat menggunakan jaringan.

Mikrotik sendiri sudah ada fungsi QOS untuk manajeman bandwidht yaitu Simple Queue dan Queue Tree, di artikel ini saya akan sharing sedikit manajemen bandwidht menggunakan Queue tree Mikrotik untuk optimalisasi Browsing dan Games Online di jaringan RTRW Net.

Mikrotik Firewall

Sesuaikan script  dengan interface dan kondisi jaringan anda.

Langkah 1 : 
Membuat IP Firewall Raw untuk menangkap IP server tujuan untuk dst-address di mangle, buka winbox-new terminal masukan script dibawah ini :
ip firewall raw
add chain=prerouting action=add-dst-to-address-list content=youtube.com log=no log-prefix="" address-list=YouTube IP address-list-timeout=none-dynamic comment=youtube-web
add chain chain=prerouting action=add-dst-to-address-list content=googlevideo.com log=no log-prefix="" address-list=YouTube IP address-list-timeout=none-dynamic comment=youtube-video
add chain=prerouting action=add-dst-to-address-list dst-port=30000-30150,5001,5003,9001 content=.youngjoygame.com log=no log-prefix="" protocol=tcp address-list=ML address-list-timeout=none-dynamic comment=mobile-legends
add chain=prerouting action=add-dst-to-address-list dst-port=10001-10094 log=no log-prefix="" protocol=tcp address-list=AOV address-list-timeout=none-dynamic comment=AOV
add chain=prerouting action=add-dst-to-address-list dst-port=10080,17 log=no log-prefix="" protocol=udp address-list=AOV address-list-timeout=none-dynamic
add chain=prerouting action=add-dst-to-address-list dst-port=10491,10010,10013,10612,20002,20001,20000,12235,13748,13972,13894,11455,10096,10039 log=no log-prefix="" protocol=udp address-list=PUBG address-list-timeout=none-dynamic comment=pubg
add chain=prerouting action=add-dst-to-address-list dst-port=10012,17500 content=.igamecj.com log=no log-prefix="" protocol=tcp address-list=PUBG address-list-timeout=none-dynamic
add chain=prerouting action=add-dst-to-address-list dst-port=7000-8020 content=.superevil.net log=no log-prefix="" protocol=tcp address-list=vainglory address-list-timeout=none-dynamic comment=vanglory
add chain=prerouting action=add-dst-to-address-list content=.ihago.net log=no log-prefix="" address-list=hago address-list-timeout=none-dynamic comment=hago
add chain=prerouting action=add-dst-to-address-list dst-port=7006,39003,39698,39779 log=no log-prefix="" protocol=tcp address-list=free-fire address-list-timeout=none-dynamic comment=Garena-Freefire
add chain=prerouting action=add-dst-to-address-list dst-port=7008,10000-10007 log=no log-prefix="" protocol=udp address-list=free-fire address-list-timeout=none-dynamic
add chain=prerouting action=add-dst-to-address-list dst-port=44590-44610 log=no log-prefix="" protocol=tcp address-list=PB-mobile address-list-timeout=none-dynamic comment=PB-Mobile
add chain=prerouting action=add-dst-to-address-list dst-port=9330-9340 log=no log-prefix="" protocol=tcp address-list=COC address-list-timeout=none-dynamic comment=COC
add chain=prerouting action=add-dst-to-address-list dst-port=7500-7700,17000-20100 log=no log-prefix="" protocol=tcp address-list=COD_mobile address-list-timeout=none-dynamic comment=COD-Mobile

Langkah 2 : 
Membuat IP Firewall Mangle menangkap paket koneksi tujuan, buka winbox-new terminal masukan script dibawah ini :
ip firewall mangle
add chain=forward action=mark-connection new-connection-mark=con-youtube passthrough=yes dst-address-list=YouTube IP log=no log-prefix="" comment=youtube
add chain=forward action=mark-packet new-packet-mark=pac-youtube passthrough=no connection-mark=con-youtube log=no log-prefix=""
add chain=prerouting action=mark-connection new-connection-mark=con-icmp passthrough=yes protocol=icmp log=no log-prefix="" comment=ICMP
add chain=prerouting action=mark-packet new-packet-mark=icmp-down passthrough=no connection-mark=con-icmp in-interface=ether1-Wan log=no log-prefix="" 
add chain=prerouting action=mark-packet new-packet-mark=icmp-up passthrough=no connection-mark=con-icmp in-interface=ether5-Hotspot_PC log=no log-prefix=""
add chain=forward action=mark-connection new-connection-mark=con-browsing passthrough=yes dst-address-list=!Local connection-mark=!con-heavy log=no log-prefix="" comment=Small-Browsing
add chain=forward action=mark-packet new-packet-mark=small-browsing_down passthrough=no connection-mark=con-browsing in-interface=ether1-Wan log=no log-prefix=""
add chain=forward action=mark-packet new-packet-mark=small-browsing_up passthrough=no connection-mark=con-browsing in-interface=ether5-Hotspot_PC log=no log-prefix="" 
add chain=prerouting action=mark-connection new-connection-mark=con-heavy passthrough=yes dst-address-list=!local connection-mark=con-browsing connection-bytes=1024000-0 connection-rate=256k-204800k log=no log-prefix="" comment=Heavy-Browsing
add chain=forward action=mark-packet new-packet-mark=heavy-down passthrough=no connection-mark=con-heavy in-interface=ether1-Wan log=no log-prefix="" 
add chain=forward action=mark-packet new-packet-mark=heavy-up passthrough=no connection-mark=con-heavy in-interface=ether5-Hotspot_PC log=no log-prefix=""
add chain=forward action=mark-connection new-connection-mark=con-ml passthrough=yes dst-address-list=ML log=no log-prefix="" comment=ML
add chain=forward action=mark-packet new-packet-mark=pac-ml passthrough=no connection-mark=con-ml log=no log-prefix=""
add chain=forward action=mark-connection new-connection-mark=con-pubg passthrough=yes dst-address-list=PUBG log=no log-prefix="" comment=pubg
add chain=forward action=mark-packet new-packet-mark=pac-pubg passthrough=no connection-mark=con-pubg log=no log-prefix=""
add chain=forward action=mark-connection new-connection-mark=con-ff passthrough=yes dst-address-list=free-fire log=no log-prefix="" comment=freefire
add chain=forward action=mark-packet new-packet-mark=FreeFire passthrough=no connection-mark=con-ff log=no log-prefix="" 
add chain=forward action=mark-connection new-connection-mark=con-pbm passthrough=yes dst-address-list=PB-mobile log=no log-prefix="" comment=PB-Mobile
add chain=forward action=mark-packet new-packet-mark=pac-pbm passthrough=no connection-mark=con-pbm log=no log-prefix=""
add chain=forward action=mark-connection new-connection-mark=con-coc passthrough=yes dst-address-list=COC log=no log-prefix="" comment=COC
add chain=forward action=mark-packet new-packet-mark=pac-coc passthrough=yes connection-mark=con-coc log=no log-prefix=""
add chain=forward action=mark-connection new-connection-mark=con-hago passthrough=yes dst-address-list=hago log=no log-prefix="" comment=hago
add chain=prerouting action=mark-packet new-packet-mark=pac-hago passthrough=no connection-mark=con-hago log=no log-prefix=""

Langkah 3 : 
Membuat queue tree koneksi mangle, buka winbox-new terminal masukan script dibawah ini :
queue tree
add name="GLOBAL" parent=global packet-mark="" limit-at=0 queue=default-small priority=1 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s bucket-size=0.2
add name="Download" parent=GLOBAL packet-mark="" limit-at=0 queue=default-small priority=2 max-limit=25M burst-limit=28M burst-threshold=28M burst-time=5s bucket-size=0.1
add name="Upload" parent=GLOBAL packet-mark="" limit-at=0 queue=default-small priority=8 max-limit=30M burst-limit=0 burst-threshold=0 burst-time=0s bucket-size=0.1
add name="Small Browsing Download" parent=Download packet-mark=small-browsing_down limit-at=1M queue=default-small priority=8 max-limit=10M burst-limit=11M burst-threshold=11M burst-time=5s bucket-size=0.1
add name="Small Browsing Upload" parent=Upload packet-mark=small-browsing_up limit-at=1M queue=default-small priority=8 max-limit=15M burst-limit=0 burst-threshold=0 burst-time=0s bucket-size=0.1
add name="ICMP Download" parent=Download packet-mark=icmp-down limit-at=0 queue=default-small priority=8 max-limit=5M burst-limit=0 burst-threshold=0 burst-time=0s bucket-size=0.1
add name="ICMP Upload" parent=Upload packet-mark=icmp-up limit-at=3M queue=default-small priority=8 max-limit=5M burst-limit=0 burst-threshold=0 burst-time=0s bucket-size=0.1
name="Heavy Browsing Download" parent=Download packet-mark=heavy-down limit-at=3M queue=default-small priority=8 max-limit=10M burst-limit=12M burst-threshold=12M burst-time=5s bucket-size=0.1
add name="Heavy Browsing Upload" parent=Upload packet-mark=heavy-up limit-at=2M queue=default-small priority=8 max-limit=15M burst-limit=0 burst-threshold=0 burst-time=0s bucket-size=0.1 
add name="FreeFire" parent=GLOBAL packet-mark=FreeFire limit-at=1M queue=default-small priority=8 max-limit=3M burst-limit=0 burst-threshold=0 burst-time=0s bucket-size=0.1
add name="ML" parent=GLOBAL packet-mark=pac-ml limit-at=3M queue=default-small priority=8 max-limit=5M burst-limit=5M burst-threshold=5M burst-time=10s bucket-size=0.1
add name="PUBG" parent=GLOBAL packet-mark=pac-pubg limit-at=3M queue=default-small priority=1 max-limit=5M burst-limit=0 burst-threshold=0 burst-time=0s bucket-size=0.1
add name="Hago" parent=GLOBAL packet-mark=pac-hago limit-at=0 queue=default-small priority=8 max-limit=2M burst-limit=0 burst-threshold=0 burst-time=0s bucket-size=0.1
add name="1. YouTube" parent=GLOBAL packet-mark=pac-youtube limit-at=4M queue=default-small priority=6 max-limit=15M burst-limit=17M burst-threshold=17M burst-time=8s bucket-size=0.1

Langkah selanjutnya adalah test queue yang telah anda tambahkan tadi dengan browsing atau dengan bermain games online yang telah dibuat mark nya pada mangle. Jika muncul trafic atau statistik artinya rule yang anda buat sudah berjalan dengan baik.
Share:

Pengalaman membuat RTRW Net [Bagian 1]

konsep rtrw net

RTRW NET - KONSEP HOTSPOT SERVICE 

Latar Belakang Konsep RT/RW Net

Apa sih RT/RW Net? RT/RW-net sebenarnya produk hasil jerih payah banyak rakyat di Indonesia yang mengidamkan Internet murah. Dari segi peraturan RT/RW-net menunjukkan suatu pertanda ketidak adaan ruang legal untuk infrastruktur berbasiskan komunitas, yang dibangun dengan perlengkapan hasil sendiri, dari rakyat untuk rakyat. Tidak ada ruang legal untuk infrastruktur Wireless Internet memanfaatkan WiFi.

Tersedianya perlengkapan tehnologi informasi yang modern mendukung gaya hidup masyarakat yang lebih banyak menggunakan gadget / smartphone, sementara dukunganga jaringan operator seluler maupun broadband dengan sistim yang tidak fleksibel dengan adanya batasan limitasi kuota dengan harga yang cukup mahal bagi masyarakat kebanyakan . Keberhasilan RT/RW-net di Indonesia terjadi karena ada proses permintaan masyarakat terkait alternatif jaringan Internet yang murah. Belakangan ini, teknologi Wireless Internet kelihatannya menjadi tulang punggung RT/RW-net di Indonesia.

Konsep RT/RW Net Menggunakan Hotspot Mikrotik

Berbekal sedikit pengalaman membuka layanan internet RT/RW net di salah satu rusun daerah jakarta barat. Awalnya saya diajak oleh teman yang tinggal di rusun tersebut dan sering mengeluhkan sinyal koneksi operatos seluler yang buruk, ditambah lagi dari pihak yayasan pengelola rusun tersebut tidak memperbolehkan sama sekali ada provider internet yang masuk ke area rusun dikarenakan hal hal yang tidak diketahui.

Jika dilihat dari segi bisnis tentu ini sangat menguntunkan sekali jika saja ada provider internet yang bisa masuk ke area rusun tersebut, sudah pasti mau tidak mau penghuni rusun tersebut akan berlangganan koneksi internet yang ada.
Tanpa pikir panjang saya dan teman saya mulai memikirkan peluang ini, dengan mengandalkan modal yang tipis kami berusaha mencari solusi. Yaitu dengan memancarkan koneksi Telkom Indihome dari lokasi rumah teman yang sudah tercover jaringan Telkom Indihome ke rusun tersebut dengan radio link PTP Mikrotik Groove.

Kesimpulan RT/RW Net Mikrotik Hotspot

Alhasil internet berhasil dilewatkan melalui radio PTP Mikrotik ke rusun dengan Bandwidht 80Mbps. Setelah itu koneksi dari radio di bagi lagi menggunakan Mikrotik RB1100AH sebagai server routing dan untuk server hotspot menggunkan Mikrotik PC. Mengapa saya memakai Mikrotik PC dikarenakan Mikrotik RB1100AH hanya memiliki CPU yang kecil, dan jika dijalankan untuk Hotspot service Load CPU akan selalu tinngi hingga 90%.

Baca Juga : Pengalaman membuat RTRW Net [Bagian 2]


Setelah menjalankan kurang lebih satu tahun masih banyak sekali problem ataupun kendala keluhan dari pengguna layanan ini, harus siap menerima resiko komplain dan keluhan pelanggan adalah hal yang wajar sambil perlahan memperbaiki kualitas koneksi wireless ke pelanggan. Demikian yang dapat saya bagikan pengalaman membuat RTRW Net bermodal minim, jangan lupa tinggalkan komen dibawah ini ya.

Referensi : https://lms.onnocenter.or.id/wiki/index.php/RT/RW-net

Share:

Selasa, 17 Maret 2020

Memisahkan Browsing dan Streaming dengan Mikrotik

topologi jaringan


Memisahkan Browsing dan Streaming Mikrotik Dual Wan

Dikarenakan banyak keluhan user ditempat saya yang mengatakan browsing dan youtube yang sering lemot saat memutar video. Untuk mengatasi hal ini dan kepuasaan user saat browsing internet, maka saya mencari solusi untuk memisahkan trafik antara browsing dan streaming youtube ke gateway ISP yang kedua.

Dan dikarenakan indihome menerapkan sistem FUP (fair usage policy) ketika mencapai limit yang telah ditentukan kecepatan internet akan turun. Saya pun mencari solusi dengan menembak wifi.id seemless dari mikrotik menggunakan wireless untuk menghindari FUP tersebut.


Dengan topologi jaringan sebagai berikut :

  1. ISP 1 Indihome 50 MB = 192.168.100.1/24
  2. ISP 2 Wifi ID Seemless = 192.168.88.1/24
  3. Mikrotik Router = 192.168.20.1/24

Langkah - langkah konfigurasi sebagai berikut :

Buka winbox lalu pilih new terminal dan masukan script dibawah ini, script ini untuk menangkap ip dari user hotspot yang menuju ke server youtube:

ip firewall mangle
add chain=forward action=add-dst-to-address-list address-list=ip-youtube address-list-timeout=3h content=googlevideo.com log=no log-prefix="" disable=no
add chain=forward action=add-dst-to-address-list address-list=ip-youtube address-list-timeout=3h content=googlevideo.com log=no log-prefix="" disable=no
add chain=prerouting action=mark-routing new-routing-mark=route-youtube passthrough=yes dst-address-list=ip-youtube log=no log-prefix="" disable=no

Untuk memastikan firewall mangle sudah berjalan, buka youtube dan pastikan ip address youtube sudah masuk di address list ip-youtube.


address list mikrotik

Langkah berikutnya adalah menentukan gateway mana yang akan dilewati paket youtube yang sudah di mark oleh mangle.


Karena disini saya ingin youtube melewati ISP gateway 2 (wifi.id seemless) maka routing mark gateway seemless saya arahkan ke route-youtube

route mikrotik

mikrotik route list

Sampai disini konfigurasi memisahkan trafik browsing dan streaming sudah bisa digunakan, dengan asumsi dst address yang telah di mark akan pindah melalui gateway 2 untuk trafik yang tidak ditandai akan tetap menggunakan jalur utama gateway 1.

Topologi jaringan dan IP address sesuaikan dengan kondisi jaringan ditempat anda.






Share:

Jumat, 30 Agustus 2013

BIND Chroot DNS Master and Slave Dalam Satu Server

DNS  (Domain Name System) adalah sebuah server yang bertugas untuk menterjemahkan alamat IP Address ke dalam bentuk sebuah nama domain, tujuannya adalah untuk mempermudah penemuan atau akses ke dalam sebuah situs berdasarkan nama atau domain yang mudah untuk diingat. Tentunya bisa dibayangkan jika sobat sekalian harus mengingat banyaknya nomor-nomor IP Address yang harus dihapal untuk mengakses situs tujuan.
DNS juga diperlukan untuk mengatur nama domain dan subdomain yang dipakai pada sebuah perusahaan ataupun untuk diri pribadi, umunya DNS server terdiri dari Master dan Slave yang terinstall pada dua buah server dengan IP Address yang berbeda. 
Pada kesempatan ini penulis ingin berbagi bagaimana caranya untuk menjalankan Master dan Slave sebuah DNS server yang menggunakan BIND-9 dalam satu buah server dan berjalan dengan metode chroot, untuk itu perlu disiapkan sebuah server dengan dua buah ethernet card yang telah terinstall Linux dan sudah dikonfigurasikan dengan dua buah alamat IP yang berbeda.

Server spesifikasi :
Sistem Operasi : Fedora Core 6 32 bit, RAM 1 GHz
IP Address 1  : 10.10.10.2 (eth1) – Sesuaikan dengan IP address anda.

IP Address 2  : 172.16.0.2 (eth2)
BIND dan SSL : bind-9.9.2 dan openssl-0.9.8x
Langkah-langkah berikut harus dilakukan setelah login meggunakan root dalam server:
Jika sobat menggunakan versi fedora yang lebih tinggi dan versi openssl telah sama atau lebih tinggi, lewati langkah untuk install openssl dibawah ini:
cd /src
tar xfvz openssl-0.9.8x.tar.gz
cd openssl-0.9.8x
./configure
make
make test
make install

Download dan install bind
cd source tar xfvz bind-9.9.2.tar.gz
cd bind-9.9.2 rpm -e
bind
bind-utils caching-nameserver (lewati jika bind tidak diinstall)
./configure --prefix=/usr/local --disable-ipv6 --with-openssl=/Path-to-openssl-sobat make make install

Konfigurasi dan persiapkan jail (chroot)
groupadd named useradd -g named -d /chroot/named -s /bin/true named passwd -l named mkdir -p /chroot/named cd /chroot/named mkdir dev mkdir etc mkdir logs mkdir -p var/run mkdir -p conf/secondaries mknod dev/null c 1 3 mknod dev/zero c 1 5 mknod dev/random c 1 8 cp /etc/localtime etc

Buat konfigurasi named.conf, karena Master dan Slave berjalan dalam satu server berarti ada dua buah konfigurasi, sebut saja named1.conf dan named2.conf
# vi /chroot/named/etc/named1.conf, copykan template berikut didalamnya : named1.conf
controls { inet 127.0.0.1 allow { 127.0.0.1; } keys { rndckey; }; }; acl "internal" { 10.10.10.0/24; 172.16.0.0/24; 127.0.0.1; }; logging { channel default_syslog { syslog local2; severity debug; }; channel audit_log { file "/logs/named1.log"; severity debug; print-time yes; }; category default { default_syslog; }; category general { default_syslog; }; category security { audit_log; default_syslog; }; category config { default_syslog; }; category resolver { audit_log; }; category xfer-in { audit_log; }; category xfer-out { audit_log; }; category notify { audit_log; }; category client { audit_log; }; category network { audit_log; }; category update { audit_log; }; category queries { audit_log; }; category lame-servers { audit_log; }; }; options { listen-on port 53 { 127.0.0.1; 10.10.10.2; }; directory "/conf"; pid-file "/var/run/named1.pid"; statistics-file "/var/run/named1.stats"; memstatistics-file "/var/run/named1.memstats"; dump-file "/var/run/named1.dump"; zone-statistics yes; version "[bind-version]"; notify no; auth-nxdomain yes; transfer-format many-answers; max-transfer-time-in 60; interface-interval 0; allow-transfer { none; }; allow-query { internal; }; allow-query-cache { internal; }; }; view "internal-in" in { match-clients { internal; }; recursion yes; additional-from-auth yes; additional-from-cache yes; zone "." in { type hint; file "db.rootcache"; }; zone "0.0.127.in-addr.arpa" in { type master; file "db.127.0.0"; allow-query { any; }; allow-transfer { none; }; }; zone "localhost" { type master; file "db.localhost"; allow-query { any; }; allow-transfer { none; }; }; zone "domainmu.com" in { type master; file "domainmu.zone"; allow-transfer { 172.16.0.2; 10.10.10.2; }; }; zone "10.10.10.in-addr.arpa" in { type master; file "db.10.10.10"; allow-transfer { 172.16.0.2; 10.10.10.2; }; }; zone "0.16.172.in-addr.arpa" in { type master; file "db.172.16.0"; allow-transfer { 172.16.0.2; 10.10.10.2; }; }; }; view "external-in" in { match-clients { any; !internal; }; recursion no; additional-from-auth no; additional-from-cache no; // Link in our zones zone "." in { type hint; file "db.rootcache"; }; zone "domainmu.com" in { type master; file "domainmu.zone"; allow-query { any; }; }; zone "10.10.10.in-addr.arpa" in { type master; file "db.10.10.10"; allow-query { any; }; }; zone "0.16.172.in-addr.arpa" in { type master; file "db.172.16.0"; allow-query { any; }; }; }; view "external-chaos" chaos { match-clients { any; !internal;}; recursion no; zone "." { type hint; file "/dev/null"; }; zone "bind" { type master; file "db.bind"; allow-query { internal; }; allow-transfer { none; }; }; }; include "/etc/rndc-key";
# ln -s /chroot/named/etc/named1.conf /etc/named1.conf
Ulangi dua langkah diatas untuk membuat named2.conf (ganti name1,conf dengan named2.conf)
klik 
named2.conf berikut untuk isi konfigurasi named yang kedua.

controls {
        inet 127.0.0.1 allow { 127.0.0.1; } keys { rndckey; };
};

acl "trusted" { 10.10.10.0/24; 172.16.0.0/24; 127.0.0.1; };


logging {

    channel default_syslog {
        syslog local2;
        severity debug;
    };

    channel audit_log {
        file "/logs/named2.log";
        severity debug;
        print-time yes;
    };

    category default { default_syslog; };
    category general { default_syslog; };
    category security { audit_log; default_syslog; };
    category config { default_syslog; };
    category resolver { audit_log; };
    category xfer-in { audit_log; };
    category xfer-out { audit_log; };
    category notify { audit_log; };
    category client { audit_log; };
    category network { audit_log; };
    category update { audit_log; };
    category queries { audit_log; };
    category lame-servers { audit_log; };

};

// Set options for security
options {
    listen-on port 53 { 127.0.0.1; 172.16.0.2; };
    directory "/conf";
    pid-file "/var/run/named2.pid";
    statistics-file "/var/run/named2.stats";
    memstatistics-file "/var/run/named2.memstats";
    dump-file "/var/run/named2.dump";
    zone-statistics yes;
    version "[nameservers]";

    allow-notify { 10.10.10.2; };
    allow-update { 10.10.10.2; };
    auth-nxdomain yes;
    transfer-format many-answers;
    max-transfer-time-in 60;
    interface-interval 0;

    allow-transfer { none; };

    allow-query { internal; };

    allow-query-cache { internal; };
};


view "internal-in" in {

    match-clients { internal; };
    recursion yes;
    additional-from-auth yes;
    additional-from-cache yes;

    zone "." in {
        type hint;
        file "secondaries/db.rootcache";
    };

    zone "0.0.127.in-addr.arpa" in {
        type master;
        file "secondaries/db.127.0.0";

        allow-query {
            any;
        };

        allow-transfer {
            none;
        };
    };

    zone "localhost" {
       type master;
       file "secondaries/db.localhost";

        allow-query {
            any;
        };

        allow-transfer {
            none;
       };
    };

    zone "domainmu.com" in {
        type slave;
        file "secondaries/domainmu.zone";
        masters {10.10.10.2;};
    };

    zone "10.10.10.in-addr.arpa" in {
        type slave;
        file "secondaries/db.10.10.10";
        masters {10.10.10.2;};
    };

    zone "0.16.172.in-addr.arpa" in {
        type slave;
        file "secondaries/db.172.16.0";
        masters {10.10.10.2;};
    };

};

view "external-in" in {

    match-clients { any; !internal;};
    recursion no;
    additional-from-auth no;
    additional-from-cache no;

    zone "." in {
        type hint;
        file "secondaries/db.rootcache";
    };

    zone "domainmu.com" in {
        type slave;
        file "secondaries/domainmu.zone";
        masters {10.10.10.2;};

        allow-query {
            any;
        };
    };

    zone "10.10.10.in-addr.arpa" in {
        type slave;
        file "secondaries/db.10.10.10";
        masters {10.10.10.2;};

        allow-query {
            any;
        };
    };

    zone "0.16.172.in-addr.arpa" in {
        type slave;
        file "secondaries/db.172.16.0";
        masters {10.10.10.2;};

        allow-query {
            any;
        };
    };
};


view "external-chaos" chaos {
    match-clients { any; !internal; };
    recursion no;

        zone "." {
            type hint;
            file "/dev/null";
        };

        zone "bind" {
            type master;
            file "secondaries/db.bind";

            allow-query {
                internal;
            };
            allow-transfer {
                none;
            };
        };
};

include "/etc/rndc-key";
Buat tiga buah file db.rootcache, db.localhost and db.127.0.0 dalam direktori /chroot/named/conf
# dig +tcp @a.root-servers.net . ns > /chroot/named/conf/db.rootcache
# vi /chroot/named/conf/db.localhost, copykan kode dibawah ini:
;
; db.localhost
;
$TTL 86400
@ IN SOA @ root (
42 ; serial
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS @
IN A 127.0.0.1

# vi /chroot/named/conf/db.127.0.0, copykan kode dibawah ini:

;
; db.127.0.0
;
$TTL 86400
@ IN SOA localhost. root.localhost. (
1 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.
Buatlah bind.zone untuk alasan security
# vi /chroot/named/conf/db.bind
;
$TTL 1D
$ORIGIN bind.
@ 1D CHAOS SOA localhost. root.localhost. (
2001013101 ; serial
3H ; refresh
1H ; retry
1W ; expiry
1D ) ; minimum
CHAOS NS localhost.
version.bind. CHAOS TXT "BIND 9.1.3+robhacks"
authors.bind. CHAOS TXT "Are You Bind Master?"

Langkah selanjutnya ada setup direktori dan file permission, untuk mempermudah akan dibuat sebuah file untuk melakukan hal tersebut.
# vim /chroot/named.perms
# named.perms
# setting ownership dan permission dalam direktori named

cd /chroot/named

chown -R root:named .

find . -type f -print | xargs chmod u=rw,og=r    
find . -type d -print | xargs chmod u=rwx,og=rx  

chmod o= etc/*.conf

touch conf/secondaries/.empty  # placeholder
find conf/secondaries/ -type f -print | xargs chown named:named
find conf/secondaries/ -type f -print | xargs chmod ug=r,o=

chown root:named conf/secondaries/
chmod ug=rwx,o=  conf/secondaries/

chown root:root  var/
chmod u=rwx,og=x var/

chown root:named  var/run/
chmod ug=rwx,o=rx var/run/

chown root:named  logs/
chmod ug=rwx,o=rx logs/
Untuk menjalankannya ketikkan:
# sh -x /chroot/named.perms
Instal dan Konfigurasi rndc daemon
# cd /chroot/named/etc
# /usr/local/sbin/dnssec-keygen -a HMAC-MD5 -b 256 -n HOST rndc
Krndc.+xxx+xxxxx

# cat Krndc.+xxx+xxxxx.private
Private-key-format: v1.2
Algorithm: 157 (HMAC_MD5)
Key: xxxxx-xxxxx-xxxxxx-xxxxxx-xxxxx-xxxx  --- key yang akan di copy ke rndc-key
Buat file rndc-key
# cd /chroot/named/etc
# vim rndc-key, copykan kode berikut
key "rndckey" {
       algorithm       "hmac-md5";
       secret          "xxxxx-xxxxx-xxxxxx-xxxxxx-xxxxx-xxxx";
};
# rm -f Krndc.+xxx+xxxxx.*  — hapus file setelah rndc-key tersimpan
Membuat file rndc.conf
# cd /chroot/named/etc
# vim rndc.conf, copykan kode berikut:
options {
        default-server  127.0.0.1;
        default-key     "rndckey";
};

server 127.0.0.1 {
        port 953;
        key     "rndckey";
};

include "/chroot/named/etc/rndc-key";
# chown root:named
# chmod 600 rndc-key
# ln -s /chroot/named/etc/rndc.conf /usr/local/etc/rndc.conf
# ln -s /chroot/named/etc/rndc.conf /etc/rndc.conf
Kemudian Buat startup untuk masing-masing konfigurasi:
# cd /chroot/named
# vi named1.start, copykan kode berikut:
cd /chroot/named
#
touch named1.run
chown named:named named1.run
chmod ug=rw,o=r   named1.run

PATH=/usr/local/sbin:$PATH named  \
        -t /chroot/named \
        -u named \
        -c /etc/named1.conf
# vi named2.start, copykan kode berikut:
cd /chroot/named

touch named2.run
chown named:named named2.run
chmod ug=rw,o=r   named2.run

PATH=/usr/local/sbin:$PATH named  \
        -t /chroot/named \
        -u named \
        -c /etc/named2.conf
Jalankan kedua startup tersebut saat komputer server hidup atau menyala:
# vi /etc/rc.d/ini.d/named, copykan kode berikut dan simpan
#!/bin/sh

export PATH=/usr/local/sbin:$PATH       # untuk rndc

case "$1" in
  start)
        # Start daemons.
        echo -n "Starting named: "
        sh /chroot/named1.start
        echo "named up"

                    echo -n "Starting named2: "
        sh /chroot/named2.start
        echo "named2 up"
        ;;
  stop)
        # Stop daemons.
        echo -n "Shutting down named: "
        rndc stop
                    killall named
        echo "done"
        ;;
esac

exit 0
# chmod 755 /etc/rc.d/init.d/named
# vi /etc/rc.d/rc.local, copykan kode berikut pada baris akhir:
/etc/rc.d/init.d/named start
Sekarang sobat dapat mencoba menjlanakan dns server dengan mengetikan:
/etc/rc.d/init.d/named start
Untuk cek apakah master dan slave sudah berjalan, ketikkan:
# ps ax | grep named
 1805 ?        Ss     0:00 named -t /chroot/named -u named -c /etc/named1.conf
 1811 ?        Ss     0:00 named -t /chroot/named -u named -c /etc/named2.conf
Jika terlihat hasil seperti diatas, artinya chroot bind master dan slave telah berjalan
Setelah semua langkah diatas dilakukan dan kedua dns server telah up, saatnya untuk membuat routing table agar server dapat berjalan dengan dua gateway berbeda, dengan asumsi bahwa IP 10.10.10.2 (eth1) adalah routing utama dengan default gateway 10.10.10.1, jalankan perintah dibawah secara berurutan:
# echo 100 nama_table > /etc/iproute2/rt_tables
# /sbin/ip route add default via 172.16.0.1 dev eth2 table nama_table
# /sbin/ip route add 172.16.0.0/24 dev eth2 src 172.16.0.2 table nama_table
# /sbin/ip rule add from 172.16.0.2 table nama_table
# /sbin/ip rule add to 172.16.0.2 table nama_table
Donwload template konfigurasi untuk named1.conf dan named2.conf klik disini.
Demikianlah, tinggalkan komentar jika menghadapi kendala, terima kasih.

Share:

Recent Posts

Pages

Pengikut