dnsmasq: एक ही आईपी पते पर 2 मैक पते की मैपिंग


17

क्या एक ही आईपी पते पर 2 अलग मैक पते को मैप करना संभव है?

मेरे बैकअप के लिए, मुझे सर्वर से पोर्टेबल में वापस कनेक्ट करने की आवश्यकता है, और मैं वायरलेस और वायर्ड इंटरफ़ेस दोनों के लिए समान आईपी रखना चाहूंगा।

Openwrt वेब इंटरफ़ेस एक ही IP पते के साथ कई dhcp प्रविष्टियों को स्वीकार नहीं करता है, लेकिन शायद वर्कअराउंड है?

23 पर जोड़ा जा सकता है :

मुझे यह स्पष्ट करना चाहिए था कि पोर्टेबल का केवल एक नेटवर्क इंटरफेस किसी भी समय नेटवर्क से जुड़ा हुआ है (इसलिए स्विच को भ्रमित नहीं किया जाना चाहिए)। प्रारंभ में मेरे पास एक ही DNS नाम के साथ इंटरफेस के लिए 2 अलग-अलग आईपी पते थे, लेकिन यह बहुत अच्छी तरह से काम नहीं करता था (जब मुझे गलत आईपी मिला)। फिर भी मैं दोनों के लिए एक ही नाम का उपयोग करना चाहता हूं, क्योंकि यह मेरी बैकअप स्क्रिप्ट में हार्ड-कोडेड है।

गलतफहमी के लिए खेद है।


मुझे पूरा यकीन है कि अगर आप यह प्रयास करते हैं तो शीनिग्ग्यू का पीछा किया जाएगा।
होलोकेप्टिक

क्लाइंट पर OS (और संभवतः सर्वर) भी यहाँ पर germaine हो सकता है
Norky

जवाबों:


29

(यादृच्छिक अर्ध-अभिमत टिप्पणी: यह एक प्रश्न के असंयमित और सादे गलत जवाब और टिप्पणियों की इस उच्च गिनती को देखने के लिए दुर्लभ है)

यहां दूसरों के विपरीत, मैं दावा करता हूं कि आपका अनुरोध वास्तव में काफी प्रारंभिक है और संस्करण 2.46 , IICC के बाद से dnsmasq में समर्थित है । यह एकमात्र कारण था जो मैंने dd-wrt से स्विच किया था । OpenWRT को चलाने के लगभग एक साल के बाद, मुझे पता है कि वास्तव में स्विच करने के लिए और भी बहुत सारे कारण हैं, लेकिन यह इस बिंदु के बगल में है।

मैं बैकफ़ायर 10.04-rc4 चला रहा हूं :

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

मेरा विन्यास:

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

यदि आप स्विच के साथ बहुत लंबा समय नहीं लेते हैं, तो यह मौजूदा सेटअप प्रदान करने वाले निर्बाध संक्रमण का आनंद लें।


4
इस उत्तर को आगे बढ़ाएंगे, क्योंकि यह मेरे प्रश्न का बहुत विस्तृत तरीके से उत्तर देता है, लेकिन अभी तक कर्म नहीं है।
नींद की नींद

और अतिरिक्त ब्राउनी बिंदु, जैसा कि ल्यूसी (वेब ​​इंटरफ़ेस) वास्तव में इस प्रारूप का समर्थन करता है।
नींद की नींद

1
कल रात मैं एक स्थिति है, जहां मुझे पता नहीं था कि wlan0 अभी भी जुड़ा हुआ है (जब मचान को जोड़ने के लिए brcm80211 स्टेजिंग बिट b0rked हो सकता है)। dnsmasq इस के साथ एक विशेष मुद्दा नहीं था, यह सिर्फ eth0 के लिए एक नया आईपी सौंपा। बुरी बात यह है कि आपको फिर राउटर में जाना है, dnsmasq को रोकना है और वांछित संचालन मोड पर लौटने के लिए चीजों के लिए /tmp/dhcp.leases को फिर से शुरू करना है।
लक्रव

2
जो मुझे लगता है कि इसका महत्वपूर्ण हिस्सा है, इसे डिस्टिल करने के लिए, आप एक ही प्रविष्टि में (इस फ़ाइल में या लुसी इंटरफ़ेस में) कई मैक पते शामिल कर सकते हैं। इसलिए एक लाइन के साथ ab:cd:ef:01:02:03और दूसरी के साथ बनाने के बजाय 04:05:06:07:08:09, बस एक प्रविष्टि को दो अलग करने वाले एकल स्थान के साथ बनाएं, जैसे ab:cd:ef:01:02:03 04:05:06:07:08:09
teeks99

6

मैंने थोड़ी खोजबीन की।

