नेटवर्क कॉन्फ़िगरेशन के लिए मेरा इस सॉफ्टवेयर का उपयोग करना, यह बहुत आसान है।
http://code.google.com/p/badvpn/wiki/NCD
निम्नलिखित एनसीडी कार्यक्रम करेंगे। यह यह भी दिखाता है कि आप नेटवर्क को ऊपर / नीचे जाने पर कुछ चलाकर इस मामले में कॉन्फ़िगरेशन को कैसे बढ़ा सकते हैं।
process eth0 {
# Set device.
var("eth0") dev;
# Wait for device to appear, set it up, and wait for cable to be plugged in.
net.backend.waitdevice(dev);
net.up(dev);
net.backend.waitlink(dev);
# DHCP configuration.
# net.ipv4.dhcp() will block here until it obtaines an IP address.
# It doesn't check the obtained address in any way,
# so as a basic security measure, do not proceed if it is local.
net.ipv4.dhcp(dev) dhcp;
ip_in_network(dhcp.addr, "127.0.0.0", "8") test_local;
ifnot(test_local);
# Assign IP address to interface, as obtained by DHCP.
net.ipv4.addr(dev, dhcp.addr, dhcp.prefix);
# Add default route.
net.ipv4.route("0.0.0.0", "0", dhcp.gateway, "20", dev);
# Add DNS servers.
net.dns(dhcp.dns_servers, "20");
# Run an external program when network comes up or goes down.
list("/some/program/to/run/when/up", "argument") do;
list("/some/program/to/run/when/down", "argument") undo;
run(do, undo);
}
ध्यान दें कि यह न केवल नेटवर्क केबल को प्लग इन या आउट किया जा रहा है, बल्कि नेटवर्क इंटरफ़ेस भी दिखाई दे रहा है और गायब हो रहा है (उपयोगी अगर यह यूएसबी है)।
अन्य सॉफ्टवेयर जैसे ifplugd की तुलना में NCD का उपयोग करने का लाभ यह है कि इसका डिज़ाइन शानदार लचीलेपन के लिए बदल जाता है। यह मूल रूप से आपको हार्डकॉपी क्षमताओं के सीमित सेट तक सीमित होने के विपरीत, अपने स्वयं के नेटवर्क कॉन्फ़िगरेशन को प्रोग्राम करने की अनुमति देता है।
अद्यतन: मैंने BadVPN और NCD के लिए उबंटू पैकेज बनाए हैं। मैंने उबंटू के लिए इंस्टॉलेशन और उपयोग निर्देशों के साथ विकी को भी अपडेट किया है: http://code.google.com/p/badvpn/wiki/NCD#Running_it
ifplugd
औरnetplugd
प्रकट नहीं होते हैं। हालांकि यह इसी तरह का सवाल है कि यह udv नियमों का उपयोग करके एक अच्छा (सरल) उत्तर है - कोई अतिरिक्त पैकेज की आवश्यकता नहीं है। serverfault.com/a/312296/275255