dnsmasq: 2 MAC adresini aynı IP adresine eşleme


17

2 farklı MAC adresini aynı IP adresine eşlemek mümkün mü?

Yedeklemem için, sunucudan taşınabilir bilgisayara geri bağlanmam gerekiyor ve hem kablosuz hem de kablolu arabirim için aynı IP'ye sahip olmak istiyorum.

Openwrt web arabirimi aynı IP adresine sahip birden fazla dhcp girdisini kabul etmez, ancak belki de bir geçici çözüm vardır?

23 Mayıs tarihinde eklenen açıklama :

Ben taşınabilir herhangi bir zamanda ağ ağ arayüzlerinden sadece birinin ağa bağlı olduğunu açıkça belirtmeliydim (bu nedenle anahtarlar karıştırılmamalıdır). Başlangıçta, aynı DNS adıyla arabirimlere atanmış 2 farklı IP adresi vardı, ancak bu çok iyi çalışmadı (yanlış IP aldığımda zaman aşımı). Yine de, yedekleme komut dosyamda sabit kodlanmış olduğu için her ikisi için de aynı adı kullanmak istiyorum.

Karışıklık için özür dilerim.


Eminim bunu denerseniz shenanigans oluşacaktır.
Holocryptic

İstemci (ve muhtemelen sunucu) üzerindeki işletim sistemi de burada germaine olabilir
Norky

Yanıtlar:


29

(rastgele yarı görüşlü yorum: yapıcı olmayan ve açık yanlış cevapların ve bir sorunun yorumlarının bu yüksek sayısını görmek nadirdir)

Buradaki diğerlerinin aksine, talebinizin aslında oldukça basit olduğunu ve 2.46 , IIRC sürümünden beri dnsmasq'ta desteklendiğini iddia ediyorum . Ben dd-wrt geçiş tek nedeni buydu . Yaklaşık bir yıl süren OpenWRT'yi çalıştırdıktan sonra, aslında geçiş yapmak için çok daha fazla neden olduğunu biliyorum, ama bu konunun yanında.

Koşuyorum Backfire 10,04-RC4 :

May 23 17:45:16 gateway dnsmasq[1925]: started, version 2.55 cachesize 150

Yapılandırmam:

$ cat /etc/config/dhcp

config 'dnsmasq'
    option 'domainneeded' '1'
    option 'boguspriv' '1'
    option 'localise_queries' '1'
    option 'rebind_protection' '1'
    option 'rebind_localhost' '1'
    option 'expandhosts' '1'
    option 'authoritative' '1'
    option 'readethers' '1'
    option 'leasefile' '/tmp/dhcp.leases'
    option 'resolvfile' '/tmp/resolv.conf.auto'
    option 'enable_tftp' '1'
    option 'domain' 'domain.net'
    option 'local' '/domain.net/'

config 'dhcp' 'lan'
    option 'interface' 'lan'
    option 'start' '100'
    option 'limit' '150'
    option 'leasetime' 'infinite'

config 'dhcp' 'wan'
    option 'interface' 'wan'
    option 'ignore' '1'
    option 'dynamicdhcp' '0'

config 'dhcp'
    option 'interface' 'dmz'
    option 'start' '100'
    option 'limit' '150'
    option 'leasetime' '12h'

config 'host'
    option 'name' 'travelmate'
    option 'mac' '00:11:22:33:44:55 aa:bb:cc:dd:ee:ff'
    option 'ip' '192.168.1.111'

config 'host'
    option 'name' 'mobilitymac'
    option 'mac' '99:88:77:66:55:44 ff:ee:dd:cc:bb:aa'
    option 'ip' '192.168.1.104'

Bu kurulumun sağladığı kesintisiz geçişin keyfini çıkarın, anahtarla çok uzun sürmezseniz mevcut tüm oturumlar hayatta kalır.


4
Bu cevabı iptal ederdim, çünkü sorumu çok ayrıntılı bir şekilde cevaplıyor, ancak henüz karması yok.
sleepyMonad

Ve luci (web arayüzü) aslında bu formatı destekliyor gibi ekstra kek noktaları.
sleepyMonad