पहली बात मैंने यह सीखा कि मैक पते के अलावा अन्य मानदंडों के आधार पर डीएचसीपी पट्टों को आवंटित करना संभव है।

DHCP से पूछे जाने वाले प्रश्न :

क्लाइंट आईडी क्या है?

डीएचसीपी प्रोटोकॉल के उद्देश्यों के लिए क्लाइंट आईडी को क्या कहा जाता है जो क्लाइंट कंप्यूटर की पहचान करने के लिए प्रोटोकॉल द्वारा उपयोग किया जाता है। डिफ़ॉल्ट रूप से, डीएचसीपी कार्यान्वयन आम तौर पर इस उद्देश्य के लिए क्लाइंट के मैक पते को नियुक्त करता है, लेकिन डीएचसीपी प्रोटोकॉल अन्य विकल्पों की अनुमति देता है। कुछ डीएचसीपी कार्यान्वयनों में आपके इच्छित ग्राहक आईडी को निर्दिष्ट करने के लिए एक सेटअप विकल्प होता है। मैक पते के लिए एक विकल्प बस अपनी पसंद का एक चरित्र स्ट्रिंग है। किसी भी स्थिति में, डीएचसीपी कार्य करने के लिए, आपको निश्चित होना चाहिए कि आपके द्वारा चुने गए क्लाइंट आईडी का उपयोग कोई अन्य ग्राहक नहीं कर रहा है, और आपको यह सुनिश्चित करना चाहिए कि डीएचसीपी सर्वर इसे स्वीकार करेगा।

फिर, हालांकि यह स्पष्ट रूप से खुले वेब इंटरफेस द्वारा समर्थित नहीं है, ओपनवार्ट पर, dnsmasq खुद client_id, और कई मैक पते (कुछ सावधानी के साथ) का समर्थन करता है।

Dnsmasq मैन पेज से :

-G, --dhcp-host = [hwaddr] [, id: client_id | *] [, सेट: टैग] [, ipaddr] [, hostname] [, पट्टे_टाइम] [, उपेक्षा] DHCP सर्वर के लिए प्रति होस्ट पैरामीटर निर्दिष्ट करें । यह एक विशेष हार्डवेयर पते के साथ एक मशीन को हमेशा एक ही होस्टनाम, आईपी पते और पट्टे के समय आवंटित करने की अनुमति देता है। इस तरह निर्दिष्ट एक होस्टनाम मशीन पर डीएचसीपी क्लाइंट द्वारा आपूर्ति की गई किसी भी चीज़ को ओवरराइड करता है। यह हार्डवेयर पते को अलग करने और होस्टनाम को शामिल करने के लिए भी स्वीकार्य है, उस स्थिति में आईपी पते और पट्टे का समय उस नाम का दावा करने वाली किसी भी मशीन पर लागू होगा। उदाहरण के लिए - ddcp-host = 00: 20: e0: 3b: 13: af, वैप, अनंत dnsmasq को हार्डवेयर पता के साथ मशीन देने के लिए कहता है 00: 20: e0: 3b: 13: af नाम वैप, और अनंत डीएचसीपी का पट्टा। -dhcp-host = lap, 192.168.0.199, dnsmasq को हमेशा यह बताता है कि मशीन को IP एड्रेस 192.168.0.199 लैप आवंटित करें।

(...)

यह 'आईडी:' के साथ उपसर्ग द्वारा मेजबानों की पहचान करने के लिए हार्डवेयर पतों के बजाय ग्राहक पहचानकर्ताओं का उपयोग करने की अनुमति है। इस प्रकार: - ddcp-host = id: 01: 02: 03: 04, ..... ग्राहक पहचानकर्ता के साथ मेजबान को संदर्भित करता है 01: 02: 03: 04। इसे ग्राहक आईडी को पाठ के रूप में निर्दिष्ट करने की भी अनुमति है, जैसे: --dhcp-host = id: clientidastext .....

(...)

एक विशेष मामले के रूप में, एक से अधिक हार्डवेयर पते को शामिल करना संभव है। उदाहरण: - ddcp-host = 11: 22: 33: 44: 55: 66,12: 34: 56: 78: 90: 12,192.168.0.2 यह एक आईपी पते को कई हार्डवेयर पतों से जुड़ा होने की अनुमति देता है, और dasmasq अनुमति देता है जब एक अन्य एक पट्टे के लिए पूछता है, तो हार्डवेयर पतों में से एक को डीएचसीपी पट्टे को छोड़ देना। खबरदार कि यह करने के लिए एक खतरनाक बात है, यह केवल मज़बूती से काम करेगा यदि केवल हार्डवेयर पते में से कोई भी किसी भी समय सक्रिय है और इसे लागू करने के लिए dnsmasq के लिए कोई रास्ता नहीं है। उदाहरण के लिए, एक स्थिर आईपी पते को एक लैपटॉप के लिए आवंटित करना उपयोगी है जिसमें वायर्ड और वायरलेस इंटरफेस दोनों हैं।

