Ethernet Bonding di FreeBSD 6.2 (Catatan pribadi lagi)

Kriiing…kriing….kriing. Halo pa, akses ke web servernya ko lambat ya? Perasaan kemarin-kemarin ga gini-gini amat. Oia, pa, kata saya berkata pada bapa di seberang telepon sana. Soalnya semua user sedang mengakses web server kita, akibatnya akses menjadi lambat…., harap bersabar ya pa. Hhhmmff, memang koneksi lambat bikin kesel semua orang, bukan hanya kita tapi anda juga pun pastinya tidak merasa nyaman dengan koneksi yang lambat bukan? Bagaimana tidak lambat sebanyak ± 70 pc mengakses web server secara bersamaan. So pasti trafficnya jadi padat, betul ga?

Trus kepikiran gimana caranya supaya server bisa melayani client dengan cepat. Salah satu opsinya adalah server dipasang dengan gigabit ethernet, tapi setelah dipikir-pikir, kalo clientnya masih pake fast ethernet dan switch yang ada belum mendukung gigabit ethernet, maka resikonya akan terjadi bottle neck. Berarti tidak cocok, lalu apa lagi ya? Browsing-browsing, ternyata mendaratlah di situs yang menerangkan mengenai ethernet bonding. Lalu apa itu ethernet bonding.Ok, penjelasannya setelah ini ya.

Bonding merupakan suatu cara untuk menggabungkan secara logika beberapa interface jaringan menjadi satu. Dengan kata lain, kita akan menggabungkan beberapa bandwith ke dalam satu koneksi. Jadi jika kita menggabungkan dua interface jaringan gigabit, maka sama dengan memiliki satu buah interface jaringan dengan kecepatan 2 gigabit.

Penerapan bonding dapat disesuaikan dengan kebutuhan dalam jaringan anda karena ada beberapa opsi dalam bonding yaitu :

  • Round robin (mode=0 atau balance-rr)

Mengirim paket secara berurutan mulai dari interface jaringan pertama sampai terakhir.

  • active back-up (mode=1 atau active-backup)

hanya satu interface jaringan yang aktif dan interface jaringan yang lain akan aktif bila yang sebelumnya aktif menjadi non aktif.

  • balance XOR (mode=2 atau balance-xor)

Mengirimkan paket berdasarkan metode alamat MAC asal XOR alama MAC tujuan.

  • broadcast (mode=3 atau broadcast)

Mengirimkan paket ke semua interface jaringan

  • IEEE Dynamic link (mode=4 atau 802.3ad)

Merupakan gabungan dari kelompok yang saling berbagi kecepatan dan konfigurasi duplex yang sama berdasarkan spesifikasi 802.3ad.

  • adaptive transmit (mode=5 atau balance-tlb)

Tidak membutuhkan dukungan switch khusus karena jalur keluar disebarkan berdasarkan beban terkini pada tiap interface jaringan. Sedangkan, jalur masuk diterima oleh interface jaringan tersebut. Jika penerimaan interface jaringan tersebut gagal, maka alamat MAC-nya akan diambil alih oleh interface jaringan yang lain.

  • Adaptive (mode=6 atau balance-alb)

Merupakan balance-tlb, namun ditambah dengan received load balancing (rlb) untuk jalur Ipv4. Received load balancing didapat melalui negoisasi ARP.

 

Teorinya cukup segitu dulu ya, untuk lebih lanjutnya silahkan baca-baca lagi dari berbagai sumber. Ok, kalau begitu sekarang kita coba praktekkan teori di atas yuk…

Sebelum dimulai, ada baiknya anda menyiapkan dulu kebutuhan-kebutuhan untuk percobaan ini. Kebutuhan tersebut terdiri dari :

PC yang telah terinstall FreeBSD (di sini saya menggunakan FreeBSD 6.2)

Module netgraph

3 buah ethernet card (saya menggunakan ethernet card sis, realtek dan 3com, beda-beda, soalnya adanya cuma ini dan semuanya sudah 100 basetT)

Baiklah apabila kebutuhan dasar tersebut sudah terpenuhi, maka selanjutnya kita langsung menghadap ke unix box kita yuk…

 

1. konfigurasi ip pada salah satu ethernet saja

ryan# ee /etc/rc.conf

ifconfig_sis0=”inet 192.168.0.5 netmask=255.255.255.0”

defaultrouter=”192.168.0.1”

gateway_enable=”YES”

setelah itu save lah file tersebut.

2. cek modul netgraph

ryan# kldstat –v | grep ng_ether

apabila tidak muncul apapun berarti modul ng_ether anda belum aktif.

3. aktifkan modul netgraph

ryan# kldload ng_ether.ko

ryan# kldstat –v | grep ng_ether

4. aktifkan modul setiap pc anda dinyalakan

ryan# ee /boot/loader.conf

ng_ether_load=”YES”

setelah itu save file tersebut.

5. aktifkan semua ethernet anda

ryan# ifconfig sis0 up

ryan# ifconfig xl0 up

