TDCTF Academy Logo TDCTF ACADEMY

Netplan Static IP

Cheat sheet lengkap untuk konfigurasi IP statis di Ubuntu menggunakan Netplan.


Apa itu Netplan?

Netplan adalah utilitas konfigurasi jaringan modern untuk Linux, khususnya Ubuntu (mulai 17.10). Netplan membaca konfigurasi dari file YAML di /etc/netplan/ dan menerjemahkannya ke backend:

  • networkd - bawaan systemd, ringan, cocok untuk server
  • NetworkManager - cocok untuk desktop/laptop dengan koneksi dinamis

Netplan adalah pengganti /etc/network/interfaces (ifupdown) yang sudah legacy.


Lokasi File

/etc/netplan/
├── 01-netcfg.yaml # file utama (nama bisa berbeda)
├── 50-cloud-init.yaml # dibuat cloud-init (VPS)
└── 99-custom.yaml # custom user

Urutan: File diproses secara alfabetis. Konfigurasi digabung, nilai yang sama akan di-override oleh file terakhir.


Format YAML - Anatomi Konfigurasi

network:
version: 2
renderer: networkd # atau NetworkManager
ethernets:
nama_interface:
dhcp4: true/false
addresses:
- 192.168.1.100/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
search:
- local.domain

Field Penting

Key Fungsi
version Wajib 2
renderer networkd (server) / NetworkManager (desktop)
dhcp4 true atau false
addresses List IP + CIDR (192.168.1.100/24)
routes Default gateway / route static
nameservers DNS server & search domain

️ Contoh 1: Static IP + Gateway + DNS

/etc/netplan/01-static.yaml
network:
version: 2
renderer: networkd
ethernets:
ens160:
dhcp4: false
addresses:
- 192.168.1.100/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses:
- 1.1.1.1
- 8.8.8.8

️ Contoh 2: Dual NIC (Static + DHCP)

/etc/netplan/02-dual.yaml
network:
version: 2
renderer: networkd
ethernets:
ens160: # NIC 1 - Static
dhcp4: false
addresses:
- 10.0.0.10/24
routes:
- to: 10.0.1.0/24
via: 10.0.0.1
ens192: # NIC 2 - DHCP
dhcp4: true

️ Contoh 3: WiFi + Ethernet Beda Subnet

/etc/netplan/03-wifi-eth.yaml
network:
version: 2
renderer: NetworkManager # Wajib NetworkManager untuk WiFi
ethernets:
eth0:
dhcp4: true
wifis:
wlp2s0:
access-points:
"MyWiFi":
password: "supersecret"
dhcp4: true
addresses:
- 192.168.10.50/24

Catatan: WiFi hanya bekerja dengan renderer NetworkManager.


Apply Konfigurasi

# Uji konfigurasi (dry-run - tidak apply)
sudo netplan try

# Apply konfigurasi
sudo netplan apply

# Apply dengan debug (lihat error detail)
sudo netplan --debug apply

# Generate konfigurasi backend tanpa apply
sudo netplan generate

💡 Rekomendasi: Selalu netplan try dulu. Jika koneksi putus, akan rollback otomatis dalam 120 detik.


Troubleshooting

Masalah: YAML Indentasi Salah

Netplan sangat strict dengan indentasi YAML. Error umum:

** (generate:1234): WARNING **: Problem encountered while validating default route

Solusi: Gunakan 2 spasi per indentasi, jangan tab. Validasi YAML:

python3 -c "import yaml; yaml.safe_load(open('/etc/netplan/01-static.yaml'))"

Masalah: Renderer Conflict

Jika ada file YAML yang menggunakan networkd dan file lain NetworkManager, error:

Error: conflicting renderer

Solusi: Pastikan semua file pakai renderer yang sama, atau hapus file yang tidak perlu.

Masalah: networkd vs NetworkManager

  • networkd - lebih cepat, cocok server, tidak support WiFi
  • NetworkManager - support WiFi, roaming, cocok laptop

Jika butuh WiFi, gunakan renderer: NetworkManager.

Masalah: Nama Interface Berubah

Di Ubuntu modern, nama interface seperti ens160, enp0s3, wlx... (Predictable Network Interface Names).

Cek nama interface:

ip link show
# atau
ip addr
# atau
nmcli device status

Fallback: Revert ke DHCP

Jika IP statis bermasalah dan ingin kembali ke DHCP:

/etc/netplan/fallback.yaml
network:
version: 2
renderer: networkd
ethernets:
ens160:
dhcp4: true
sudo netplan apply

Atau jika SSH terputus, minta akses console/out-of-band, lalu edit file.


Testing & Verifikasi

# Cek IP address
ip addr show ens160

# Cek routing table
ip route show
# atau legacy
route -n

# Cek DNS
resolvectl status
# atau
systemd-resolve --status

# Ping gateway
ping -c 3 192.168.1.1

# Ping internet
ping -c 3 8.8.8.8

# Cek DNS resolve
nslookup google.com
# atau
dig google.com

Bonding & Bridging (Dasar)

/etc/netplan/bonding.yaml
network:
version: 2
renderer: networkd
ethernets:
ens160:
dhcp4: false
ens161:
dhcp4: false
bonds:
bond0:
interfaces: [ens160, ens161]
parameters:
mode: 802.3ad # LACP (mode 4)
mii-monitor-interval: 100
addresses:
- 10.0.0.50/24
routes:
- to: default
via: 10.0.0.1

Bridge (Virtual Switch)

/etc/netplan/bridge.yaml
network:
version: 2
renderer: networkd
ethernets:
ens160:
dhcp4: false
bridges:
br0:
interfaces: [ens160]
addresses:
- 192.168.1.100/24
routes:
- to: default
via: 192.168.1.1
parameters:
stp: true
forward-delay: 4

Ringkasan Perintah

Perintah Fungsi
sudo netplan apply Apply konfigurasi
sudo netplan try Uji coba (rollback 120 detik)
sudo netplan --debug apply Apply dengan debug
sudo netplan generate Generate backend config
sudo netplan get Lihat config saat ini (YAML)
ip addr show Lihat IP address
ip route show Lihat routing table
resolvectl status Lihat DNS resolver

💡 Tips: Simpan konfigurasi lama (cp /etc/netplan/*.yaml ~/backup/) sebelum mengubah, agar mudah dikembalikan.

PADA HALAMAN INI