1
Dün gece, eth0'ı bağlarken wlan0'ın hala bağlı olduğunu bilmediğim bir durumum oldu (brcm80211 sahneleme biraz b0rked olabilir). dnsmasq'ın bununla ilgili belirli bir sorunu yoktu, sadece eth0 için yeni bir IP atadı. Kötü şey, daha sonra yönlendiriciye gitmek, dnsmasq durdurmak ve düzenlemek / kill /tmp/dhcp.leases, şeylerin istenen işletim moduna dönmek için dnsmasq yeniden başlatmak zorunda olmasıdır.
lkraav

2
Bunun önemli bir parçası olduğunu düşündüğüm damıtmak için, tek bir girişe (bu dosyaya veya luci arabirimine) birden fazla MAC adresi dahil edebilirsiniz. Yani ile ab:cd:ef:01:02:03ve diğeri ile bir çizgi yapmak yerine 04:05:06:07:08:09, sadece ikisini ayıran tek bir boşlukla bir giriş yapın, örn ab:cd:ef:01:02:03 04:05:06:07:08:09.
teeks99

6

Biraz araştırma yaptım.

Öğrendiğim ilk şey, bir MAC adresi dışındaki kriterlere göre DHCP kiralamalarının atanabilmesidir.

Dhcp SSS sayfasından :

Müşteri Kimliği nedir?

DHCP protokolü amacıyla İstemci Kimliği olarak adlandırılan, protokol tarafından istemci bilgisayarı tanımlamak için kullanılan yöntemdir. Varsayılan olarak, DHCP uygulamaları genellikle bu amaç için istemcinin MAC adresini kullanır, ancak DHCP protokolü diğer seçeneklere izin verir. Bazı DHCP uygulamalarında, istediğiniz istemci kimliğini belirtmek için bir kurulum seçeneği vardır. MAC adresine bir alternatif, sadece seçtiğiniz bir karakter dizisidir. Her durumda, DHCP'nin çalışması için başka hiçbir istemcinin seçtiğiniz istemci kimliğini kullanmadığından emin olmalısınız ve DHCP sunucusunun bunu kabul edeceğinden emin olmalısınız.

Daha sonra, görünüşe göre openWRT'deki luci web arayüzü tarafından desteklenmese de, dnsmasq'ın kendisi client_id ve çoklu MAC adreslerini (bazı uyarılarla) destekler.

Dnsmasq man sayfasından :

-G, --dhcp-host = [hwaddr] [, id: client_id | *] [, set: tag] [, ipaddr] [, hostname] [, lease_time] [, yoksay] DHCP sunucusu için ana bilgisayar parametreleri başına belirtin . Bu, belirli bir donanım adresine sahip bir makineye her zaman aynı ana bilgisayar adı, IP adresi ve kiralama süresi tahsis edilmesini sağlar. Bunun gibi belirtilen bir ana bilgisayar adı, makinedeki DHCP istemcisi tarafından sağlananları geçersiz kılar. Ayrıca, donanım adresini belirtmek ve ana bilgisayar adını eklemek de mümkündür, bu durumda IP adresi ve kiralama süreleri bu adı talep eden herhangi bir makine için geçerlidir. Örneğin --dhcp-host = 00: 20: e0: 3b: 13: af, wap, sonsuz dnsmasq'a makineye 00: 20: e0: 3b: 13: af ad wap ve sonsuz olan bir donanım vermesini söyler DHCP kirası. --dhcp-host = lap, 192.168.0.199, dnsmasq'a makineye her zaman 192.168.0.199 IP adresini atamasını söyler.

(...)

'İd:' ön ekiyle ana bilgisayarları tanımlamak için donanım adresleri yerine istemci tanımlayıcılarının kullanılmasına izin verilir. Bu nedenle: --dhcp-host = id: 01: 02: 03: 04, ..... 01: 02: 03: 04 istemci tanımlayıcısına sahip hostu belirtir. Ayrıca, istemci kimliğini şu şekilde metin olarak belirtmeye izin verilir: --dhcp-host = id: clientidastext, .....

(...)

