LeOS-Genesis/external/badvpn/ncd/examples/network.ncd

124 lines
3.5 KiB
Plaintext

# An example NCD script for network configuration.
#
# The first three processes demonstrate different kinds of interfaces
# and configurations. They are all disabled by default.
#
# The last process waits for one of the interfaces to come up
# and sets up routes and DNS entries to use that interface for
# Internet access.
#
# Be sure to change the dependency list in the last process to name
# the interfaces you use.
# Example wired interface with static configuration.
process wired_example_static {
if("false"); # remove/comment to enable
# Set device.
var("eth0") dev;
# Wait for device.
net.backend.waitdevice(dev);
net.up(dev);
net.backend.waitlink(dev);
# Static configuration.
var("192.168.111.116") addr;
var("24") addr_prefix;
var("192.168.111.1") gateway;
var({"192.168.111.14", "193.2.1.66"}) dns_servers;
# Assign IP address.
net.ipv4.addr(dev, addr, addr_prefix);
# Go on configuring the network.
concat("NET-", dev) provide_name;
multiprovide(provide_name);
}
# Example wired interface with DHCP configuration.
process wired_example_dhcp {
if("false"); # remove/comment to enable
# Set device.
var("eth1") dev;
# Wait for device.
net.backend.waitdevice(dev);
net.up(dev);
net.backend.waitlink(dev);
# DHCP configuration.
net.ipv4.dhcp(dev) dhcp;
ip_in_network(dhcp.addr, "127.0.0.0", "8") test_local;
ifnot(test_local);
var(dhcp.addr) addr;
var(dhcp.prefix) addr_prefix;
var(dhcp.gateway) gateway;
var(dhcp.dns_servers) dns_servers;
# Assign IP address.
net.ipv4.addr(dev, addr, addr_prefix);
# Go on configuring the network.
concat("NET-", dev) provide_name;
multiprovide(provide_name);
}
# Example wireless interface with DHCP configuration.
# This will use the wpa_supplicant configuration file /etc/wpa_supplicant/all.conf
# which should specify the wireless networks and other options.
process wireless_example_dhcp {
if("false"); # remove/comment to enable
# Set device.
var("wlan0") dev;
# Wait for device and rfkill.
net.backend.waitdevice(dev);
net.backend.rfkill("wlan", dev);
# Connect to wireless network.
net.backend.wpa_supplicant(dev, "/etc/wpa_supplicant/all.conf", "/usr/sbin/wpa_supplicant", {});
# DHCP configuration.
net.ipv4.dhcp(dev) dhcp;
ip_in_network(dhcp.addr, "127.0.0.0", "8") test_local;
ifnot(test_local);
var(dhcp.addr) addr;
var(dhcp.prefix) addr_prefix;
var(dhcp.gateway) gateway;
var(dhcp.dns_servers) dns_servers;
# Assign IP address.
net.ipv4.addr(dev, addr, addr_prefix);
# Go on configuring the network.
concat("NET-", dev) provide_name;
multiprovide(provide_name);
}
# This process sets up routes and DNS servers for at most one of
# the working interfaces. It will change the configuration if a
# more important interface comes up while one is already up.
process NETCONF {
# Choose devices and priorities; put preferred devices to the front.
var({"NET-eth0", "NET-eth1", "NET-wlan0"}) provide_names;
# Wait for one of the interfaces (and deinit/switch appropriately).
multidepend(provide_names) ifdep;
# Alias device values.
var(ifdep.dev) dev;
var(ifdep.addr) addr;
var(ifdep.addr_prefix) addr_prefix;
var(ifdep.gateway) gateway;
var(ifdep.dns_servers) dns_servers;
# Add default route.
net.ipv4.route("0.0.0.0", "0", gateway, "20", dev);
# Configure DNS servers.
net.dns(dns_servers, "20");
}