Birden fazla adres vererek Debian winbind ad çözümlemesi - nasıl bir tane seçilir?


1

DNS sunucumuzun çalışmadığı zamanlarda bir geri dönüş olarak Debian kurulumunda winbind kurmaya çalışıyorum. Mevcut sunucu kurulumumuzla çalışacak bir yöntem kullanmam gerektiğinden winbind (mDNS / Avahi gibi alternatifler yerine) kullanmalıyım.

Debian kurulumu aşağıdakilerden oluşur:

  • Virtualbox'da Debian sıkmak konuk (4.1.18)
  • NAT ağına sahip Windows XP ana işletim sistemi
  • Debian misafir IP adresi 10.0.2.15
  • Etki alanı denetleyicisine LDAP kimlik doğrulamasıyla Subversion / Bugzilla için kullanılır

Windows ana makine 192.168.1.25 IP adresine sahiptir.

Windows etki alanı denetleyicimiz, Server 2011 Essentials'tır ve ne olursa olsun düzeltebilecek erişimim yok, bu yüzden sıralanıncaya kadar yalnızca geçici bir çözüm arayabilirim (winbind kullanarak). Bunun IP adresi 192.168.1.1.

Debian kurulumunda winbind, libnss_winbind ve libpam_winbind'i kurdum. Ben değiştim hosts sıraya gir /etc/nsswitch.conf için hosts: files dns wins. Kullanırsam nmblookup servername sonra aşağıdaki çıktıyı alıyorum:

querying servername on 10.0.2.255
169.254.2.33 servername<00>
192.168.1.1 servername<00>

Görünen o ki, sunucuda iki NIC var, biri özel adrese sahip, diğeri iç ağımızda bir adres var (192 ... adres). Tüm NIC adreslerini kontrol edebileceğim başka bir bilgisayara bakarak çıktının neyi temsil ettiğini doğruladım.

Benim sorunum eğer böyle bir şey kullanırsam ping daha sonra ulaşılamayan bildirilen ilk adresi (özel 169 ... adresi) kullanır. Aynısı, apache'nin Subversion veya BugZilla için LDAP kimlik doğrulaması yaptığı zamanlar gibi diğer tüm ağ kodları için de geçerlidir.

Winbind döndüren değerleri yapılandırmak veya geri dönmeden önce IP adresinin erişilebilir olup olmadığını görmek için bir durum kontrolü yaptırmak için herhangi bir yolu var mı? Winbind belgelerinde veya çevrimiçi olarak hiçbir şey bulamadım.

Düzenle: route -n aşağıdakileri bildirir:

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

İçeriğimin /etc/network/interfaces aşağıdaki gibidir, ancak şu anda alt ağ veya yönlendirme kurulumuyla ne yapması gerektiğinden emin değilim (yani, orada hiçbir şey yokmuş gibi görünmüyor):

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet dhcp

İşte ana bilgisayardan yönlendirme tablosu:

===========================================================================
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

IP adreslerini ağ boyunca el ile pinglemenin bir sonucudur. Traceroute çıktım yalnızca son hedefi gösterir (eğer kullanırsam -I seçenek) veya tüm yıldız işaretleri. Bu nedenle, hedefe, ana bilgisayardaki yukarıdaki yönlendirme tablosu ile ulaşılabilir olmalıdır. VirtualBox konuk adres aralıklarının, VirtualBox uygulamasının kendisi tarafından yönetildiğinden ve ana bilgisayara maruz kalmadığından görünmediğini kabul ediyorum. 10.0.2.2'nin NAT ağındaki VirtualBox ağ geçidi olduğunu öğrendim. 192.168.56.1, sunucunun IP adresidir.

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

Ve VirtualBox kesinlikle NAT kullanıyor (NAT ağ geçidi yukarıdaki günlüğe erişilebildiği için) ve yalnızca ana bilgisayar ağını kullanmıyor. Ana bilgisayar yönlendirme tablomdaki Yalnızca Ana Bilgisayar Adaptörü, onu devre dışı bıraktığım ve hala yukarıdaki gibi ping işlemi yapabildiğim için kırmızı bir ringa balığıydı. Ayrıca, VirtualBox konuk ağ ayarlarını gösteren aşağıdaki ekran görüntüsüne bakın: VirtualBox guest network settings. Yapılandırmamı doğru kullanmasını engelleyen bir hata olmadığı sürece. Config'in ilgili bölümü:

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

