Server tidak berkompromi soal koneksi: kartu ethernet dipasang kabel, diberi alamat tetap, dan konfigurasinya harus berdiri sendiri sejak mesin dinyalakan — tanpa desktop, tanpa applet, tanpa campur tangan siapa pun. Kebutuhan itu melahirkan tiga generasi alat konfigurasi yang semuanya masih hidup di lapangan. Pada Chapter ini kita membaca ketiganya, mulai dari /etc/network/interfaces klasik Debian, netplan berbasis YAML di Ubuntu, hingga profil NetworkManager, lalu menutup dengan dua teknik khas server: beberapa alamat dalam satu kartu dan bonding dua kartu untuk redundansi.

Tiga Jalur Konfigurasi #

Ketiga alat tersebut menyelesaikan pekerjaan yang sama — menulis alamat dan rute ke interface pada saat yang tepat — dengan cara penyimpanan yang berbeda:

AlatBerkasCiri
ifupdown/etc/network/interfacesDebian klasik; teks sederhana; service networking
netplan/etc/netplan/*.yamlUbuntu modern; YAML yang diterjemahkan ke backend
NetworkManagerkeyfile di /etc/NetworkManager/system-connections/desktop dan laptop; profil berpindah device

Pilihan di antara ketiganya mengikuti distro dan peran mesin. Debian server dan turunannya memakai ifupdown atau systemd-networkd; Ubuntu sejak 17.10 memakai netplan sebagai lapisan depan; desktop memakai NetworkManager seperti yang kita bedah pada Chapter NetworkManager . Aturan yang tak boleh dilanggar tetap satu: satu interface hanya dikelola satu alat.

Debian Klasik: /etc/network/interfaces #

Format ifupdown terdiri dari stanza — blok yang diawali kata kunci lalu diikuti baris-baris parameter menjorok. Kita pelajari bentuknya lewat salinan:

bash
printf 'auto lo\niface lo inet loopback\n\nallow-hotplug enp3s0\niface enp3s0 inet static\n    address 192.0.2.20\n    netmask 255.255.255.0\n    gateway 192.0.2.1\n    dns-nameservers 192.0.2.53\n' > interfaces
cat interfaces

Output yang Dihasilkan:

text
auto lo
iface lo inet loopback

allow-hotplug enp3s0
iface enp3s0 inet static
    address 192.0.2.20
    netmask 255.255.255.0
    gateway 192.0.2.1
    dns-nameservers 192.0.2.53

Mari kita bedah stanza demi stanza:

  1. auto lo + iface lo inet loopback: interface lo dihidupkan setiap boot; dua baris ini hampir selalu ada dan tidak perlu diubah.
  2. allow-hotplug enp3s0: kartu jaringan dihidupkan saat terdeteksi sistem — untuk PCI builtin, auto enp3s0 (hidup saat boot) sama umumnya; allow-hotplug lebih tepat untuk kartu USB yang bisa dicabut-pasang.
  3. iface enp3s0 inet static: kepala stanza konfigurasi enp3s0; inet menandai keluarga IPv4 dan static memilih metode statis. Mengganti static menjadi dhcp akan memanggil klien DHCP dari Chapter DHCP setiap kali interface naik.
  4. address, netmask, gateway, dns-nameservers: alamat, mask dalam bentuk panjang, gerbang keluar, dan server DNS — padanan persis properti ipv4.* pada NetworkManager.

Perintah ifup enp3s0 menerapkan stanza ini, ifdown enp3s0 melepasnya. Service networking menjalankan ifup untuk semua stanza auto ketika mesin boot — inilah alasan konfigurasi bertahan tanpa interaksi siapa pun.

Netplan di Ubuntu: Konfigurasi YAML #

Netplan tidak menerapkan konfigurasi sendirian; netplan membaca YAML, lalu menerjemahkannya menjadi konfigurasi backend — systemd-networkd untuk server, NetworkManager untuk desktop. Satu berkas umumnya bernama /etc/netplan/01-konfigurasi.yaml:

bash
printf 'network:\n  version: 2\n  ethernets:\n    enp3s0:\n      dhcp4: false\n      addresses: [192.0.2.20/24]\n      routes:\n        - to: default\n          via: 192.0.2.1\n      nameservers:\n        addresses: [192.0.2.53, 198.51.100.53]\n' > 01-konfigurasi.yaml
cat 01-konfigurasi.yaml

Output yang Dihasilkan:

text
network:
  version: 2
  ethernets:
    enp3s0:
      dhcp4: false
      addresses: [192.0.2.20/24]
      routes:
        - to: default
          via: 192.0.2.1
      nameservers:
        addresses: [192.0.2.53, 198.51.100.53]

Struktur YAML-nya perlu dibaca cermat karena indentasi adalah bagian dari bahasa:

  1. network: dan version: 2: setiap berkas netplan diawali versi skema; angka 2 adalah versi yang dipakai semua instalasi modern.
  2. ethernets: lalu enp3s0:: nama interface menjadi kunci; semua pengaturan di bawahnya menjorok dua spasi — satu spasi salah pun membuat YAML tidak terbaca.
  3. dhcp4: false: alamat statis dipilih dengan mematikan DHCP, kebalikan perilaku bawaan netplan yang memakai dhcp4: true.
  4. addresses: [192.0.2.20/24]: daftar alamat dalam format CIDR; tanda kurung siku adalah daftar YAML, dan di sinilah alamat kedua tinggal ditambahkan.
  5. routes: dengan to: default: gateway ditulis sebagai rute menuju default lewat alamat via — netplan tidak punya tombol gateway terpisah.
  6. nameservers:: daftar server DNS yang akan dituliskan ke resolver.

Setelah mengedit, netplan apply menerjemahkan YAML ke backend dan langsung menerapkannya.

Beberapa Alamat dalam Satu Kartu #

Satu interface boleh membawa beberapa alamat sekaligus — kebutuhan yang wajar saat sebuah server melayani beberapa situs atau sedang dipindahkan ke blok alamat baru. Pada netplan, alamat cukup ditambahkan ke daftar: addresses: [192.0.2.20/24, 198.51.100.20/24]. Pada NetworkManager, properti bertambah dengan tanda plus di depannya:

text
nmcli connection modify kantor +ipv4.addresses 198.51.100.20/24
nmcli connection up kantor

Tanda + menambahkan alamat tanpa menghapus yang lama; tanpa tanda itu, nilai properti diganti seluruhnya. Hasil akhirnya terlihat sebagai dua baris inet pada keluaran ip addr show enp3s0.

Bonding: Dua Kabel, Satu Alamat #

Server produksi sering tidak boleh terputus hanya karena satu kabel dicabut atau satu switch mati. Bonding menggabungkan beberapa kartu menjadi satu interface logis — biasanya bernama bond0 — yang memakai satu alamat. Kartu fisik menjadi slave yang bekerja menurut mode bond:

ModeNamaPerilakuButuh dukungan switch
1active-backupsatu kabel aktif, lainnya siaga otomatistidak
4802.3ad (LACP)kecepatan dua kabel digabungya, LACP diaktifkan
0balance-rrpaket dikirim bergilir antar kabelumumnya ya
5balance-tlblalu lintas keluar dibagi, masuk lewat satu kabeltidak

Mode active-backup adalah pilihan aman tanpa persyaratan di sisi switch, sehingga mode itu paling sering dipakai untuk redundansi murni. Bentuknya dalam ifupdown:

bash
printf 'auto bond0\niface bond0 inet static\n    address 192.0.2.30\n    netmask 255.255.255.0\n    gateway 192.0.2.1\n    bond-slaves enp3s0 enp4s0\n    bond-mode active-backup\n    bond-miimon 100\n' > interfaces-bonding
cat interfaces-bonding

Output yang Dihasilkan:

text
auto bond0
iface bond0 inet static
    address 192.0.2.30
    netmask 255.255.255.0
    gateway 192.0.2.1
    bond-slaves enp3s0 enp4s0
    bond-mode active-backup
    bond-miimon 100

Dua baris terakhir adalah intinya: bond-slaves mendaftarkan kedua kartu fisik ke dalam bond, dan bond-mode active-backup memilih satu aktif dengan siaga. bond-miimon 100 memerintahkan kernel memeriksa tautan tiap 100 milidetik — ketika kabel aktif dicabut, alih-alih putus, kartu siaga mengambil alih dalam sekejap mata dan alamat 192.0.2.30 tidak pernah berpindah.

Konfigurasi yang tertulis rapi, tentu, bukan jaminan berjalan mulus — kabel longgar, driver rewel, dan DNS keliru tetap datang tanpa mengirim pesan. Chapter berikutnya menyusun siasat sistematis untuk memburu masalah itu lapis demi lapis.

Referensi lanjut: wiki Debian NetworkConfiguration untuk ifupdown dan alternatifnya, dokumentasi netplan di Ubuntu untuk skema YAML lengkap, serta panduan bonding di kernel untuk detail tiap mode.