Bab 5. Penyiapan jaringan

Daftar Isi

5.1. Infrastruktur jaringan dasar
5.1.1. Resolusi nama host
5.1.2. Nama antarmuka jaringan
5.1.3. Rentang alamat jaringan untuk LAN
5.1.4. Dukungan perangkat jaringan
5.2. Konfigurasi jaringan modern untuk desktop
5.2.1. Alat konfigurasi jaringan GUI
5.3. Konfigurasi jaringan modern tanpa GUI
5.4. Konfigurasi jaringan tingkat rendah
5.4.1. Perintah Iproute2
5.4.2. Operasi jaringan tingkat rendah yang aman
5.5. Optimalisasi jaringan
5.5.1. Mencari MTU yang optimal
5.5.2. Optimasi TCP WAN
5.6. Infrastruktur netfilter
[Tip] Tip

Untuk panduan khusus Debian modern tentang jaringan, baca Buku Pegangan Administrator Debian — Mengonfigurasi Jaringan.

[Tip] Tip

Di bawah systemd, networkd dapat digunakan untuk mengelola jaringan. Lihat systemd-networkd(8).

Mari kita tinjau infrastruktur jaringan dasar pada sistem Debian modern.

Tabel 5.1. Daftar alat konfigurasi jaringan

paket popcon ukuran jenis deskripsi
network-manager V:369, I:440 14500 config::NM NetworkManager (daemon): mengelola jaringan secara otomatis
network-manager-gnome V:126, I:371 5350 config::NM NetworkManager (frontend GNOME)
ifupdown V:584, I:987 217 config::ifupdown alat standar untuk menghidupkan dan mematikan jaringan (spesifik Debian)
isc-dhcp-client V:219, I:982 689 config::low-level klien DHCP
pppoeconf V:0, I:7 192 config::helper pembantu konfigurasi untuk koneksi PPPoE
wpasupplicant V:341, I:503 3817 , , dukungan klien untuk WPA dan WPA2 (IEEE 802.11i)
wpagui V:0, I:2 800 , , Klien GUI Qt untuk wpa_supplicant
wireless-tools V:176, I:239 297 , , alat untuk memanipulasi Ekstensi Nirkabel Linux
iw V:223, I:477 294 , , alat untuk mengonfigurasi perangkat nirkabel Linux
iproute2 V:701, I:949 3294 config::iproute2 iproute2, IPv6 dan konfigurasi jaringan tingkat lanjut lainnya: ip(8), tc(8), dll
iptables V:306, I:942 2521 config::Netfilter alat administrasi untuk penyaringan paket dan NAT (Netfilter)
iputils-ping V:206, I:997 118 ujian menguji keterjangkauan jaringan host jarak jauh berdasarkan nama host atau alamat IP (iproute2)
iputils-arping V:5, I:78 60 ujian menguji keterjangkauan jaringan host jarak jauh yang ditentukan oleh alamat ARP
iputils-tracepath V:4, I:46 52 ujian melacak jalur jaringan ke host jarak jauh
ethtool V:96, I:267 631 ujian menampilkan atau mengubah pengaturan perangkat Ethernet
mtr-tiny V:6, I:52 161 test::low-level melacak jalur jaringan ke host jarak jauh (curses)
mtr V:4, I:44 214 , , melacak jalur jaringan ke host jarak jauh (curses dan GTK)
gnome-nettool V:1, I:31 2110 , , alat untuk operasi informasi jaringan umum (GNOME)
nmap V:28, I:231 4452 , , pemetaan jaringan / pemindai port (Nmap, konsol)
zenmap V:0, I:4 2939 , , pemetaan jaringan / pemindai port (GTK)
tcpdump V:18, I:196 1330 , , penganalisis lalu lintas jaringan (Tcpdump, konsol)
wireshark I:52 72 , , penganalisis lalu lintas jaringan (Wireshark, GTK)
tshark V:2, I:30 427 , , penganalisis lalu lintas jaringan (konsol)
tcptrace V:0, I:2 401 , , menghasilkan ringkasan koneksi dari keluaran tcpdump
snort V:0, I:1 2206 , , sistem deteksi intrusi jaringan yang fleksibel (Snort)
ntopng V:1, I:1 969 , , menampilkan penggunaan jaringan di peramban web
dnsutils V:39, I:423 275 , , klien jaringan yang disediakan dengan BIND: nslookup(8), nsupdate(8), dig(8)
dlint V:0, I:5 53 , , memeriksa informasi zona DNS menggunakan pencarian server nama
dnstracer V:0, I:1 60 , , melacak rantai server DNS ke sumber