Özel bir durum olarak, birden fazla donanım adresi eklemek mümkündür. örneğin: --dhcp-host = 11: 22: 33: 44: 55: 66,12: 34: 56: 78: 90: 12,192.168.0.2 Bu, bir IP adresinin birden çok donanım adresiyle ilişkilendirilmesine izin verir ve dnsmasq izni verir diğeri kira istediğinde donanım adreslerinden birine DHCP kirasından vazgeçme. Bunun tehlikeli bir şey olduğuna dikkat edin, yalnızca donanım adreslerinden yalnızca biri herhangi bir zamanda etkinse ve dnsmasq'ın bunu zorlaması için hiçbir yol yoksa güvenilir bir şekilde çalışacaktır. Örneğin, hem kablolu hem de kablosuz arayüzlere sahip bir dizüstü bilgisayara sabit bir IP adresi tahsis etmek yararlıdır.

Çoklu mac çözümünü seçtim (çünkü istemci tarafında istemci kimliğini nasıl belirleyebileceğimi bulmaya çalışmadım, bu da her ayrı istemci için yapılması gereken bir şeydir ve çoklu mac alternatifi Evdeki tüm taşınabilir cihazlar için tek bir çözüm.)

Luci arayüzünü atladım ve doğrudan /etc/dnsmasq.conf dosyasına aşağıdaki satırı ekledim:

DHCP HostsFile = / etc / dnsmasq-dhcphosts.conf

ve /etc/dnsmasq-dhcphosts.conf aşağıdaki biçimde satırlar içerir:

mac1, MAC2, ip

(Bir sonraki güncellemenin üzerine yazılmasını önlemek için bu yapılandırmayı ayrı bir dosyada saklıyorum.)

İyi çalışıyor.


1

Amacınız: Dizüstü bilgisayarın sabit ana bilgisayar adı her zaman dizüstü bilgisayarın etkin IP adresini / arabirimini işaret etmek mi? Ben dnsmasq kombine DNS ve DHCP hizmetinin bunu yapacağını düşünürdüm, yani bir istemci bir DHCPDISCOVER / DHCPREQUEST yaptığında ana bilgisayar adını rapor eder ve dnsmasq ana bilgisayar adını hangi IP adresi atanırsa ilişkilendirir. Bu benim deneyim oldu, ancak itiraf etmeliyim ki bir ağ i / f ile bağlantı kurmayı denemedim, daha sonra (açık bir sürüm yapmadan) bağlantıyı kesip başka bir ağa tekrar bağlanıyorum.

Bir "dizüstü bilgisayar" ana bilgisayar adı varsayarsak, bir arabirimden diğerine geçtikten sonra OpenWRT aygıtını "dizüstü bilgisayar" için sorguladığınızda ne olur?


1

DHCP neden kullanılır?

Her iki arabirimde de statik bir IP adresi el ile yapılandırabilir ve sonra tercih ettiğiniz adresi kullanabilirsiniz (elbette diğerini bağlantısız bırakarak).


Bu en kolay yöntem olduğundan, bağlandığım tüm ağlara uyan (veya en azından umduğum) tek yapılandırma.
sleepyMonad

0

Anahtarınız bunu destekleyebilirse çok şaşırırdım. Her iki ağ arabirimine de aynı MAC adresini vererek daha fazla şansınız olabilir.

Bunu söyleyerek, Holocryptic'e kesinlikle katılıyorum, işte ejderhalar.


aynı MAC'ı kullanmanızı önerdiğiniz için teşekkürler; bunun nasıl yapılacağından emin olmasam da. Belki de BIOS'tan yapılandırabileceğim bir şey ...
sleepyMonad

Normalde OS'de ayarlamak en kolaydır, pencerelerde ağ arayüzünün özellikleri altındadır (MAC adresini manuel olarak ayarlayın).
happyhairydude

0

Hayır, bu mümkün değil. Ancak çoğu NIC, MAC'yi yönetici olarak ayarlamanıza izin verir ve her iki NIC'yi de aynı MAC'a ayarlayabilirsiniz.

Çoğu * nix boxen'de genellikle bunu yapabilirsiniz, daha sonra TCP oturumlarını kesmeden kablolu bağlantıyı takmanıza izin vermek için her ikisine de (kablolu tercihi ile) bir yük devretme LAGG arayüzü kurun.

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.