it-swarm-id.com

Cara membuat mesin dapat diakses dari LAN menggunakan nama hostnya

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
131
tshepang

Di Internet, termasuk jaringan lokal, mesin saling memanggil dengan 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:

  • a file hosts . Ini adalah file teks sederhana yang memetakan nama ke alamat.
  • the sistem nama domain (DNS) . Ini adalah metode yang digunakan di Internet global. Misalnya, ketika Anda memuat halaman ini di browser, hal pertama yang dilakukan komputer Anda adalah membuat permintaan DNS untuk mengetahui alamat unix.stackexchange.com.
  • database nama lain seperti NIS , LDAP atau Direktori Aktif . Ini digunakan di beberapa jaringan perusahaan, tetapi tidak terlalu sering (banyak jaringan yang menggunakan NIS, LDAP atau AD untuk database pengguna menggunakan DNS untuk nama mesin). Jika jaringan Anda menggunakan salah satunya, Anda memiliki administrator jaringan profesional dan harus bertanya kepadanya apa yang harus dilakukan.

Ada banyak cara di mana ini dapat bekerja dalam praktik; tidak mungkin untuk menutupi semuanya. Dalam jawaban ini, saya akan menjelaskan beberapa situasi umum.

File host

Metode file hosts memiliki keuntungan 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:

127.0.0.1       localhost localhost.localdomain
198.51.100.42   darkstar darkstar.bands

Pada sistem unix, file hosts adalah /etc/hosts. Di Windows, ini c:\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:

  1. Tentukan alamat IP B. Pada B, jalankan perintah ifconfig (jika perintah tidak ditemukan, coba /sbin/ifconfig). Output akan berisi baris seperti ini:

    eth1      Link encap:Ethernet  HWaddr 01:23:45:67:89:ab
              inet addr:10.3.1.42  Bcast:10.3.1.255  Mask:255.255.255.0
    

    Dalam contoh ini, alamat IP B adalah 10.3.1.42. Jika ada beberapa inet addr: baris, pilih yang sesuai dengan kartu jaringan Anda, jangan pernah entri lo atau terowongan atau entri virtual.

  2. Edit file host pada A. Jika A menjalankan beberapa sistem unix, Anda perlu mengedit /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 lebih dari 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:

    eth1      Link encap:Ethernet  HWaddr 01:23:45:67:89:ab

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 serupa. Begini tampilannya pada Tomat firmware :

tomato screenshot

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 formulir 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 paket dnsmasq (jika belum ada di sana). 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.

  • Beri tahu Dnsmasq untuk melayani nama Host Anda selain dari yang didapatnya dari Internet. Cara paling sederhana adalah memasukkan nama dan alamat IP di /etc/hosts (lihat bagian “File hosts” di atas), dan pastikan /etc/dnsmasq.conf tidak memiliki no-hosts arahan tanpa komentar. (Baris yang dimulai dengan # dikomentari.) Anda dapat meletakkan nama-nama di file yang berbeda; jika Anda melakukannya, beri garis addn-hosts=/path/to/hosts/file di /etc/dnsmasq.conf.
  • Beri tahu Dnsmasq cara mendapatkan alamat IP untuk nama mesin di Internet.

    • Jika Anda menjalankan Debian, Ubuntu atau turunan, instal paket resolvconf. Dalam kebanyakan kasus umum, semuanya akan bekerja di luar kotak.
    • Jika administrator jaringan atau ISP Anda memberi Anda alamat server DNS, masukkan di /etc/dnsmasq.conf, sebagai contoh:

      server=8.8.8.8
      server=8.8.4.4
      
    • Jika Anda tidak tahu apa pengaturan DNS Anda saat ini, lihat di file /etc/resolv.conf. Jika Anda melihat garis seperti nameserver 8.8.8.8, beri garis server=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 termasuk restart dnsmasq atau /etc/init.d/dnsmasq restart.

  • Katakan kepada S untuk menggunakan layanan Dnsmasq untuk semua permintaan nama Host. Edit file /etc/resolv.conf (sebagai root), hapus setiap nameserver baris, dan tulis nameserver 127.0.0.1 sebagai gantinya.
    • Jika Anda menggunakan resolvconf pada Debian atau Ubuntu, /etc/resolv.conf mungkin suboptimal jika Anda menginstal paket resolvconf dengan jaringan aktif dan berjalan. Pastikan bahwa file base, head dan tail dalam /etc/resolvconf/resolv.conf.d/ direktori tidak mengandung entri nameserver, lalu jalankan resolvconf -u (sebagai root).
  • Beri tahu mesin lain untuk menggunakan S sebagai server DNS. Edit /etc/resolv.conf dan ganti semua nameserver baris dengan satu nameserver 10.3.0.2 di 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 sendiri nama domain 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, Tanpa-IP menyediakan layanan DNS dinamis gratis, jika Anda menggunakan domain mereka sendiri (mis. example.ddns.net).

Gunakan DNS Multicast (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.

27
tne
vi /etc/dhcp3/dhclient.conf

send Host-name "ubuntu-laptop";

dan

/etc/init.d/networking restart
4
LanceBaynes

Komputer tidak hanya secara ajaib mengetahui nama host milik alamat IP apa. Bahkan di localhost, ada beberapa jenis pencarian yang terlibat.

Anda perlu mengkonfigurasi sistem lain untuk menggunakan beberapa jenis layanan pencarian nama. Ini bisa /etc/hosts pada klien, ldap, nsswitch, atau server DNS normal. Saya menggunakan bind dan memasukkan semua mesin lokal di dalam domain lokal, lalu memilikinya melayani DNS untuk situs itu.

3
Caleb

Jika Anda tidak ingin ikut campur dengan hostfile, dan kebetulan Anda memiliki nama domain Internet dan akses Internet, Anda dapat membuat subdomain jenis A yang menunjuk ke IP internal Anda. Misalnya pengaturan intranet-pc1.someperson.com dan menunjuk ke 10.0.1.13.

1
MK Yung