Resolusi nama host saat ini juga didukung oleh mekanisme NSS (Name Service Switch). Aliran resolusi ini adalah sebagai berikut.

  1. Berkas "/etc/nsswitch.conf" dengan stanza seperti "host: files dns" menentukan urutan resolusi nama host. (Ini menggantikan fungsi lama dari stanza "order" dalam "/etc/host.conf".)

  2. Metode files dipanggil terlebih dahulu. Jika nama host ditemukan di berkas "/etc/hosts", ia mengembalikan semua alamat yang valid untuk itu dan keluar. (Berkas "/etc/host.conf" berisi "multi on".)

  3. Metode dns dipanggil. Jika nama host ditemukan oleh kueri ke Internet Domain Name System (DNS) yang diidentifikasi oleh berkas "/etc/resolv.conf", ia mengembalikan semua alamat yang valid untuk itu dan keluar.

Misalnya, "/etc/hosts" terlihat seperti berikut ini.

127.0.0.1 localhost
127.0.1.1 host_name

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Setiap baris dimulai dengan alamat IP dan diikuti oleh nama host terkait.

Alamat IP 127.0.1.1 di baris kedua dari contoh ini mungkin tidak ditemukan pada beberapa sistem mirip-Unix lainnya. Debian Installer membuat entri ini untuk sistem tanpa alamat IP permanen sebagai solusi untuk beberapa perangkat lunak (misalnya, GNOME) seperti yang didokumentasikan dalam bug #719621.

nama_host cocok dengan nama host yang didefinisikan dalam "/etc/hostname".

Untuk sistem dengan alamat IP permanen, alamat IP permanen itu harus digunakan di sini, bukan 127.0.1.1.

Untuk sistem dengan alamat IP permanen dan fully qualified domain name (FQDN) yang disediakan oleh Domain Name System (DNS), nama_host.nama_domain kanonik itu harus digunakan, bukan hanya nama_host.

"/etc/resolv.conf" adalah berkas statis jika paket resolvconf tidak dipasang. Jika dipasang, itu adalah taut simbolis. Apapun kasusnya, itu berisi informasi yang menginisialisasi rutinitas resolver. Jika DNS ditemukan di IP="192.168.11.1", itu berisi yang berikut.

nameserver 192.168.11.1

Paket resolvconf membuat "/etc/resolv.conf" ini menjadi taut simbolis dan mengelola isinya dengan skrip hook secara otomatis.

Untuk workstation PC pada lingkungan LAN adhoc umum, nama host dapat diurai melalui DNS Multicast (mDNS, Zeroconf) selain ke metode dasar files dan dns.

  • Avahi menyediakan kerangka kerja untuk Multicast DNS Service Discovery di Debian.

  • Ini setara dengan Apple Bonjour / Apple Rendezvous.

  • Paket plugin libnss-mdns menyediakan resolusi nama host melalui mDNS untuk fungsi GNU Name Service Switch (NSS) dari GNU C Library (glibc).

  • Berkas "/etc/nsswitch.conf" harus memiliki stanza seperti "host: files mdns4_minimal [NOTFOUND=return] dns mdns4".

  • Nama host yang diakhiri dengan domain pseudo-top-level (TLD) ".local" diurai.

  • Alamat multicast mDNS IPv4 link-local "224.0.0.251" atau yang setara pada IPv6 "FF02::FB" digunakan untuk membuat permintaan DNS bagi nama yang diakhiri dengan ".local".

Resolusi nama host melalui NETBios over TCP/IP yang usang, yang digunakan oleh sistem Windows yang lebih lama, dapat disediakan dengan memasang paket winbind. Berkas "/etc/nsswitch.conf" harus memiliki stanza seperti "host: files mdns4_minimal [NOTFOUND=return] dns mdns4 wins" untuk mengaktifkan fungsi ini. (Sistem Windows modern biasanya menggunakan metode dns untuk resolusi nama host.)

