Mengaktifkan IPv6 pada salah satu Virtual Host CPanel
Tujuan dari note ini adalah bagaimana caranya agar IPv6 Cpanel yang terinstall pada Centos dapat berjalan, selanjutnya agar Virtual Host yang dikelola oleh Cpanel juga dapat diakses webnya melalui jaringan IPv6.
- Syarat utama anda sudah memiliki alokasi IPv6 baik dedicated/dualstack , tunneling.
- Pastikan bahwa record AAAA sudah ditambahkan pada DNS Server anda.
-
eth0 Link encap:Ethernet HWaddr F2:CB:A6:DF:86:6C inet addr:103.3.46.5 Bcast:103.3.46.255 Mask:255.255.255.0 inet6 addr: 2001:df0:230:9::/128 Scope:Global inet6 addr: fe80::f0cb:a6ff:fedf:866c/64 Scope:Link inet6 addr: 2001:df0:230:9::7/64 Scope:Global UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:17230026 errors:0 dropped:0 overruns:0 frame:0 TX packets:18842347 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4065688152 (3.7 GiB) TX bytes:18337777713 (17.0 GiB)
-
root@hosting [~]# traceroute6 www.kame.net traceroute to www.kame.net (2001:200:dff:fff1:216:3eff:feb1:44d7), 30 hops max, 80 byte packets 1 GERBANG-6-KELUAR-AS56237-NOC-Cyber-MK670-AP.unila.ac.id (2001:df0:230:9::1) 12.857 ms 12.787 ms 11.406 ms 2 2400:4a00:a000:300::1 (2400:4a00:a000:300::1) 37.287 ms 37.303 ms 37.309 ms 3 2400:4a00:1d00::1:25 (2400:4a00:1d00::1:25) 50.989 ms 52.375 ms 52.669 ms 4 snge-b1-link.telia.net (2001:2000:3080:961::1) 86.042 ms 86.058 ms 85.853 ms 5 las-bb1-v6.telia.net (2001:2000:3018:2f::1) 259.833 ms 256.579 ms 256.592 ms 6 ntt-ic-143926-las-bb1.c.telia.net (2001:2000:3080:362::2) 247.189 ms 245.040 ms ntt-ic-151170-las-bb1.c.telia.net (2001:2000:3080:3a2::2) 244.950 ms 7 ae-8.r20.lsanca03.us.bb.gin.ntt.net (2001:418:0:2000::22d) 247.316 ms ae-6.r21.lsanca03.us.bb.gin.ntt.net (2001:418:0:2000::10d) 244.766 ms * 8 ae-7.r20.tokyjp05.jp.bb.gin.ntt.net (2001:218:0:2000::2ce) 300.563 ms * 254.249 ms 9 ae-19.r25.tokyjp05.jp.bb.gin.ntt.net (2001:218:0:2000::29d) 241.705 ms * ae-19.r24.tokyjp05.jp.bb.gin.ntt.net (2001:218:0:2000::299) 235.300 ms 10 ae-1.r01.tokyjp01.jp.bb.gin.ntt.net (2001:218:0:2000::202) 246.640 ms 246.853 ms 237.426 ms 11 ge-0-7-0-18.r01.tokyjp01.jp.ce.gin.ntt.net (2001:218:2000:5000::82) 410.375 ms 410.374 ms 410.116 ms 12 ve44.foundry6.otemachi.wide.ad.jp (2001:200:0:10::141) 369.848 ms 354.840 ms 345.964 ms 13 2001:200:dff:fff1:216:3eff:feb1:44d7 (2001:200:dff:fff1:216:3eff:feb1:44d7) 345.331 ms 358.349 ms 340.738 ms root@hosting [~]#
- Contoh ditempat saya resolv DNS yang sudah aktif
-
C:\Users\GigihFN>nslookup www.unila.ac.id Name: www.unila.ac.id Addresses: 2001:df0:230:9::7 103.3.46.5 C:\Users\GigihFN>nslookup 2001:df0:230:9::7 Name: www.unila.ac.id Address: 2001:df0:230:9::7
- Edit file master config Apache Cpanel /etc/httpd/conf/httpd.conf , lalu tambahkan listen [::]:80 dibawah Listen IPv4 milik anda
sebelum diubah /etc/httpd/conf/httpd.conf
PidFile logs/httpd.pid LockFile logs/accept.lock # Defined in /var/cpanel/cpanel.config: apache_port Listen 0.0.0.0:80 User nobody Group nobody ubah menjadi
PidFile logs/httpd.pid LockFile logs/accept.lock # Defined in /var/cpanel/cpanel.config: apache_port Listen 0.0.0.0:80 Listen [::]:80 User nobody Group nobody
- Selanjutnya rubah konfigurasu sub domain/domain yang ingin ditambahkan IPv6 (contoh http://www.unila.ac.id dengan IPv6 2001:df0:230:9::7 dengan IPv4 103.3.46.1 ), buka file httpd.conf, ubah bagian :
NameVirtualHost [2001:df0:230:9::7]:80 <VirtualHost 103.3.46.5:80 [2001:df0:230:9::7]:80> ServerName unila.ac.id ServerAlias ipv6.unila.ac.id www.unila.ac.id DocumentRoot /xxx/yyy/www/ ServerAdmin webmaster@unila.ac.id UseCanonicalName Off CustomLog /xxx/yyy/unila.ac.id combined CustomLog /xxx/yyy/unila.ac.id-bytes_log "%{%s}t %I .\n%{%s}t %O ."
- Beres tinggal akses dari proxy ipv6, contohnya : http://www.unila.ac.id.sixxs.org/
WIFI@Unila Statistik
Setelah infrastruktur Wireless baru di tuning (naikin power transmit, rubah algoritma di wireless controller), terlihat ada peningkatan user cukup signifikan ke WIFI@Unila. Dengan sistem yang baru enak liat laporannya, dari total current 500 client terotentikasi via SSO, android tetap merajai dengan statistik, Android : 20,6 % , Window7 17,2 % , iOS 3,8%, window8 3,8 %, , Blackberry 2%, , XP 1,5 %, tinggal buat paper nya hehe
Aruba Wireless Controller OIDs
Just make a note Aruba wireless controller OIDs.
Orion Internal Name | OID Name | OID Value |
---|---|---|
Role | wlsxSwitchRole | 1.3.6.1.4.1.14823.2.2.1.1.1.4 |
HostName | wlsxSysExtHostname | 1.3.6.1.4.1.14823.2.2.1.2.1.2 |
ModelName | wlsxSysExtModelName | 1.3.6.1.4.1.14823.2.2.1.2.1.3 |
Client_Name | staUserName | 1.3.6.1.4.1.14823.2.2.1.1.2.2.1.3 |
Client_Role | staUserRole | 1.3.6.1.4.1.14823.2.2.1.1.2.2.1.4 |
Client_AssociationID | staAssociationID | 1.3.6.1.4.1.14823.2.2.1.1.2.2.1.5 |
Client_ESSID | staAccessPointESSID | 1.3.6.1.4.1.14823.2.2.1.1.2.2.1.6 |
Client_SNR | staSignalToNoiseRatio | 1.3.6.1.4.1.14823.2.2.1.1.2.2.1.7 |
Client_TxRate | staTransmitRate | 1.3.6.1.4.1.14823.2.2.1.1.2.2.1.8 |
Client_RxRate | staReceiveRate | 1.3.6.1.4.1.14823.2.2.1.1.2.2.1.9 |
Client_TotalPacketsTx | staTxPackets | 1.3.6.1.4.1.14823.2.2.1.1.2.3.1.1 |
Client_TotalBytesTx | staTxBytes | 1.3.6.1.4.1.14823.2.2.1.1.2.3.1.2 |
Client_TotalPacketsRx | staRxPackets | 1.3.6.1.4.1.14823.2.2.1.1.2.3.1.3 |
Client_TotalBytesRx | staRxBytes | 1.3.6.1.4.1.14823.2.2.1.1.2.3.1.4 |
SSID | apESSID | 1.3.6.1.4.1.14823.2.2.1.1.3.3.1.2 |
IPAddress | apIpAddress | 1.3.6.1.4.1.14823.2.2.1.1.3.3.1.5 |
RadioType | apPhyType | 1.3.6.1.4.1.14823.2.2.1.1.3.3.1.6 |
Type | apType | 1.3.6.1.4.1.14823.2.2.1.1.3.3.1.7 |
CurrentChannel | apCurrentChannel | 1.3.6.1.4.1.14823.2.2.1.1.3.3.1.8 |
TotalTime | apTotalTime | 1.3.6.1.4.1.14823.2.2.1.1.3.3.1.10 |
InactiveTime | apInactiveTime | 1.3.6.1.4.1.14823.2.2.1.1.3.3.1.11 |
Noise | apChannelNoise | 1.3.6.1.4.1.14823.2.2.1.1.3.3.1.13 |
SNR | apSignalToNoiseRatio | 1.3.6.1.4.1.14823.2.2.1.1.3.3.1.14 |
TxRate | apTransmitRate | 1.3.6.1.4.1.14823.2.2.1.1.3.3.1.15 |
RxRate | apReceiveRate | 1.3.6.1.4.1.14823.2.2.1.1.3.3.1.16 |
TotalPacketsTx | apBSSTxPackets | 1.3.6.1.4.1.14823.2.2.1.1.3.5.1.8 |
TotalBytesTx | apBSSTxBytes | 1.3.6.1.4.1.14823.2.2.1.1.3.5.1.9 |
TotalPacketsRx | apBSSRxPackets | 1.3.6.1.4.1.14823.2.2.1.1.3.5.1.10 |
TotalBytesRx | apBSSRxBytes | 1.3.6.1.4.1.14823.2.2.1.1.3.5.1.11 |
Client_IPAddress | nUserExtVPNAddress | 1.3.6.1.4.1.14823.2.2.1.4.1.2.1.9 |
Clients | wlanAPBssidNumAssociatedStations | 1.3.6.1.4.1.14823.2.2.1.5.2.1.7.1.12 |
Rogue_PhyType | monAPInfoPhyType | 1.3.6.1.4.1.14823.2.2.1.6.7.1.1.1.1 |
Rogue_CurrentChannel | monAPInfoCurrentChannel | 1.3.6.1.4.1.14823.2.2.1.6.7.1.1.1.2 |
Rogue_Classification | monAPInfoClassification | 1.3.6.1.4.1.14823.2.2.1.6.7.1.1.1.3 |
Rogue_SSID | monAPInfoESSID | 1.3.6.1.4.1.14823.2.2.1.6.7.1.1.1.4 |
Rogue_SignalStrength | monAPInfoRSSI | 1.3.6.1.4.1.14823.2.2.1.6.7.1.1.1.5 |
Rogue_Status | monAPInfoStatus | 1.3.6.1.4.1.14823.2.2.1.6.7.1.1.1.10 |
Membaca MIB id SNMP menggunakan Python
SNMP (Simple Network Management Protocol) adalah protokol populer untuk menjalankan fungsi network manajemen. SNMP digunakan untuk mengumpulkan informasi dan mengkonfigurasi peralatan jaringan, seperti router, server, printer, hub, switch, wireless controller pada jaringan berbasis Internet Protocol (IP). SNMP dapat mengumpulkan informasi kondisi CPU, temperatur, memory, traffic, chasis, etc. Salah satu bagian penting dari SNMP adalah MIB (Management Information Base), merupakan satu set koleksi informasi yang diorganisasi dalam bentuk hirarki. Sebuah file MIB adalah sebuah teks file dalam format ASN.1 yang merepresentasikan struktur hirarki dari informasi yang dapat diperoleh dari sebuah aplikasi atau sistem.
Managed object atau MIB object adalah sebuah atau beberapa karakteristik pada suatu managed device misalnya beban CPU, besar memory yang digunakan. MIB pada dasarnya merupakan hirarki dari managed object. Object identifier atau Object ID (OID) digunakan sebagai indentifikasi yang unik untuk setiap managed object yang ada dalam hirarki MIB. OID dapat direprensentasikan dalam sebuah nama misalnya .iso.org.dod.internet.mgmt.mib-2.interfaces.ifnumber atau nomor yang disebut sebagai object descriptor, misalnya .1.3.6.1.2.1.2.1
Sebuah managed object sebagai contoh ifnumber (number of interface) adalah sebuah ide abstrak, sedangkan representasi real dari informasi itu disebut dengan “instance” yang memiliki nilai dari object tersebut. Misalnya instance dari ifnumber adalah ifnumber.0 yang memiliki nilai 3 yang berarti sistem memiliki 3 network interface. Untuk mendapatkan nilai instance tersebut, NMS harus meminta informasi dengan mendefinisikan OID yaitu .1.3.6.1.2.1.2.1.0 (OID dari object ifnumber dengan ditambahkan .0 dibelakangnya). http://ejlp.blogspot.com/2008/10/snmp-bagian-3.html
Python sebagai salah satu bahasa pemrograman yang handal telah menyediakan library untuk membaca nilai MIB dari suatu manage device, kita akan coba bereksperimen bagaimana python membaca nilai OID dari suatu interface device kemudian menyimpan data traffik interface tadi kedalam database lalu memunculkannya dalam bentuk grafis.
Langkah pertama pastikan library snmp sudah terinstall dengan baik pada server monitoring
root@radius:/home/gigih# apt-get install snmp* Reading package lists... Done Building dependency tree Reading state information... Done libsnmp-python is already the newest version. 0 upgraded, 0 newly installed, 0 to remove and 26 not upgraded. root@radius:/home/gigih#
Langkah kedua identifikasi hirarki MIB yang ada pada sebuah device menggunakan query snmpwalk
root@radius:/home/gigih# /usr/bin/snmpwalk -v2c -c CommunityString 103.3.xxx.xxx | more iso.3.6.1.2.1.1.1.0 = STRING: "XXX" iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.14988.1 iso.3.6.1.2.1.1.3.0 = Timeticks: (19494100) 2 days, 6:09:01.00 iso.3.6.1.2.1.1.4.0 = STRING: "noc@unila.ac.id" iso.3.6.1.2.1.1.5.0 = STRING: "ASXXX" iso.3.6.1.2.1.1.6.0 = STRING: "BBS Unilanet" iso.3.6.1.2.1.1.7.0 = INTEGER: 78 iso.3.6.1.2.1.2.1.0 = INTEGER: 4 iso.3.6.1.2.1.2.2.1.1.13 = INTEGER: 13 iso.3.6.1.2.1.2.2.1.1.14 = INTEGER: 14 iso.3.6.1.2.1.2.2.1.1.15 = INTEGER: 15 iso.3.6.1.2.1.2.2.1.1.16 = INTEGER: 16 iso.3.6.1.2.1.2.2.1.2.13 = STRING: "ether2" iso.3.6.1.2.1.2.2.1.2.14 = STRING: "ASBR-254" iso.3.6.1.2.1.2.2.1.2.15 = STRING: "p2p-Internasional" iso.3.6.1.2.1.2.2.1.2.16 = STRING: "p2p-Domestik" iso.3.6.1.2.1.2.2.1.4.13 = INTEGER: 1500
Setelah hierarki MIB dapat terbaca sempurna, sekarang coba ambil nilai ID dari Interface lalu baca nilai Inoctet yang akan kita monitor life traffik nya
root@radius:/home/gigih# /usr/bin/snmpwalk -v2c -c CommunityString 103.3.xxx.xxx IF-MIB::ifInOctets.15 IF-MIB::ifInOctets.15 = Counter32: 1167579839 root@radius:/home/gigih#
Nilai InOctet yang didapat harus dikonversi untuk mendapatkan nilai utilisasi dalam bentuk bit, saya ambil referensi kalkulasi nilai snmp dari url berikut http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/8141-calculate-bandwidth-snmp.html
How you calculate use depends on how data is presented for what you want to measure. Interface use is the primary measure used for network use. Use this formulas, based on whether the connection you measure is half-duplex or full-duplex. Shared LAN connections tend to be half-duplex, mainly because contention detection requires that a device listen before it transmits. WAN connections are full-duplex because the connection is point-to-point; both devices can transmit and receive at the same time because they know there is only one other device that shares the connection. Because MIB-II variables are stored as counters, you must take two poll cycles and figure the difference between the two (hence, the delta used in the equation).
This explains the variables used in the formulas:
Note: ifSpeed does not accurately reflect the speed of a WAN interface.
For half-duplex media, use this formula for interface use:
Langkah terakhir adalah membuat script python untuk mendapatkan nilai InOctet dan OutOctet lalu mengkonversi ke dalam bit dan menyimpannya kedalam database.
#Script by Gigih Forda Nama, dibuat malam selasa tanggal 10-03-2014 pukul 23:50 WIB import time import datetime now = datetime.datetime.now() jam= now.strftime("%Y-%m-%d %H:%M") import MySQLdb import os in1 = os.popen("/usr/bin/snmpget -Ov -OQ -v2c -c Community 103.3.xxx.xxx IF-MIB::ifInOctets.15").read() out1 = os.popen("/usr/bin/snmpget -Ov -OQ -v2c -c Community 103.3.xxx.xxx IF-MIB::ifOutOctets.15").read() hin=abs(int(in1)) hout = abs(int(out1)) time.sleep (1) in2 = os.popen("/usr/bin/snmpget -Ov -OQ -v2c -c Community 103.3.xxx.xxx IF-MIB::ifInOctets.15").read() out2 = os.popen("/usr/bin/snmpget -Ov -OQ -v2c -c Community 103.3.xxx.xxx IF-MIB::ifOutOctets.15").read() hin2=int(in2) hout2=int(out2) deltain = abs(hin2-hin) #Diset balikan nilai absolute, karena terkadang ada balikan nilai minus deltaout = abs(hout2-hout) #Diset balikan nilai absolute, karena terkadang ada balikan nilai minus bitout = deltaout * 8 mbout = bitout/1000000 bitin = deltain * 8 mbin = bitin/1000000 if mbout < 220: hmbout = mbout if mbin < 220: hmbin = mbin print hmbin, hmbout conn = MySQLdb.connect(host= "localhost", user="root", passwd="SukaSukaSaja", db="snmp") x = conn.cursor() try: x.execute("""INSERT INTO user_bwintl VALUES (%s,%s,%s)""",(now,hmbin,hmbout)) conn.commit() except: conn.rollback() conn.close()
Setelah data berhasil direkam dan masuk database selanjutnya membuat script program plotting gambar dari database;
##By-Gigih-F import matplotlib matplotlib.use('Agg') import Image import MySQLdb as mdb import sys import matplotlib.pyplot as plt import datetime now = datetime.datetime.now() print now #Inisialisasi ke Database conn = mdb.connect('localhost', 'root', 'SukaSukaSaja', 'snmp'); with conn: #Query ke Database MySQL cursor = conn.cursor () cursor.execute ("SELECT user_bwintl.waktu, user_bwintl.in, user_bwintl.out FROM user_bwintl WHERE DATE (waktu) = DATE(NOW()) ") row = cursor.fetchall() print "RESULT:", row[0] waktu, ain, aout=zip(*row) #Fetching setiap row fig = matplotlib.pyplot.gcf() fig.set_size_inches(18.5,10.5) ax = plt.subplot(111) plt.plot(waktu, ain,marker='+',linestyle='-',color='c',label='Total Traffick In',lw=1) #Plotting Traf In plt.plot(waktu, aout,marker='+',linestyle='-',color='g',label='Total Trafick Out',lw=1)#Plotting Traf Out plt.fill_between(waktu, ain,color='c',alpha=.3)#Isi warna grafik plt.fill_between(waktu, aout,color='y',alpha=.7)#Isi warna grafik plt.legend(loc=10) plt.ylabel('Total Bandwidth Usage Link Internasional dalam Mbps') #Label pada sumbu Y plt.xlabel('Waktu') #Label pada sumbu X plt.grid() plt.title(' Bandwidth Usage Link Internasional tgl : [%s] (Credit to RaspberryPi+Python+MySQL)'%(now)) #Judul Grafik plt.savefig('/home/gigih/python/belajar/bwintl.png', dpi=100) #Simpan file dengan judul xxx.png Image.open('/home/gigih/python/belajar/bwintl.png').save('/home/gigih/python/belajar/bwintl.jpg','JPEG')
Dan hasilnya adalah sebagai berikut
lebih lengkapnya dapat dilihat di url berikut, untuk pelaporan live http://noc.unila.ac.id/?page_id=2
Note:
Great Thanks to Bunda Rasya atas inspirasi pemilihan warna grafik
Great Thanks to my beloved son Ahmad Rasya Algifarda yang udah pinjemin meja mainannya 😀
Gelar All England 2014
Meskipun saya tidak nonton secara langsung perhelatan Allengland pasangan Tontowi/Liliyana vs Hiroyuki Endo/Kenichi Hayakawa dan Hendra Setiawan/Mohammad Ahsan vs Zhao Yunlei/Zhang, sebagai warga Indonesia sangat bangga atas torehan gelar juara yg sudah mereka raih, semoga dapat diikuti oleh cabang cabang olahraga lainnya.
Mrogram Part-4 Python-Mikrotik BGP IPv4 Count
Part 4 saya membahas bagaimana python membaca nilai prefix count BGP IPv4 yang diadvertise, lalu menyimpan ke database dan memunculkan data statistik dalam bentuk grafik, hasilnya seperti dibawah
1. Buat File di Mikrotik: /file print file=bgp 2. Buat Script dan Scheduler di Mikrotik: :local first [/ip route print count-only terse]; /file set bgp.txt contents= \ "$first" Buat Scheduler ;;; ipv6 COUNT name="bgp" start-date=jan/02/1970 start-time=05:00:00 interval=1m4s on-event=bgp owner=mahmudsaja policy=reboot,read,write,policy,test,password,sniff,sensitive run-count=12353 next-run=10:36:00 Read more...
Mrogram Part-3 Python Mikrotik IPv4 connection
Part 3 saya membahas bagaimana python membaca nilai IPv4 Firewall Connection count lalu menyimpan ke database dan memunculkan data statistik dalam bentuk grafik, hasilnya seperti dibawah
1. Buat File di Mikrotik: /file print file=ipfirewall 2. Buat Script dan Scheduler di Mikrotik: :local first [/ip ipfirewall connection print count-only brief]; /file set ipfirewall.txt contents= \ " $first " Buat Scheduler ;;; ipfirewall COUNT name="ipfirewall" start-date=jan/02/1970 start-time=05:00:00 interval=1m4s on-event=ipfirewall owner=mahmudsaja policy=reboot,read,write,policy,test,password,sniff,sensitive run-count=12353 next-run=10:36:00 3. Buat Database mysql> show tables; +--------------------+ | Tables_in_mikrotik | +--------------------+ | user_host | | user_sso | user_dnscache | +--------------------+ 2 rows in set (0.00 sec) mysql> CREATE TABLE `user_ipfirewall` ( `waktu` datetime DEFAULT NULL, `ipfirewall` int(40) DEFAULT NULL); Query OK, 0 rows affected (0.13 sec) Read more...
Mrogram Part-2 Python Mikrotik DNS Cache
Part 2 saya membahas bagaimana python membaca nilai DNS Cache count lalu menyimpan ke database dan memunculkan data statistik dalam bentuk grafik, hasilnya seperti dibawah
How To Python and MIkrotik /ip dns cache 1. BUat File di Mikrotik: /file print file=dnscache 2. Buat Script dan Scheduler di Mikrotik: :local first [/ip dnscache print count-only terse]; /file set dnscache.txt contents= \ " $first " Buat Scheduler ;;; dnscache COUNT name="dnscache" start-date=jan/02/1970 start-time=05:00:00 interval=1m4s on-event=dnscache owner=mahmudsaja policy=reboot,read,write,policy,test,password,sniff,sensitive run-count=12353 next-run=10:36:00 3. Buat Database mysql> show tables; +--------------------+ | Tables_in_mikrotik | +--------------------+ | user_host | | user_sso | user_dnscache | +--------------------+ 2 rows in set (0.00 sec) mysql> CREATE TABLE `user_dnscache` ( `waktu` datetime DEFAULT NULL, `dnscache` int(40) DEFAULT NULL); Query OK, 0 rows affected (0.13 sec) 4. Isi Direktori Read more...
Last Comment