मैंने मल्टी-मैक सॉल्यूशन का विकल्प चुना (क्योंकि मैंने यह जानने की कोशिश नहीं की कि मैं क्लाइंट आइडी पर क्लाइंट आईडी को कैसे निर्दिष्ट कर सकता हूं, जो कि प्रत्येक अलग क्लाइंट के लिए किया जाना है, और मल्टी-मैक विकल्प है। घर में सभी बंदरगाहों के लिए एक समाधान।)

मैंने लुसी इंटरफ़ेस को दरकिनार किया, और निम्नलिखित पंक्ति में सीधे /etc/dnsmasq.conf में जोड़ा:

DHCP-hostsfile = / etc / dnsmasq-dhcphosts.conf

और /etc/dnsmasq-dhcphosts.conf में निम्न प्रारूप की लाइनें शामिल हैं:

mac1, mac2, आईपी

(मैं इसे अगले अद्यतन द्वारा अधिलेखित करने से रोकने के लिए एक अलग फ़ाइल में इस कॉन्फिग को रखता हूं।)

ठीक काम करता है।


1

आपका उद्देश्य: निरंतर-होस्टनाम-ऑफ-लैपटॉप हमेशा लैपटॉप के (सक्रिय आईपी पते / इंटरफ़ेस) को इंगित करता है? मुझे लगा होगा कि dnsmasq की संयुक्त DNS-and-DHCP सेवा वह करेगी, अर्थात जब कोई क्लाइंट DHCPDISCOVER / DHCPREQUEST करता है तो वह अपने होस्टनाम की रिपोर्ट करता है, और dnsmasq होस्टनाम को जो भी IP पता असाइन किया गया है। यह मेरा अनुभव रहा है, हालांकि मुझे यह स्वीकार करना चाहिए कि मैंने एक नेटवर्क i / f के साथ जुड़ने की कोशिश नहीं की है, फिर डिस्कनेक्ट करना (बिना स्पष्ट रिलीज किए) और फिर से दूसरे के साथ जुड़ना।

"लैपटॉप" के एक होस्टनाम को मानते हुए, जब आप एक इंटरफ़ेस से दूसरे में स्विच करने के बाद, "लैपटॉप" के लिए OpenWRT डिवाइस को क्वेरी करते हैं, तो क्या होता है?


1

DHCP का उपयोग क्यों करें?

आप मैन्युअल रूप से दोनों इंटरफेस पर एक स्थिर आईपी पते को कॉन्फ़िगर कर सकते हैं, और फिर एक का उपयोग कर सकते हैं जिसे आप पसंद करते हैं (दूसरे को डिस्कनेक्ट करते समय, निश्चित रूप से छोड़ दें)।


ठीक है, क्योंकि यह सबसे आसान तरीका है, एक कॉन्फ़िगरेशन जो मेरे द्वारा कनेक्ट किए गए सभी नेटवर्क (या इसलिए मुझे उम्मीद है, कम से कम) में फिट बैठता है।
नींद की नींद

0

मुझे बहुत आश्चर्य होगा अगर आपका स्विच इसका समर्थन कर सकता है। आपके पास अधिक सौभाग्य हो सकता है कि दोनों नेटवर्क एक ही मैक पते को बदलते हैं।

यह कहते हुए, मैं होलोक्रेप्टिक से निश्चित रूप से सहमत हूं, यहां ड्रेगन हो।


उसी मैक का उपयोग करने का सुझाव देने के लिए धन्यवाद; हालांकि मुझे यकीन नहीं है कि ऐसा कैसे करना है। शायद यह कुछ ऐसा है जिसे मैं BIOS से कॉन्फ़िगर कर सकता हूं ...
नींद में

यह सामान्य रूप से ओएस में बस सेट करने के लिए सबसे आसान है, विंडोज़ पर यह नेटवर्क इंटरफ़ेस (मैन्युअल रूप से सेट मैक एड्रेस) के गुणों के तहत है।
हैप्पीहाइड्यूड

0

नहीं, यह संभव नहीं है। लेकिन अधिकांश एनआईसी आपको प्रशासित रूप से मैक सेट करने की अनुमति देते हैं, और आप दोनों एनआईसी को एक ही मैक पर सेट कर सकते हैं।

अधिकांश * निक्स बॉक्सेन पर आप आमतौर पर ऐसा कर सकते हैं, फिर एक असफल LAGG इंटरफ़ेस को दोनों (वायर्ड के लिए वरीयता के साथ) सेट करें जो आपके टीसीपी सत्रों को डिस्कनेक्ट किए बिना वायर्ड कनेक्शन को हॉटप्लग करने की अनुमति देता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.