[Catatan] Catatan

Perluasan Domain Tingkat Atas generik (gTLD) di Sistem Nama Domain sedang berlangsung. Hati-hati dengan tabrakan nama saat memilih nama domain yang hanya digunakan dalam LAN.

Antarmuka jaringan biasanya diinisialisasi dalam "networking.service" untuk antarmuka lo dan "NetworkManager.service" untuk antarmuka lain pada sistem desktop Debian modern di bawah systemd.

Debian dapat mengelola koneksi jaringan melalui perangkat lunak daemon manajemen seperti NetworkManager (NM) (network-manager dan paket terkait).

  • Mereka datang dengan GUI dan program baris perintah mereka sendiri sebagai antarmuka pengguna mereka.

  • Mereka datang dengan daemon mereka sendiri sebagai sistem backend mereka.

  • Mereka memungkinkan koneksi mudah dari sistem Anda ke Internet.

  • Mereka memungkinkan manajemen yang mudah dari konfigurasi jaringan kabel dan nirkabel.

  • Mereka memungkinkan kita untuk mengonfigurasi jaringan independen dari paket ifupdown warisan.

[Catatan] Catatan

Jangan gunakan alat konfigurasi jaringan otomatis ini untuk server. Ini ditujukan terutama untuk pengguna desktop yang berpindah-pindah di laptop.

Alat konfigurasi jaringan modern ini perlu dikonfigurasi dengan benar untuk menghindari konflik dengan paket ifupdown warisan dan berkas konfigurasinya "/etc/network/interfaces".

Dokumentasi resmi untuk NM pada Debian disediakan di "/usr/share/doc/network-manager/README.Debian".

Pada dasarnya, konfigurasi jaringan untuk desktop dilakukan sebagai berikut.

  1. Jadikan pengguna desktop, misalnya foo, masuk grup "netdev" dengan yang berikut (Atau, lakukan secara otomatis melalui D-bus di bawah lingkungan desktop modern seperti GNOME dan KDE).

    $ sudo adduser foo netdev
  2. Mempertahankan konfigurasi "/etc/network/interfaces" sesederhana yang berikut ini.

    auto lo
    iface lo inet loopback
  3. Jalankan ulang NM dengan yang berikut.

    $ sudo systemctl restart network-manager
  4. Konfigurasikan jaringan Anda melalui GUI.

[Catatan] Catatan

Hanya antarmuka yang tidak tercantum dalam "/etc/network/interfaces" yang dikelola oleh NM untuk menghindari konflik dengan ifupdown.

[Tip] Tip

Jika Anda ingin memperluas kemampuan konfigurasi jaringan NM, silakan mencari modul plug-in yang sesuai dan paket tambahan seperti network-manager-openconnect, network-manager-openvpn-gnome, network-manager-pptp-gnome, mobile-broadband-provider-info, gnome-bluetooth, dll.

Di bawah systemd, jaringan dapat dikonfigurasi dalam /etc/systemd/network/ sebagai gantinya. Lihat systemd-resolved(8), resolved.conf(5), dan systemd-networkd(8).

Ini memungkinkan konfigurasi jaringan modern tanpa GUI.

Konfigurasi klien DHCP dapat diatur dengan membuat "/etc/systemd/network/dhcp.network". Mis.:

[Match]
Name=en*

[Network]
DHCP=yes

Konfigurasi jaringan statis dapat diatur dengan membuat "/etc/systemd/network/static.network". Mis.:

[Match]
Name=en*

[Network]
Address=192.168.0.15/24
Gateway=192.168.0.1

Untuk konfigurasi jaringan tingkat rendah di Linux, gunakan program iproute2 (ip(8), …) .

Anda dapat menggunakan perintah jaringan tingkat rendah sebagai berikut dengan aman karena mereka tidak mengubah konfigurasi jaringan.


[Tip] Tip

Beberapa alat konfigurasi jaringan tingkat rendah ini berada di "/sbin/". Anda mungkin perlu mengeluarkan path perintah lengkap seperti "/sbin/ifconfig" atau menambahkan "/sbin" ke daftar "$PATH" di "~/.bashrc" Anda.