Bence smb.conf da cevaplamak için yardımcı olabilir.
Alexander Kudrevatykh

Yanıtlar:


1

Debian'daki 169.254.0.0 ağı sıfır yapılandırma ağıdır. Vikipedi'de şöyle tanımlanır:

Sıfır konfigürasyon ağı acemi kullanıcıların (etkin) herhangi bir (sıfır) konfigürasyon olmadan ağ özellikli cihazları birbirine bağlamasına izin verir, ağda DHCP ve DNS sunucusu olmadığında kullanılır.

Zeroconf şunları sağlar:

Ağ adresinin otomatik atanması (yerel bağlantı)   Ana bilgisayar adlarının çok noktaya yayın DNS üzerinden otomatik çözünürlüğü   DNS sunucularını otomatik olarak keşfettikten sonra ağ servislerinin otomatik konumu (yani yazdırma).

Bir VM'de güvenle devre dışı bırakılabilir, Bunu yapmak için, / etc / default / avahi-daemon dosyasını şu satırı içerecek şekilde değiştirin:

AVAHI_DAEMON_DETECT_LOCAL=0

Bunu yaptığınızda (ve avahi-daemon hizmetini yeniden başlattıktan sonra), 169 ... sunucusu kaybolacak.

EDIT: Herhangi bir oranda, eğer bağlantıyı test edersen, bu küçük senaryo şunları yapacaktır:

#!/bin/sh
ping -c1 TheIpWhoseConnectionYouWantToTest
if [ $? -eq 0 ]; then 
    Specify here the actions you wish to insert IF there is connection
fi

If you also wish to determine the Gateway automatically, you can do it as follows:

IP=$(route -n | grep UG | awk '{print $2}')
echo $IP

Bu, ağ geçidi IP'nizi otomatik olarak döndürür


Debian VM'de avahi kurulu değil ve görebildiğim kadarıyla ( ifconfig çıkış) bir bağlantı yerel IPv4 adresine sahip değil. Winbind tarafından bildirilen bağlantı yerel adresleri, diğer bilgisayarların hiçbirine bağlı olmayan 2. NIC'lerine aittir, dolayısıyla Windows onlara yerel bağlantı adresi verir. Hedef ana bilgisayar, bir şekilde sıraladığı tüm IP adreslerini ve winbind, ana bilgisayar adı araması için birinciyi bildirir ve hiçbir şeyle bağlantısı olmayan bağlantı yerel adresi olur.
tinman

yönlendirme tablonuz yanlış yapılandırılmış. Garip hata ... varsayılan ağ geçidinin 10.0.2.0 olduğunu söylüyor, ki bu bir bilgisayar değil, bir ağdır. Ana bilgisayar sanal arabiriminizin buna ayarlanmış olduğunu varsayarak büyük olasılıkla 10.0.2.1 olarak değiştirmelisiniz.
MariusMatutiae

Ev sahibinin yönlendirme tablosunu da gösterebilir misiniz?
MariusMatutiae

Ek olarak, bir yazım hatası yaptım (üzgünüm, VM'den kopyalayamıyorum) Debian yönlendirme tablosunun bir parçasıyla, aslında bir ağa değil, ana bilgisayar arayüzüne işaret ediyor.
tinman

Ana bilgisayar yönlendirme tablonuz, ana makineye sahip bir ağınız olduğunu ve VM'nin 192.168.1.0 ağınızla konuşmanıza asla izin vermeyeceğini söylüyor. Yalnızca ana bilgisayar ağı bile yanlış yapılandırılmış: ana bilgisayar 19.168.56.0'a aitken konuk ipinizin 10.0.2.0 ağına ait olduğunu görebiliyor musunuz? İkisi birbiriyle konuşamaz. Yalnızca ana bilgisayar ağını düzeltebilir veya VM'nize 192.168.1.0 LAN'a erişim verebilirim. Hangisini tercih ediyorsun?
MariusMatutiae

1

Öncelikle sorunu yanlış yerde aradığınızı belirtmek isterim.

  • Dahil olmak üzere tüm protokoller çok noktaya yayın DNS ve winbind güvenli bir şekilde geri dönebilmeli herşey kullanılabilir adresler.
  • Sonra başvurunuz (dahil) ping ) adres bilgi kayıtlarının listesini almak için işletim sisteminin API'sini kullanmalıdır.
  • Son olarak, başvurunuz başarıyla bağlanana kadar bilgi kayıtlarını birer birer denemelidir ( ping Burada doğru test aracı olmayabilir).

