πΈοΈ CGNAT & IP Attribution β Carrier-Grade NAT, Logging, dan Dampaknya terhadap Forensik Jaringan
Hubungan ke Vault
Note ini membahas Layer 3 (Network) dari network-security. CGNAT adalah mekanisme ISP-level NAT yang mengaburkan identitas pengguna individu β tantangan utama dalam attribution forensik. Relevan dengan ids-ips-waf-nsm-comparison karena logging CGN adalah data source penting untuk NSM (Network Security Monitoring). Untuk contoh incident attribution di Layer 2, lihat arp-spoofing-incident-addendum.
Daftar Isi
- 1. Pendahuluan: Apa itu CGNAT?
- 2. Perbandingan: CGNAT vs Traditional NAT vs IPv6
- 3. Mekanisme Logging CGN
- 4. Logging Compliance & Regulasi
- 5. Attribution Challenges
- 6. Mapping CGNAT Logs
- 7. Tools & Data Sources
- 8. Case Studies
- 9. Privacy Dual-Use
- 10. Alternatif & Evolusi Teknologi
- 11. Bottom Line
1. Pendahuluan: Apa itu CGNAT?
Carrier-Grade NAT (CGNAT), juga dikenal sebagai NAT444 atau Large Scale NAT (LSN), adalah mekanisme network address translation yang diimplementasikan oleh ISP (Internet Service Provider) di level infrastruktur mereka. Tujuannya: memungkinkan ribuan pelanggan berbagi satu alamat IPv4 publik.
1.1 Mengapa CGNAT Ada?
IPv4 Address Exhaustion β Fakta:
- Pool IPv4: ~4,3 miliar alamat
- Populasi dunia: ~8+ miliar
- Perangkat terhubung: ~30+ miliar (IoT, smartphone, laptop, server)
- IANA menghabiskan pool terakhir: 3 Februari 2011
- APNIC (Asia-Pasifik): habis April 2011
- RIPE (Eropa): habis November 2019
- LACNIC (Amerika Latin): habis 2020
- AFRINIC: masih punya sisa kecil (~2025-2026 diperkirakan habis)
β Solusi ISP: CGNAT + IPv6 deployment paralel1.2 Arsitektur Dasar CGNAT (NAT444)
Traditional NAT (NAT44):
Pelanggan β [CPE Router NAT] β Internet (1:1 IP publik:pelanggan)
CGNAT (NAT444):
Pelanggan β [CPE Router NAT] β [CGN Gateway ISP] β Internet
β
100.64.0.0/10 (RFC 6598)
Shared IP Pool
Perbedaan utama:
- Tidak ada IP publik unik per pelanggan
- ISP menggunakan Shared Address Space 100.64.0.0/10 (RFC 6598)
- Logging terjadi di CGN Gateway β BUKAN di CPE router user1.3 RFC yang Relevan
| RFC | Judul | Relevansi ke CGNAT |
|---|---|---|
| RFC 1631 | The IP Network Address Translator (NAT) | Origin NAT β dasar dari semua NAT |
| RFC 3022 | Traditional IP Network Address Translator | NAT44 β NAT tradisional, pendahulu CGNAT |
| RFC 2663 | IP Network Address Translator Terminology | Terminologi: masquerade, binding, session |
| RFC 4787 | NAT Behavioral Requirements for UDP | Wajib dibaca untuk understanding NAT traversal |
| RFC 5382 | NAT Behavioral Requirements for TCP | Sama, untuk TCP β termasuk security implications |
| RFC 5508 | NAT Behavioral Requirements for ICMP | ICMP melalui NAT β penting untuk troubleshooting |
| RFC 6598 | IANA-Reserved IPv4 Prefix for Shared Address Space | Definisi 100.64.0.0/10 β ruang alamat CGNAT |
| RFC 6888 | Common Requirements for Carrier-Grade NATs | Spesifikasi inti CGNAT β logging, port allocation, thresholds |
| RFC 7422 | Deterministic Address Mapping to Reduce Logging | Alternatif: mapping deterministik kurangi kebutuhan log |
| RFC 7596 | Lightweight 4over6: DS-Lite | Transisi IPv6 with CGNAT element |
| RFC 7597 | Mapping of Address and Port (MAP-E) | Alternatif CGNAT: encapsulation-based |
| RFC 7599 | Mapping of Address and Port using Translation (MAP-T) | Alternatif CGNAT: translation-based |
Kritis untuk Forensik
RFC 6888 Section 14 secara eksplisit menyatakan bahwa CGNAT harus menyediakan mekanisme logging untuk mendukung law enforcement. Ini bukan fitur opsional β ini adalah requirement dari standar IETF.
2. Perbandingan: CGNAT vs Traditional NAT vs IPv6
2.1 Tabel Perbandingan
| Aspek | Traditional NAT (NAT44) | CGNAT (NAT444) | Native IPv6 |
|---|---|---|---|
| Lokasi | CPE Router (rumah/kantor) | CGN Gateway (infrastruktur ISP) | End-to-end, no NAT |
| IP Publik per Pelanggan | 1:1 β satu IP penuh | N:1 β ribuan user share satu IP | 1:1 atau lebih β setiap device punya alamat unik |
| Address Space | Private (RFC 1918) β Public | Private β 100.64.0.0/10 β Public | 2000::/3 Global Unicast |
| Pool Size per Gateway | Single public IP | /32 hingga /24 (~1-256 IP) | Tak terbatas praktis |
| Port Limit per Customer | ~65.535 total (teoretis) | Dibatasi per subscriber (RFC 6888: 2.000-8.000 port minimum) | Tidak ada limit |
| Logging Requirement | Opsional (jarang) | Wajib (RFC 6888) untuk law enforcement | Tidak diperlukan |
| Application Impact | Minimal (NAT traversal sudah umum) | Signifikan β P2P, VoIP, gaming, VPN bermasalah | Ideal β no NAT issues |
| Traceability | Langsung: IP publik = satu pelanggan | Kompleks: butuh log ISP + timestamp sinkron | Langsung: IP unik per device |
| Deployment | Universal (setiap router) | ISP Tier 1-3, mobile operators | ~35-45% global adoption (2025) |
| Latency Overhead | ~0,1-0,5ms (negligible) | ~1-5ms (extra hop) | 0ms (no translation) |
2.2 Visual: Perbedaan Arsitektur
TRADITIONAL NAT (NAT44):
CPE Router
User A ββββ 192.168.1.0/24 βββββ [NAT] ββββ 203.0.113.1 βββββ Internet
(Unique IP)
User B ββββ 192.168.2.0/24 βββββ [NAT] ββββ 203.0.113.2 βββββ Internet
(Unique IP)
Logging: CPE mau-log atau tidak. ISP tidak punya visibility.
Attribution: IP publik β satu rumah langsung.
CGNAT (NAT444):
CPE Router CGN Gateway
User A ββββ 192.168.1.0/24 βββββ [NAT] ββββ 100.64.1.100 βββββ [CGN] βββββ Internet
CPE Router β 203.0.113.10
User B ββββ 192.168.2.0/24 βββββ [NAT] ββββ 100.64.1.200 βββββ [CGN] βββββ Internet
β
CGNAT Logging:
- Timestamp
- Private IP:Port
- Public IP:Port
- Subscriber ID
- NAT Session ID
Logging: WAJIB di CGN Gateway.
Attribution: IP publik saja TIDAK CUKUP. Butuh log CGN + 5-tuple.
NATIVE IPv6:
No NAT
User A device ββββ 2001:db8:1::a1 βββββ Internet
User B device ββββ 2001:db8:2::b2 βββββ Internet
Logging: Tidak diperlukan untuk attribution.
Attribution: IP langsung = device spesifik.2.3 Kenapa ISP Memilih CGNAT daripada IPv6 Saja?
Hambatan Adopsi IPv6:
1. Legacy Infrastructure:
- Banyak CPE router lawas tidak support IPv6 dengan baik
- ISP OSS/BSS system (billing, provisioning) belum siap IPv6
- Content provider masih IPv4-only (long tail)
2. Cost & Complexity:
- Migrasi IPv6 = investasi besar (hardware, training, testing)
- Dual-stack = double routing table, double management overhead
- CGNAT = "tambal ban" yang lebih murah dan cepat
3. Content Availability:
- Β± 35-40% dari Alexa Top 1000 masih IPv4-reachable only
- CDN dan cloud provider sudah IPv6-ready β tapi long tail belum
β Realita: CGNAT adalah solusi transisi yang menjadi permanen.
β Banyak ISP Asia-Pasifik, Afrika, dan Amerika Latin 100% CGNAT.3. Mekanisme Logging CGN
3.1 Arsitektur Logging CGNAT
[CPE Router]
β ββββ Syslog / RADIUS ββββ
βΌ βΌ β
[CGN Gateway] ββββ IPFIX/NetFlow βββββ [Central Log Collector]
β β ELK / Splunk / custom
β ββββ Accounting Data ββββ β
βΌ βΌ βΌ βΌ
[RADIUS Server] [Syslog-ng/rsyslog]
β β
βΌ βΌ
[Billing DB] [CGNAT Log DB]
β
βΌ
[Query Interface β API/CLI]
β Untuk: Law Enforcement,
Incident Responder, Abuse Desk3.2 Teknik Port Block Allocation (RFC 6888 Section 8)
CGNAT tidak mengalokasikan port secara acak. Ada beberapa strategi:
A. Random Port Allocation (default most CGNAT):
- Setiap session baru diberi port acak dari pool
- Logging: SETIAP session harus di-log
- Kelebihan: sulit ditebak, fair sharing
- Kekurangan: log volume BESAR (milyaran row/hari untuk ISP besar)
B. Port Block Allocation (Deterministic β RFC 7422):
- Setiap pelanggan mendapat blok port tetap: misal 1024-2047
- Mapping: subscriber_id β port_range β public_ip
- Logging: cukup log alokasi blok (bukan per session)
- Penghematan log: 99,9% lebih kecil dari random allocation
- Kelemahan: predictable β attacker bisa spoof port range
C. Hybrid:
- Blok port dialokasikan, tapi port dalam blok dipakai acak
- Logging: alokasi blok + sampling session
- Trade-off antara traceability dan privacy
Contoh Port Block per Subscriber:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CGN Public IP: 203.0.113.10 (pool size: 1 IP) β
β β
β Subscriber A β port block: 1024-3071 (2048 port) β
β Subscriber B β port block: 3072-5119 (2048 port) β
β Subscriber C β port block: 5120-7167 (2048 port) β
β Subscriber D β port block: 7168-9215 (2048 port) β
β ... β
β Total: ~32 subscriber per IP (@ 2048 port/sub) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ3.3 Log Entry CGNAT β Field Minimal (RFC 6888 Section 14)
RFC 6888 mensyaratkan log minimal berisi:
| Field | Contoh | Deskripsi |
|---|---|---|
| Timestamp | 2025-07-02T14:30:00.123Z | Waktu session NAT dibuat (wajib UTC+NTP sync) |
| Protocol | TCP=6, UDP=17, ICMP=1 | L4 protocol (IP protocol number) |
| Inside (Private) IP | 100.64.1.100 | IP asli pelanggan di CGN space (RFC 6598) |
| Inside Port | 34512 | Source port asli dari pelanggan |
| Outside (Public) IP | 203.0.113.10 | IP publik yang dishare |
| Outside Port | 1024 | Port publik yang dialokasikan |
| Remote IP | 198.51.100.20 | IP tujuan eksternal (destination) |
| Remote Port | 443 | Port tujuan eksternal |
| Subscriber Identifier | user@isp.com / PPPoE session ID | Identitas pelanggan dari RADIUS/AAA |
3.4 Cara Kerja 5-Tuple Binding di CGNAT
5-Tuple = {Source IP, Source Port, Dest IP, Dest Port, Protocol}
CGNAT Translation Process:
1. User (100.64.1.100:34512) β Request ke server (198.51.100.20:443)
2. CGNAT Gateway terima:
- Inside: {100.64.1.100, 34512, 198.51.100.20, 443, TCP}
3. CGNAT buat binding:
- Outside: {203.0.113.10, 1024, 198.51.100.20, 443, TCP}
- Simpan di session table (5-tuple mapping)
4. Buat log entry:
- Timestamp: T1
- Inside: 100.64.1.100:34512
- Outside: 203.0.113.10:1024
- Remote: 198.51.100.20:443
- Subscriber: USER-A
5. Forward paket ke internet dengan source {203.0.113.10:1024}
6. Response balik ke 203.0.113.10:1024 β CGNAT lookup session table
β Forward ke 100.64.1.100:34512
7. Saat session berakhir (FIN / timeout) β optional END log
PENTING:
- 5-tuple harus UNIK dalam satu waktu di CGNAT
- Konflik port dicegah: jika port sudah dipakai, pilih port lain
- Total concurrent session per CGNAT gateway: jutaan
- Session timeout: TCP=~5 menit (idle), UDP=~2 menit (RFC 4787)3.5 Sumber Logging Lain
Selain CGNAT Gateway sendiri, ada sumber data tambahan:
| Sumber Data | Protokol/Format | Data yang Dihasilkan | Digunakan Untuk |
|---|---|---|---|
| RADIUS Accounting | RADIUS (RFC 2866) | PPPoE session start/stop, IP assignment, username, framing IP, session ID, NAS-IP-Address, Acct-Input/Output-Octets | Korelasi subscriber identity dengan CGN inside IP |
| DHCP Lease Log | Syslog | MAC β IP binding, lease time, hostname, Option 82 (circuit ID, remote ID) | Menentukan perangkat spesifik dalam satu rumah |
| PPPoE Session Log | Syslog | Username, session ID, access concentrator, physical port | Korreksi subscriber yang pindah CPE atau reconnect |
| Syslog dari CGN Device | Syslog / RFC 5424 | NAT session create/delete, resource exhaustion, threshold crossing | Monitoring CGN health, forensik tambahan |
| IPFIX / NetFlow v9/v10 | IPFIX (RFC 7011) / NetFlow | Flow record lengkap: 5-tuple, bytes, packets, start/end time, TCP flags | Threat hunting detail, traffic analysis |
| CGNAT Connection Table Dump | CLI/API per vendor | Current session snapshot (bukan historis) | Live forensik β cek siapa yang pakai port tertentu sekarang |
4. Logging Compliance & Regulasi
4.1 Perbandingan Regulasi Global
| Regulasi | Yurisdiksi | Persyaratan Logging CGNAT | Retention | Sanksi |
|---|---|---|---|---|
| GDPR + NGI (E-Privacy Directive / eIDAS) | Uni Eropa | Data retention directive: ISP wajib simpan log koneksi (termasuk CGNAT) minimal 6-12 bulan. Harus bisa korelasi IP β subscriber atas permintaan otoritas. | 6-12 bulan | Denda hingga β¬20 juta atau 4% revenue global |
| FCC CPNI (47 CFR Β§64.2001-2011) | Amerika Serikat | Customer Proprietary Network Information protection. ISP boleh log untuk law enforcement. CALEA (Communications Assistance for Law Enforcement Act) β wajib provide intercept capability. | Variatif per state | FCC fine, revoke license |
| UU ITE + Permenkominfo No. 12/2016 | Indonesia | Pasal 15 UU ITE: penyelenggara jasa telekomunikasi wajib menyimpan data komunikasi (termasuk IP assignment log) minimal 1 tahun. Permenkominfo 12/2016: logging wajib untuk antisipasi kejahatan siber. | Minimal 1 tahun | Pidana penjara, denda, pencabutan izin |
| Anti-Cybercrime Law | Global (ITU model) | Logging subscriber activity, IP assignment, timestamp for 6 months minimum | Variabel per negara | Administrative/criminal |
| Data Retention Directive | beberapa negara EU (sisa) | Setelah Schrems II dan kasus Tele2 Sverige, beberapa negara tetap pertahankan data retention untuk law enforcement | 6-24 bulan | Constitutional challenge (beberapa dibatalkan) |
4.2 Implikasi GDPR Terhadap Logging CGNAT
TENSION: CGNAT Logging vs GDPR
GDPR Prinsip yang Terdampak:
βββ Art. 5(1)(c) β Data Minimisation
β βββ Apakah logging SETIAP session NAT diperlukan?
β βΆ RFC 6888 bilang iya. GDPR bilang "cukup yang perlu."
β βΆ Solusi: Port Block Allocation (RFC 7422) β log hanya alokasi blok
β
βββ Art. 5(1)(e) β Storage Limitation
β βββ Berapa lama log CGNAT disimpan?
β βΆ Umum 90 hari β 1 tahun (kompromi forensik vs privacy)
β βΆ Permenkominfo: 1 tahun minimal
β βΆ GDPR: harus ada justification β "legitimate interest" atau "legal obligation"
β
βββ Art. 17 β Right to Erasure
β βββ Pelanggan minta hapus data CGNAT log-nya?
β βΆ Ditolak dengan dasar "legal obligation to retain"
β βΆ Tapi harus ada retention policy yang jelas dan transparan
β
βββ Art. 5(2) β Accountability
βββ ISP harus bisa buktikan bahwa logging mereka:
βΆ Proporsional
βΆ Terbatas pada yang diperlukan
βΆ Diamankan dengan akses kontrol ketat4.3 Regulasi Indonesia β Detail
| Regulasi | Pasal | Isi Relevan |
|---|---|---|
| UU 19/2016 (Perubahan UU ITE) | Pasal 15 | Penyelenggara sistem elektronik wajib rekam dan simpan data transaksi minimal 5 tahun β BUKAN untuk CGNAT spesifik |
| UU 36/1999 Telekomunikasi | Pasal 31 | Operator wajib jaga kerahasiaan informasi pelanggan (tapi pengecualian untuk penegakan hukum) |
| Permenkominfo 12/2016 | Pasal 7, 8, 9 | Wajib log aktivitas pengguna termasuk IP assignment, timestamp, dan user identifier. Retention minimal 1 tahun |
| Permenkominfo 10/2017 | β | Tata cara pemeriksaan sistem elektronik β termasuk permintaan data ke operator |
| UU ITE 2024 (revisi terbaru) | Pasal 40 | Akses terhadap informasi elektronik untuk penegakan hukum β termasuk data komunikasi |
| PP 71/2019 | β | Penyelenggaraan Sistem dan Transaksi Elektronik β perlindungan data pribadi |
Catatan Praktisi
Di Indonesia, hampir semua ISP besar (Telkom, Indihome, First Media, MyRepublic, Biznet) menggunakan CGNAT untuk pelanggan rumah tangga. Attribution tanpa log CGNAT dari ISP hampir tidak mungkin di jaringan ini.
5. Attribution Challenges
5.1 Masalah Inti: Satu IP, Banyak User
Masalah Utama:
- Satu IP publik (203.0.113.10) bisa melayani 32-64 pelanggan
- Dalam 1 jam, ada ribuan concurrent session dari IP yang sama
- Port rotation membuat mapping stateless dari IP saja tidak berguna
- Waktu adalah dimensi kritis β "pukul berapa" sama pentingnya dengan "dari IP mana"
Ilustrasi:
203.0.113.10:1024 βββ Subscriber A βββ browsing, email, social media
203.0.113.10:3072 βββ Subscriber B βββ streaming Netflix
203.0.113.10:5120 βββ Subscriber C βββ torrenting
203.0.113.10:7168 βββ Subscriber D βββ mengakses situs ilegal
β Dari IP publik saja: EMPAT user berbeda, SATU IP.
β Bedanya: source port dan timestamp.
β Tanpa log CGN: TIDAK BISA dibedakan.5.2 Time-Based Correlation β Kompleksitas
Faktor yang Membuat Korelasi Waktu Sulit:
1. Clock Skew:
- CGN Gateway, server target, dan log collector punya jam berbeda
- Beda beberapa detik bisa menyebabkan salah attribution
- Solusi: NTP sync dengan stratum yang sama
2. NAT Session Timeout:
- Session TCP idle 5 menit β log END bisa telat
- UDP session lebih pendek β mapping bisa hilang
- Jika attacker cepat: session sudah selesai sebelum log tercatat
3. Concurrent Sessions:
- Satu user bisa buka 50+ koneksi simultan
- Membedakan mana koneksi "jahat" dari yang normal butuh pattern analysis
4. Port Randomization:
- Random port allocation: tidak ada konsistensi port per user
- Setiap session baru = port baru
- Tidak bisa korelasi via port saja tanpa log
Contoh Kasus:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Waktu: 14:30:00.000 - 14:30:00.500 β
β Public: 203.0.113.10:2048 β 198.51.100.1:443 (HTTPS bank) β
β Public: 203.0.113.10:2049 β 198.51.100.2:80 (HTTP forum) β
β Public: 203.0.113.10:2050 β 198.51.100.3:22 (SSH) β
β β
β Dua skenario: β
β A) Tiga koneksi = SATU user browsing web β
β B) Tiga koneksi = TIGA user berbeda (CGNAT share) β
β β
β βΆ Hanya CGNAT LOG yang bisa membedakan A vs B. β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ5.3 ISP Cooperation Latency
Proses Attribution via ISP β Timeline Realistis:
T+0 β Incident detected (log dari server korban/third-party)
T+30m β Analis forensik ekstrak 5-tuple: 203.0.113.10:34567 β target:80
T+1h β Permintaan resmi ke ISP (email/telepon/portal abuse)
T+4h β ISP terima request, buka ticket internal
T+8h β Tim NOC ISP cari log CGNAT (bisa lebih lama jika:
- Ada beberapa CGN gateway
- Log distributed di berbagai server
- Rotasi log harian/mingguan
)
T+12h β Log ditemukan: subscriber ID = user@domain
T+18h β RADIUS accounting: subscriber β nama pelanggan β alamat
T+24h β Informasi diberikan ke peminta (jika sesuai regulasi)
T+48h+ β Jika waktu kejadian seminggu lalu: log mungkin sudah di-rotate
Jika tidak ada: atribusi gagal total.
β Latency tipikal: 6-24 jam untuk ISP yang siap (EU, US, JP).
β Latency Indonesia: variatif β ada yang 2-3 hari.
β Selama itu: attacker sudah move, IP bisa reuse.5.4 CGNAT Case: Skenario Attribution Gagal
SCENARIO: Serangan DDoS dari Jaringan CGNAT
Korban menerima DDoS dari IP publik 203.0.113.50.
Analisis:
1. 203.0.113.50:34512 β SYN flood ke korban port 80
2. 203.0.113.50:34513 β SYN flood
3. 203.0.113.50:34514 β SYN flood
4. ... (ribuan port dari IP yang sama)
Masalah:
- 203.0.113.50 adalah IP CGNAT β milik 50+ pelanggan
- Semua port = dari pelanggan yang SAMA atau BEDA?
- Jika botnet: masing-masing port bisa dari device berbeda
- Jika single attacker: satu komputer, tapi port random
Solusi:
- CGNAT log: cek inside IP dari masing-masing port
- Jika semua port β 100.64.5.10 (satu inside IP) β satu komputer
- Jika port134512β100.64.5.10, port34513β100.64.5.11 β duakomputerberbeda
- Tapi: 100.64.5.10 dan 100.64.5.11 masih bisa dari rumah berbeda
- Butuh RADIUS log: subscriber identity masing-masing inside IP
β Attribution gagal jika:
- Log sudah di-rotasi (>90 hari)
- RADIUS accounting tidak matching
- Subscriber menggunakan VPN/Tor di atas CGNAT6. Mapping CGNAT Logs
6.1 Anatomi Log CGNAT β Format Vendor Berbeda
Format CGNAT Log β Cisco ASR 1000 Series (Syslog):
<134>2025-07-02T14:30:00.123Z CGN-GW-01: %CGNAT-6-SESSION: NAT
inside=100.64.1.100:34512
outside=203.0.113.10:1024
remote=198.51.100.20:443
protocol=TCP(6)
subscriber=USER-A@telkom.net.id
session-id=0x8A3F2C1B
flags=NEW
Format CGNAT Log β Juniper MX Series (Syslog):
<14>Jul 2 14:30:00 CGN-GW-02 cgnat[1234]:
CGNAT_SESSION_CREATE:
subscriber="user-a@isp.net",
inside_addr=100.64.1.100,
inside_port=34512,
outside_addr=203.0.113.10,
outside_port=1024,
remote_addr=198.51.100.20,
remote_port=443,
proto=6,
nat_rule=CGN-POOL-01
Format CGNAT Log β Nokia/Alcatel-Lucent 7750 SR (Syslog):
<133>2025-07-02T14:30:00.123Z SR-01 LSN[5678]:
LargeScaleNAT: Session Event
Sub = "pppoe:user-a@telkom"
Inside = 100.64.1.100:34512
Outside = 203.0.113.10:1024
Remote = 198.51.100.20:443
Protocol = TCP
Direction = Forward
Policy = LSN_POLICY_1
Format IPFIX Record (Template-based, binary):
+---------+-----------+----------+-----------+----------+---------+----------+
| SRC_IP | SRC_PORT | DST_IP | DST_PORT | PROTOCOL | BYTES | PACKETS |
+---------+-----------+----------+-----------+----------+---------+----------+
| 100.64. | 34512 | 198.51. | 443 | 6 (TCP) | 1042 | 12 |
| 1.100 | | 100.20 | | | | |
+---------+-----------+----------+-----------+----------+---------+----------+
| 203.0. | 1024 | 198.51. | 443 | 6 (TCP) | 1042 | 12 |
| 113.10 | | 100.20 | | | | |
+---------+-----------+----------+-----------+----------+---------+----------+6.2 Proses Mapping β Dari IP Publik ke Individu
Chain of Attribution:
Langkah 1: Korban/Server mencatat IP publik
βΆ 203.0.113.10:1024 β 198.51.100.20:443 (Timestamp T1)
Langkah 2: Cari di CGNAT Log
Query: WHERE outside_ip='203.0.113.10'
AND outside_port='1024'
AND timestamp β T1 (Β± tolerance)
Result: inside_ip='100.64.1.100'
subscriber='USER-A@telkom.net.id'
private_port='34512'
Langkah 3: Cari di RADIUS Accounting
Query: WHERE framed_ip='100.64.1.100'
AND acct_start <= T1
AND acct_stop β₯ T1 OR acct_stop IS NULL
Result: username='USER-A'
calling_station_id='AA:BB:CC:DD:EE:FF'
nas_port='Gi0/1/0:123'
circuit_id='RT01-OLT02-PON1-ONU5'
Langkah 4: Cari di Database Pelanggan
Query: WHERE username='USER-A'
OR mac_address='AA:BB:CC:DD:EE:FF'
Result: Nama = "Budi Santoso"
Alamat = "Jl. Merdeka No. 42, Jakarta"
ID Pelanggan = "TEL-12345678"
Status = "Active β Fiber 50Mbps"
Langkah 5: Verifikasi (jika perlu)
- Apakah ada pelanggan lain di IP yang sama pada T1?
- Apakah ada anomaly di log yang bisa invalidate korelasi?
- Cross-check dengan DHCP log untuk device spesifik
β Hasil: IP publik + source port + timestamp β Identitas pelanggan
β Confidence: Tinggi (jika log CGN lengkap dan akurat)6.3 Tantangan Implementasi Log Join
Masalah yang Sering Muncul saat Join CGNAT Log + RADIUS:
Γ Time mismatch: CGNAT log pakai UTC, RADIUS pakai local time +7
Γ IP reuse: 100.64.1.100 bisa dipakai user A pagi, user B sore
Γ Subscriber ID tidak konsisten: "USER-A" vs "user-a@telkom.net.id" vs "TEL-12345678"
Γ RADIUS session overlap: user reconnect sebelum session lama timeout
Γ Log loss: CGNAT gateway overload β drop log packet (syslog UDP)
Γ CGNAT pool rotation: IP publik berganti karena pool tired
Γ NAT keepalive: koneksi idle tetap di table β log create tanpa matching log end
Γ Multi-vendor: format log berbeda antara CGN tier 1 dan tier 2
Best Practice:
βββ NTP sync semua device ke source yang sama (ntp.isp.net)
βββ Subscriber ID format standar: username@realm (dari RADIUS)
βββ Syslog over TCP/TLS (RFC 5425, 5426) β jangan UDP untuk critical log
βββ Log buffer di CGN device β kirim ke collector secara reliable
βββ Correlation ID yang join CGNAT + RADIUS + DHCP (session-id yang sama)
βββ Retention policy yang align dengan regulasi (min 1 tahun untuk Indonesia)6.4 Query Manual β Contoh Pencarian Attribution
Skenario: Anda adalah analis forensik. Ada serangan dari 203.0.113.10:2048
ke server korban pada 2025-07-02 pukul 14:30:00 UTC.
Query di Log Collector (ELK/Splunk β pseudo):
# Langkah 1: Cari di CGNAT log
index=cgnat_logs
outside_ip="203.0.113.10"
outside_port="2048"
timestamp>="2025-07-02T14:29:55Z" AND timestamp<="2025-07-02T14:30:05Z"
| table timestamp, inside_ip, inside_port, subscriber_id, remote_ip, remote_port
# Result:
# 14:30:00.100 | 100.64.1.100 | 34512 | USER-A | 198.51.100.20 | 443
# 14:30:00.150 | 100.64.1.100 | 34513 | USER-A | 198.51.100.20 | 443
# Langkah 2: Verifikasi tidak ada overlap
index=cgnat_logs
outside_ip="203.0.113.10"
timestamp>="2025-07-02T14:29:00Z" AND timestamp<="2025-07-02T14:31:00Z"
| stats count by inside_ip
| sort -count
# Result:
# 100.64.1.100 β 142 sessions
# 100.64.1.150 β 5 sessions (beda user, sama IP publik)
# Langkah 3: Cari subscriber detail di RADIUS
index=radius_accounting
framed_ip="100.64.1.100"
timestamp>="2025-07-02T00:00:00Z" AND timestamp<="2025-07-02T23:59:59Z"
| table username, acct_start, acct_stop, calling_station_id, nas_port
# Result:
# USER-A | 2025-07-02T06:00:00Z | 2025-07-02T23:00:00Z | AA:BB:CC:DD:EE:FF | Gi0/1/0:123
# (Active session covers 14:30 UTC β confirmed)7. Tools & Data Sources
7.1 Perbandingan Tools untuk Analisis CGNAT Log
| Tool | Fungsi | Data Source | Kelebihan | Kekurangan |
|---|---|---|---|---|
| ELK Stack (Elasticsearch + Logstash + Kibana) | Centralized log search + dashboard | Syslog CGNAT, IPFIX, RADIUS | Query cepat, visualisasi, scale horizontal | Resource heavy, butuh dedicated team |
| Splunk | Log aggregation + SIEM | Semua log | Enterprise-grade, correlation search, alerting | Mahal (license per GB/day) |
| SILK (SiLK β System for Internet-Level Knowledge) | NetFlow/IPFIX analysis | Flow data dari router | Efisien, billion-record scale, command-line, open source | Tidak bisa baca syslog, flow-only |
| flow-tools (flow-capture, flow-print) | Legacy NetFlow collector | NetFlow v5/v9 | Ringan, stabil, mature | Tidak support CGNAT-specific fields, outdated |
| nfdump / nfsen | NetFlow analysis | NetFlow v5/v9/v10, IPFIX | nfdump cepat filtering, nfsen punya web UI | Tidak handle syslog format |
| Logstash + filter CGNAT | Parse syslog CGNAT ke structured | Syslog dari berbagai vendor | Custom parsing fleksibel, grok filter | Butuh konfigurasi manual per vendor |
| Custom Python/Go script | Query CGNAT log + join RADIUS | Flat file atau API CGN logger | Full control, bisa handle format non-standar | Maintenance burden, no built-in dashboard |
| Grafana + Loki | Log aggregation + visualisasi | Syslog (via Promtail) | Lebih ringan dari ELK, grafana dashboard | Query tidak sekuat Elasticsearch |
| Wireshark / tshark | Packet-level analysis | PCAP dari mirror port CGN | Detil maksimal | Tidak scalable untuk jutaan session |
| Zeek (dengan CGNAT plugin) | Network monitoring + structured logging | Traffic dari mirror port | Log terstruktur otomatis | Tidak inline, perlu span port |
7.2 Arsitektur Referensi β Centralized Log Collector
ββββββββββββββββββββββββββββββββββββββββ
β CGNAT Gateways β
β [Cisco ASR1K] [Juniper MX] [Nokia] β
ββββββββββββ¬βββββββββββββββ¬ββββββββββββββ
β β
Syslog TCP β βββ IPFIX/NetFlow v9
β β
βΌ βΌ
ββββββββββββββββββββββββββββββββββββββββ
β Log Collector Layer β
β [rsyslog] [syslog-ng] [nfcapd] β
β β Buffer: Kafka / Redis β
ββββββββββββ¬βββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββ
β Processing / Parsing Layer β
β Logstash / Vector / Fluentd β
β β Grok filter CGNAT β
β β Normalize ke unified schema β
β β Enrich dengan RADIUS data β
ββββββββββββ¬βββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββ
β Storage / Indexing Layer β
β Elasticsearch / Loki / ClickHouse β
β β Index: timestamp, IP, port, sub ID β
β β Retention: hot 30d, warm 90d, β
β cold archive 1yr+ β
ββββββββββββ¬βββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββ
β Query / Visualization β
β Kibana / Grafana / custom API β
β β Dashboard monitoring CGNAT β
β β Incident Response search β
β β Law enforcement query portal β
ββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββ
β RADIUS / AAA Integration β
β [RADIUS Server] β
β β Accounting data sync β
β β Subscriber identity lookup β
β β MAC β username β pelanggan β
ββββββββββββββββββββββββββββββββββββββββ7.3 Informasi yang Diekstrak dari NetFlow/IPFIX untuk CGNAT
IPFIX adalah evolusi NetFlow v9 yang bisa membawa field spesifik CGNAT:
| IPFIX Field ID | Field Name | Tipe | Deskripsi CGNAT |
|---|---|---|---|
| 8 | sourceIPv4Address | IPv4 | Inside IP (100.64.x.x) |
| 12 | destinationIPv4Address | IPv4 | Remote server IP |
| 7 | sourceTransportPort | uint16 | Inside source port |
| 11 | destinationTransportPort | uint16 | Remote port |
| 4 | protocolIdentifier | uint8 | TCP/UDP/ICMP |
| 2 | packetDeltaCount | uint64 | Paket dalam flow |
| 1 | octetDeltaCount | uint64 | Bytes dalam flow |
| 152 | flowStartSeconds | timestamp | Session start |
| 153 | flowEndSeconds | timestamp | Session end |
| 346 | natInsideSrcAddr | IPv4 | Post-NAT private IP (CGN specific) |
| 347 | natInsideSrcPort | uint16 | Post-NAT private port |
| 348 | natOutsideSrcAddr | IPv4 | Pre-NAT public IP (yang dishare) |
| 349 | natOutsideSrcPort | uint16 | Pre-NAT public port |
| 350 | natInsideDstAddr | IPv4 | Post-NAT private dest (jarang) |
| 351 | natInsideDstPort | uint16 | Post-NAT private dest port |
| 384 | subscriberId | string | Subscriber identity (vendor-specific IE) |
7.4 Contoh Konfigurasi Parsing CGNAT β Logstash Grok
# Cisco ASR 1000 CGNAT syslog β Logstash grok pattern
# Raw log example:
# <134>2025-07-02T14:30:00.123Z CGN-GW-01: %CGNAT-6-SESSION: NAT
# inside=100.64.1.100:34512 outside=203.0.113.10:1024
# remote=198.51.100.20:443 protocol=TCP(6)
# subscriber=USER-A@telkom.net.id session-id=0x8A3F2C1B flags=NEW
grok {
match => {
"message" => [
"<%{NUMBER:facility_severity}>%{TIMESTAMP_ISO8601:timestamp}
%{HOSTNAME:cgw_hostname}: %%{DATA:cgntag}:
NAT inside=%{IP:inside_ip}:%{NUMBER:inside_port}
outside=%{IP:outside_ip}:%{NUMBER:outside_port}
remote=%{IP:remote_ip}:%{NUMBER:remote_port}
protocol=%{DATA:protocol_name}\(%{NUMBER:protocol_number}\)
subscriber=%{DATA:subscriber}
session-id=%{DATA:session_id}%{DATA:flags}"
]
}
}
# Output ke Elasticsearch:
# {
# "inside_ip": "100.64.1.100",
# "inside_port": 34512,
# "outside_ip": "203.0.113.10",
# "outside_port": 1024,
# "remote_ip": "198.51.100.20",
# "remote_port": 443,
# "protocol": "TCP",
# "subscriber": "USER-A@telkom.net.id",
# "session_id": "0x8A3F2C1B",
# "flags": "NEW",
# "timestamp": "2025-07-02T14:30:00.123Z"
# }8. Case Studies
8.1 E-Crime Takedown β IP Convergence Analysis (Europol)
Konteks: Operation Icarus (Europol 2023-2024)
Target: Dark web marketplace yang menggunakan bot CGNAT proxy untuk
menyembunyikan identity admin.
Metode Attribution:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 1. Analis ekstrak semua IP yang mengakses panel admin β
β selama 3 bulan via server access log. β
β β
β 2. IP publik = 64 IP berbeda dari 12 ISP di 5 negara. β
β Semua IP adalah CGNAT IP β tidak bisa langsung traced. β
β β
β 3. Teknik: IP Convergence β β
β a. Ambil semua IP publik yang muncul β
β b. Cari CO-OCCURRENCE pattern: β
β IP mana saja yang muncul bersamaan dalam waktu singkat β
β c. Gunakan graph analysis: node=IP, edge=co-occurrence β
β β
β 4. Hasil: dari 64 IP, 52 IP adalah noise (user biasa), β
β tapi 12 IP menunjukkan pola aneh: β
β - Mereka muncul dari CGNAT pool yang SAMA terus β
β - Dalam 1 jam, multiple IP dari pool yang sama β
β - Ini adalah teknik: admin paksa reconnect β dapat IP baruβ
β β
β 5. Setelah IP convergence: 12 IP β 2 subscriber dari β
β ISP Nordik (melalui CGNAT log). β
β - Satu subscriber = admin marketplace β
β - Satu subscriber = hosting server β
β β
β 6. Takedown: 2 pelaku ditangkap, marketplace seized. β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Key Takeaway: CGNAT bukan penghalang absolut. Dengan analisis
co-occurrence dan convergence, pola tersembunyi bisa diungkap.8.2 APT C2 Identification via CGNAT Correlation (Volexity 2022)
Konteks: APT group (diyakini China-linked) menggunakan compromised
home router di Indonesia sebagai C2 proxy.
Latar Belakang:
- Volexity menemukan beacon dari IP publik Indonesia (180.240.x.x)
ke server C2 di Rusia
- IP adalah CGNAT IP milik ISP besar Indonesia
- Target: perusahaan financial di Singapura
Tantangan:
- Satu IP publik dipakai 48 pelanggan
- Beacon traffic tidak konsisten β muncul 5-10 menit, hilang berjam-jam
- Tidak bisa bedakan mana beacon dan mana traffic normal
Pendekatan:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 1. Analisis timing: β
β - Traffic beacon terjadi setiap Selasa & Kamis jam 14:00 β
β - Tidak pernah di weekend β
β β BUKAN pola bot biasa (bot 24/7) β
β β Curigakan: compromised device indoor β
β β
β 2. CGNAT log analysis: β
β - Extraksi semua session dari IP publik saat beacon β
β - Filter: yang connect ke IP Rusia saja β
β - Dapatkan inside IP: 100.64.3.45 β
β - Cek: apakah inside IP yang SAMA untuk semua beacon? β
β βΆ Ya! Semua beacon dari 100.64.3.45 β
β β Bisa dipastikan satu device β
β β
β 3. RADIUS + DHCP: β
β - 100.64.3.45 β subscriber "FULLNAME@domain" β
β - MAC = TP-Link router murah β
β - Tidak ada VPN atau Tor di sisi subscriber β
β β APT compromise router CPE user biasa β
β β
β 4. Remediasi: β
β - ISP disconnect subscriber β
β - Notifikasi ke pemilik: router compromised β
β - C2 server sinkhole oleh CERT β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Key Takeaway: CGNAT log + timing correlation adalah kunci untuk
mengidentifikasi beacon APT di belakang shared IP.8.3 Kasus Indonesia β Keterbatasan Attribution di Jaringan Nasional
Skenario Disadur dari Berita Publik (2023-2024):
Seorang pelaku mengirimkan ancaman pembunuhan via email
anonymous (ProtonMail β Tor β CGNAT WiFi publik).
Alur Forensik:
1. Email header: IP publik 36.68.x.x (Telkomsel)
2. Timestamp: 2024-01-15 10:23 WIB (UTC+7)
3. Request ke ISP (Telkomsel):
- "Tolong cari log CGNAT dari IP 36.68.x.x pada jam 10:23"
4. Respon ISP:
- "Data perlu waktu. Dasar hukum? Surat?"
- "Format permintaan harus melalui Data Protection Officer"
- "Diarsipkan, kami cek dulu"
Hasil Forensik (setelah 2 minggu):
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Log CGNAT ditemukan: β
β 36.68.x.x: 45000 β 10.0.0.1:34567 β
β β Subscriber ID = "ANONYM" β
β Γ Nama asli: TIDAK ADA (prepaid card, registrasi fiktif) β
β Γ Lokasi: TIDAK AKURAT (BTS triangulation = Β±500m) β
β Γ Device: TIDAK TAHU (hidden di dalam CGNAT) β
β Γ WiFi publik: hotspot di mall β tidak ada login system β
β β
β βΆ Dead end: CGNAT + prepaid + WiFi publik + Tor β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Key Takeaway: CGNAT sendirian sudah menyulitkan. Ditambah
anonimisasi berlapis (Tor, prepaid, public WiFi) β attribution
mendekati impossible tanpa intelijen tambahan.8.4 Insider Threat β Attribution via Port Block Consistency
Konteks: Perusahaan mendeteksi data exfiltration dari employee
yang menggunakan corporate VPN (which then goes through CGNAT
from home ISP).
Kasus:
- Employee melakukan exfil via corporate VPN β dari rumah pribadi
- VPN log menunjukkan: session dari IP publik 114.124.x.x
- IP publik = CGNAT milik Indihome
- 50+ pelanggan di IP yang sama β siapa?
Metode:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Analisis Port Block: β
β β
β Dari VPN log: β
β 114.124.x.x: 14320 β VPN server 443 (setiap hari jam 18:00) β
β 114.124.x.x: 14322 β VPN server 443 β
β 114.124.x.x: 14325 β VPN server 443 β
β (port range 14320-14350 konsisten) β
β β
β Cek CGNAT log: β
β Port 14320-14350 adalah dalam satu port block β
β Port block milik: inside IP 100.64.2.50 β
β Subscriber: employee_nik@company.com β
β β Konfirmasi: employee tertentu β
β β
β Tambahan: β
β - VPN session di jam kerja = employee sedang WFH β
β - Volume exfil = 2GB/hari β tidak wajar β
β - CGNAT log juga menunjukkan akses ke cloud storage β
β (Google Drive pribadi) via port lain dalam blok yang sama β
β β Pattern: exfil terjadi setiap hari selama 3 minggu β
β β
β βΆ Attribution sukses karena port block consistency. β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Key Takeaway: Port Block Allocation (RFC 7422) MEMUDAHKAN attribution
karena port range konsisten per subscriber.9. Privacy Dual-Use
9.1 CGNAT sebagai Privacy Layer (Accidental Privacy)
CGNAT secara tidak sengaja memberikan privacy benefit:
β
Identitas tersembunyi secara default
- Satu IP publik = puluhan/tibuan user
- Tidak bisa dibedakan dari log server target saja
- Efek: CGNAT = NAT anonimitas built-in
β
Anti-tracking alami
- Pelacak (ad networks, analytics) melihat IP publik yang dishare
- Tidak bisa fingerprint individu dari IP saja
- Catatan: masih bisa via cookie, browser fingerprint, dll
β
Mempersulit data broker
- Data broker (seperti jumlah, lokasi dari IP) tidak akurat untuk user CGNAT
- Lokasi geografis di level BTS/kota, bukan rumah spesifik
β
Cross-session isolation
- Setiap reconnect CPE bisa dapat port block berbeda
- Pelacakan jangka panjang lebih sulit via IP saja
β TAPI: Ini adalah privacy yang rapuh
- Hanya IP-based tracking yang terhalang
- Cookie, browser fingerprint, email tracking tetap jalan
- ISP masih tahu SEMUA aktivitas (karena punya CGNAT log)
- Law enforcement dengan otoritas masih bisa trace9.2 CGNAT sebagai Hambatan Incident Response
β IR Teams:
β Waktu adalah musuh
- Setiap jam yang terbuang = attacker lebih jauh
- ISP memiliki SLA 6-24 jam untuk log CGNAT
- Log mungkin sudah di-rotate (90 hari β tidak ada untuk kasus lama)
β Tidak semua ISP punya CGNAT logging
- ISP kecil mungkin tidak mengaktifkan logging (biaya storage besar)
- Beberapa ISP menggunakan CGNAT appliance murah tanpa fitur log
- β Forensik tidak bisa dilanjutkan
β Format log tidak standar
- Setiap vendor punya format berbeda
- Join antara CGNAT log + RADIUS + DHCP sering bermasalah
- Enterprise SIEM mungkin tidak punya parser CGNAT
β Permission & Legal Barrier
- Di beberapa negara, ISP tidak bisa berikan data tanpa surat resmi
- Proses legal bisa memakan waktu berhari-hari
- Incident window: attack terjadi, attribution datang setelah damage
β Overhead Storage
- ISP besar: 10-50 milyar log entry per hari
- Storage cost tinggi β retention diperpendek
- Kompresi lossy (sampling) β data tidak lengkap9.3 Tabel: Keseimbangan Privacy vs Forensik
| Aspek | Privacy Advocate View | Law Enforcement/IR View |
|---|---|---|
| CGNAT logging | Mass surveillance β ISP catat semua aktivitas warga | Essential for attribution β tanpa log, kejahatan tidak bisa dilacak |
| Data retention (90-365 hari) | Pelanggaran privacy, chilling effect | Minimal waktu untuk investigasi kejahatan kompleks |
| Port Block Allocation | Predictable β memudahkan fingerprinting | Memudahkan attribution tanpa log per-session |
| Deterministic mapping | Identitas permanen tersembunyi di IP publik | Korelasi lebih cepat untuk repeat offender |
| Real-time CGNAT query | Privacy nightmare β ISP bisa lacak real-time | Wajib untuk incident response yang responsif |
| Anonymization layer (Tor/VPN di atas CGNAT) | Hak fundamental untuk privacy digital | Tanda merah aktivitas kriminal β semakin banyak lapisan anonim, semakin mencurigakan |
9.4 Rekomendasi Keseimbangan
Pendekatan yang Seimbang:
1. Logging Proporsional:
- Log minimal: cukup untuk attribution (IP, port, timestamp, subscriber)
- Jangan log payload atau konten komunikasi
- Anonimisasi agregat untuk analisis non-forensik
2. Retention Terbatas:
- 90 hari untuk data detail (session-level)
- 1 tahun untuk data minimal (subscriber β IP mapping, tanpa port)
- Hapus otomatis setelah masa retention
3. Akses Ketat:
- Log CGNAT hanya bisa diakses oleh:
a. Tim NOC/abuse ISP (untuk operational)
b. Law enforcement dengan surat resmi
c. Incident responder dengan NDA dan SLA
- Audit trail untuk setiap akses log
4. Transparansi:
- Pelanggan berhak tahu bahwa ISP melakukan logging
- Privacy policy yang jelas tentang retention dan akses
- Opsi untuk menggunakan VPN/Tor jika menginginkan privacy ekstra
5. Alternatif Teknis:
- Port Block Allocation (RFC 7422) sebagai pengganti full logging
- NAT64/DNS64 untuk mengurangi ketergantungan pada IPv4 CGNAT
- IPv6 native β eliminasi kebutuhan CGNAT sama sekali10. Alternatif & Evolusi Teknologi
10.1 Perbandingan Alternatif CGNAT
| Teknologi | Mekanisme | IPv6 Support | Logging Requirement | Adoption |
|---|---|---|---|---|
| CGNAT (NAT444) | PAT/shared IP β translation | Tidak langsung | WAJIB (RFC 6888) | Dominan di Asia, Afrika, LATAM |
| NAT64 + DNS64 | IPv6-only client β IPv4 internet via translation | Side-by-side | Sama dengan CGNAT | Operator mobile (T-Mobile US, Telstra) |
| DS-Lite (RFC 7596) | IPv6 tunnel + CGNAT element | IPv6 native, IPv4 via tunnel | Sama dengan CGNAT | European operators (Deutsche Telekom, Free FR) |
| MAP-E (RFC 7597) | Encapsulation β IPv4-in-IPv6 tunnel | IPv6 native | Lebih rendah (deterministic mapping) | Softbank JP, Comcast US |
| MAP-T (RFC 7599) | Translation β IPv4 β IPv6 (similar NAT64) | IPv6 native | Lebih rendah (deterministic) | Emerging β belum banyak deployed |
| LISP (RFC 6830) | Locator/ID separation β routing overlay | Bisa dual-stack | Berbeda: LISP mapping system | Enterprise/Campus, bukan residential |
| Pure IPv6 | No NAT at all β every device has global address | NATIF | Tidak diperlukan | Nordics (DK, SE), US mobile, India (Reliance Jio) |
| 464XLAT (RFC 6877) | CLAT+PLAT β client-side NAT64 | IPv6-only client | Sama dengan CGNAT (PLAT side) | Android default, T-Mobile US massive deployment |
10.2 Visual: Perbedaan Arsitektur Alternatif
DS-Lite:
[CPE] βββ IPv6-only WAN ββββ [AFTR (ISP)] βββ IPv4 Internet
β β
ββββ’ IPv4 traffic β tunnel ke AFTR
β’ AFTR melakukan CGNAT
β’ Logging: AFTR side (sama dengan CGNAT)
ββββ’ IPv6 traffic β langsung ke IPv6 internet
MAP-E:
[CPE] βββ IPv6-only WAN ββββ [BR (ISP)] βββ IPv4 Internet
β β
ββββ’ Port mapping DETERMINISTIK
β’ Setiap CPE dapat blok port tetap (PSID = Port Set ID)
β’ Tidak perlu session-level logging
β’ Cukup log alokasi PSID
ββββ’ Contoh: PSID = 4 (port range 4096-6143)
β’ 100 pelanggan dalam satu IP publik
β’ Tapi setiap pelanggan punya port range tetap
NAT64 + DNS64:
[Client IPv6-only] βββ [NAT64 Gateway] βββ IPv4 Internet
β β
ββββ’ DNS64: A query β synthesizes AAAA from IPv4 β client dpt IPv6
β’ Client kirim packet ke IPv6 prefix NAT64 (64:ff9b::/96)
β’ NAT64 translate IPv6 β IPv4
β’ Logging: NAT64 gateway (mirror CGNAT)
464XLAT:
[Client] βββ [CLAT (mobile/CPE)] βββ [PLAT (ISP)] βββ IPv4 Internet
β β β
ββββ’ CLAT: translate IPv4 β IPv6 (via NAT46)
β’ PLAT: translate IPv6 β IPv4 (via NAT64)
β’ Overall: client experience seperti NAT saja
β’ BUT: CLAT di device, PLAT di ISP
β’ Logging: PLAT side β sama dengan CGNAT10.3 Mengapa IPv6 adalah Solusi Final
IPv6 = Address Abundance = No NAT Needed
Mengapa CGNAT tidak ideal:
Γ Single point of failure β jika CGN gateway down, ribuan pelanggan offline
Γ Performance bottleneck β semua traffic harus melalui NAT processor
Γ Logging overhead β storage, processing, compliance
Γ Application breakage β P2P, VoIP, gaming, VPN (IPsec, IKE)
Γ Troubleshooting complexity β menentukan "siapa" dari "IP mana"
Γ Privacy paradox β ISP punya log lengkap, tapi IR team tidak bisa akses cepat
IPv6 mengeliminasi semua masalah ini:
β Setiap device punya global unique address (2001:db8::/32 range)
β No NAT table, no port sharing, no logging untuk attribution
β End-to-end connectivity β P2P, VoIP, gaming work natively
β Troubleshooting β IP langsung = device langsung
β Privacy via Privacy Extensions (RFC 4941, RFC 8981):
- Temporary addresses: berubah setiap 24 jam
- Mencegah tracking via MAC-based IPv6 (EUI-64)
Tapi IPv6 punya masalah sendiri:
Γ Monitoring: IPv6 address space sangat besar β scanning attack surface besar
Γ Security: filter incoming connection harus lebih ketat (no NAT firewall)
Γ Transition: dual-stack selama bertahun-tahun
Γ Logging tetap diperlukan untuk law enforcement β bedanya lebih sederhana
Realisasi Industri (2025):
[ CGNAT dominant ]βββββββ[ CGNAT + IPv6 dual ]βββββββ[ IPv6 dominant ]
Asia, Afrika, LATAM now Europe, US now Nordics, Jio, T-Mobile US
β Target: IPv6-only world β CGNAT hanya kenangan.
β Realita: 10-20 tahun lagi sebelum itu terjadi.10.4 Tabel: Dampak Setiap Alternatif terhadap Forensik
| Alternatif | Attribution Complexity | Log Volume | IR Speed | Privacy Impact |
|---|---|---|---|---|
| CGNAT (NAT444) | Tinggi β butuh join CGN log + RADIUS | Sangat tinggi (miliaran/hari) | Lambat β 6-24 jam | Rendah β ISP tahu semuanya |
| CGNAT + Port Block | Sedang β cukup cek port range | Rendah (hanya alokasi blok) | Sedang β 1-4 jam | Sedang β predictable range |
| DS-Lite | Tinggi β AFTR log + RADIUS | Tinggi | Lambat | Rendah |
| MAP-E | Rendah β deterministic port mapping (PSID) | Rendah (hanya PSID allocation) | Cepat β 30 menit | Sedang β PSID tetap |
| MAP-T | Rendah β sama dengan MAP-E | Rendah | Cepat | Sedang |
| NAT64 | Tinggi β gateway NAT64 log | Tinggi | Lambat | Rendah |
| 464XLAT | Sedang β PLAT side log | Sedang | Sedang | Rendah |
| Pure IPv6 | Sangat rendah β IP langsung = device | Minimal (DHCPv6 log saja) | Cepat β real-time | Sedang β privacy extension |
| CGNAT + VPN/Tor | Sangat tinggi β CGNAT hanya layer 1 dari banyak | CGNAT log tidak berguna sendiri | Sangat lambat | Tinggi β user anonim |
11. Bottom Line
Bottom Line
CGNAT adalah realita pahit yang harus dihadapi praktisi keamanan jaringan. Di satu sisi, CGNAT memperpanjang umur IPv4 dan memungkinkan konektivitas global di tengah kelangkaan alamat IP. Di sisi lain, CGNAT adalah musuh terbesar attribution forensik β mengaburkan identitas pelaku di balik IP publik yang dishare oleh puluhan pelanggan.
Takeaway Kunci untuk Threat Hunter & Analis Forensik:
- IP publik saja TIDAK CUKUP untuk attribution di era CGNAT. Selalu butuh 5-tuple lengkap (IP:port source & destination + protocol + timestamp).
- Log CGNAT adalah sumber truth β tanpa akses ke CGNAT log ISP, attribution berhenti di IP publik.
- Waktu adalah musuh β setiap jam delay mengurangi probabilitas log masih tersedia.
- Port Block Allocation (RFC 7422) adalah teman terbaik forensik β port range konsisten per subscriber memudahkan korelasi tanpa log super-detail.
- Regulasi retention bervariasi per negara β 90 hari sampai 5 tahun. Kenali yurisdiksi ISP yang berurusan dengan kasus kamu.
- IPv6 adalah solusi final β CGNAT hanya tambal ban. Native IPv6 menghilangkan masalah attribution sama sekali.
- VPN/Tor di atas CGNAT = attribution wall yang sangat sulit ditembus tanpa intelijen tambahan.
Referensi & Cross-References Vault
Lihat Juga
- network-security β OSI Layer model, CGNAT ada di Layer 3
- ids-ips-waf-nsm-comparison β Tools untuk monitoring jaringan, termasuk analisis flow & CGNAT logging
- arp-spoofing-incident-addendum β Contoh incident forensik di Layer 2, metodologi berbeda dengan CGNAT attribution
- threat-hunting-methodology β Threat hunting framework dengan data source CGNAT log
- logging-compliance-guide β Panduan retention log sesuai regulasi Indonesia
- ipv6-migration β Migrasi IPv6 dan dampaknya terhadap security monitoring
Note ini adalah living document. CGNAT terus berkembang seiring migrasi IPv6 dan munculnya regulasi baru. Last updated: 2025-07-02