Anda di halaman 1dari 8

MENANGKAP IP DARI DNS CACHE PADA MIKROTIK

Anda dapat menangkap semua IP YouTube dan Facebook pada setiap router
Mikrotik, menyimpannya dalam dua daftar alamat tujuan atau address list yang
dapat digunakan untuk segala jenis penyaringan atau mangle, apakah itu
packet, rute atau mangle. Dst Address juga dapat digunakan untuk
memprioritaskan lalu lintas dalam kualitas layanan (QoS).

Karena ada banyak blok subnet yang digunakan oleh YouTube dan Facebook,
dan subnet terus berubah, kita harus menemukan cara untuk mengotomatiskan
proses yang akan terus memberikan informasi kepada router Mikrotik tentang
perubahan tersebut. Selanjutnya, dua script sederhana diperlukan untuk
menangkap semua IP YouTube dan Facebook. Script ini dapat dimodifikasi
untuk menangkap semua IP yang terkait dengan situs web lainnya. Setiap script
akan diberikan penjadwal sistem yang akan berjalan pada interval untuk
memastikan bahwa dst address yang berisi IP yang terkait dengan situs web
tertentu selalu diperbarui.

Agar solusi berfungsi sebagaimana mestinya, pengguna harus dipaksa untuk


menggunakan alamat IP pada antarmuka LAN dari router Mikrotik sebagai
alamat DNS pilihan mereka. Untuk mencapai hal ini, router Mikrotik harus diberi
alamat DNS dengan allow remote request diaktifkan. Setelah itu, aturan NAT
firewall aturan juga harus dikonfigurasi untuk memaksa semua permintaan DNS
dari LAN ke router Mikrotik.

Daftar Isi
 Script untuk menangkap IP YouTube dan Facebook
o Script untuk IP Youtube
 Script untuk IP Facebook
 Konfigurasi system scheduler
 Verifikasi
 DNS Cache
 Address-lists
o Script untuk Menangkap IP YouTube dan Facebook di Mikrotik

Script untuk menangkap IP YouTube dan Facebook

Script untuk IP Youtube


Script ini akan menangkap semua IP yang terkait dengan Youtube. Lihat script
di bawah ini.

# Tested with Mikrotik 6.42.7

:local LISTNAME “youtube”

# Nama situs web yang akan ditambahkan ke address list

:local TARGET1 “youtube.com”

:local TARGET2 “googlevideo.com”

# ketika situs dikunjungi untuk pertama kalinya menambahkan ip


situs ke address list jika tidak terdaftar

:if ( [/ip firewall address-list find where list=$LISTNAME] = “”)


do={

:log warning “No address list for $TARGET1 and $TARGET2 found !
creating and adding resolved entry for 1st time usage … gate”

:resolve $TARGET1

:resolve $TARGET2

/ip firewall address-list add list=$LISTNAME

} else={

:log warning “Previous List for $LISTNAME found ! moving forward


and checking if DNS entries can be added in it …”

}
# Periksa entri DNS untuk nama situs web yang cocok

:foreach i in=[/ip dns cache all find where (name~”$TARGET1″ ||


name~”$TARGET2″) (type=”A”) ] do={

# Dapatkan Alamat IP dari nama-nama untuk ditahan di buffer


sementara

:local Buffer [/ip dns cache get $i address];

delay delay-time=10ms

# Periksa apakah entri sudah ada di daftar alamat, jika tidak


tambahkan

:if ( [/ip firewall address-list find where address=$Buffer] = “”)


do={

# Ambil nama DNS untuk entri

:local sitednsname [/ip dns cache get $i name] ;

# Menampilkan nama LOG window

:log info (“added entry: $sitednsname $Buffer”);

# Tambahkan alamat IP dan nama sitename ke address list

/ip firewall address-list add address=$Buffer list=$LISTNAME


comment=$sitednsname;

}
}

Script untuk IP Facebook