ryan# ifconfig rl0 up

6. build main hook pada interface sis0

ryan# ngctl mkpeer sis0:one2many upper one

7. sambungkan ke interface slave-nya

ryan# ngctl connect sis0: sis0:upper lower many0

ryan# ngctl connect xl0: sis0:upper lower many1

ryan# ngctl connect rl0: sis0:upper lower many2

8. konfigurasikan supaya interface xl0 dan rl0 menerima atau mengirim frames dari interface sis0

ryan# ngctl msg xl0: setpromisc 1

ryan# ngctl msg rl0: setpromisc 1

ryan# ngctl msg xl0: setautosrc 0

ryan# ngctl msg rl0: setautosrc 0

9. menghubungkan ketiga link tersebut

ryan# ngctl msg sis0:upper setconfig “{ xmitAlg=1 failAlg=1 enabledLinks=[1 1 1 ]}”

10. cek output dari setiap ethernet anda dengan menggunakan ifstat. Apabila ifstat belum terinstall, anda bisa mendapatkannya di http://fresh.t-systems-sfr.com/cgi-bin/warex?unix/privat/ifstat-1.1.tar.bz2.

ryan# /usr/local/bin/ifstat –b

sis0 xl0 rl0

Kbps in Kbps out Kbps in Kbps out Kbps in Kbps out

11.52 342.71 11.57 354.52 14.44 354.52

18.03 519.94 21.67 508.12 13.49 508.12

24.40 509.79 25.80 522.01 7.41 532.70

1355.15 76.66 1466.47 76.50 877.55 75.04

798.47 104.59 811.04 105.38 938.53 93.60

1889.17 75.43 2455.01 76.64 1361.68 77.05

1406.39 55.97 1400.52 55.16 1195.61 54.35

538.15 21.87 480.42 21.48 462.12 22.70

834.13 33.69 946.06 33.67 558.71 33.67

1003.25 112.13 1242.95 100.36 859.71 111.74

1506.70 112.59 1399.24 126.02 1199.89 123.97

725.11 30.30 799.10 29.49 538.18 31.13

1678.79 67.40 1832.11 69.03 1465.40 67.40

1480.40 58.57 1567.28 59.38 1302.05 59.38

1813.96 74.99 2180.42 75.80 1584.18 75.38

1435.41 61.11 1735.21 61.50 1404.71 64.36

1704.24 118.48 1572.85 132.42 1288.11 129.05

1108.14 45.02 1120.03 44.21 916.31 45.44

955.11 38.33 1012.74 38.33 780.33 38.74

1330.50 59.40 1786.44 60.21 1184.52 60.61

1102.56 56.40 2100.16 55.99 846.40 54.77

1412.14 160.05 2015.78 165.73 1159.32 176.71

 

Hehehehe, dari output tersebut terlihat bahwasannya beban terbagi ke 3 ethernet yang sudah kita konfigurasi tadi. Jadinya server dapat melayani client dengan lebih cepat.

 

11. Sekarang yang perlu kita lakukan adalah mengkonfigurasi supaya ethernet bonding ini dapat berfungsi setipa komputer dinyalakan ataupun ketika pc direstart.

ryan# ee /etc/rc.local

# pastikan untuk menghidupkan setiap interface

/sbin/ifconfig sis0 up

/sbin/ifconfig xl0 up

/sbin/ifconfig rl0 up

 

# interface many

/usr/sbin/ngctl mkpeer sis0: one2many upper one

/usr/sbin/ngctl connect sis0: sis0:upper lower many0

/usr/sbin/ngctl connect xl0: sis0:upper lower many1

/usr/sbin/ngctl connect rl0: sis0:upper lower many2

 

# menerima atau mengirim frames

/usr/sbin/ngctl msg xl0: setpromisc 1

/usr/sbin/ngctl msg rl0: setpromisc 1

/usr/sbin/ngctl msg xl0: setautosrc 0

/usr/sbin/ngctl msg rl0: setautosrc 0

 

# menghubungkan ketika link tersebut

/usr/sbin/ngctl msg sis0:upper setconfig “{ xmitAlg=1 failAlg=1 enabledLinks=[1 1 1 ]}”

 

setelah itu save file tersebut.

 

Ok, sepertinya cukup sekian untuk manual kali ini. Apabila terdapat banyak kesalahan dan kekurangan mohon untuk segera dikoreksi. Maklumlah soalnya saya masih harus banyak belajar. Sekian dulu dari saya ya, sampai jumpa di manual yang lainnya. Bye.

 

Referensi :

1. Majalah info linux edisi Oktober 2007, hal 50. Ethernet Bonding dengan Fedora Core 7

2. http://209.85.175.104/search?q=cache:CHQ7Ju-lNooJ:elektro.unila.ac.id/~ardi/index2.php%3Foption%3Dcom_content%26do_pdf%3D1%26id%3D51+ethernet+bonding+di+freebsd&hl=id&ct=clnk&cd=3&gl=id&client=firefox-a

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: