Berikut detail mesin yang ingin saya akses menggunakan nama hostnya:
$ hostname
hostname
$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 hostname.company.local hostname
Ini adalah instalasi Debian 6 default (Squeeze), jadi saya belum mengutak-atik apa pun.
Ini yang saya dapatkan dari mesin (menjalankan Debian Unstable) mencoba mengakses mesin di atas:
$ ping hostname
ping: unknown host hostname
$ ping hostname.company.local
ping: unknown host hostname.company.local
$ cat /etc/resolv.conf
nameserver 192.168.2.21
nameserver 192.168.2.51
search company.local
networking
tepang
sumber
sumber
ping
), atau pada mesin yang dikonsultasikan dengan klien. Apa OS pada klien? Apa konfigurasi DNS-nya?ping
dan/etc/hosts
tapi bukan tentang DNS sih?Jawaban:
Di Internet, termasuk jaringan lokal, mesin saling memanggil berdasarkan alamat IP . Untuk mengakses mesin B dari mesin A menggunakan nama mesin B, mesin A harus memiliki beberapa cara untuk memetakan nama B ke alamat IP-nya. Ada tiga cara untuk mendeklarasikan nama mesin di A:
unix.stackexchange.com
.Ada banyak cara di mana ini dapat bekerja dalam praktiknya; tidak mungkin untuk menutupi semuanya. Dalam jawaban ini, saya akan menjelaskan beberapa situasi umum.
File host
Metode file hosts memiliki keunggulan bahwa itu tidak memerlukan metode khusus. Ini bisa rumit jika Anda memiliki beberapa mesin, karena Anda harus memperbarui setiap mesin ketika nama satu mesin berubah. Ini tidak cocok jika alamat IP B ditugaskan secara dinamis (sehingga Anda mendapatkan yang berbeda setiap kali Anda terhubung ke jaringan).
File hosts adalah daftar garis sederhana yang memetakan nama ke alamat IP. Ini terlihat seperti ini:
Pada sistem unix, file host adalah
/etc/hosts
. Di Windows, ituc:\windows\system32\drivers\etc\hosts
. Hampir setiap sistem operasi yang dapat Anda sambungkan ke Internet memiliki file yang serupa; Wikipedia memiliki daftar .Untuk menambahkan entri untuk B di file host A:
Tentukan alamat IP B. Pada B, jalankan perintah
ifconfig
(jika perintah tidak ditemukan, coba/sbin/ifconfig
). Output akan berisi baris seperti ini:Dalam contoh ini, alamat IP B adalah 10.3.1.42. Jika ada beberapa
inet addr:
baris, pilih satu yang sesuai dengan kartu jaringan Anda, jangan pernahlo
entri atau terowongan atau entri virtual./etc/hosts
sebagai pengguna super; lihat Bagaimana saya menjalankan perintah sebagai administrator sistem (root) .DHCP + DNS di jaringan rumah atau kantor kecil
Metode ini adalah yang paling sederhana jika Anda memiliki peralatan yang diperlukan. Anda hanya perlu mengkonfigurasi satu perangkat, dan semua komputer Anda akan tahu tentang nama masing-masing. Metode ini mengasumsikan komputer Anda mendapatkan alamat IP mereka melalui DHCP , yang merupakan metode bagi komputer untuk secara otomatis mengambil alamat IP ketika mereka terhubung ke jaringan. Jika Anda tidak tahu apa DHCP itu, mereka mungkin melakukannya.
Jika jaringan Anda memiliki router rumah , itu adalah tempat terbaik untuk mengkonfigurasi nama untuk mesin yang terhubung ke router itu. Pertama, Anda perlu mengetahui alamat MAC dari B. Setiap perangkat jaringan memiliki alamat MAC yang unik. Pada B, jalankan perintah
ifconfig -a
(jika perintah tidak ditemukan, coba/sbin/ifconfig -a
). Output akan berisi baris seperti ini:Dalam contoh ini alamat MAC adalah
01:23:45:67:89:ab
. Anda harus memilih jalur HWaddr yang sesuai dengan port jaringan yang terhubung ke router melalui kabel (atau kartu wifi jika Anda terhubung melalui wifi). Jika Anda memiliki beberapa entri dan Anda tidak tahu yang mana, colokkan kabel dan lihat perangkat jaringan mana yang menerima alamat IP (inet addr
baris tepat di bawah).Sekarang, pada antarmuka web router Anda, cari pengaturan seperti "DHCP". Nama dan lokasi pengaturan sepenuhnya tergantung pada model router, tetapi sebagian besar memiliki pengaturan dasar yang sama. Berikut ini tampilannya pada firmware Tomat :
Masukkan alamat MAC, alamat IP, dan nama yang diinginkan. Anda dapat memilih alamat IP apa pun pada rentang alamat jaringan lokal Anda. Sebagian besar router rumah sudah dikonfigurasikan sebelumnya untuk rentang alamat form 192.168. x . y atau 10. x . y . z . Misalnya, pada router Tomat yang ditunjukkan di atas, pada tab "Network", ada pengaturan "alamat IP router" dengan nilai 10.3.0.1 dan pengaturan "subnet mask" dengan nilai 255.255.255.0, yang berarti bahwa komputer di jaringan lokal harus memiliki alamat dari formulir 10.3.0. z . Ada juga berbagai alamat untuk alamat DHCP yang ditetapkan secara otomatis (10.3.0.129–10.3.0.254); untuk alamat DHCP yang Anda tentukan secara manual, pilih satu yang tidak ada dalam kisaran ini.
Sekarang hubungkan B ke jaringan, dan itu akan mendapatkan alamat IP yang Anda tentukan dan itu akan dapat dijangkau dengan nama yang ditentukan dari mesin apa pun dalam jaringan.
Buat server DNS Anda sendiri dengan Dnsmasq
Jika Anda tidak memiliki router rumah yang mampu, Anda dapat mengatur fungsionalitas yang sama pada mesin Linux apa pun. Saya akan menjelaskan cara menggunakan Dnsmasq untuk mengatur DNS . Ada banyak program serupa lainnya; Saya memilih Dnsmasq karena mudah dikonfigurasikan dan ringan (itulah yang digunakan oleh router Tomato di atas, misalnya). Dnsmasq tersedia di sebagian besar distribusi Linux dan BSD untuk PC, server dan peralatan jaringan.
Pilih komputer yang selalu aktif, yang memiliki alamat IP statis, dan itu menjalankan semacam Linux atau BSD; sebut saja S (untuk server). Pada S, instal
dnsmasq
paket (jika belum ada). Di bawah ini saya akan menganggap bahwa file konfigurasi adalah/etc/dnsmasq.conf
; lokasi dapat bervariasi pada beberapa distribusi. Sekarang Anda perlu melakukan beberapa hal./etc/hosts
(lihat bagian “File hosts” di atas), dan pastikan bahwa/etc/dnsmasq.conf
tidak adano-hosts
arahan yang tidak dikomentari. (Baris yang dimulai dengan a#
dikomentari.) Anda dapat meletakkan nama-nama di file yang berbeda; jika Anda melakukannya, menempatkan garisaddn-hosts=/path/to/hosts/file
di/etc/dnsmasq.conf
.Beri tahu Dnsmasq cara mendapatkan alamat IP untuk nama mesin di Internet.
resolvconf
paket. Dalam kebanyakan kasus umum, semuanya akan bekerja di luar kotak.Jika administrator jaringan atau ISP Anda memberi Anda alamat server DNS, masukkan
/etc/dnsmasq.conf
, misalnya:Jika Anda tidak tahu apa pengaturan DNS Anda saat ini, lihat di file
/etc/resolv.conf
. Jika Anda melihat garis sepertinameserver 8.8.8.8
, menempatkan garisserver=8.8.8.8
di/etc/dnsmasq.conf
. Setelah Anda berubah/etc/dnsmasq.conf
, mulai ulang Dnsmasq. Perintah untuk melakukan itu tergantung pada distribusi; kemungkinan tipikal termasukrestart dnsmasq
atau/etc/init.d/dnsmasq restart
./etc/resolv.conf
(sebagai root), hapus setiapnameserver
baris, dannameserver 127.0.0.1
ganti./etc/resolv.conf
mungkin kurang optimal jika Anda menginstalresolvconf
paket dengan jaringan yang aktif dan berjalan. Pastikan bahwa file-file tersebutbase
,head
dantail
di/etc/resolvconf/resolv.conf.d/
direktori tidak mengandungnameserver
entri, kemudian jalankanresolvconf -u
(sebagai root)./etc/resolv.conf
dan ganti semuanameserver
baris dengan satu dinameserver 10.3.0.2
mana 10.3.0.2 adalah alamat IP S (lihat di atas untuk mengetahui cara mencari alamat IP S).Anda juga dapat menggunakan Dnsmasq sebagai server DHCP , sehingga mesin dapat memperoleh alamat yang sesuai dengan namanya secara otomatis. Ini di luar cakupan jawaban ini; lihat dokumentasi Dnsmasq (tidak sulit). Perhatikan bahwa hanya ada satu server DHCP pada jaringan lokal yang diberikan (definisi yang tepat dari jaringan lokal berada di luar cakupan jawaban ini).
Nama-nama di Internet global
Sejauh ini, saya telah mengasumsikan jaringan lokal. Bagaimana jika Anda ingin memberi nama pada mesin yang ada di sudut dunia yang berbeda? Anda masih dapat menggunakan salah satu teknik di atas, kecuali bahwa bagian-bagian yang melibatkan DHCP hanya berlaku dalam jaringan lokal. Atau, jika mesin Anda memiliki alamat IP publik, Anda dapat mendaftarkan nama publik Anda sendiri untuk mereka. (Anda dapat menetapkan alamat IP pribadi ke nama publik juga; itu kurang umum dan kurang bermanfaat, tetapi tidak ada kesulitan teknis.)
Dapatkan nama domain Anda sendiri
Anda bisa mendapatkan nama domain Anda sendiri dan menetapkan alamat IP ke nama host di dalam domain ini. Anda harus mendaftarkan nama domain dengan penyedia nama domain; ini biasanya berharga $ 10– $ 15 / tahun (untuk domain termurah). Gunakan antarmuka web penyedia nama domain Anda untuk menetapkan alamat ke nama host.
DNS dinamis
Jika mesin Anda memiliki alamat IP dinamis, Anda dapat menggunakan protokol DNS dinamis untuk memperbarui alamat IP yang terkait dengan nama mesin ketika alamat berubah. Tidak semua penyedia nama domain mendukung DNS dinamis, jadi belanjalah sebelum Anda membeli. Untuk penggunaan pribadi, No-IP menyediakan layanan DNS dinamis gratis, jika Anda menggunakan domain sendiri (mis
example.ddns.net
.).sumber
Gunakan Multicast DNS (mDNS). Ini adalah protokol konfigurasi nol yang berfungsi pada subnet LAN. Tidak diperlukan server. Menggunakan
.local
TLD (yang sudah Anda gunakan).Karena Anda bertanya, semuanya tampak berlebihan. Jika tidak, maka Anda mungkin tidak akan bertanya.
sumber
avahi
paket. Anda dapat meminta jaringan Anda melaluiavahi-browse -alr
misalnya.dan
sumber
service restart dhcpd
). Bagian kedua akan dilakukan pada klien, dan pada kebanyakan distro sekarang harus dijalankan sebagaiservice networking restart
.Komputer tidak hanya secara ajaib mengetahui nama host milik alamat IP apa. Bahkan di localhost, ada semacam pencarian yang terlibat.
Anda perlu mengkonfigurasi sistem lain untuk menggunakan beberapa jenis layanan pencarian nama. Ini bisa
/etc/hosts
di klien, ldap, nsswitch, atau server DNS normal. Saya menggunakanbind
dan memasukkan semua mesin lokal di dalam domain lokal, lalu memilikinya melayani DNS untuk situs itu.sumber