Script ini akan menangkap semua IP yang terkait dengan Facebook. Lihat script
di bawah ini.

# Script untuk menambahkan alamat IP Facebook ke address list

# Tested with Mikrotik 6.42.7

:local LISTNAME “facebook”

# Nama situs web yang akan ditambahkan


ke&
amp;nbsp;address list

:local TARGET1 “facebook.com”

:local TARGET2 “fbcd.net”

# ketika situs dikunjungi untuk pertama kalinya menambahkan ip


situs ke daftar alamat jika tidak terdaftar di address list

:if ( [/ip firewall address-list find where list=$LISTNAME] = “”)


do={

:log warning “No address list for $TARGET1 and $TARGET2 found !
creating and adding resolved entry for 1st time usage … gate”

:resolve $TARGET1

:resolve $TARGET2

/ip firewall address-list add list=$LISTNAME

} else={
:log warning “Previous List for $LISTNAME found ! moving forward
and checking if DNS entries can be added in it …”

# Periksa entri DNS untuk nama situs web yang cocok

:foreach i in=[/ip dns cache all find where (name~”$TARGET1″ ||


name~”$TARGET2″)
&am
p;amp;&
amp;amp;amp; (type=”A”) ] do={

# Dapatkan Alamat IP dari nama-nama untuk ditahan di buffer


sementara

:local Buffer [/ip dns cache get $i address];

delay delay-time=10ms

# Periksa apakah entri sudah ada di daftar alamat, jika tidak


tambahkan

:if ( [/ip firewall address-list find where address=$Buffer] = “”)


do={

# Ambil nama DNS untuk entri

:local sitednsname [/ip dns cache get $i name] ;

# Menampilkan nama di LOG window

:log info (“added entry: $sitednsname $Buffer”);


# Tambahkan alamat IP dan nama sitename ke address list

/ip firewall address-list add address=$Buffer list=$LISTNAME


comment=$sitednsname;

Konfigurasi system scheduler


Langkah selanjutnya adalah mengkonfigurasi penjadwal sistem (system
scheduler) untuk menjalankan script pada interval; sebagai contoh setiap 30
detik. Lihat perintah di bawah ini.

/sys scheduler add

name=facebook on-event=facebook interval=30s start-date=sep/09/2018


start-time=startup

name=youtube on-event=youtube interval=30s start-date=sep/09/2018


start-time=startup

Verifikasi
Untuk memverifikasi ini, saya akan memeriksa cache DNS di router Mikrotik,
untuk melihat apakah itu menyelesaikan. Kemudian saya akan memeriksa
apakah daftar alamat tujuan saya untuk YouTube dan Facebook mengandung IP
apa pun. Pertama, lihat cache DNS di bawah ini.

DNS Cache

Address-lists
Sumber : timigate.com

Script untuk Menangkap IP YouTube dan Facebook di Mikrotik


Script dibawah ini juga bisa menangkap IP YouTube dan Facebook di Mikrotik,
anda tinggal mengganti baris kedua dan ketiga dengan web yang ingin anda
masukkan kedalam daftar address list.

:do {

:local LIST "youtube";

:local DOMAIN "youtube.com";

:foreach Crec in=[/ip dns cache all find where ( ( (type="A") ||


(type="CNAME") ) && (static=no) && (name~$DOMAIN) )] do={

:local Cname [/ip dns cache get number=$Crec name];

:local Cdata "";

:delay 1000ms;

:if ([/ip dns cache all get $Crec type]="CNAME") do={


:set $Cdata [:resolve $Cname]; } else={

:set $Cdata [/ip dns cache get number=$Crec address]; }

:do {/ip firewall address-list

:do {add list=$LIST address=$Cdata comment=$Cname disabled=no}


on-error={:log warning message="address entry exist: List=$LIST ,
Host=$Cname , Address=$Cdata";}

} on-error={:log error message="script failed..."}

Anda mungkin juga menyukai