<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>Haidhi Wiki  - Recent changes [en]</title>
		<link>https://wiki.haidhi.my.id/wiki/index.php/Special:RecentChanges</link>
		<description>Track the most recent changes to the wiki in this feed.</description>
		<language>en</language>
		<generator>MediaWiki 1.43.0</generator>
		<lastBuildDate>Sun, 01 Nov 2026 21:40:54 GMT</lastBuildDate>
		<item>
			<title>Cara install OKD</title>
			<link>https://wiki.haidhi.my.id/wiki/index.php?title=Cara_install_OKD&amp;diff=888&amp;oldid=0</link>
			<guid isPermaLink="false">https://wiki.haidhi.my.id/wiki/index.php?title=Cara_install_OKD&amp;diff=888&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;OKD&amp;#039;&amp;#039;&amp;#039; adalah distribusi Kubernetes komunitas (upstream dari Red Hat OpenShift). Halaman ini mencatat langkah lengkap memasang &amp;#039;&amp;#039;&amp;#039;OKD Single Node (SNO)&amp;#039;&amp;#039;&amp;#039; sebagai satu VM di Proxmox VE, memakai &amp;#039;&amp;#039;&amp;#039;Agent-based Installer&amp;#039;&amp;#039;&amp;#039;, untuk keperluan cluster dev.   == Ringkasan == {| class=&amp;quot;wikitable&amp;quot; ! Item !! Nilai |- | Versi OKD || &amp;lt;code&amp;gt;5.0.0-okd-scos.3&amp;lt;/code&amp;gt; (stable) |- | OS node || CentOS Stream CoreOS (SCOS), ter-bake di ISO |- | Metode install || Agent-based Installer, t...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;OKD&amp;#039;&amp;#039;&amp;#039; adalah distribusi Kubernetes komunitas (upstream dari Red Hat OpenShift). Halaman ini mencatat langkah lengkap memasang &amp;#039;&amp;#039;&amp;#039;OKD Single Node (SNO)&amp;#039;&amp;#039;&amp;#039; sebagai satu VM di Proxmox VE, memakai &amp;#039;&amp;#039;&amp;#039;Agent-based Installer&amp;#039;&amp;#039;&amp;#039;, untuk keperluan cluster dev.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ringkasan ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Item !! Nilai&lt;br /&gt;
|-&lt;br /&gt;
| Versi OKD || &amp;lt;code&amp;gt;5.0.0-okd-scos.3&amp;lt;/code&amp;gt; (stable)&lt;br /&gt;
|-&lt;br /&gt;
| OS node || CentOS Stream CoreOS (SCOS), ter-bake di ISO&lt;br /&gt;
|-&lt;br /&gt;
| Metode install || Agent-based Installer, topologi SNO&lt;br /&gt;
|-&lt;br /&gt;
| Hypervisor || Proxmox VE, standalone node &amp;lt;code&amp;gt;node-3&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Bridge jaringan || &amp;lt;code&amp;gt;vmbr3&amp;lt;/code&amp;gt; (LAB) → subnet &amp;lt;code&amp;gt;192.168.90.0/24&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Gateway || &amp;lt;code&amp;gt;192.168.90.1&amp;lt;/code&amp;gt; (MikroTik)&lt;br /&gt;
|-&lt;br /&gt;
| VM bastion (DNS) || &amp;lt;code&amp;gt;192.168.90.29&amp;lt;/code&amp;gt;, AlmaLinux, dnsmasq&lt;br /&gt;
|-&lt;br /&gt;
| VM OKD (node) || &amp;lt;code&amp;gt;192.168.90.30&amp;lt;/code&amp;gt;, hostname &amp;lt;code&amp;gt;okd-sno&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Cluster / base domain || &amp;lt;code&amp;gt;okd&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;lab.local&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Mesin kerja || Arch Linux (edit config + generate ISO)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Memilih topologi ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;SNO (1 node)&amp;#039;&amp;#039;&amp;#039;: paling hemat resource, cocok untuk dev. Tidak ada HA, dan &amp;#039;&amp;#039;&amp;#039;tidak bisa&amp;#039;&amp;#039;&amp;#039; dikonversi ke cluster HA setelah terpasang.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Compact cluster (3 node)&amp;#039;&amp;#039;&amp;#039;: ketiga node jadi master sekaligus worker. Lebih mirip production, tetap punya quorum etcd.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;2 node&amp;#039;&amp;#039;&amp;#039;: OKD punya topologi &amp;#039;&amp;#039;two-node with fencing&amp;#039;&amp;#039; (butuh BMC, tidak cocok untuk VM Proxmox) dan &amp;#039;&amp;#039;two control plane + arbiter&amp;#039;&amp;#039; (tetap 3 mesin, salah satunya arbiter kecil). Untuk lab, praktis pilih SNO atau 3 node.&lt;br /&gt;
&lt;br /&gt;
Dipilih &amp;#039;&amp;#039;&amp;#039;SNO&amp;#039;&amp;#039;&amp;#039; supaya resource host tetap lega untuk VM lain.&lt;br /&gt;
&lt;br /&gt;
== Arsitektur ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Arch Linux (laptop) ──WireGuard──► Proxmox (vmbr0, 192.168.11.x)&lt;br /&gt;
   │  generate ISO&lt;br /&gt;
   ▼&lt;br /&gt;
Proxmox vmbr3 (LAB, 192.168.90.0/24)&lt;br /&gt;
   ├── VM bastion  192.168.90.29  → dnsmasq (DNS cluster)&lt;br /&gt;
   └── VM OKD SNO  192.168.90.30  → seluruh cluster OKD&lt;br /&gt;
          ▲&lt;br /&gt;
   gateway MikroTik 192.168.90.1 → internet (quay.io)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Kenapa butuh bastion di dalam vmbr3?&amp;#039;&amp;#039;&amp;#039; Host Proxmox tidak punya IP di &amp;lt;code&amp;gt;vmbr3&amp;lt;/code&amp;gt;, dan laptop berada di jaringan lain (lewat WireGuard). Node OKD harus bisa menjangkau DNS-nya, jadi DNS diletakkan di VM yang satu subnet dengan node.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Bastion&amp;#039;&amp;#039;&amp;#039; hanyalah istilah untuk mesin pembantu yang mengurus cluster (tempat &amp;lt;code&amp;gt;oc&amp;lt;/code&amp;gt;, DNS, dsb.). DNS ini harus &amp;#039;&amp;#039;&amp;#039;tetap hidup selama cluster hidup&amp;#039;&amp;#039;&amp;#039;, bukan hanya saat install, karena node memakai nama &amp;lt;code&amp;gt;api-int&amp;lt;/code&amp;gt; untuk komunikasi internal.&lt;br /&gt;
&lt;br /&gt;
== Kebutuhan resource ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! VM !! vCPU !! RAM !! Disk&lt;br /&gt;
|-&lt;br /&gt;
| OKD SNO || 16 || 32 GB || 150 GB&lt;br /&gt;
|-&lt;br /&gt;
| Bastion (AlmaLinux minimal) || 1–2 || 1–2 GB || 10–20 GB&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Catatan:&lt;br /&gt;
* Spesifikasi minimal SNO di dokumentasi sekitar 8 vCPU / 16 GB, tapi 32 GB lebih nyaman.&lt;br /&gt;
* Di Proxmox, pemakaian RAM VM OKD terlihat sekitar 27 GiB saat install. Angka itu termasuk page cache dan tanpa guest agent, jadi lebih besar dari pemakaian riil. Cek angka asli dengan &amp;lt;code&amp;gt;oc adm top node&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Langkah 1: Siapkan binary di mesin kerja ==&lt;br /&gt;
Binary diambil dari GitHub Releases proyek OKD: &amp;lt;code&amp;gt;https://github.com/okd-project/okd/releases&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Pilih rilis &amp;#039;&amp;#039;&amp;#039;stable&amp;#039;&amp;#039;&amp;#039; (tanpa label &amp;#039;&amp;#039;Pre-release&amp;#039;&amp;#039; dan tanpa &amp;lt;code&amp;gt;ec&amp;lt;/code&amp;gt; di namanya).&lt;br /&gt;
* Download &amp;lt;code&amp;gt;openshift-install-linux-&amp;amp;lt;tag&amp;amp;gt;.tar.gz&amp;lt;/code&amp;gt; dan &amp;lt;code&amp;gt;openshift-client-linux-&amp;amp;lt;tag&amp;amp;gt;.tar.gz&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
TAG=&amp;lt;tag-stable&amp;gt;&lt;br /&gt;
BASE=https://github.com/okd-project/okd/releases/download/$TAG&lt;br /&gt;
curl -LO $BASE/openshift-install-linux-$TAG.tar.gz&lt;br /&gt;
curl -LO $BASE/openshift-client-linux-$TAG.tar.gz&lt;br /&gt;
&lt;br /&gt;
tar xzf openshift-install-linux-$TAG.tar.gz openshift-install&lt;br /&gt;
tar xzf openshift-client-linux-$TAG.tar.gz oc kubectl&lt;br /&gt;
sudo mv openshift-install oc kubectl /usr/local/bin/&lt;br /&gt;
&lt;br /&gt;
openshift-install version&lt;br /&gt;
oc version --client&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Penting:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;oc&amp;lt;/code&amp;gt; &amp;#039;&amp;#039;&amp;#039;wajib&amp;#039;&amp;#039;&amp;#039; ada di &amp;lt;code&amp;gt;$PATH&amp;lt;/code&amp;gt;, karena &amp;lt;code&amp;gt;openshift-install&amp;lt;/code&amp;gt; memanggilnya saat membuat ISO.&lt;br /&gt;
&lt;br /&gt;
Binary &amp;lt;code&amp;gt;openshift-install&amp;lt;/code&amp;gt; terkunci ke satu rilis, jadi versi OKD yang terpasang sama dengan versi binary.&lt;br /&gt;
&lt;br /&gt;
Install juga &amp;lt;code&amp;gt;nmstate&amp;lt;/code&amp;gt; (menyediakan &amp;lt;code&amp;gt;nmstatectl&amp;lt;/code&amp;gt;, dipakai untuk validasi IP statis):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
yay -S nmstate      # Arch (AUR)&lt;br /&gt;
nmstatectl --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Buat SSH key kalau belum ada:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh-keygen -t ed25519 -N &amp;quot;&amp;quot;&lt;br /&gt;
cat ~/.ssh/id_ed25519.pub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Langkah 2: Buat VM bastion (AlmaLinux) ==&lt;br /&gt;
AlmaLinux dipilih karena stabil dan support-nya panjang. Fedora kurang cocok untuk server yang hidup lama (siklus rilis cepat); CentOS Stream lebih sering berubah.&lt;br /&gt;
&lt;br /&gt;
Setelan VM di Proxmox:&lt;br /&gt;
* Bridge &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;vmbr3&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;, NIC VirtIO.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;CPU type &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; (lihat bagian Troubleshooting: kernel panic).&lt;br /&gt;
* RAM minimal 2 GB saat instalasi.&lt;br /&gt;
* Options → &amp;#039;&amp;#039;&amp;#039;Start at boot&amp;#039;&amp;#039;&amp;#039; aktif.&lt;br /&gt;
&lt;br /&gt;
=== Kunci IP statis ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
nmcli -t -f NAME,DEVICE con show&lt;br /&gt;
sudo nmcli con mod ens18 ipv4.method manual \&lt;br /&gt;
  ipv4.addresses 192.168.90.29/24 ipv4.gateway 192.168.90.1 \&lt;br /&gt;
  ipv4.dns &amp;quot;192.168.90.29&amp;quot;&lt;br /&gt;
