Saya mencoba membuat winbind diatur pada instalasi Debian sebagai fallback ketika server DNS kami gagal berfungsi. Saya harus menggunakan winbind (bukan alternatif seperti mDNS / Avahi) karena saya harus menggunakan metode yang akan bekerja dengan pengaturan server kami yang ada.
Instalasi Debian terdiri dari:
- Debian memeras tamu di Virtualbox (4.1.18)
- Windows XP host OS dengan jaringan NAT
- Alamat IP tamu Debian 10.0.2.15
- Digunakan untuk Subversion / Bugzilla dengan otentikasi LDAP ke pengontrol domain
Mesin host Windows memiliki alamat IP 192.168.1.25.
Pengontrol domain Windows kami adalah Server 2011 Essentials dan saya tidak memiliki akses untuk memperbaiki apa pun yang terjadi dengannya, jadi saya hanya dapat mencari solusi (menggunakan winbind) sampai diurutkan. Alamat IP yang satu ini adalah 192.168.1.1.
Saya menginstal winbind, libnss_winbind dan libpam_winbind pada instalasi Debian. Saya mengubah hosts
antri /etc/nsswitch.conf
untuk hosts: files dns wins
. Jika saya gunakan nmblookup servername
maka saya mendapatkan output berikut:
querying servername on 10.0.2.255
169.254.2.33 servername<00>
192.168.1.1 servername<00>
Tampaknya ada dua NIC di server, satu memiliki alamat pribadi dan yang lain memiliki alamat di jaringan internal kami (192 ... alamat). Saya telah memverifikasi bahwa apa yang diwakili oleh output dengan mencari komputer lain di mana saya dapat memeriksa alamat semua NIC.
Masalah saya adalah jika saya menggunakan sesuatu seperti ping
kemudian ia menggunakan alamat pertama yang dilaporkan (alamat pribadi 169 ...), yang tidak dapat dijangkau. Hal yang sama berlaku untuk kode jaringan lain, seperti ketika apache melakukan otentikasi LDAP untuk Subversion atau BugZilla.
Apakah ada cara untuk mengkonfigurasi nilai yang mengembalikan winbind, atau membuatnya melakukan pemeriksaan status untuk melihat apakah alamat IP dapat dijangkau sebelum mengembalikannya? Saya belum menemukan apa pun di dokumentasi winbind atau online.
Edit: route -n
melaporkan yang berikut:
Desintation Gateway Genmask Flags Metric Ref Use Iface
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 eth0
Konten saya /etc/network/interfaces
adalah sebagai berikut, tetapi saya saat ini tidak yakin apa yang harus dilakukan dengan pengaturan subnet atau perutean (mis. sepertinya tidak memiliki apa pun di sana):
auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet dhcp
Ini tabel routing dari host:
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x2 ...00 13 72 e0 93 4d ...... Broadcom NetXtreme 57xx Gigabit Controller - Pac
ket Scheduler Miniport
0x3 ...08 00 27 00 90 b3 ...... VirtualBox Host-Only Ethernet Adapter - Packet S
cheduler Miniport
===========================================================================
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.254 192.168.1.25 20
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.1.0 255.255.255.0 192.168.1.25 192.168.1.25 20
192.168.1.25 255.255.255.255 127.0.0.1 127.0.0.1 20
192.168.1.255 255.255.255.255 192.168.1.25 192.168.1.25 20
192.168.56.0 255.255.255.0 192.168.56.1 192.168.56.1 20
192.168.56.1 255.255.255.255 127.0.0.1 127.0.0.1 20
192.168.56.255 255.255.255.255 192.168.56.1 192.168.56.1 20
224.0.0.0 240.0.0.0 192.168.1.25 192.168.1.25 20
224.0.0.0 240.0.0.0 192.168.56.1 192.168.56.1 20
255.255.255.255 255.255.255.255 192.168.1.25 192.168.1.25 1
255.255.255.255 255.255.255.255 192.168.56.1 192.168.56.1 1
Default Gateway: 192.168.1.254
===========================================================================
Persistent Routes:
None
Berikut ini adalah hasil ping alamat IP secara manual di sepanjang jaringan. Output traceroute saya hanya menunjukkan tujuan akhir (jika saya menggunakan -I
opsi) atau semua tanda bintang. Jadi tujuan harus dapat dijangkau dengan tabel routing di atas pada host. Saya berasumsi rentang alamat tamu VirtualBox tidak muncul karena dikelola oleh aplikasi VirtualBox itu sendiri dan tidak terkena host. Saya menemukan bahwa 10.0.2.2 adalah gateway VirtualBox dalam jaringan NAT. 192.168.56.1 adalah alamat IP untuk host
PING 10.0.2.2 (10.0.2.2) 56(84) bytes of data.
64 bytes from 10.0.2.2: icmp_req=1 ttl=63 time=0.498 ms
64 bytes from 10.0.2.2: icmp_req=2 ttl=63 time=0.490 ms
64 bytes from 10.0.2.2: icmp_req=3 ttl=63 time=0.516 ms
64 bytes from 10.0.2.2: icmp_req=4 ttl=63 time=0.515 ms
--- 10.0.2.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.490/0.504/0.516/0.029 ms
PING 192.168.56.1 (192.168.56.1) 56(84) bytes of data.
64 bytes from 192.168.56.1: icmp_req=1 ttl=128 time=0.755 ms
64 bytes from 192.168.56.1: icmp_req=2 ttl=128 time=1.04 ms
64 bytes from 192.168.56.1: icmp_req=3 ttl=128 time=0.545 ms
64 bytes from 192.168.56.1: icmp_req=4 ttl=128 time=0.606 ms
--- 192.168.56.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 0.545/0.738/1.047/0.194 ms
PING 192.168.1.25 (192.168.1.25) 56(84) bytes of data.
64 bytes from 192.168.1.25: icmp_req=1 ttl=128 time=0.610 ms
64 bytes from 192.168.1.25: icmp_req=2 ttl=128 time=0.639 ms
64 bytes from 192.168.1.25: icmp_req=3 ttl=128 time=0.570 ms
64 bytes from 192.168.1.25: icmp_req=4 ttl=128 time=0.659 ms
--- 192.168.1.25 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 0.570/0.619/0.659/0.041 ms
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_req=1 ttl=128 time=1.15 ms
64 bytes from 192.168.1.1: icmp_req=2 ttl=128 time=0.934 ms
64 bytes from 192.168.1.1: icmp_req=3 ttl=128 time=0.941 ms
64 bytes from 192.168.1.1: icmp_req=4 ttl=128 time=0.856 ms
--- 192.168.1.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 0.856/0.971/1.154/0.112 ms
Dan VirtualBox pasti menggunakan NAT (karena gateway NAT dapat dijangkau di log di atas) dan tidak menggunakan jaringan hanya host. Host Only Adapter di tabel routing host saya adalah herring merah karena saya telah menonaktifkannya dan masih bisa melakukan ping seperti di atas. Lihat juga screengrab di bawah ini yang menunjukkan pengaturan jaringan tamu VirtualBox: . Kecuali ada beberapa bug yang mencegahnya menggunakan konfigurasi saya dengan benar. Bagian yang relevan dari konfigurasi:
<Network>
<Adapter slot="0" enabled="true" MACAddress="08002780662C" cable="true" speed="0" type="82540EM">
<DisabledModes/>
<NAT>
<DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/>
<Alias logging="false" proxy-only="false" use-same-ports="false"/>
<Forwarding name="http" proto="1" hostport="80" guestport="80"/>
<Forwarding name="https" proto="1" hostport="443" guestport="443"/>
</NAT>
</Adapter>
sumber
Jawaban:
Jaringan 169.254.0.0 pada Debian adalah jaringan tanpa konfigurasi. Ini dijelaskan di Wikipedia sebagai:
Itu dapat dinonaktifkan dengan aman di VM, Untuk melakukannya, Anda memodifikasi file / etc / default / avahi-daemon untuk mengandung baris ini:
Ketika Anda melakukan ini (dan setelah me-restart layanan avahi-daemon), server 169 ... akan hilang.
EDIT: Bagaimanapun, jika Anda menguji konektivitas, skrip kecil ini akan melakukan:
Ini akan mengembalikan IP gateway Anda secara otomatis
sumber
ifconfig
output) tidak memiliki tautan alamat IPv4 lokal. Tautan alamat lokal yang dilaporkan oleh winbind milik NIC kedua komputer lain yang tidak terhubung dengan apa pun sehingga Windows memberi mereka alamat lokal tautan. Host target tampaknya melaporkan semua alamat IP yang telah disortir dengan cara apa pun dan winbind melaporkan yang pertama untuk pencarian nama host dan kebetulan itu adalah alamat lokal tautan yang tidak terhubung dengan apa pun.Pertama-tama saya ingin menyatakan bahwa Anda mencari masalah di tempat yang salah.
ping
) harus menggunakan API sistem operasi untuk mendapatkan daftar catatan informasi alamat.ping
mungkin bukan alat tes yang tepat di sini).Kuncinya adalah meskipun winbind (atau plugin lain) mengembalikan daftar yang berisi banyak alamat, semuanya harus alamat yang valid yang dapat Anda hubungi. Kalau tidak, ada masalah di server atau di konfigurasi jaringan. Tetapi bahkan ketika aplikasi mencoba untuk terhubung, itu harus ditolak host tujuan tidak dapat dijangkau dan harus segera mencoba item berikutnya dalam daftar.
Bahkan jika hal di atas tidak berlaku dan Anda tidak dapat memperbaiki server atau konfigurasi jaringan atau aplikasi lokal, Anda tidak hilang. API resolusi nama sistem operasi (the
getaddrinfo()
fungsi) mengatur ulang daftar sesuai dengan beberapa kriteria. Dan Anda dapat memengaruhi kriteria itu dengan mengedit/etc/gai.conf
yang diperkenalkan sebagian besar untuk mengkonfigurasi keseimbangan antara alamat IPv4 dan berbagai jenis alamat IPv6. Dengan begitu, selagi Anda winbind Plugin nsswitch mengembalikan sejumlah alamat, itu kamu siapa yang memiliki kata terakhir yang mana yang akan disukai.Sebagaimana dinyatakan dalam jawaban lain,
169.254/16
ruang alamat disediakan untuk alamat IP-link-lokal IPv4. Sistem operasi umumnya tidak memiliki dukungan yang sangat baik untuk alamat link-local IPv4 (berbeda dengan alamat link-local IPv6, yang memiliki dukungan jauh lebih baik). Cara yang biasa adalah dengan menghindari Alamat IPv4 link-local sama sekali untuk host yang memiliki alamat IPv4 yang tepat.Jika tidak ada di atas yang mungkin, itu akan menjadi ide yang baik untuk menentukan prioritas alamat IPv4 oleh /etc/gai.conf dalam instalasi Anda dan mungkin bahkan secara default di distribusi Linux.
Juga, karena sistem lokal Anda mungkin tidak memiliki alamat dari
169.254/16
subnet, perpustakaan resolver Anda harus dapat menghapus alamat tersebut dari hasil karena itu tidak bisa dijangkau . Mungkin ada baiknya mempertimbangkan memulai diskusi dengan pengelola distribusi.Solusi lain adalah menjaga Anda winbind mesin di segmen ethernet tunggal di mana alamat tautan-lokal IPv4 berfungsi seperti yang diharapkan. Anda harus menggunakan penghubung jaringan alih-alih NAT untuk virtualisasi Anda.
sumber
Karena penasaran, rute apa yang Anda tampilkan sebagai rute default? Sesuatu seperti: route -n akan menunjukkan rute default pada sistem Anda.
Saya ingin tahu apakah, untuk beberapa alasan aneh, subnet 169.254.0.0/16 ditetapkan sebagai gateway default di suatu tempat. Mungkin dalam konfigurasi jaringan Anda, atau / etc / network / interfaces, apakah Anda memiliki pengaturan subnet, jaringan, dan rute yang berpotensi untuk antarmuka "default" Anda.
sumber