네트워크 구성에이 소프트웨어를 사용하면 매우 쉽습니다.
http://code.google.com/p/badvpn/wiki/NCD
다음의 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);
}
이것은 네트워크 케이블의 플러그 인 또는 아웃을 처리 할뿐만 아니라 네트워크 인터페이스 자체가 나타나거나 사라지는 것을 처리합니다 (USB 인 경우 유용함).
ifplugd와 같은 다른 소프트웨어와 비교하여 NCD를 사용하는 이점은 디자인이 큰 유연성을 위해 느리다는 것입니다. 기본적으로 제한된 하드 코드 기능 세트로 제한되는 대신 자체 네트워크 구성을 프로그래밍 할 수 있습니다.
업데이트 : BadVPN 및 NCD 용 우분투 패키지를 만들었습니다. 우분투 설치 및 사용 지침으로 위키를 업데이트했습니다 : http://code.google.com/p/badvpn/wiki/NCD#Running_it
ifplugd
및netplugd
관리되지 않는 나타납니다. 그러나이 비슷한 질문은 udev 규칙을 사용하여 좋은 (간단한) 대답이있는 것처럼 보입니다. 추가 패키지가 필요하지 않습니다. serverfault.com/a/312296/275255