İşin püf noktası bu olsa bile winbind (veya başka bir eklenti) birden fazla adres içeren bir liste döndürür, hepsinin iletişim kurabileceğiniz geçerli adresler olması gerekir. Aksi halde, sunucuda veya ağ yapılandırmasında bir sorun vardır. Ancak o zaman uygulama bağlanmaya çalıştığında bile reddedilmelidir. Hedef host ulaşılamaz ve listedeki bir sonraki öğeyi hemen denemelisiniz.

Yukarıdakiler geçerli olmasa ve sunucuyu, ağ yapılandırmasını ve yerel uygulamayı düzeltemezseniz bile, kaybolmazsınız. İşletim sistemleri adı çözünürlüğü API ( getaddrinfo() function) listeyi bazı kriterlere göre yeniden sıralar. Ve bu kriterleri düzenleyerek etkileyebilirsiniz /etc/gai.conf IPv4 adresleri ile çeşitli IPv6 adresleri arasındaki dengeyi yapılandırmak amacıyla tanıtıldı. Bu arada, senin winbind nsswitch eklentisi birkaç adres döndürür sen Bunların hangisinin tercih edileceğine dair son sözü olan kişi.

Diğer cevaplarda belirtildiği gibi, 169.254/16 IPv4 yerel bağlantı adresleri için adres alanı ayrılmıştır. İşletim sistemleri genellikle IPv4 yerel bağlantı adresleri için çok iyi bir desteğe sahip değildir (IPv6 yerel bağlantı adreslerinin aksine, çok daha iyi desteği vardır). Her zamanki gibi önlemek IPv4 yerel bağlantı adresleri, uygun bir IPv4 adresi olan ana bilgisayarlar için tamamen.

Yukarıdakilerin hiçbiri mümkün değilse, IPv4 adreslerini kurulumlarınızda /etc/gai.conf ile ve muhtemelen varsayılan olarak Linux dağıtımlarında varsayılan olarak dağıtmak iyi bir fikirdir.

Ayrıca, yerel sisteminizin muhtemelen adresinden bir adresi olmadığı için 169.254/16 alt ağ, çözümleyici kitaplığınız böyle bir adresi sonuçtan kaldırabilir; çünkü ulaşılamaz . Dağıtım uzmanlarıyla bir tartışma başlatmayı düşünmek faydalı olabilir.

Başka bir çözüm ise winbind IPv4 yerel bağlantı adreslerinin beklendiği gibi çalıştığı tek bir ethernet segmentindeki makineler. Sanallaştırmanız için NAT yerine ağ köprülemesi kullanmanız gerekir.


Teşekkürler. Soruma henüz bir çözüm bulamamıştım, ilk düşündüğümden çok daha büyük bir konu gibi görünüyor. Cevabınız, soru sorulunca soruyu kapsıyor.
tinman

Teşekkürler. Peki şimdi ana endişe nedir?
Pavel Šimerda

0

Meraktan dolayı, rotanız varsayılan rotayı olduğu gibi gösterir? Gibi bir şey: route -n size sisteminizdeki varsayılan rotayı gösterir.

Garip bir nedenden dolayı 169.254.0.0/16 alt ağının bir yerde varsayılan ağ geçidi olarak ayarlanıp ayarlanmadığını merak ediyorum. Belki ağ yapılandırmanızda veya / etc / network / arayüzlerde, bir alt ağınız, ağınız ve potansiyel olarak "varsayılan" arayüzünüz için kurulumu yönlendirirsiniz.


İstediğiniz bilgiler için düzenlenmiş soruya bakın.
tinman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.