Optimasi jaringan generik berada di luar lingkup dokumentasi ini. Saya hanya menyentuh subjek yang berkaitan dengan koneksi kelas konsumen.


NM biasanya menetapkan Maximum Transmission Unit (MTU) yang optimal secara otomatis.

Dalam beberapa kesempatan, Anda mungkin ingin mengatur MTU secara manual setelah percobaan dengan ping(8) dengan opsi "-M do" untuk mengirim paket ICMP dengan berbagai ukuran paket data. MTU adalah ukuran paket data maksimum yang berhasil tanpa fragmentasi IP ditambah 28 byte untuk IPv4 dan ditambah 48 byte untuk IPv6. Misalnya berikut menemukan MTU untuk koneksi IPv4 menjadi 1460 dan MTU untuk koneksi IPv6 menjadi 1500.

$ ping -4 -c 1 -s $((1500-28)) -M do www.debian.org
PING  (149.20.4.15) 1472(1500) bytes of data.
ping: local error: message too long, mtu=1460

---  ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms

$ ping -4 -c 1 -s $((1460-28)) -M do www.debian.org
PING  (130.89.148.77) 1432(1460) bytes of data.
1440 bytes from klecker-misc.debian.org (130.89.148.77): icmp_seq=1 ttl=50 time=325 ms

---  ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 325.318/325.318/325.318/0.000 ms
$ ping -6 -c 1 -s $((1500-48)) -M do www.debian.org
PING www.debian.org(mirror-csail.debian.org (2603:400a:ffff:bb8::801f:3e)) 1452 data bytes
1460 bytes from mirror-csail.debian.org (2603:400a:ffff:bb8::801f:3e): icmp_seq=1 ttl=47 time=191 ms

--- www.debian.org ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 191.332/191.332/191.332/0.000 ms

Proses ini adalah penemuan Path MTU (PMTU) (RFC1191) dan perintah tracepath(8) dapat mengotomatisasi ini.


Selain panduan dasar ini, Anda harus tahu hal berikut.

  • Setiap penggunaan metode tunneling (VPN dll.) dapat mengurangi MTU optimal lebih lanjut dengan overhead mereka.

  • Nilai MTU tidak boleh melebihi nilai PMTU yang ditentukan secara eksperimental.

  • Nilai MTU yang lebih besar umumnya lebih baik ketika keterbatasan lain terpenuhi.

Ukuran segmen maksimum (maximum segment size/MSS) digunakan sebagai ukuran alternatif ukuran paket. Hubungan antara MSS dan MTU adalah sebagai berikut.

  • MSS = MTU - 40 untuk IPv4

  • MSS = MTU - 60 untuk IPv6

[Catatan] Catatan

Iptables(8) (lihat Bagian 5.6, “Infrastruktur netfilter”) optimasi berbasis dapat menjepit ukuran paket oleh MSS dan berguna untuk router. Lihat "TCPMSS" di iptables(8).

Throughput TCP dapat dimaksimalkan dengan menyesuaikan parameter ukuran penyangga TCP seperti yang dijelaskan dalam "Panduan Penalaan TCP" dan "Penalaan TCP" untuk WAN bandwidth tinggi dan latensi tinggi modern. Sejauh ini, pengaturan baku Debian saat ini berfungsi dengan baik bahkan untuk LAN saya yang terhubung oleh layanan FTTP 1G bps cepat.

Netfilter menyediakan infrastruktur untuk stateful firewall dan network address translation (NAT) dengan modul kernel Linux (lihat Bagian 3.8.1, “Inisialisasi modul kernel”).


Program ruang pengguna utama netfilter adalah iptables(8). Anda dapat melakukan konfigurasi manual netfilter secara interaktif dari shell, menyimpan statusnya dengan iptables-save(8), dan mengembalikannya melalui skrip init dengan iptables-restore(8) saat boot ulang sistem.

Skrip pembantu konfigurasi seperti shorewall memudahkan proses ini.

Lihat dokumentasi di http://www.netfilter.org/documentation/ (atau di "/usr/share/doc/iptables/html/").

[Tip] Tip

Meskipun ini ditulis untuk Linux 2.4, baik perintah iptables(8) dan fungsi kernel netfilter berlaku untuk Linux 2.6 dan seri kernel 3.x.