sudo nmcli con up ens18&lt;br /&gt;
sudo hostnamectl set-hostname marshall-okd-bastion&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
DNS bastion diarahkan ke &amp;#039;&amp;#039;&amp;#039;dnsmasq miliknya sendiri&amp;#039;&amp;#039;&amp;#039; (&amp;lt;code&amp;gt;192.168.90.29&amp;lt;/code&amp;gt;), bukan ke DNS publik. Kalau tidak, bastion tidak bisa resolve &amp;lt;code&amp;gt;api.okd.lab.local&amp;lt;/code&amp;gt; dan &amp;lt;code&amp;gt;wait-for&amp;lt;/code&amp;gt; tidak bisa memantau install.&lt;br /&gt;
&lt;br /&gt;
Pastikan IP bastion dan IP node berada &amp;#039;&amp;#039;&amp;#039;di luar pool DHCP&amp;#039;&amp;#039;&amp;#039; MikroTik. Cek tanpa mengubah apa pun:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/ip pool print&lt;br /&gt;
/ip dhcp-server lease print&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cek IP node masih kosong:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ping -c2 192.168.90.30          # harus gagal&lt;br /&gt;
ip neigh | grep 192.168.90.30   # kosong atau FAILED&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Langkah 3: DNS dengan dnsmasq ==&lt;br /&gt;
OKD membutuhkan tiga record:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Record !! Fungsi&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;api.okd.lab.local&amp;lt;/code&amp;gt; || API cluster (port 6443), dipakai &amp;lt;code&amp;gt;oc&amp;lt;/code&amp;gt; dan installer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;api-int.okd.lab.local&amp;lt;/code&amp;gt; || API internal, dipakai node dan komponen cluster&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;*.apps.okd.lab.local&amp;lt;/code&amp;gt; || Ingress: web console, OAuth, dan semua aplikasi&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Di SNO, ketiganya mengarah ke IP node.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo dnf install -y dnsmasq bind-utils&lt;br /&gt;
sudo tee /etc/dnsmasq.d/okd.conf &amp;lt;&amp;lt;&amp;#039;EOF&amp;#039;&lt;br /&gt;
listen-address=192.168.90.29&lt;br /&gt;
bind-interfaces&lt;br /&gt;
server=1.1.1.1&lt;br /&gt;
server=8.8.8.8&lt;br /&gt;
address=/api.okd.lab.local/192.168.90.30&lt;br /&gt;
address=/api-int.okd.lab.local/192.168.90.30&lt;br /&gt;
address=/apps.okd.lab.local/192.168.90.30&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Penjelasan:&lt;br /&gt;
* &amp;lt;code&amp;gt;server=&amp;lt;/code&amp;gt; adalah DNS upstream untuk nama di luar cluster (quay.io, dll.). dnsmasq hanya menjadi klien ke server itu, tidak mengubah konfigurasi router.&lt;br /&gt;
* &amp;lt;code&amp;gt;address=/apps.okd.lab.local/...&amp;lt;/code&amp;gt; otomatis mencakup semua subdomain (wildcard).&lt;br /&gt;
* &amp;lt;code&amp;gt;listen-address&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;bind-interfaces&amp;lt;/code&amp;gt; membuat dnsmasq hanya mendengarkan di IP tersebut, sehingga tidak bentrok dengan resolver lain.&lt;br /&gt;
&lt;br /&gt;
Pastikan folder &amp;lt;code&amp;gt;.d&amp;lt;/code&amp;gt; terbaca:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
grep -n conf-dir /etc/dnsmasq.conf&lt;br /&gt;
# kalau tidak ada / masih dikomentari:&lt;br /&gt;
echo &amp;#039;conf-dir=/etc/dnsmasq.d/,*.conf&amp;#039; | sudo tee -a /etc/dnsmasq.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jalankan dan uji:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo dnsmasq --test&lt;br /&gt;
sudo systemctl enable --now dnsmasq&lt;br /&gt;
sudo firewall-cmd --add-service=dns --permanent &amp;amp;&amp;amp; sudo firewall-cmd --reload&lt;br /&gt;
sudo ss -lntup | grep &amp;#039;:53&amp;#039;&lt;br /&gt;
dig +short api.okd.lab.local @192.168.90.29    # → 192.168.90.30&lt;br /&gt;
dig +short quay.io @192.168.90.29              # harus ada jawaban&lt;br /&gt;
getent hosts api.okd.lab.local                 # dari bastion sendiri&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Langkah 4: install-config.yaml ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
apiVersion: v1&lt;br /&gt;
baseDomain: lab.local&lt;br /&gt;
metadata:&lt;br /&gt;
  name: okd&lt;br /&gt;
compute:&lt;br /&gt;
- name: worker&lt;br /&gt;
  replicas: 0&lt;br /&gt;
controlPlane:&lt;br /&gt;
  name: master&lt;br /&gt;
  replicas: 1&lt;br /&gt;
networking:&lt;br /&gt;
  networkType: OVNKubernetes&lt;br /&gt;
  machineNetwork:&lt;br /&gt;
  - cidr: 192.168.90.0/24&lt;br /&gt;
  clusterNetwork:&lt;br /&gt;
  - cidr: 10.128.0.0/14&lt;br /&gt;
    hostPrefix: 23&lt;br /&gt;
  serviceNetwork:&lt;br /&gt;
  - 172.30.0.0/16&lt;br /&gt;
platform:&lt;br /&gt;
  none: {}&lt;br /&gt;
pullSecret: &amp;#039;{&amp;quot;auths&amp;quot;:{&amp;quot;fake&amp;quot;:{&amp;quot;auth&amp;quot;:&amp;quot;aWQ6cGFzcwo=&amp;quot;}}}&amp;#039;&lt;br /&gt;
sshKey: &amp;#039;ssh-ed25519 AAAA... (isi ~/.ssh/id_ed25519.pub)&amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Catatan:&lt;br /&gt;
* &amp;lt;code&amp;gt;platform: none&amp;lt;/code&amp;gt; dipakai karena Proxmox tidak punya integrasi native.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Pull secret dummy&amp;#039;&amp;#039;&amp;#039; (&amp;lt;code&amp;gt;id:pass&amp;lt;/code&amp;gt; dalam base64) cukup untuk OKD, karena image diambil dari &amp;lt;code&amp;gt;quay.io/okd&amp;lt;/code&amp;gt; yang publik. Pull secret asli Red Hat hanya perlu untuk OpenShift atau image dari &amp;lt;code&amp;gt;registry.redhat.io&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Langkah 5: agent-config.yaml ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
apiVersion: v1alpha1&lt;br /&gt;
kind: AgentConfig&lt;br /&gt;
metadata:&lt;br /&gt;
  name: okd&lt;br /&gt;
rendezvousIP: 192.168.90.30&lt;br /&gt;
hosts:&lt;br /&gt;
- hostname: okd-sno&lt;br /&gt;
  role: master&lt;br /&gt;
  interfaces:&lt;br /&gt;
  - name: eth0&lt;br /&gt;
    macAddress: BC:24:11:00:00:30&lt;br /&gt;
  networkConfig:&lt;br /&gt;
    interfaces:&lt;br /&gt;
    - name: eth0&lt;br /&gt;
      type: ethernet&lt;br /&gt;
      state: up&lt;br /&gt;
      mac-address: BC:24:11:00:00:30&lt;br /&gt;
      ipv4:&lt;br /&gt;
        enabled: true&lt;br /&gt;
        dhcp: false&lt;br /&gt;
        address:&lt;br /&gt;
        - ip: 192.168.90.30&lt;br /&gt;
          prefix-length: 24&lt;br /&gt;
    dns-resolver:&lt;br /&gt;
      config:&lt;br /&gt;
        server:&lt;br /&gt;
        - 192.168.90.29&lt;br /&gt;
    routes:&lt;br /&gt;
      config:&lt;br /&gt;
      - destination: 0.0.0.0/0&lt;br /&gt;
        next-hop-address: 192.168.90.1&lt;br /&gt;
        next-hop-interface: eth0&lt;br /&gt;
        table-id: 254&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Catatan:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;MAC address ditentukan sendiri&amp;#039;&amp;#039;&amp;#039;, lalu dipasang manual di NIC VM. Installer mencocokkan IP statis ke VM berdasarkan MAC.&lt;br /&gt;
* Aturan MAC: oktet pertama harus genap di digit keduanya (unicast). Prefix &amp;lt;code&amp;gt;BC:24:11&amp;lt;/code&amp;gt; adalah prefix Proxmox.&lt;br /&gt;
* Nama interface &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt; hanya label; pencocokan dilakukan lewat MAC.&lt;br /&gt;
&lt;br /&gt;
== Langkah 6: Generate ISO ==&lt;br /&gt;
ISO &amp;#039;&amp;#039;&amp;#039;tidak didownload&amp;#039;&amp;#039;&amp;#039;, melainkan dibuat oleh &amp;lt;code&amp;gt;openshift-install&amp;lt;/code&amp;gt; dari dua YAML di atas. File YAML akan &amp;#039;&amp;#039;&amp;#039;dikonsumsi&amp;#039;&amp;#039;&amp;#039; (dihapus) saat generate, jadi simpan backup.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/okd&lt;br /&gt;
mkdir -p ~/okd-backup &amp;amp;&amp;amp; cp install-config.yaml agent-config.yaml ~/okd-backup/&lt;br /&gt;
rm -rf cluster &amp;amp;&amp;amp; mkdir cluster&lt;br /&gt;
cp install-config.yaml agent-config.yaml cluster/&lt;br /&gt;
openshift-install agent create image --dir cluster --log-level=info&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hasil: &amp;lt;code&amp;gt;cluster/agent.x86_64.iso&amp;lt;/code&amp;gt;, plus &amp;lt;code&amp;gt;cluster/auth/&amp;lt;/code&amp;gt; (kubeconfig dan password kubeadmin).&lt;br /&gt;
&lt;br /&gt;
* Tidak ada progress bar saat &amp;lt;code&amp;gt;Downloading base ISO&amp;lt;/code&amp;gt;; tunggu sampai prompt kembali.&lt;br /&gt;
* Warning &amp;lt;code&amp;gt;Failed to extract base ISO from release payload&amp;lt;/code&amp;gt; tidak fatal; installer jatuh ke jalur download.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Setiap perubahan IP/DNS/MAC wajib generate ulang ISO&amp;#039;&amp;#039;&amp;#039;, karena konfigurasi ter-bake di dalamnya.&lt;br /&gt;
&lt;br /&gt;
Salin folder &amp;lt;code&amp;gt;cluster/&amp;lt;/code&amp;gt; ke bastion supaya &amp;lt;code&amp;gt;wait-for&amp;lt;/code&amp;gt; dan &amp;lt;code&amp;gt;oc&amp;lt;/code&amp;gt; bisa dijalankan dari sana.&lt;br /&gt;
&lt;br /&gt;
== Langkah 7: Buat VM OKD di Proxmox ==&lt;br /&gt;
Upload ISO lewat UI Proxmox (storage → ISO Images → Upload), lalu Create VM:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Tab !! Setelan !! Alasan&lt;br /&gt;
|-&lt;br /&gt;
| General || Start at boot || Cluster ikut hidup saat host reboot&lt;br /&gt;
|-&lt;br /&gt;
| OS || ISO &amp;lt;code&amp;gt;agent.x86_64.iso&amp;lt;/code&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| System || Machine &amp;lt;code&amp;gt;q35&amp;lt;/code&amp;gt;, BIOS SeaBIOS || q35 chipset modern (opsional, i440fx juga bisa). Kalau OVMF, matikan Secure Boot&lt;br /&gt;
|-&lt;br /&gt;
| Disks || VirtIO SCSI single, 150 GB, SSD, &amp;#039;&amp;#039;&amp;#039;Discard&amp;#039;&amp;#039;&amp;#039; + &amp;#039;&amp;#039;&amp;#039;SSD emulation&amp;#039;&amp;#039;&amp;#039; || Discard (TRIM) mengembalikan ruang thin-provisioned ke host; opsional&lt;br /&gt;
|-&lt;br /&gt;
| CPU || 1 socket, 16 core, type &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;Wajib.&amp;#039;&amp;#039;&amp;#039; SCOS butuh instruksi CPU modern; tipe default bisa memicu crash&lt;br /&gt;
|-&lt;br /&gt;
| Memory || 32768 MB, &amp;#039;&amp;#039;&amp;#039;Ballooning off&amp;#039;&amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;Penting.&amp;#039;&amp;#039;&amp;#039; Kubernetes mengasumsikan RAM tetap; balloon bisa memicu OOM/eviction&lt;br /&gt;
|-&lt;br /&gt;
| Network || Bridge &amp;lt;code&amp;gt;vmbr3&amp;lt;/code&amp;gt;, VirtIO, MAC &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;BC:24:11:00:00:30&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; || Harus sama persis dengan agent-config.yaml&lt;br /&gt;
|-&lt;br /&gt;
| Options → Boot Order || &amp;lt;code&amp;gt;scsi0&amp;lt;/code&amp;gt; di atas CD-ROM || Setelah install, node boot dari disk, bukan installer lagi&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Langkah 8: Install dan pantau ==&lt;br /&gt;
Start VM. Di Console Proxmox, tanda awal yang benar:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ens18: 192.168.90.30&lt;br /&gt;
Ignition: user-provided config was applied&lt;br /&gt;
This host (192.168.90.30) is the rendezvous host.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Urutan yang terlihat:&lt;br /&gt;
# &amp;lt;code&amp;gt;Waiting for services&amp;lt;/code&amp;gt; → service installer naik satu per satu.&lt;br /&gt;
# &amp;lt;code&amp;gt;Installation cannot proceed: Cluster status: insufficient&amp;lt;/code&amp;gt; → sementara, validasi host belum selesai.&lt;br /&gt;
# &amp;lt;code&amp;gt;Cluster installation in progress&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &amp;lt;code&amp;gt;Writing image to disk&amp;lt;/code&amp;gt; 0–100%, lalu node reboot dari disk.&lt;br /&gt;
# Log &amp;lt;code&amp;gt;crio-... libcrun container&amp;lt;/code&amp;gt; berulang → container cluster dinyalakan (normal).&lt;br /&gt;
# &amp;lt;code&amp;gt;Finished bootkube.service&amp;lt;/code&amp;gt; → bootstrap selesai.&lt;br /&gt;
&lt;br /&gt;
Pantau dari bastion:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~/okd&lt;br /&gt;
openshift-install agent wait-for bootstrap-complete --dir cluster --log-level=info&lt;br /&gt;
openshift-install agent wait-for install-complete --dir cluster --log-level=info&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Pesan &amp;lt;code&amp;gt;cluster bootstrap did not complete&amp;lt;/code&amp;gt; tepat setelah &amp;#039;&amp;#039;Writing image to disk: 100%&amp;#039;&amp;#039; bisa muncul karena &amp;lt;code&amp;gt;wait-for&amp;lt;/code&amp;gt; kehilangan kontak saat node reboot dari ISO ke disk. Jalankan ulang &amp;lt;code&amp;gt;wait-for&amp;lt;/code&amp;gt; (aman, tidak mengganggu installer).&lt;br /&gt;
* Install aktual memakan sekitar &amp;#039;&amp;#039;&amp;#039;1 jam&amp;#039;&amp;#039;&amp;#039; (cluster &amp;lt;code&amp;gt;Available&amp;lt;/code&amp;gt; sekitar 09:15 dari mulai 08:11).&lt;br /&gt;
&lt;br /&gt;
Cek status langsung:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export KUBECONFIG=~/okd/cluster/auth/kubeconfig&lt;br /&gt;
curl -k https://api.okd.lab.local:6443/version&lt;br /&gt;
oc get clusterversion&lt;br /&gt;
oc get co&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install sukses bila &amp;lt;code&amp;gt;clusterversion&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;Available=True&amp;lt;/code&amp;gt; dan semua cluster operator &amp;lt;code&amp;gt;Available=True, Progressing=False, Degraded=False&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Langkah 9: Akses web console ==&lt;br /&gt;
Password:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat ~/okd/cluster/auth/kubeadmin-password&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Console tidak bisa dibuka lewat &amp;lt;code&amp;gt;IP:port&amp;lt;/code&amp;gt;, karena router OKD memilih tujuan berdasarkan &amp;#039;&amp;#039;&amp;#039;nama host&amp;#039;&amp;#039;&amp;#039;. Di mesin yang menjalankan browser, tambahkan ke &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
192.168.90.30 api.okd.lab.local console-openshift-console.apps.okd.lab.local oauth-openshift.apps.okd.lab.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Buka &amp;lt;code&amp;gt;https://console-openshift-console.apps.okd.lab.local&amp;lt;/code&amp;gt;, login sebagai &amp;lt;code&amp;gt;kubeadmin&amp;lt;/code&amp;gt;. Peringatan sertifikat (self-signed) normal.&lt;br /&gt;
&lt;br /&gt;
Mesin itu juga harus bisa menjangkau &amp;lt;code&amp;gt;192.168.90.0/24&amp;lt;/code&amp;gt; (misalnya lewat route WireGuard atau &amp;lt;code&amp;gt;sshuttle&amp;lt;/code&amp;gt; via bastion).&lt;br /&gt;
&lt;br /&gt;
Tes router tanpa browser:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -kI --resolve console-openshift-console.apps.okd.lab.local:443:192.168.90.30 \&lt;br /&gt;
  https://console-openshift-console.apps.okd.lab.local&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Langkah 10: Setelah install ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Snapshot VM OKD&amp;#039;&amp;#039;&amp;#039; selagi bersih.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Lepas ISO&amp;#039;&amp;#039;&amp;#039; dari VM OKD (CD/DVD → Do not use any media).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Autostart dan urutan boot&amp;#039;&amp;#039;&amp;#039;: bastion order 1, OKD order 2, beri jeda start.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Simpan &amp;lt;code&amp;gt;cluster/auth/&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; di tempat aman.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Storage class&amp;#039;&amp;#039;&amp;#039;: cluster baru di &amp;lt;code&amp;gt;platform: none&amp;lt;/code&amp;gt; belum punya storage dinamis; PVC akan Pending sampai dipasang NFS / local-path / LVMS. Cek dengan &amp;lt;code&amp;gt;oc get sc&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Image registry&amp;#039;&amp;#039;&amp;#039; (dev): &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oc patch configs.imageregistry.operator.openshift.io cluster --type merge \&lt;br /&gt;
  --patch &amp;#039;{&amp;quot;spec&amp;quot;:{&amp;quot;managementState&amp;quot;:&amp;quot;Managed&amp;quot;,&amp;quot;storage&amp;quot;:{&amp;quot;emptyDir&amp;quot;:{}}}}&amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; (emptyDir: isi hilang saat pod restart, hanya untuk dev.)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Keamanan&amp;#039;&amp;#039;&amp;#039;: jangan publikasikan console, OAuth, dan API ke internet selama masih memakai &amp;lt;code&amp;gt;kubeadmin&amp;lt;/code&amp;gt;. Ganti dengan user admin biasa lewat OAuth.&lt;br /&gt;
