Используя это мое программное обеспечение для настройки сети, это очень просто.
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).
Преимущество использования NCD по сравнению с другими программами, такими как ifplugd, заключается в том, что его дизайн обеспечивает большую гибкость. Это в основном позволяет программировать вашу собственную конфигурацию сети, в отличие от ограниченного набора жестко закодированных возможностей.
ОБНОВЛЕНИЕ: я сделал пакеты Ubuntu для BadVPN и NCD. Я также обновил вики с инструкциями по установке и использованию для Ubuntu: http://code.google.com/p/badvpn/wiki/NCD#Running_it