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

ध्यान दें कि यह कहता है " किसी भी इंटरफेस पर सुनने के लिए कॉन्फ़िगर नहीं किया गया है! "

$ service isc-dhcp-server status
● isc-dhcp-server.service - ISC DHCP IPv4 server
   Loaded: loaded (/lib/systemd/system/isc-dhcp-server.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sat 2020-01-18 19:05:34 GMT; 1s ago
     Docs: man:dhcpd(8)
  Process: 3475 ExecStart=/bin/sh -ec      CONFIG_FILE=/etc/dhcp/dhcpd.conf;      if [ -f /etc/ltsp/dhcpd.conf ]; then CONFIG_FILE=/etc/ltsp/dhcpd.conf; fi;      [ -e /var/lib/dhcp/dhcpd.leases ] || touch /v
 Main PID: 3475 (code=exited, status=1/FAILURE)

Jan 18 19:05:34 user-Default-string dhcpd[3475]:
Jan 18 19:05:34 user-Default-string dhcpd[3475]: Not configured to listen on any interfaces!
Jan 18 19:05:34 user-Default-string dhcpd[3475]:
Jan 18 19:05:34 user-Default-string dhcpd[3475]: If you think you have received this message due to a bug rather
Jan 18 19:05:34 user-Default-string dhcpd[3475]: than a configuration issue please read the section on submitting
Jan 18 19:05:34 user-Default-string dhcpd[3475]: bugs on either our web page at www.isc.org or in the README file
Jan 18 19:05:34 user-Default-string dhcpd[3475]: before submitting a bug.  These pages explain the proper
Jan 18 19:05:34 user-Default-string dhcpd[3475]: process and the information we find helpful for debugging..
Jan 18 19:05:34 user-Default-string dhcpd[3475]:
Jan 18 19:05:34 user-Default-string dhcpd[3475]: exiting.

मेरे गेटवे सर्वर में दो ईथरनेट पोर्ट हैं, enp1s0, और enp2s0। मैं राउटर के माध्यम से इंटरनेट एक्सेस के लिए enp1s0 का उपयोग करता हूं, और enp2s0 केवल ईथरनेट से जुड़े लैपटॉप के लिए एक वेब ऐप की सेवा के लिए। enp2s0 वह है जिसके लिए डीएचसीपी सर्वर आईपी पते (वेब ​​ऐप की आवश्यकता वाले लैपटॉप के लिए) प्रदान करता है। मैं चाहता हूं कि 192.168.1.0 सबनेट पर इंटरनेट से जुड़े राउटर से एक यादृच्छिक आईपी पता प्राप्त करने के लिए enp1s0, ताकि इंटरफ़ेस isc-dhcp-server द्वारा प्रबंधित न हो, केवल enp2s0।

यहां "आईपी रूट" है जिसमें enp2s0 से जुड़ा कुछ भी नहीं है, अगर इससे मदद मिल सकती है ...

$ ip route
default via 192.168.1.254 dev enp1s0 proto dhcp metric 100
169.254.0.0/16 dev enp1s0 scope link metric 1000
192.168.1.0/24 dev enp1s0 proto kernel scope link src 192.168.1.76 metric 100

यहाँ मेरा dhcpd.conf सेटअप है:

default-lease-time 600;
max-lease-time 7200;

# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)
ddns-update-style none;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;

# This is a very basic subnet declaration.    
subnet 192.168.2.0 netmask 255.255.255.0 {
  range 192.168.2.200 192.168.2.250;
  # option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
  option broadcast-address 192.168.2.255;
}

यहाँ मेरा आईएससी-डीएचसीपी-सर्वर सेटअप है:

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#       Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACESv4="enp2s0"
INTERFACESv6=""

लैपटॉप को enp2s0 में प्लग करने के बाद isc-dhcp-server को पुनरारंभ करना एक समाधान है, लेकिन मैं ऐसा नहीं करना चाहता हूं कि प्रत्येक रीबूट के बाद, या हर बार जब कोई लैपटॉप में enp2s0 में प्लग करता है। डीएचसीपी सर्वर सेवा को फिर से शुरू करने के बाद काम करता है...

$ sudo service isc-dhcp-server restart
$ service isc-dhcp-server status
● isc-dhcp-server.service - ISC DHCP IPv4 server
   Loaded: loaded (/lib/systemd/system/isc-dhcp-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2020-01-18 18:22:01 GMT; 14min ago
     Docs: man:dhcpd(8)
 Main PID: 2437 (dhcpd)
    Tasks: 1 (limit: 2016)
   CGroup: /system.slice/isc-dhcp-server.service
           └─2437 dhcpd -user dhcpd -group dhcpd -f -4 -pf /run/dhcp-server/dhcpd.pid -cf /etc/dhcp/dhcpd.conf enp2s0

कोई विचार? मुझे यकीन है कि एक कॉन्फ़िगरेशन चीज़ है जो मुझे याद आ रही है, जो इस समस्या को हल करेगी ...

संपादित करें: कमांड "nmcli कनेक्शन शो लैन" से आउटपुट (AKA: nmcli cs lan)

$ nmcli connection show lan

connection.id:                          lan
connection.uuid:                        96fbb458-1178-4af2-a1b7-ccce301176e0
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              enp2s0
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.auth-retries:                -1
connection.timestamp:                   1579379514
connection.read-only:                   no
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 --
connection.gateway-ping-timeout:        0
connection.metered:                     unknown
connection.lldp:                        default
connection.mdns:                        -1 (default)
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          no
802-3-ethernet.mac-address:             --
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist:   --
802-3-ethernet.mtu:                     auto
802-3-ethernet.s390-subchannels:        --
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:            --
802-3-ethernet.wake-on-lan:             default
802-3-ethernet.wake-on-lan-password:    --
ipv4.method:                            manual
ipv4.dns:                               --
ipv4.dns-search:                        --
ipv4.dns-options:                       ""
ipv4.dns-priority:                      0
ipv4.addresses:                         192.168.2.2/24
ipv4.gateway:                           --
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.route-table:                       0 (unspec)
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-timeout:                      0 (default)
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv4.dad-timeout:                       -1 (default)
ipv6.method:                            auto
ipv6.dns:                               --
ipv6.dns-search:                        --
ipv6.dns-options:                       ""
ipv6.dns-priority:                      0
ipv6.addresses:                         --
ipv6.gateway:                           --
ipv6.routes:                            --
ipv6.route-metric:                      -1
ipv6.route-table:                       0 (unspec)
ipv6.ignore-auto-routes:                no
ipv6.ignore-auto-dns:                   no
ipv6.never-default:                     no
ipv6.may-fail:                          yes
ipv6.ip6-privacy:                       -1 (unknown)
ipv6.addr-gen-mode:                     stable-privacy
ipv6.dhcp-send-hostname:                yes
ipv6.dhcp-hostname:                     --
ipv6.token:                             --
proxy.method:                           none
proxy.browser-only:                     no
proxy.pac-url:                          --
proxy.pac-script:                       --

EDIT2: "nmcli -f नाम, ऑटोकनेक्ट कनेक्शन शो" से जोड़ा गया आउटपुट

$ nmcli -f name,autoconnect connection show
NAME                AUTOCONNECT
Wired connection 1  yes
lan                 yes

EDIT3: "बिल्ली/आदि/नेटवर्क प्रबंधक/सिस्टम-कनेक्शन/लैन" से जोड़ा गया आउटपुट

[connection]
id=lan
uuid=96fbb458-1178-4af2-a1b7-ccce301176e0
type=ethernet
interface-name=enp2s0
permissions=
timestamp=1579379263

[ethernet]
mac-address-blacklist=

[ipv4]
address1=192.168.2.2/24
dns-search=
method=manual

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto
answer

क्या इंटरफ़ेस (enp2s0) बिल्कुल ऊपर है? इसमें एक ipv4 पता जोड़ा जाना चाहिए और फिर शुरू (ऊपर) होना चाहिए

इससे कोई फर्क नहीं पड़ता कि कोई क्लाइंट हब/स्विच से जुड़ा है या नहीं।

संपादित करें: नेटवर्क प्रबंधक?

मैं उस चीज़ से एक जुनून के साथ नफरत करता हूं, लेकिन किसी भी तरह से: अगर iface एक सही पते के साथ नहीं है dhcpd शुरू नहीं होगा, तो आपको यह पता लगाने की आवश्यकता है कि nmcli के साथ एक स्थिर कॉन्फ़िगरेशन कैसे बनाया जाए जो हमेशा ऊपर रहता है।

संपादित करें: यह क्या दिखाता है?

nmcli connection show lan

कनेक्शन.ऑटोकनेक्शन संपत्ति दिलचस्प है।

संपादित करें: यह क्या दिखाता है:

  nmcli -f name,autoconnect connection show

ठीक है, क्या स्थिति है

  nmcli -f name,autoconnect connection show

अपने हैक के बिना रिबूट के बाद? इंटरफ़ेस को लाने के लिए ऑटोकनेक्ट संपत्ति पर्याप्त होनी चाहिए ... न जाने क्यों कुछ ऐसा विफल हो जाता है जो मूल रूप से बहुत सरल है, नेटवर्क मैनेजर के बारे में मेरी नापसंदियों में से एक है (अज्ञात लाभों के लिए बहुत जटिलता के लिए, मैं ग्राहकों के लिए बिंदु देखता हूं जो लगातार है चलते-फिरते लेकिन सर्वर जो बस काम करना चाहिए ??)

संपादित करें: आदि/नेटवर्क मैनेजर/सिस्टम-कनेक्शन में कोई भी फाइल? कम से कम मैंने अपने सिस्टम में उपकरणों को कैसे कॉन्फ़िगर किया है (यह एक ब्रिज्ड कॉन्फिगर है), इसलिए मैं मशीन को लाने के लिए NetworkManager का उपयोग करता हूं। मशीन तीन मेहमानों के लिए होस्ट है इसलिए enp1s0 डिवाइस एक गुलाम है।

संपादित करें: क्या होता है यदि आप लैन डिवाइस को परिभाषित करते हैं (इसे पहले पूरी तरह से हटा दें) यानी कुछ ऐसा:

nmcli connection down lan 
nmcli connection delete lan
nmcli connection add type ethernet ifname enp2s0 con-name lan autoconnect on
nmcli connection modify lan   ipv4.method manual ipv4.addresses 192.168.2.2/24 
nmcli connection lan up

जब तक कोई बेहतर समाधान न हो, अभी के लिए यह मेरे लिए काम करता है: जब मेरा वेब ऐप शुरू होता है, तो पहली दो चीजें होती हैं:

  1. sudo nmcli conn up lan ('lan' NetworkManager कनेक्शन नाम है जो enp2s0 को सौंपा गया है)
  2. sudo सेवा isc-dhcp-server पुनरारंभ करें

वेब ऐप को @reboot प्रारंभ करने के लिए क्रॉन-शेड्यूल किया गया है, इसलिए NetworkManager ने उस बिंदु से प्रारंभ किया है।

isc-dhcp-server हमेशा विफल रहता है यदि enp2s0 अभी तक "अप" नहीं है, इसलिए मुझे इसे "अप" सेट करना होगा, और फिर isc-dhcp-server सेवा को पुनरारंभ करना होगा। यह बहुत सुंदर नहीं है, लेकिन यह अभी के लिए काम करता है।

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

isc-dhcp-server उत्कृष्ट है, लेकिन इसमें यह विचित्रता है, जैसा कि ऊपर मूल पूछताछकर्ता ने नोट किया है। मैंने समस्या को कम कर दिया है - यह एक बग नहीं है - और यह कारण का विवरण है:

  1. आईएससी-डीएचसीपी-सर्वर ने मना कर दिया (एक त्रुटि फेंकता है) यदि यह लॉन्च के समय यूपी ईथरनेट नेटवर्क सबनेट नहीं देख सकता है; इसे (कुछ टिप्पणीकारों के विपरीत) ईथरनेट पोर्ट से वास्तविक कनेक्शन की आवश्यकता नहीं है जिससे यह जुड़ा हुआ है।

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

  3. SO: सामान्य रूप से प्रारंभ बिंदु, एक वाईफाई डिवाइस है जो बूट पर, क्लाइंट डिवाइस के रूप में कॉन्फ़िगर किया गया था, लेकिन हॉटस्पॉट के रूप में कार्य करने के लिए इसे HOST मोड में स्विच करने की आवश्यकता है। तो एक प्रारंभिक कदम है होस्टपैड लॉन्च करने से पहले wlan0 (या जो कुछ भी) नीचे सेट करना।

लेकिन वह स्थिति, तुरंत उनमें से एक है जिसे isc-dhcp-server पसंद नहीं करता है: यदि आप इसे hostapd से पहले शुरू करने का प्रयास करते हैं, तो यह विफल हो जाएगा, यह शिकायत करते हुए कि इसे सुनने के लिए कोई सबनेट नहीं है।

  1. तो आप निर्दोष रूप से कोशिश कर सकते हैं, अपने wlan0 (या equiv) में एक नया आईपी पता (होस्ट के लिए) जोड़कर और पुनः प्रयास करें: यह काम नहीं करेगा, क्योंकि अब आपके पास ईथरनेट पोर्ट से जुड़ा एक नया आईपी है, आप यह भी पाएंगे कि आप इसे 'यूपी' सेट नहीं कर सकते (आईपी लिंक सेट wlan0 up विफल हो जाएगा)। ऐसा इसलिए है क्योंकि बंदरगाह अभी भी सक्रिय पुराने पते और इसका उपयोग करने वाली wpa- याची प्रक्रिया द्वारा 'दागी' है।

  2. लंबी कहानी: आपको पुराने पते को "मुक्त" करने के लिए wpa-supplicant को मारने की जरूरत है / पोर्ट के लिए आईपी सेटिंग्स को फ्लश करें / फिर होस्ट के लिए नया आईपी पता जोड़ें; फिर भी, आप पाएंगे कि isc-dhcp-server अभी भी प्रारंभ नहीं होगा, क्योंकि आप अभी तक इंटरफ़ेस सेट नहीं कर सकते हैं। अंत में - isc से पहले अब hostapd चलाएँ, और IT (चिपसेट को फिर से कॉन्फ़िगर करने में) wlan0 इंटरफ़ेस को UP में भी सेट करेगा। तो अब - अंत में - आप isc-dhcp-server चला सकते हैं, और यह सफाई से शुरू हो जाएगा, और आपका हॉटस्पॉट ऊपर हो जाएगा।

मुझे लगभग पाँच घंटे लगे हैं, मुझे आशा है कि इससे किसी का कुछ समय बचेगा। मेरा आसुत नोट:

HOSTAPD के साथ ISC-DHCP-सर्वर को सॉर्ट करना: समाधान

आपको इस क्रम का पालन करना होगा:

  1. WPA- याची प्रक्रिया (जो क्लाइंट कॉन को बनाए रख रही है) को इस तरह से मारें:

     kill -2  $( cat /run/wpa_supplicant.wlan0.pid )
    
     sleep 1
    
     kill -9  $( cat /run/wpa_supplicant.wlan0.pid )
    
  2. WLAN IP सेटअप को फ्लश करें, इसका उपयोग करते हुए:

    ip addr flush dev wlan0
    
  3. नया होस्ट IP पता जोड़ें, का उपयोग करके:

    ip addr add 10.1.1.1/24 dev wlan0
    
  4. START hostapd, जो wlan0 UP भी डालेगा:

     /usr/sbin/hostapd /etc/hostapd/hostapd.conf &
    
  5. START isc-dhcp-server (WLAN ऊपर है, अब होस्ट के रूप में):

     sudo service isc-dhcp-server restart
    

तब एक्सेस प्वाइंट यूपी होना चाहिए और ग्राहकों को स्वीकार करने के लिए तैयार होना चाहिए।

वे निश्चित रूप से मेरे पते हैं / आपकी आवश्यकता के अनुरूप संपादित करें।

दो और टिप्स: कॉन्फ़िगरेशन फ़ाइलें hostapd.conf और dhcp.conf आपको पागल भी कर सकती हैं: - यहां काम करने वाले नमूने हैं। महत्वपूर्ण: hostapd.conf में 'ड्राइवरनाम' पर पसीना न बहाएं: इसकी आवश्यकता नहीं है। 'टिप्पणी की गई' ठीक है:

hostapd.conf

interface=wlan0

#driver=brcmfmac

ssid=THIS-IS-MY-AP

country_code=US

hw_mode=g

channel=6

macaddr_acl=0

auth_algs=1

ignore_broadcast_ssid=0

wpa=2

wpa_passphrase=12345678

wpa_key_mgmt=WPA-PSK

wpa_pairwise=CCMP

wpa_group_rekey=86400

ieee80211n=1

wme_enabled=1

dhcpd.conf

# COMMENT OUT BOTH OF THE TEMPLATES' 'option domain..' lines.. 
# then ADD THIS AT BOTTOM
#
#
subnet 10.1.1.0 netmask 255.255.255.0 {
        range 10.1.1.100 10.1.1.109;
        option broadcast-address 10.1.1.255;
        option routers 10.1.1.1;
        default-lease-time 600;
        max-lease-time 7200;
        option domain-name "mynetwork.org";
        option domain-name-servers 8.8.8.8, 8.8.4.4;
}
#
#

हालांकि पाई पर यह काम डाइटपी पर था जो सीधा डेबियन है, इसलिए यही सलाह कई लिनक्सों के अनुरूप होनी चाहिए, जिसमें कई स्वादों के उबुबटस भी शामिल हैं।

अच्छा भाग्य सभी के लिए