&lt;br /&gt;
== Publish aplikasi dengan domain sendiri (rencana) ==&lt;br /&gt;
Alur: &amp;lt;code&amp;gt;Internet → MikroTik NAT → nginx → router OKD (192.168.90.30:80) → app&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Route dengan domain sendiri:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oc create route edge myapp --service=myapp \&lt;br /&gt;
  --hostname=app.domainku.com --insecure-policy=Allow&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nginx (TLS di nginx, teruskan header Host):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
location / {&lt;br /&gt;
    proxy_pass http://192.168.90.30:80;&lt;br /&gt;
    proxy_set_header Host $host;&lt;br /&gt;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
    proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tes sisi OKD: &amp;lt;code&amp;gt;curl -sI -H &amp;quot;Host: app.domainku.com&amp;quot; http://192.168.90.30&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting (yang benar-benar terjadi) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Gejala !! Penyebab !! Solusi&lt;br /&gt;
|-&lt;br /&gt;
| dnsmasq &amp;lt;code&amp;gt;start-limit-hit&amp;lt;/code&amp;gt;, log: &amp;lt;code&amp;gt;failed to create listening socket for port 53: Address already in use&amp;lt;/code&amp;gt; || Config di &amp;lt;code&amp;gt;/etc/dnsmasq.d/&amp;lt;/code&amp;gt; tidak terbaca (Arch tidak mengaktifkan &amp;lt;code&amp;gt;conf-dir&amp;lt;/code&amp;gt;), dnsmasq bind ke semua alamat dan bentrok dengan dnsmasq libvirt di &amp;lt;code&amp;gt;virbr0&amp;lt;/code&amp;gt; || Tambahkan &amp;lt;code&amp;gt;conf-dir=/etc/dnsmasq.d/,*.conf&amp;lt;/code&amp;gt;; gunakan &amp;lt;code&amp;gt;listen-address&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;bind-interfaces&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;exec: &amp;quot;nmstatectl&amp;quot;: executable file not found in $PATH&amp;lt;/code&amp;gt; || Paket nmstate belum terpasang || &amp;lt;code&amp;gt;yay -S nmstate&amp;lt;/code&amp;gt;, atau jalankan installer di container Fedora&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;exec: &amp;quot;oc&amp;quot;: executable file not found in $PATH&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;oc&amp;lt;/code&amp;gt; belum diekstrak/di-PATH || Ekstrak &amp;lt;code&amp;gt;openshift-client&amp;lt;/code&amp;gt;, pindahkan ke &amp;lt;code&amp;gt;/usr/local/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Node tidak bisa menjangkau DNS di laptop || Laptop (192.168.83.x, WiFi) tidak bisa dijangkau dari jaringan Proxmox (laptop masuk via WireGuard) || Pindahkan DNS ke VM bastion di &amp;lt;code&amp;gt;vmbr3&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Kernel panic AlmaLinux: &amp;lt;code&amp;gt;Attempted to kill init! exitcode=0x00007f00&amp;lt;/code&amp;gt; || CPU type default Proxmox menyembunyikan instruksi x86-64-v2/v3 yang dibutuhkan Alma 9/10 || Ubah Processor → Type &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;wait-for&amp;lt;/code&amp;gt; stuck lama di &amp;lt;code&amp;gt;Waiting for cluster install to initialize. Sleeping for 30 seconds&amp;lt;/code&amp;gt; || Bastion tidak bisa resolve &amp;lt;code&amp;gt;api.okd.lab.local&amp;lt;/code&amp;gt; (DNS bastion ke 1.1.1.1). Cluster sebenarnya sudah jadi || Arahkan DNS bastion ke dnsmasq-nya (&amp;lt;code&amp;gt;192.168.90.29&amp;lt;/code&amp;gt;) atau tambah &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;. Cek dengan &amp;lt;code&amp;gt;getent hosts api.okd.lab.local&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Console tidak terbuka di laptop || Nama &amp;lt;code&amp;gt;*.apps&amp;lt;/code&amp;gt; tidak dikenal, atau subnet 192.168.90.x tidak terjangkau || Tambah &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;, pastikan route ke 192.168.90.0/24&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Perintah debug yang berguna:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh core@192.168.90.30&lt;br /&gt;
sudo journalctl -b -f&lt;br /&gt;
sudo crictl ps&lt;br /&gt;
tail -n 60 ~/okd/cluster/.openshift_install.log&lt;br /&gt;
openshift-install agent wait-for bootstrap-complete --dir cluster --log-level=debug&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referensi ==&lt;br /&gt;
* [https://docs.okd.io/latest/installing/overview/ OKD installation overview]&lt;br /&gt;
* [https://docs.okd.io/4.21/installing/installing_sno/install-sno-preparing-to-install-sno.html Preparing to install OKD on a single node]&lt;br /&gt;
* [https://docs.okd.io/4.22/installing/installing_two_node_cluster/about-two-node-arbiter-installation.html OKD two control plane + arbiter]&lt;br /&gt;
* [https://okd.io/blog/2025/05/14/okd-4.19-and-4.20-release OKD 4.19 / 4.20 release (transisi ke SCOS)]&lt;br /&gt;
* [https://github.com/okd-project/okd/releases OKD releases (GitHub)]&lt;/div&gt;</description>
			<pubDate>Wed, 28 Oct 2026 04:17:44 GMT</pubDate>
			<dc:creator>SanzSkuy</dc:creator>
			<comments>https://wiki.haidhi.my.id/wiki/index.php/Talk:Cara_install_OKD</comments>
		</item>
		<item>
			<title>DevOps</title>
			<link>https://wiki.haidhi.my.id/wiki/index.php?title=DevOps&amp;diff=887&amp;oldid=872</link>
			<guid isPermaLink="false">https://wiki.haidhi.my.id/wiki/index.php?title=DevOps&amp;diff=887&amp;oldid=872</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 04:17, 28 October 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot;&gt;Line 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Cara buat monitoring server pake Grafana &amp;amp; Prometheus]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Cara buat monitoring server pake Grafana &amp;amp; Prometheus]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Deploy app bare-metal]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Deploy app bare-metal]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [[Cara install OKD]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Microk8s ==  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Microk8s ==  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Microk8s: setup awal]]  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Microk8s: setup awal]]  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Microk8s: setup registry]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Microk8s: setup registry]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Wed, 28 Oct 2026 04:17:00 GMT</pubDate>
			<dc:creator>SanzSkuy</dc:creator>
			<comments>https://wiki.haidhi.my.id/wiki/index.php/Talk:DevOps</comments>
		</item>
		<item>
			<title>Main Page</title>
			<link>https://wiki.haidhi.my.id/wiki/index.php?title=Main_Page&amp;diff=886&amp;oldid=871</link>
			<guid isPermaLink="false">https://wiki.haidhi.my.id/wiki/index.php?title=Main_Page&amp;diff=886&amp;oldid=871</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:57, 26 October 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l36&quot;&gt;Line 36:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 36:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Tedja, H. A., &amp;amp; Onno W. Purbo. (2024). Performance and Efficiency Comparison of U-Net and Ghost U-Net in Road Crack Segmentation with Floating Point and Quantization Optimization. Jurnal RESTI (Rekayasa Sistem Dan Teknologi Informasi), 8(6), 779 - 787. https://doi.org/10.29207/resti.v8i6.6089&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Tedja, H. A., &amp;amp; Onno W. Purbo. (2024). Performance and Efficiency Comparison of U-Net and Ghost U-Net in Road Crack Segmentation with Floating Point and Quantization Optimization. Jurnal RESTI (Rekayasa Sistem Dan Teknologi Informasi), 8(6), 779 - 787. https://doi.org/10.29207/resti.v8i6.6089&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Angkawijana Tedja, H. (2026). A Smartphone Is a Better Compute Node Than a Legacy Laptop: A Feasibility Study of an MPI × OpenCL Cluster Across x86 Laptops and an Android Phone. Zenodo. https://doi.org/10.5281/zenodo.21351608&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Angkawijana Tedja, H. (2026). A Smartphone Is a Better Compute Node Than a Legacy Laptop: A Feasibility Study of an MPI × OpenCL Cluster Across x86 Laptops and an Android Phone. Zenodo. https://doi.org/10.5281/zenodo.21351608&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Tedja, H. A. (2025). Perbandingan Metode Vektorisasi Teks dan Algoritma Pembelajaran Mesin Klasik untuk Klasifikasi Teks Bahasa Arab. Journal of Computer and Information Systems Ampera, 7(3), 207–219. https://doi.org/10.51519/journalcisa.v7i3.793&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== CV ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== CV ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Mon, 26 Oct 2026 09:57:51 GMT</pubDate>
			<dc:creator>SanzSkuy</dc:creator>
			<comments>https://wiki.haidhi.my.id/wiki/index.php/Talk:Main_Page</comments>
		</item>
		<item>
			<title>Mikrotik 5: Bridge VLAN Filtering</title>
			<link>https://wiki.haidhi.my.id/wiki/index.php?title=Mikrotik_5:_Bridge_VLAN_Filtering&amp;diff=885&amp;oldid=0</link>
			<guid isPermaLink="false">https://wiki.haidhi.my.id/wiki/index.php?title=Mikrotik_5:_Bridge_VLAN_Filtering&amp;diff=885&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;== Tujuan == * Paham kapan cukup memakai VLAN interface di port, dan kapan butuh bridge VLAN filtering. * Paham tiga bagian bridge VLAN filtering: PVID, tabel VLAN, dan VLAN interface di atas bridge. * Bisa membuat access port, trunk ke switch, dan trunk ke server. * Bisa men-debug konfigurasi VLAN lewat CLI.  == Konsep ==  === Router sebagai switch VLAN === * &amp;#039;&amp;#039;&amp;#039;Part 4 (router-on-a-stick)&amp;#039;&amp;#039;&amp;#039;: VLAN diurus switch. Router hanya menerima satu kabel trunk. * &amp;#039;&amp;#039;&amp;#039;Part 5&amp;#039;&amp;#039;&amp;#039;: ro...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Tujuan ==&lt;br /&gt;
* Paham kapan cukup memakai VLAN interface di port, dan kapan butuh bridge VLAN filtering.&lt;br /&gt;
* Paham tiga bagian bridge VLAN filtering: PVID, tabel VLAN, dan VLAN interface di atas bridge.&lt;br /&gt;
* Bisa membuat access port, trunk ke switch, dan trunk ke server.&lt;br /&gt;
* Bisa men-debug konfigurasi VLAN lewat CLI.&lt;br /&gt;
&lt;br /&gt;
== Konsep ==&lt;br /&gt;
&lt;br /&gt;
=== Router sebagai switch VLAN ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Part 4 (router-on-a-stick)&amp;#039;&amp;#039;&amp;#039;: VLAN diurus switch. Router hanya menerima satu kabel trunk.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Part 5&amp;#039;&amp;#039;&amp;#039;: router &amp;#039;&amp;#039;&amp;#039;sendiri&amp;#039;&amp;#039;&amp;#039; menjadi switch VLAN. Setiap port bisa menjadi access atau trunk, dan router sekaligus menjadi gateway setiap VLAN.&lt;br /&gt;
&lt;br /&gt;
=== Kapan butuh bridge? ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Situasi !! Pakai&lt;br /&gt;
|-&lt;br /&gt;
| Satu port membawa beberapa VLAN, dan setiap VLAN hanya ada di port itu || &amp;#039;&amp;#039;&amp;#039;VLAN interface langsung di port&amp;#039;&amp;#039;&amp;#039; (cara Part 4, paling simpel)&lt;br /&gt;
|-&lt;br /&gt;
| Satu VLAN tersebar di &amp;#039;&amp;#039;&amp;#039;beberapa port&amp;#039;&amp;#039;&amp;#039; router || &amp;#039;&amp;#039;&amp;#039;Bridge + VLAN filtering&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Port-port hanya bisa &amp;quot;disambung&amp;quot; menjadi satu segmen lewat bridge ([[Belajar MikroTik Part 3|Part 3]]). Begitu port-port berada dalam satu bridge, cara memisahkan VLAN-nya adalah bridge VLAN filtering.&lt;br /&gt;
&lt;br /&gt;
Analogi: VLAN interface di port = satu pipa dibagi beberapa jalur. Bridge VLAN filtering = gedung dengan banyak pintu, setiap pintu diberi label &amp;quot;khusus staff&amp;quot; atau &amp;quot;khusus tamu&amp;quot;, dan pintu berlabel sama tetap tersambung satu sama lain.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;VLAN yang sudah dipakai di satu port tetap bisa dipakai di port lain.&amp;#039;&amp;#039;&amp;#039; Justru itu gunanya: VLAN 10 bisa ada di &amp;lt;code&amp;gt;ether2&amp;lt;/code&amp;gt; dan &amp;lt;code&amp;gt;ether3&amp;lt;/code&amp;gt; sekaligus, dan semua perangkatnya tetap satu network.&lt;br /&gt;
&lt;br /&gt;
=== Tiga bagian + satu saklar ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! # !! Bagian !! Menu !! Fungsi&lt;br /&gt;
|-&lt;br /&gt;
| 1 || &amp;#039;&amp;#039;&amp;#039;PVID&amp;#039;&amp;#039;&amp;#039; || Bridge → Ports || Frame &amp;#039;&amp;#039;&amp;#039;polos&amp;#039;&amp;#039;&amp;#039; yang masuk dari port ini dianggap milik VLAN berapa. Ini yang membuat port menjadi access port.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || &amp;#039;&amp;#039;&amp;#039;Tabel VLAN&amp;#039;&amp;#039;&amp;#039; || Bridge → VLANs || Untuk setiap VLAN: port mana yang menjadi anggota, dan frame yang &amp;#039;&amp;#039;&amp;#039;keluar&amp;#039;&amp;#039;&amp;#039; dikirim tagged atau untagged. Ini daftar VLAN yang boleh lewat trunk.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || &amp;#039;&amp;#039;&amp;#039;VLAN interface di atas bridge&amp;#039;&amp;#039;&amp;#039; || Interfaces → VLAN || Gateway Layer 3. Bridge sendiri harus menjadi anggota &amp;#039;&amp;#039;&amp;#039;tagged&amp;#039;&amp;#039;&amp;#039; di setiap VLAN (&amp;quot;port internal&amp;quot; ke otak router).&lt;br /&gt;
|-&lt;br /&gt;
| 4 || &amp;#039;&amp;#039;&amp;#039;Saklar &amp;lt;code&amp;gt;vlan-filtering&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; || Bridge → Bridge → tab VLAN || Selama mati, semua aturan VLAN diabaikan. &amp;#039;&amp;#039;&amp;#039;Nyalakan paling akhir.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Frame Types&amp;#039;&amp;#039;&amp;#039; di Bridge → Ports:&lt;br /&gt;
* Access port: &amp;lt;code&amp;gt;admit-only-untagged-and-priority-tagged&amp;lt;/code&amp;gt; (frame bertag dari PC dibuang).&lt;br /&gt;
* Trunk port: &amp;lt;code&amp;gt;admit-only-vlan-tagged&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Peringatan&amp;#039;&amp;#039;&amp;#039;: mengaktifkan &amp;lt;code&amp;gt;vlan-filtering&amp;lt;/code&amp;gt; saat terhubung ke router lewat port anggota bridge bisa memutus koneksi Winbox. Di router produksi, selalu nyalakan &amp;#039;&amp;#039;&amp;#039;Safe Mode&amp;#039;&amp;#039;&amp;#039; dulu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
              ┌──────────── CHR ─────────────┐&lt;br /&gt;
              │  vlan10 … vlan70 (gateway)    │  ← Layer 3&lt;br /&gt;
              │        │ tagged               │&lt;br /&gt;
              │   ┌─ bridge-vlan ──────┐      │  ← &amp;quot;switch&amp;quot;&lt;br /&gt;
              │   │ ether2-4  access   │      │&lt;br /&gt;
              │   │ ether5-6  trunk    │      │&lt;br /&gt;
              │   └────────────────────┘      │&lt;br /&gt;
              │ ether1 (WAN, di luar bridge)  │&lt;br /&gt;
              └───────────────────────────────┘&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pemakaian di dunia nyata ===&lt;br /&gt;
Di lab PC dicolok langsung ke port router agar sederhana. Di dunia nyata, port router biasanya tersambung ke:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Port !! Tipe !! Tersambung ke !! Keterangan&lt;br /&gt;
|-&lt;br /&gt;
| ether2 || access 10 || Switch ruangan staff || Switch biasa (bahkan unmanaged). Semua yang dicolok otomatis VLAN 10.&lt;br /&gt;
|-&lt;br /&gt;
| ether3 || trunk 10, 20 || Access point || Dua SSID: &amp;lt;code&amp;gt;Kantor&amp;lt;/code&amp;gt; (VLAN 10) dan &amp;lt;code&amp;gt;Kantor-Tamu&amp;lt;/code&amp;gt; (VLAN 20). Satu kabel, dua jaringan.&lt;br /&gt;
|-&lt;br /&gt;
| ether4 || trunk 10, 20, 30 || Server Proxmox || VM ditempatkan di VLAN mana pun lewat satu kabel.&lt;br /&gt;
|-&lt;br /&gt;
| ether5 || access 30 || Switch CCTV || Semua kamera terkurung di VLAN 30.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Di kantor besar, router sering hanya memakai 1–2 port trunk ke switch inti. Switch MikroTik (CRS) dikonfigurasi dengan &amp;#039;&amp;#039;&amp;#039;cara yang sama persis&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Homelab&amp;#039;&amp;#039;&amp;#039;: pola ini juga populer di rumah, misalnya VLAN keluarga, VLAN lab/server, VLAN IoT (smart TV, CCTV murah), dan VLAN tamu. Ingat: VLAN saja tidak mengisolasi, karena router tetap me-routing antar VLAN. Isolasi dibutuhkan lewat firewall ([[Belajar MikroTik Part 6|Part 6]]).&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&lt;br /&gt;
=== Topologi ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                         [NAT]&lt;br /&gt;
                           │ ether1 (WAN)&lt;br /&gt;
                         [CHR]  ── bridge-vlan&lt;br /&gt;
   ether2    ether3    ether4        ether5                 ether6&lt;br /&gt;
   VLAN10    VLAN10    VLAN20     trunk 30+40           trunk 50+60+70&lt;br /&gt;
     │         │         │            │                      │&lt;br /&gt;
  Staff1    Staff2     Tamu       [Switch1]              [Proxmox]&lt;br /&gt;
                                  /       \             eth0.50/.60/.70&lt;br /&gt;
                              PC-30      PC-40&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! VLAN !! Subnet !! Gateway !! Lokasi&lt;br /&gt;
|-&lt;br /&gt;
| 10 || &amp;lt;code&amp;gt;172.16.10.0/24&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;.1&amp;lt;/code&amp;gt; || ether2, ether3 (access)&lt;br /&gt;
|-&lt;br /&gt;
| 20 || &amp;lt;code&amp;gt;172.16.20.0/24&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;.1&amp;lt;/code&amp;gt; || ether4 (access)&lt;br /&gt;
|-&lt;br /&gt;
| 30, 40 || &amp;lt;code&amp;gt;172.16.30.0/24&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;172.16.40.0/24&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;.1&amp;lt;/code&amp;gt; || ether5 (trunk ke switch)&lt;br /&gt;
|-&lt;br /&gt;
| 50, 60, 70 || &amp;lt;code&amp;gt;172.16.50.0/24&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.60.&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.70.&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;.1&amp;lt;/code&amp;gt; || ether6 (trunk ke server)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
PC memakai container &amp;lt;code&amp;gt;lab-ubuntu&amp;lt;/code&amp;gt; (lihat [[Belajar MikroTik Lampiran: Linux Networking|lampiran Linux]]) atau VPCS.&lt;br /&gt;
&lt;br /&gt;
=== 0. Persiapan ===&lt;br /&gt;
* Host: &amp;lt;code&amp;gt;virsh net-start default&amp;lt;/code&amp;gt; dan aturan &amp;lt;code&amp;gt;DOCKER-USER&amp;lt;/code&amp;gt; ([[Belajar MikroTik Part 1|Part 1]]).&lt;br /&gt;
* Project baru, identity, NAT masquerade di &amp;lt;code&amp;gt;ether1&amp;lt;/code&amp;gt;, DNS Allow Remote Requests ([[Belajar MikroTik Part 4|Part 4]]).&lt;br /&gt;
* Backup: snapshot GNS3 atau &amp;lt;code&amp;gt;/export file=...&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== 1. Access port (ether2–ether4) ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Bridge&amp;#039;&amp;#039;&amp;#039;: Bridge → Bridge → New, Name &amp;lt;code&amp;gt;bridge-vlan&amp;lt;/code&amp;gt;, &amp;#039;&amp;#039;&amp;#039;VLAN Filtering belum dicentang&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ports&amp;#039;&amp;#039;&amp;#039;: Bridge → Ports → New&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Interface !! PVID !! Frame Types&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ether2&amp;lt;/code&amp;gt; || 10 || admit only untagged and priority tagged&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ether3&amp;lt;/code&amp;gt; || 10 || admit only untagged and priority tagged&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ether4&amp;lt;/code&amp;gt; || 20 || admit only untagged and priority tagged&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Tabel VLAN&amp;#039;&amp;#039;&amp;#039;: Bridge → VLANs → New&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! VLAN IDs !! Tagged !! Untagged&lt;br /&gt;
|-&lt;br /&gt;
| 10 || &amp;lt;code&amp;gt;bridge-vlan&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;ether2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ether3&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 20 || &amp;lt;code&amp;gt;bridge-vlan&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;ether4&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Gateway&amp;#039;&amp;#039;&amp;#039;: VLAN interface di &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;bridge-vlan&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; (bukan di port fisik), IP, dan DHCP per VLAN.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Saklar&amp;#039;&amp;#039;&amp;#039;: Bridge → Bridge → &amp;lt;code&amp;gt;bridge-vlan&amp;lt;/code&amp;gt; → tab VLAN → centang &amp;#039;&amp;#039;&amp;#039;VLAN Filtering&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== 2. Trunk ke switch (ether5, VLAN 30 + 40) ===&lt;br /&gt;
Switch GNS3: port 0 &amp;lt;code&amp;gt;dot1q&amp;lt;/code&amp;gt; (ke &amp;lt;code&amp;gt;ether5&amp;lt;/code&amp;gt;), port 1 &amp;lt;code&amp;gt;access 30&amp;lt;/code&amp;gt; (PC-30), port 2 &amp;lt;code&amp;gt;access 40&amp;lt;/code&amp;gt; (PC-40).&lt;br /&gt;
&lt;br /&gt;
Di router:&lt;br /&gt;
* Bridge → Ports: &amp;lt;code&amp;gt;ether5&amp;lt;/code&amp;gt;, Frame Types &amp;#039;&amp;#039;&amp;#039;admit only VLAN tagged&amp;#039;&amp;#039;&amp;#039;, PVID dibiarkan default.&lt;br /&gt;
* Bridge → VLANs: VLAN 30 dan 40, Tagged &amp;lt;code&amp;gt;bridge-vlan&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;ether5&amp;lt;/code&amp;gt;, Untagged kosong.&lt;br /&gt;
* VLAN interface &amp;lt;code&amp;gt;vlan30&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;vlan40&amp;lt;/code&amp;gt; di &amp;lt;code&amp;gt;bridge-vlan&amp;lt;/code&amp;gt;, IP, DHCP.&lt;br /&gt;
&lt;br /&gt;
Access port menerima frame &amp;#039;&amp;#039;&amp;#039;polos&amp;#039;&amp;#039;&amp;#039; dan memakai PVID untuk menentukan VLAN. Trunk menerima frame &amp;#039;&amp;#039;&amp;#039;bertag&amp;#039;&amp;#039;&amp;#039; karena VLAN-nya sudah tertulis di tag.&lt;br /&gt;
&lt;br /&gt;
=== 3. Trunk ke server (ether6, VLAN 50 + 60 + 70) ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface bridge port add bridge=bridge-vlan interface=ether6 frame-types=admit-only-vlan-tagged&lt;br /&gt;
&lt;br /&gt;
/interface bridge vlan&lt;br /&gt;
add bridge=bridge-vlan vlan-ids=50 tagged=bridge-vlan,ether6&lt;br /&gt;
add bridge=bridge-vlan vlan-ids=60 tagged=bridge-vlan,ether6&lt;br /&gt;
add bridge=bridge-vlan vlan-ids=70 tagged=bridge-vlan,ether6&lt;br /&gt;
&lt;br /&gt;
/interface vlan&lt;br /&gt;
add name=vlan50 interface=bridge-vlan vlan-id=50&lt;br /&gt;
add name=vlan60 interface=bridge-vlan vlan-id=60&lt;br /&gt;
add name=vlan70 interface=bridge-vlan vlan-id=70&lt;br /&gt;
&lt;br /&gt;
/ip address&lt;br /&gt;
add address=172.16.50.1/24 interface=vlan50 comment=VLAN50-proxmox&lt;br /&gt;
add address=172.16.60.1/24 interface=vlan60 comment=VLAN60-proxmox&lt;br /&gt;
add address=172.16.70.1/24 interface=vlan70 comment=VLAN70-proxmox&lt;br /&gt;
&lt;br /&gt;
/ip pool&lt;br /&gt;
add name=pool50 ranges=172.16.50.100-172.16.50.200&lt;br /&gt;
add name=pool60 ranges=172.16.60.100-172.16.60.200&lt;br /&gt;
add name=pool70 ranges=172.16.70.100-172.16.70.200&lt;br /&gt;
&lt;br /&gt;
/ip dhcp-server network&lt;br /&gt;
add address=172.16.50.0/24 gateway=172.16.50.1 dns-server=172.16.50.1&lt;br /&gt;
add address=172.16.60.0/24 gateway=172.16.60.1 dns-server=172.16.60.1&lt;br /&gt;
add address=172.16.70.0/24 gateway=172.16.70.1 dns-server=172.16.70.1&lt;br /&gt;
&lt;br /&gt;
/ip dhcp-server&lt;br /&gt;
add name=server50 interface=vlan50 address-pool=pool50&lt;br /&gt;
add name=server60 interface=vlan60 address-pool=pool60&lt;br /&gt;
add name=server70 interface=vlan70 address-pool=pool70&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Menambah trunk untuk VLAN yang sudah ada&amp;#039;&amp;#039;&amp;#039; cukup menambahkan port ke kolom Tagged. Hati-hati: &amp;lt;code&amp;gt;set tagged=...&amp;lt;/code&amp;gt; &amp;#039;&amp;#039;&amp;#039;menimpa&amp;#039;&amp;#039;&amp;#039; daftar lama, sehingga port yang sudah ada harus ditulis ulang:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface bridge vlan set [find vlan-ids=30] tagged=bridge-vlan,ether5,ether6&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Sisi server (container Linux) ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ip link set eth0 up&lt;br /&gt;
for v in 50 60 70; do&lt;br /&gt;
  ip link add link eth0 name eth0.$v type vlan id $v&lt;br /&gt;
  ip link set eth0.$v up&lt;br /&gt;
  dhclient -v eth0.$v&lt;br /&gt;
done&lt;br /&gt;
ip -br addr&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hasil:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eth0.50@eth0     UP     172.16.50.200/24&lt;br /&gt;
eth0.60@eth0     UP     172.16.60.200/24&lt;br /&gt;
eth0.70@eth0     UP     172.16.70.200/24&lt;br /&gt;
eth0             UP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;RTNETLINK answers: File exists&amp;lt;/code&amp;gt; saat &amp;lt;code&amp;gt;dhclient&amp;lt;/code&amp;gt; kedua/ketiga itu normal: Linux hanya memakai satu default gateway di tabel routing utama.&lt;br /&gt;
* Ctrl+C di tengah loop menghentikan &amp;#039;&amp;#039;&amp;#039;seluruh&amp;#039;&amp;#039;&amp;#039; loop. VLAN berikutnya harus dicoba manual.&lt;br /&gt;
* Baris &amp;lt;code&amp;gt;xid: warning ...&amp;lt;/code&amp;gt; aman diabaikan.&lt;br /&gt;
&lt;br /&gt;
=== Padanan di Proxmox sungguhan ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
auto vmbr0&lt;br /&gt;
iface vmbr0 inet manual&lt;br /&gt;
    bridge-ports eno1&lt;br /&gt;
    bridge-stp off&lt;br /&gt;
    bridge-fd 0&lt;br /&gt;
    bridge-vlan-aware yes&lt;br /&gt;
    bridge-vids 2-4094&lt;br /&gt;
&lt;br /&gt;
auto vmbr0.50&lt;br /&gt;
iface vmbr0.50 inet static&lt;br /&gt;
    address 172.16.50.20/24&lt;br /&gt;
    gateway 172.16.50.1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bridge-vlan-aware yes&amp;lt;/code&amp;gt; = bridge Proxmox juga memakai VLAN filtering, konsepnya sama dengan &amp;lt;code&amp;gt;bridge-vlan&amp;lt;/code&amp;gt; di MikroTik.&lt;br /&gt;
* &amp;lt;code&amp;gt;vmbr0.50&amp;lt;/code&amp;gt; = IP manajemen host, statis di range server.&lt;br /&gt;
* Setiap VM: Bridge &amp;lt;code&amp;gt;vmbr0&amp;lt;/code&amp;gt; + &amp;#039;&amp;#039;&amp;#039;VLAN Tag&amp;#039;&amp;#039;&amp;#039; di setting network VM.&lt;br /&gt;
&lt;br /&gt;
== Verifikasi ==&lt;br /&gt;
* Setiap PC/VM mendapat IP sesuai VLAN-nya dan bisa &amp;lt;code&amp;gt;ping 8.8.8.8&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;trace&amp;lt;/code&amp;gt; dalam satu VLAN langsung sampai; antar VLAN lewat gateway.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Bridge → VLANs&amp;#039;&amp;#039;&amp;#039;: keanggotaan tagged/untagged sesuai rencana.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Bridge → Hosts&amp;#039;&amp;#039;&amp;#039;: MAC setiap perangkat beserta port dan VLAN-nya.&lt;br /&gt;
&lt;br /&gt;
Entri dinamis seperti &amp;lt;code&amp;gt;VLAN 1 ;;; added by pvid&amp;lt;/code&amp;gt; di tabel VLAN itu normal: bridge sendiri punya PVID default 1.&lt;br /&gt;
&lt;br /&gt;
== Masalah yang ditemui ==&lt;br /&gt;
&lt;br /&gt;
=== VLAN interface berflag R tapi parameternya salah ===&lt;br /&gt;
Ketiga kasus di bawah sama-sama terlihat normal di &amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt; biasa. Flag &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039; hanya berarti &amp;quot;interface hidup&amp;quot;, bukan &amp;quot;konfigurasinya benar&amp;quot;. Masalahnya baru terlihat di &amp;lt;code&amp;gt;print detail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Kasus !! Temuan di &amp;lt;code&amp;gt;print detail&amp;lt;/code&amp;gt; !! Penyebab !! Perbaikan&lt;br /&gt;
|-&lt;br /&gt;
| PC-30 &amp;amp; PC-40 tidak dapat IP || &amp;lt;code&amp;gt;vlan30&amp;lt;/code&amp;gt; dan &amp;lt;code&amp;gt;vlan40&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;vlan-id=1&amp;lt;/code&amp;gt; || Kolom VLAN ID terlewat, memakai default || &amp;lt;code&amp;gt;/interface vlan set vlan30 vlan-id=30&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| PC-40 tidak dapat IP || &amp;lt;code&amp;gt;vlan40&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;use-service-tag=yes&amp;lt;/code&amp;gt; || Checkbox &amp;#039;&amp;#039;&amp;#039;Use Service Tag&amp;#039;&amp;#039;&amp;#039; tercentang. Itu mode QinQ (penanda &amp;lt;code&amp;gt;0x88a8&amp;lt;/code&amp;gt;), sedangkan switch mengirim tag biasa &amp;lt;code&amp;gt;0x8100&amp;lt;/code&amp;gt;. || &amp;lt;code&amp;gt;... vlan-id=40 use-service-tag=no&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| VLAN 50 jalan, VLAN 60 tidak || &amp;lt;code&amp;gt;vlan60&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;interface=ether1&amp;lt;/code&amp;gt;, MAC sama dengan &amp;lt;code&amp;gt;ether1&amp;lt;/code&amp;gt; || Dropdown Interface terpilih port WAN || &amp;lt;code&amp;gt;/interface vlan set vlan60 interface=bridge-vlan&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Efek samping VLAN interface ber-ID 1 di atas bridge: muncul entri dinamis &amp;lt;code&amp;gt;VLAN 1 ;;; added by vlan on bridge&amp;lt;/code&amp;gt; di tabel VLAN.&lt;br /&gt;
&lt;br /&gt;
=== Diagnosis cepat ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Kalau satu VLAN jalan dan VLAN lain tidak&amp;#039;&amp;#039;&amp;#039; di trunk yang sama, jalur fisik dan trunk sudah benar. Fokus ke konfigurasi khusus VLAN yang gagal.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Menentukan layer masalah&amp;#039;&amp;#039;&amp;#039;: jalankan DHCP di client, sementara di router:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/tool torch interface=vlan60&lt;br /&gt;
/tool sniffer quick interface=ether6&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Ada traffic di &amp;lt;code&amp;gt;vlanXX&amp;lt;/code&amp;gt; → paket sampai, masalah di DHCP/IP.&lt;br /&gt;
* Kosong → masalah di VLAN ID, interface induk, atau tabel bridge VLAN.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Perintah pengecekan lengkap&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/interface vlan print detail&lt;br /&gt;
/interface bridge print&lt;br /&gt;
/interface bridge port print&lt;br /&gt;
/interface bridge vlan print&lt;br /&gt;
/ip address print&lt;br /&gt;
/ip pool print&lt;br /&gt;
/ip dhcp-server print&lt;br /&gt;
/ip dhcp-server network print&lt;br /&gt;
/ip dhcp-server lease print&lt;br /&gt;
/log print where topics~&amp;quot;dhcp&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Checklist VLAN baru ==&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Bridge → VLANs&amp;#039;&amp;#039;&amp;#039;: VLAN ID; &amp;lt;code&amp;gt;bridge-vlan&amp;lt;/code&amp;gt; + port trunk di Tagged; access port di Untagged.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Interfaces → VLAN&amp;#039;&amp;#039;&amp;#039;: cek &amp;#039;&amp;#039;&amp;#039;vlan-id&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;interface = bridge-vlan&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;use-service-tag = no&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;IP → Addresses&amp;#039;&amp;#039;&amp;#039;: gateway &amp;lt;code&amp;gt;.1&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;DHCP&amp;#039;&amp;#039;&amp;#039;: gateway/DNS di Networks.&lt;br /&gt;
# Langsung jalankan &amp;lt;code&amp;gt;/interface vlan print detail&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Tips&amp;#039;&amp;#039;&amp;#039;: simpan blok CLI VLAN sebagai template, ganti angkanya, lalu copy-paste. Sebagian besar kesalahan di lab ini terjadi saat mengisi form GUI.&lt;br /&gt;
&lt;br /&gt;
== Latihan ==&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Tebak dulu&amp;#039;&amp;#039;&amp;#039;: hapus &amp;lt;code&amp;gt;ether6&amp;lt;/code&amp;gt; dari Tagged di VLAN 60. Di container, &amp;lt;code&amp;gt;dhclient -r eth0.60&amp;lt;/code&amp;gt; lalu &amp;lt;code&amp;gt;dhclient -v eth0.60&amp;lt;/code&amp;gt;. Apa yang terjadi? Apakah VLAN 50 dan 70 ikut terdampak?&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;IP manajemen statis&amp;#039;&amp;#039;&amp;#039;: lepas DHCP di &amp;lt;code&amp;gt;eth0.50&amp;lt;/code&amp;gt;, pasang &amp;lt;code&amp;gt;172.16.50.20/24&amp;lt;/code&amp;gt; dengan gateway &amp;lt;code&amp;gt;172.16.50.1&amp;lt;/code&amp;gt;, sampai container bisa &amp;lt;code&amp;gt;ping 8.8.8.8&amp;lt;/code&amp;gt; lewat VLAN 50.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Detektif&amp;#039;&amp;#039;&amp;#039;: di &amp;#039;&amp;#039;&amp;#039;Bridge → Hosts&amp;#039;&amp;#039;&amp;#039;, MAC container muncul berapa kali dan di VLAN apa saja? Kenapa satu MAC bisa muncul beberapa kali?&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Tebak dulu&amp;#039;&amp;#039;&amp;#039;: hapus &amp;lt;code&amp;gt;bridge-vlan&amp;lt;/code&amp;gt; dari Tagged di VLAN 20 (biarkan &amp;lt;code&amp;gt;ether4&amp;lt;/code&amp;gt; untagged). Apakah Tamu masih bisa mendapat IP? Ping gateway? Ping Staff1?&lt;br /&gt;
&lt;br /&gt;
== Catatan ==&lt;br /&gt;
Bridge VLAN filtering sudah melampaui cakupan dasar MTCNA dan lebih dekat ke materi switching. Kesalahan di lab ini hampir semuanya salah input, bukan salah konsep. Kemampuan yang paling berguna bukan menghafal menu, tapi melacak kenapa sesuatu tidak berjalan.&lt;br /&gt;
&lt;br /&gt;
== Ringkasan ==&lt;br /&gt;
* Satu VLAN di satu port → VLAN interface di port. Satu VLAN di banyak port → bridge VLAN filtering.&lt;br /&gt;
* PVID = VLAN untuk frame polos yang masuk. Tabel VLAN = keanggotaan dan tagged/untagged saat keluar.&lt;br /&gt;
* VLAN interface (gateway) ditempel di bridge, dan bridge harus tagged di setiap VLAN.&lt;br /&gt;
* Nyalakan &amp;lt;code&amp;gt;vlan-filtering&amp;lt;/code&amp;gt; paling akhir, dengan Safe Mode di router produksi.&lt;br /&gt;
* Flag R bukan jaminan benar: biasakan &amp;lt;code&amp;gt;print detail&amp;lt;/code&amp;gt;.&lt;/div&gt;</description>
			<pubDate>Mon, 26 Oct 2026 09:41:07 GMT</pubDate>
			<dc:creator>SanzSkuy</dc:creator>
			<comments>https://wiki.haidhi.my.id/wiki/index.php/Talk:Mikrotik_5:_Bridge_VLAN_Filtering</comments>
		</item>
		<item>
			<title>Networking</title>
			<link>https://wiki.haidhi.my.id/wiki/index.php?title=Networking&amp;diff=884&amp;oldid=882</link>
			<guid isPermaLink="false">https://wiki.haidhi.my.id/wiki/index.php?title=Networking&amp;diff=884&amp;oldid=882</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:41, 26 October 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l17&quot;&gt;Line 17:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Mikrotik 3: Bridge]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Mikrotik 3: Bridge]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Mikrotik 4: VLAN]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Mikrotik 4: VLAN]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [[Mikrotik 5: Bridge VLAN Filtering]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Cisco =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Cisco =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Mon, 26 Oct 2026 09:41:01 GMT</pubDate>
			<dc:creator>SanzSkuy</dc:creator>
			<comments>https://wiki.haidhi.my.id/wiki/index.php/Talk:Networking</comments>
		</item>
		<item>
			<title>Mikrotik 4: VLAN</title>
			<link>https://wiki.haidhi.my.id/wiki/index.php?title=Mikrotik_4:_VLAN&amp;diff=883&amp;oldid=0</link>
			<guid isPermaLink="false">https://wiki.haidhi.my.id/wiki/index.php?title=Mikrotik_4:_VLAN&amp;diff=883&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;== Tujuan == * Paham VLAN, tag 802.1Q, access port, dan trunk port. * Bisa membuat VLAN interface dan gateway per VLAN di RouterOS. * Bisa melihat tag VLAN di Wireshark. * Paham dua kesalahan klasik: VLAN ditentukan port switch, dan trunk yang tidak sepakat di kedua ujung.  == Konsep ==  === Masalah yang diselesaikan VLAN === Tanpa VLAN, setiap segmen butuh port router, switch, dan jalur kabel sendiri. Lima segmen (staff, tamu, CCTV, server, manajemen) berarti lima port...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Tujuan ==&lt;br /&gt;
* Paham VLAN, tag 802.1Q, access port, dan trunk port.&lt;br /&gt;
* Bisa membuat VLAN interface dan gateway per VLAN di RouterOS.&lt;br /&gt;
* Bisa melihat tag VLAN di Wireshark.&lt;br /&gt;
* Paham dua kesalahan klasik: VLAN ditentukan port switch, dan trunk yang tidak sepakat di kedua ujung.&lt;br /&gt;
&lt;br /&gt;
== Konsep ==&lt;br /&gt;
&lt;br /&gt;
=== Masalah yang diselesaikan VLAN ===&lt;br /&gt;
Tanpa VLAN, setiap segmen butuh port router, switch, dan jalur kabel sendiri. Lima segmen (staff, tamu, CCTV, server, manajemen) berarti lima port router, lima switch, lima kabel.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;VLAN (Virtual LAN)&amp;#039;&amp;#039;&amp;#039; memecah satu switch fisik menjadi beberapa switch virtual yang terisolasi di Layer 2. Setiap VLAN punya nomor (&amp;#039;&amp;#039;&amp;#039;VLAN ID&amp;#039;&amp;#039;&amp;#039;, 1–4094). Perangkat di VLAN berbeda tidak bisa saling meng-ARP, persis seperti berada di switch berbeda.&lt;br /&gt;
&lt;br /&gt;
=== Tag 802.1Q ===&lt;br /&gt;
Satu kabel bisa membawa banyak VLAN karena setiap frame diberi &amp;#039;&amp;#039;&amp;#039;tag&amp;#039;&amp;#039;&amp;#039; (label) berisi VLAN ID. Standarnya &amp;#039;&amp;#039;&amp;#039;IEEE 802.1Q&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Frame biasa:   [Dst MAC][Src MAC][Type][ Data ][FCS]&lt;br /&gt;
Frame 802.1Q:  [Dst MAC][Src MAC][TAG][Type][ Data ][FCS]&lt;br /&gt;
                                  └ 4 byte tambahan&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Isi tag (4 byte):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Bagian !! Ukuran !! Fungsi&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;TPID&amp;#039;&amp;#039;&amp;#039; || 16 bit || Penanda &amp;lt;code&amp;gt;0x8100&amp;lt;/code&amp;gt;: &amp;quot;frame ini bertag 802.1Q&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;PRI&amp;#039;&amp;#039;&amp;#039; (PCP) || 3 bit || Prioritas untuk QoS (misalnya VoIP didahulukan)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;DEI&amp;#039;&amp;#039;&amp;#039; || 1 bit || Tanda boleh dibuang lebih dulu saat padat&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;VLAN ID&amp;#039;&amp;#039;&amp;#039; || 12 bit || Nomor VLAN (2&amp;lt;sup&amp;gt;12&amp;lt;/sup&amp;gt; = 4096, dipakai 1–4094)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Contoh di Wireshark:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Ethernet II, Src: 00:50:79:66:68:00, Dst: ...&lt;br /&gt;
802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 10      ← tag&lt;br /&gt;
Internet Protocol Version 4, Src: 172.16.10.x, Dst: 8.8.8.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Access port vs trunk port ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Access port !! Trunk port&lt;br /&gt;
|-&lt;br /&gt;
| Membawa || &amp;#039;&amp;#039;&amp;#039;Satu&amp;#039;&amp;#039;&amp;#039; VLAN || &amp;#039;&amp;#039;&amp;#039;Banyak&amp;#039;&amp;#039;&amp;#039; VLAN&lt;br /&gt;
|-&lt;br /&gt;
| Frame || &amp;#039;&amp;#039;&amp;#039;Untagged&amp;#039;&amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;Tagged&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| Tersambung ke || PC, printer, CCTV || Switch lain, router, server Proxmox&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;PC tidak tahu apa-apa soal VLAN.&amp;#039;&amp;#039;&amp;#039; PC mengirim frame polos. Switch menempelkan tag saat frame masuk dari access port, dan melepas tag saat frame keluar ke access port. Tag hanya hidup di jalur trunk.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Native VLAN&amp;#039;&amp;#039;&amp;#039;: VLAN yang lewat trunk &amp;#039;&amp;#039;&amp;#039;tanpa tag&amp;#039;&amp;#039;&amp;#039;. Di switch GNS3, kolom VLAN pada port &amp;lt;code&amp;gt;dot1q&amp;lt;/code&amp;gt; adalah native VLAN (default &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Router-on-a-stick ===&lt;br /&gt;
Setiap VLAN adalah segmen terpisah, sehingga butuh &amp;#039;&amp;#039;&amp;#039;subnet dan gateway sendiri&amp;#039;&amp;#039;&amp;#039;. Router cukup tersambung ke switch dengan &amp;#039;&amp;#039;&amp;#039;satu kabel trunk&amp;#039;&amp;#039;&amp;#039;, lalu membuat satu &amp;#039;&amp;#039;&amp;#039;VLAN interface&amp;#039;&amp;#039;&amp;#039; per VLAN (misalnya &amp;lt;code&amp;gt;vlan10&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;vlan20&amp;lt;/code&amp;gt;). Setiap VLAN interface diberi IP gateway. Satu kabel, banyak gateway.&lt;br /&gt;
&lt;br /&gt;
=== Keuntungan dan harga yang dibayar ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Keuntungan&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Hemat port router: satu port trunk bisa membawa banyak segmen.&lt;br /&gt;
* Hemat switch: satu switch fisik dipakai bersama semua segmen.&lt;br /&gt;
* Hemat kabel antar lantai/ruangan: cukup satu trunk per switch.&lt;br /&gt;
* Fleksibel: memindahkan PC ke segmen lain cukup mengubah setting port switch.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Harga yang dibayar&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Bandwidth trunk dibagi&amp;#039;&amp;#039;&amp;#039; semua VLAN. Traffic antar VLAN naik ke router lewat trunk lalu turun lagi lewat trunk yang sama.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Single point of failure&amp;#039;&amp;#039;&amp;#039;: trunk putus = semua VLAN di switch itu putus.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Butuh managed switch&amp;#039;&amp;#039;&amp;#039;. Switch unmanaged tidak mengerti tag.&lt;br /&gt;
* CPU router mengerjakan semua routing antar VLAN.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solusi umum&amp;#039;&amp;#039;&amp;#039;: trunk di port cepat (SFP+ 10 Gbps), &amp;#039;&amp;#039;&amp;#039;bonding/LACP&amp;#039;&amp;#039;&amp;#039; (beberapa kabel menjadi satu trunk dengan cadangan), atau &amp;#039;&amp;#039;&amp;#039;switch Layer 3&amp;#039;&amp;#039;&amp;#039; untuk routing antar VLAN di kantor besar.&lt;br /&gt;
&lt;br /&gt;
=== Managed vs unmanaged switch ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Unmanaged !! Managed (termasuk &amp;quot;smart/easy smart&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| Setup || Colok langsung jalan || Colok langsung jalan, tapi bisa dikonfigurasi&lt;br /&gt;
|-&lt;br /&gt;
| IP / web UI || Tidak ada || Ada (web UI, SSH/CLI, port console)&lt;br /&gt;
|-&lt;br /&gt;
| VLAN || Tidak || Ya&lt;br /&gt;
|-&lt;br /&gt;
| Fitur lain || – || Monitoring per port, port mirroring, LACP, STP, limit bandwidth&lt;br /&gt;
|-&lt;br /&gt;
| Contoh || Switch 5–8 port murah || MikroTik CRS/CSS, Cisco Catalyst, TP-Link Easy Smart/JetStream, UniFi&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Managed switch baru &amp;#039;&amp;#039;&amp;#039;berperilaku seperti unmanaged&amp;#039;&amp;#039;&amp;#039;: semua port default &amp;lt;code&amp;gt;access VLAN 1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Jebakan di kantor&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Unmanaged switch di &amp;#039;&amp;#039;&amp;#039;access port VLAN 10&amp;#039;&amp;#039;&amp;#039; → semua perangkat di switch kecil itu masuk VLAN 10. Normal dan sering disengaja.&lt;br /&gt;
* Unmanaged switch di &amp;#039;&amp;#039;&amp;#039;trunk port&amp;#039;&amp;#039;&amp;#039; → perangkat hanya mendapat native VLAN, sementara frame bertag VLAN lain ikut diteruskan. Gejalanya: &amp;quot;PC di ruangan ini dapat IP dari segmen yang salah.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Lab ==&lt;br /&gt;
&lt;br /&gt;
=== Topologi ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                 [NAT]&lt;br /&gt;
                   │&lt;br /&gt;
                 ether1 (WAN, DHCP client)&lt;br /&gt;
                   │&lt;br /&gt;
                 [CHR]&lt;br /&gt;
                 ether2&lt;br /&gt;
                   ║  trunk (VLAN 10 + 20)&lt;br /&gt;
                   ║&lt;br /&gt;
               [Switch1]&lt;br /&gt;
           port1  port2  port3&lt;br /&gt;
          VLAN10 VLAN10 VLAN20&lt;br /&gt;
            │      │      │&lt;br /&gt;
         Staff1 Staff2  Tamu&lt;br /&gt;
&lt;br /&gt;
  vlan10 → 172.16.10.1/24  (staff)&lt;br /&gt;
  vlan20 → 172.16.20.1/24  (tamu)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Konvensi alamat&amp;#039;&amp;#039;&amp;#039;: range privat &amp;lt;code&amp;gt;172.16.0.0/12&amp;lt;/code&amp;gt;, dengan oktet ketiga = VLAN ID (VLAN 10 → &amp;lt;code&amp;gt;172.16.10.0/24&amp;lt;/code&amp;gt;). Memudahkan saat VLAN sudah puluhan.&lt;br /&gt;
&lt;br /&gt;
=== 1. Persiapan host dan project ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo virsh net-start default 2&amp;gt;/dev/null&lt;br /&gt;
sudo iptables -I DOCKER-USER -i virbr0 -j ACCEPT&lt;br /&gt;
sudo iptables -I DOCKER-USER -o virbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* GNS3: &amp;#039;&amp;#039;&amp;#039;File → New blank project&amp;#039;&amp;#039;&amp;#039; (contoh nama: &amp;lt;code&amp;gt;fase2-vlan&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Perangkat: NAT, MikroTik CHR, Ethernet switch, 3 VPCS (beri nama Staff1, Staff2, Tamu).&lt;br /&gt;
&lt;br /&gt;
=== 2. Konfigurasi switch GNS3 ===&lt;br /&gt;
Nyalakan &amp;#039;&amp;#039;&amp;#039;View → Show interface labels&amp;#039;&amp;#039;&amp;#039; untuk melihat nomor port tiap kabel, lalu klik kanan switch → &amp;#039;&amp;#039;&amp;#039;Configure&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Untuk setiap port: klik barisnya di daftar &amp;#039;&amp;#039;&amp;#039;Ports&amp;#039;&amp;#039;&amp;#039;, isi &amp;#039;&amp;#039;&amp;#039;VLAN&amp;#039;&amp;#039;&amp;#039; dan &amp;#039;&amp;#039;&amp;#039;Type&amp;#039;&amp;#039;&amp;#039;, lalu klik &amp;#039;&amp;#039;&amp;#039;Add&amp;#039;&amp;#039;&amp;#039; (menimpa setting port dengan nomor yang sama). Akhiri dengan &amp;#039;&amp;#039;&amp;#039;Apply → OK&amp;#039;&amp;#039;&amp;#039;. Kalau perubahan tidak tersimpan, stop switch dulu.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Port !! Ke !! VLAN !! Type&lt;br /&gt;
|-&lt;br /&gt;
| 0 || CHR &amp;lt;code&amp;gt;ether2&amp;lt;/code&amp;gt; || 1 || &amp;lt;code&amp;gt;dot1q&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Staff1 || 10 || &amp;lt;code&amp;gt;access&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Staff2 || 10 || &amp;lt;code&amp;gt;access&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Tamu || 20 || &amp;lt;code&amp;gt;access&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dot1q&amp;lt;/code&amp;gt; = trunk 802.1Q. QinQ EtherType dibiarkan &amp;lt;code&amp;gt;0x8100&amp;lt;/code&amp;gt; (hanya dipakai pada type &amp;lt;code&amp;gt;qinq&amp;lt;/code&amp;gt;). Sesuaikan nomor port dengan label kabel.&lt;br /&gt;
&lt;br /&gt;
=== 3. Setup dasar CHR ===&lt;br /&gt;
Di console:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/system identity set name=router-vlan&lt;br /&gt;
/ip address print&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Catat IP WAN di &amp;lt;code&amp;gt;ether1&amp;lt;/code&amp;gt;, connect Winbox, lalu:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;IP → Firewall → NAT&amp;#039;&amp;#039;&amp;#039;: &amp;lt;code&amp;gt;srcnat&amp;lt;/code&amp;gt;, Out. Interface &amp;lt;code&amp;gt;ether1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;masquerade&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;IP → DNS&amp;#039;&amp;#039;&amp;#039;: centang &amp;#039;&amp;#039;&amp;#039;Allow Remote Requests&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Tes: &amp;lt;code&amp;gt;/ping 8.8.8.8 count=3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. VLAN interface dan gateway ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Winbox !! Isian !! CLI&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Interfaces → VLAN&amp;#039;&amp;#039;&amp;#039; → New || &amp;lt;code&amp;gt;vlan10&amp;lt;/code&amp;gt;, VLAN ID &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;, Interface &amp;lt;code&amp;gt;ether2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/interface vlan add name=vlan10 vlan-id=10 interface=ether2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Interfaces → VLAN&amp;#039;&amp;#039;&amp;#039; → New || &amp;lt;code&amp;gt;vlan20&amp;lt;/code&amp;gt;, VLAN ID &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt;, Interface &amp;lt;code&amp;gt;ether2&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/interface vlan add name=vlan20 vlan-id=20 interface=ether2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;IP → Addresses&amp;#039;&amp;#039;&amp;#039; → New || &amp;lt;code&amp;gt;172.16.10.1/24&amp;lt;/code&amp;gt; di &amp;lt;code&amp;gt;vlan10&amp;lt;/code&amp;gt;, comment &amp;lt;code&amp;gt;VLAN10-staff&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/ip address add address=172.16.10.1/24 interface=vlan10 comment=VLAN10-staff&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;IP → Addresses&amp;#039;&amp;#039;&amp;#039; → New || &amp;lt;code&amp;gt;172.16.20.1/24&amp;lt;/code&amp;gt; di &amp;lt;code&amp;gt;vlan20&amp;lt;/code&amp;gt;, comment &amp;lt;code&amp;gt;VLAN20-tamu&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/ip address add address=172.16.20.1/24 interface=vlan20 comment=VLAN20-tamu&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ether2&amp;lt;/code&amp;gt; sendiri &amp;#039;&amp;#039;&amp;#039;tidak diberi IP&amp;#039;&amp;#039;&amp;#039;. Ia hanya kabel trunk, sedangkan kerja Layer 3 ada di &amp;lt;code&amp;gt;vlan10&amp;lt;/code&amp;gt; dan &amp;lt;code&amp;gt;vlan20&amp;lt;/code&amp;gt;. Sama seperti aturan bridge: IP di interface logis, bukan di port fisik.&lt;br /&gt;
&lt;br /&gt;
=== 5. DHCP per VLAN ===&lt;br /&gt;
Setiap VLAN butuh &amp;#039;&amp;#039;&amp;#039;pool, network, dan server sendiri&amp;#039;&amp;#039;&amp;#039; karena subnetnya berbeda.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Lewat DHCP Setup&amp;#039;&amp;#039;&amp;#039; (jalankan untuk &amp;lt;code&amp;gt;vlan10&amp;lt;/code&amp;gt;, lalu &amp;lt;code&amp;gt;vlan20&amp;lt;/code&amp;gt;): wizard membuat pool otomatis. Ubah &amp;#039;&amp;#039;&amp;#039;Addresses to Give Out&amp;#039;&amp;#039;&amp;#039; menjadi &amp;lt;code&amp;gt;.100–.200&amp;lt;/code&amp;gt; agar &amp;lt;code&amp;gt;.2–.99&amp;lt;/code&amp;gt; tetap kosong untuk perangkat statis.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Manual&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Bagian !! VLAN 10 !! VLAN 20&lt;br /&gt;
|-&lt;br /&gt;
| Pool || &amp;lt;code&amp;gt;172.16.10.100-172.16.10.200&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;172.16.20.100-172.16.20.200&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Network || &amp;lt;code&amp;gt;172.16.10.0/24&amp;lt;/code&amp;gt;, gateway &amp;amp; DNS &amp;lt;code&amp;gt;172.16.10.1&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;172.16.20.0/24&amp;lt;/code&amp;gt;, gateway &amp;amp; DNS &amp;lt;code&amp;gt;172.16.20.1&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Server || Interface &amp;lt;code&amp;gt;vlan10&amp;lt;/code&amp;gt; || Interface &amp;lt;code&amp;gt;vlan20&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Periksa&amp;#039;&amp;#039;&amp;#039;: pool di subnet yang benar, gateway/DNS = &amp;lt;code&amp;gt;.1&amp;lt;/code&amp;gt;, server menempel di &amp;lt;code&amp;gt;vlan10&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;vlan20&amp;lt;/code&amp;gt; (bukan &amp;lt;code&amp;gt;ether2&amp;lt;/code&amp;gt;). Rule NAT tidak perlu diubah.&lt;br /&gt;
&lt;br /&gt;
== Verifikasi ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ip dhcp&lt;br /&gt;
show ip&lt;br /&gt;
ping 8.8.8.8&lt;br /&gt;
trace &amp;lt;IP PC lain&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Staff1 dan Staff2 mendapat &amp;lt;code&amp;gt;172.16.10.x&amp;lt;/code&amp;gt;, Tamu mendapat &amp;lt;code&amp;gt;172.16.20.x&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;trace&amp;lt;/code&amp;gt; Staff1 → Staff2: langsung sampai (satu VLAN, di-switch).&lt;br /&gt;
* &amp;lt;code&amp;gt;trace&amp;lt;/code&amp;gt; Staff1 → Tamu: lewat &amp;lt;code&amp;gt;172.16.10.1&amp;lt;/code&amp;gt; (beda VLAN, di-route).&lt;br /&gt;
&lt;br /&gt;
Ketiganya tersambung ke &amp;#039;&amp;#039;&amp;#039;switch fisik yang sama&amp;#039;&amp;#039;&amp;#039;, tapi VLAN memisahkan mereka di Layer 2.&lt;br /&gt;
&lt;br /&gt;
Kalau PC hanya menampilkan &amp;quot;DDD&amp;quot;, periksa dulu kecocokan nomor port switch dengan label kabel.&lt;br /&gt;
&lt;br /&gt;
== Latihan dan pembahasan ==&lt;br /&gt;
&lt;br /&gt;
=== Soal 1: melihat tag ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Soal&amp;#039;&amp;#039;&amp;#039;: capture Wireshark di kabel CHR ↔ Switch1 (trunk) dan Switch1 ↔ Staff1 (access), lalu ping dari Staff1. Di mana ada tag 802.1Q? VLAN ID-nya berapa?&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Pembahasan&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Trunk&amp;#039;&amp;#039;&amp;#039;: ada baris &amp;lt;code&amp;gt;802.1Q Virtual LAN&amp;lt;/code&amp;gt; dengan &amp;#039;&amp;#039;&amp;#039;ID 10 dan ID 20&amp;#039;&amp;#039;&amp;#039;. Meskipun ping hanya dari Staff1 (VLAN 10), traffic Tamu (ARP, DHCP renew) juga lewat kabel yang sama. Bukti satu trunk membawa banyak VLAN.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Access&amp;#039;&amp;#039;&amp;#039;: tidak ada tag, frame polos.&lt;br /&gt;
* Alur: Staff1 mengirim frame polos → Switch1 menempelkan tag &amp;lt;code&amp;gt;ID: 10&amp;lt;/code&amp;gt; → CHR membaca tag dan menyerahkan frame ke &amp;lt;code&amp;gt;vlan10&amp;lt;/code&amp;gt;. Arah balik, switch melepas tag sebelum frame sampai ke Staff1.&lt;br /&gt;
&lt;br /&gt;
=== Soal 2: menambah VLAN CCTV ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Soal&amp;#039;&amp;#039;&amp;#039;: buat VLAN 30 (&amp;lt;code&amp;gt;172.16.30.0/24&amp;lt;/code&amp;gt;) dengan PC4 sampai bisa internetan.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Pembahasan&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Di mana !! Perubahan&lt;br /&gt;
|-&lt;br /&gt;
| Router || &amp;#039;&amp;#039;&amp;#039;Interfaces → VLAN&amp;#039;&amp;#039;&amp;#039;: &amp;lt;code&amp;gt;vlan30&amp;lt;/code&amp;gt;, ID &amp;lt;code&amp;gt;30&amp;lt;/code&amp;gt;, di &amp;lt;code&amp;gt;ether2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Router || &amp;#039;&amp;#039;&amp;#039;IP → Addresses&amp;#039;&amp;#039;&amp;#039;: &amp;lt;code&amp;gt;172.16.30.1/24&amp;lt;/code&amp;gt; di &amp;lt;code&amp;gt;vlan30&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Router || DHCP: pool, network (gateway/DNS &amp;lt;code&amp;gt;172.16.30.1&amp;lt;/code&amp;gt;), server di &amp;lt;code&amp;gt;vlan30&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Router || NAT: tidak perlu diubah&lt;br /&gt;
|-&lt;br /&gt;
| Switch || Port PC4: &amp;lt;code&amp;gt;access&amp;lt;/code&amp;gt; VLAN &amp;lt;code&amp;gt;30&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Switch || Port trunk: tidak diubah (di GNS3)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Jangan lupa IP gateway&amp;#039;&amp;#039;&amp;#039; di &amp;lt;code&amp;gt;vlan30&amp;lt;/code&amp;gt;. DHCP Setup bisa berjalan tanpanya, tapi PC akan mendapat gateway yang tidak ada di router.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Trunk di GNS3&amp;#039;&amp;#039;&amp;#039; otomatis membawa semua VLAN. Di banyak switch sungguhan (termasuk MikroTik), trunk harus &amp;#039;&amp;#039;&amp;#039;didaftarkan VLAN mana saja yang boleh lewat&amp;#039;&amp;#039;&amp;#039;. Lupa menambahkan VLAN baru ke trunk = PC di VLAN itu &amp;quot;DDD&amp;quot; terus, padahal konfigurasi lain sudah benar.&lt;br /&gt;
* Beri comment &amp;lt;code&amp;gt;VLAN30-cctv&amp;lt;/code&amp;gt; di semua objek terkait.&lt;br /&gt;
&lt;br /&gt;
=== Soal 3: memindahkan VLAN tanpa menyentuh PC ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Soal&amp;#039;&amp;#039;&amp;#039;: ubah port Tamu dari access VLAN 20 menjadi access VLAN 10, tanpa mengubah PC. Lalu &amp;lt;code&amp;gt;ip dhcp -x&amp;lt;/code&amp;gt; dan &amp;lt;code&amp;gt;ip dhcp&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Hasil&amp;#039;&amp;#039;&amp;#039;: Tamu mendapat &amp;lt;code&amp;gt;172.16.10.x&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Pembahasan&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;&amp;#039;VLAN sebuah PC ditentukan oleh port switch tempat ia tersambung.&amp;#039;&amp;#039;&amp;#039; PC tidak tahu dan tidak bisa memilih.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Enak&amp;#039;&amp;#039;&amp;#039;: memindahkan karyawan ke segmen lain cukup mengubah port switch.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Bahaya&amp;#039;&amp;#039;&amp;#039;: siapa pun yang mencolok laptop ke port staff langsung masuk jaringan staff. Keamanan port fisik penting. Solusi lanjutannya &amp;#039;&amp;#039;&amp;#039;802.1X&amp;#039;&amp;#039;&amp;#039; (perangkat harus login sebelum port dibuka), yaitu fitur di menu &amp;#039;&amp;#039;&amp;#039;Dot1X&amp;#039;&amp;#039;&amp;#039; RouterOS.&lt;br /&gt;
&lt;br /&gt;
=== Soal 4: trunk yang salah ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Soal&amp;#039;&amp;#039;&amp;#039;: ubah port trunk (port 0) dari &amp;lt;code&amp;gt;dot1q&amp;lt;/code&amp;gt; menjadi &amp;lt;code&amp;gt;access&amp;lt;/code&amp;gt; VLAN 10.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Hasil&amp;#039;&amp;#039;&amp;#039;: Staff1 dan Tamu sama-sama tidak bisa internetan, tapi dengan alasan berbeda.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Normal (dot1q):     switch ══[tag 10][tag 20]══► CHR → vlan10 / vlan20 ✅&lt;br /&gt;
Salah (access 10):  switch ───[polos, VLAN 10 saja]──► CHR → ether2 (tanpa IP) ❌&lt;br /&gt;
                    VLAN 20 → tidak dikirim sama sekali ❌&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Staff1&amp;#039;&amp;#039;&amp;#039;: switch mengirim traffic VLAN 10 ke CHR &amp;#039;&amp;#039;&amp;#039;tanpa tag&amp;#039;&amp;#039;&amp;#039;. &amp;lt;code&amp;gt;vlan10&amp;lt;/code&amp;gt; hanya menerima frame bertag 10, sehingga frame polos jatuh ke &amp;lt;code&amp;gt;ether2&amp;lt;/code&amp;gt; yang tidak punya IP. ARP ke gateway tidak pernah terjawab.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tamu&amp;#039;&amp;#039;&amp;#039;: port 0 sekarang hanya anggota VLAN 10, sehingga frame VLAN 20 tidak pernah dikirim keluar. Tamu terkurung di dalam switch.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Pelajaran&amp;#039;&amp;#039;&amp;#039;: kedua ujung trunk harus &amp;#039;&amp;#039;&amp;#039;sepakat&amp;#039;&amp;#039;&amp;#039;. Kalau satu sisi mengirim bertag dan sisi lain menunggu polos (atau sebaliknya), link terlihat menyala (lampu hijau, interface Running), tapi traffic tidak tersambung. Sering terjadi saat mengganti switch atau saat ada yang &amp;quot;merapikan&amp;quot; konfigurasi.&lt;br /&gt;
&lt;br /&gt;
== Kesalahan umum ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Gejala !! Penyebab !! Solusi&lt;br /&gt;
|-&lt;br /&gt;
| PC &amp;quot;DDD&amp;quot; setelah setting VLAN || Nomor port switch tidak cocok dengan kabel || Cek &amp;#039;&amp;#039;&amp;#039;Show interface labels&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| PC dapat IP tapi tidak bisa internetan || IP gateway belum dipasang di VLAN interface || &amp;#039;&amp;#039;&amp;#039;IP → Addresses&amp;#039;&amp;#039;&amp;#039; di &amp;lt;code&amp;gt;vlanXX&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| PC di VLAN baru &amp;quot;DDD&amp;quot; padahal router benar || VLAN belum didaftarkan di trunk switch || Tambahkan VLAN ke daftar trunk&lt;br /&gt;
|-&lt;br /&gt;
| Link menyala tapi semua VLAN putus || Trunk tidak sepakat (tagged vs untagged) || Samakan konfigurasi kedua ujung&lt;br /&gt;
|-&lt;br /&gt;
| PC dapat IP dari segmen yang salah || Port switch salah VLAN, atau unmanaged switch di trunk port || Periksa port dan perangkat yang tersambung&lt;br /&gt;
|-&lt;br /&gt;
| Comment tidak sesuai isi || Typo saat membuat objek || Perbaiki, karena comment adalah dokumentasi&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ringkasan ==&lt;br /&gt;
* VLAN memecah satu switch menjadi beberapa segmen Layer 2 terpisah.&lt;br /&gt;
* Tag 802.1Q (4 byte, berisi VLAN ID) hanya ada di trunk. PC selalu mengirim frame polos.&lt;br /&gt;
* Access = satu VLAN untagged. Trunk = banyak VLAN tagged.&lt;br /&gt;
* Router-on-a-stick: satu trunk, satu VLAN interface + gateway per VLAN.&lt;br /&gt;
* VLAN ditentukan port switch, bukan PC.&lt;br /&gt;
* Kedua ujung trunk harus sepakat.&lt;/div&gt;</description>
			<pubDate>Mon, 26 Oct 2026 06:33:34 GMT</pubDate>
			<dc:creator>SanzSkuy</dc:creator>
			<comments>https://wiki.haidhi.my.id/wiki/index.php/Talk:Mikrotik_4:_VLAN</comments>
		</item>
		<item>
			<title>Networking</title>
			<link>https://wiki.haidhi.my.id/wiki/index.php?title=Networking&amp;diff=882&amp;oldid=880</link>
			<guid isPermaLink="false">https://wiki.haidhi.my.id/wiki/index.php?title=Networking&amp;diff=882&amp;oldid=880</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 06:33, 26 October 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l16&quot;&gt;Line 16:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 16:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Mikrotik 2: Kantor Mini]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Mikrotik 2: Kantor Mini]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Mikrotik 3: Bridge]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Mikrotik 3: Bridge]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [[Mikrotik 4: VLAN]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Cisco =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Cisco =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Mon, 26 Oct 2026 06:33:28 GMT</pubDate>
			<dc:creator>SanzSkuy</dc:creator>
			<comments>https://wiki.haidhi.my.id/wiki/index.php/Talk:Networking</comments>
		</item>
</channel></rss>