All pastes #23387 Raw Edit

Stuff

public shellscript v1 · immutable
#23387 ·published 2005-09-19 21:59 UTC
rendered paste body
############################################################################### QUICK-START## The quickest start is if you want to use DHCP.# In that case, everything should work out of the box, no configuration# necessary, though the startup script will warn you that you haven't# specified anything.## If you want to use a static address or use DHCP explicitly, jump# down to the section labelled INTERFACE HANDLERS.## If you want to do anything more fancy, you should take the time to# read through the rest of this file.############################################################################### MODULES## We now support modular networking scripts which means we can easily# add support for new interface types and modules while keeping# compatability with existing ones.# # Modules load by default if the package they need is installed.  If# you specify a module here that doesn't have it's package installed# then you get an error stating which package you need to install.# Ideally, you only use the modules setting when you have two or more# packages installed that supply the same service.## In other words, you probably should DO NOTHING HERE...# Prefer iproute2 over ifconfig#modules=( "iproute2" )# You can also specify other modules for an interface# In this case we prefer udhcpc over dhcpcd#modules_eth0=( "udhcpc" )# You can also specify which modules not to use - for example you may be# using a supplicant or linux-wlan-ng to control wireless configuration but# you still want to configure network settings per ESSID associated with.#modules=( "!iwconfig" )############################################################################### INTERFACE HANDLERS# # We provide two interface handlers presently: ifconfig and iproute2.# You need one of these to do any kind of network configuration.# For ifconfig support, emerge sys-apps/net-tools# For iproute2 support, emerge sys-apps/iproute2# If you don't specify an interface then we prefer ifconfig it it's installed# Prefer iproute2 over ifconfig#modules=( "iproute2" )# For a static configuration, use something like this# (They all do exactly the same thing btw)#config_eth0=( "192.168.0.2/24" )#config_eth0=( "192.168.0.2 netmask 255.255.255.0" )# We can also specify a broadcast#config_eth0=( "192.168.0.2/24 brd 192.168.0.255" )#config_eth0=( "192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255" )# If you need more than one address, you can use something like this# NOTE: ifconfig creates an aliased device for each extra IPv4 address#       (eth0:1, eth0:2, etc)#       iproute2 does not do this#config_eth0=(# "192.168.0.2/24"# "192.168.0.3/24"# "192.168.0.4/24"#)# You can also use IPv6 addresses#config_eth0=(# "192.168.0.2/24"# "4321:0:1:2:3:4:567:89ab"# "4321:0:1:2:3:4:567:89ac"#)# If you wish to keep existing addresses + routing and the interface is up,# you can specify a noop (no operation). If the interface is down or there# are no addresses assigned, then we move onto the next step (default dhcp)# This is useful when configuring your interface with a kernel command line# or similar#config_eth0=( "noop" "192.168.0.2/24" )# If you don't want ANY address (only useful when calling for advanced stuff)#config_eth0=( "null" )# Here's how todo routing if you need it - the below sets the default gateway#routes_eth0=(# "default via 192.168.0.1"# "default via 4321:0:1:2:3:4:567:89ab"#)# If a specified module fails (like dhcp - see below), you can specify a# fallback like so#fallback_eth0=( "192.168.0.2 netmask 255.255.255.0" )#fallback_route_eth0=( "default via 192.168.0.1" )# NOTE: fallback entry must match the entry location in config_eth0# As such you can only have one fallback route.############################################################################### OPTIONAL MODULES#-----------------------------------------------------------------------------# WIRELESS (802.11 support)# Wireless can be provided by iwconfig or wpa_supplicant# iwconfig# emerge net-wireless/wireless-tools# Wireless options are held in /etc/conf.d/wireless - but could be here too# Consult the sample file /etc/conf.d/wireless.example for instructions# iwconfig is the default# wpa_supplicant# emerge net-wireless/wpa-supplicant# Wireless options are held in /etc/wpa_supplicant.conf# Consult the sample file /etc/wpa_supplicant.conf.example for instructions# To choose wpa_supplicant over iwconfig#modules=( "wpa_supplicant" )# To configure wpa_supplicant#wpa_supplicant_eth0="-Dprism54" # For Prism54 based cards#wpa_supplicant_ath0="-Dmadwifi" # For Atheros based cards# Consult wpa_supplicant for more drivers# By default we give wpa_suppliant 60 seconds to associate and authenticate#wpa_timeout_eth0=60# GENERIC WIRELESS OPTIONS# PLEASE READ THE INSTRUCTIONS IN /etc/conf.d/wireless.example FOR# HOW TO USE THIS ESSID VARIABLE# You can also override any settings found here per ESSID - which is very# handy if you use different networks a lot#config_ESSID=( "dhcp" )#dhcpcd_ESSID="-t 5"# Setting name/domain server causes /etc/resolv.conf to be overwritten# Note that if DHCP is used, and you want this to take precedence then# set dhcp_ESSID="nodns"#dns_servers_ESSID=( "192.168.0.1" "192.168.0.2" )#dns_domain_ESSID="some.domain"#dns_search_domains_ESSID="search.this.domain search.that.domain"# Please check the man page for resolv.conf for more information# as domain and search (searchdomains) are mutually exclusive and# searchdomains takes precedence# You can also override any settings found here per MAC address of the AP# incase you use Access Points with the same ESSID but need different# networking configs. Below is an example - of course you use the same# method with other variables#mac_config_001122334455=( "dhcp" )#mac_dhcpcd_001122334455="-t 10"#mac_dns_servers_001122334455=( "192.168.0.1" "192.168.0.2" )# When an interface has been associated with an Access Point, a global# variable called ESSID is set to the Access Point's ESSID for use in the# pre/post user functions below (although it's not available in preup as you# won't have associated then)# If you're using anything else to configure wireless on your interface AND# you have installed any of the above packages, you need to disable them#modules=( "!iwconfig" "!wpa_supplicant" )#-----------------------------------------------------------------------------# DHCP# DHCP can be provided by dhcpcd, dhclient, udhcpc or pump## dhcpcd:   emerge net-misc/dhcpcd# dhclient: emerge net-misc/dhcp# udhcpc:   emerge net-misc/udhcp# pump:     emerge net-misc/pump# If you have more than one DHCP client installed, you need to specify which# one to use - otherwise we default to dhcpcd if available#modules=( "udhcpc" ) # to select udhcpc over dhcpcd## Notes:# - dhcpcd, udhcpc and pump send the current hostname#   to the DHCP server by default# - dhcpcd does not daemonize when the lease time is infinite# - udhcp-0.9.3-r3 and earlier does not support getting NTP servers # - dhclient does not support getting NTP servers # - pump does not support getting NIS servers# - DHCP tends to erase any existing device information - so add#   static addresses after dhcp if you need them# Regardless of which DHCP client you prefer, you configure them the# same way using one of following depending on which interface modules# you're using.#config_eth0=( "dhcp" )# For passing custom options to dhcpcd use something like the following.  This# example reduces the timeout for retrieving an address from 60 seconds (the# default) to 10 seconds.#dhcpcd_eth0="-t 10"# dhclient, udhcpc and pump don't have many runtime options# You can pass options to them in a similar manner to dhcpcd though#dhclient_eth0="..."#udhcpc_eth0="..."#pump_eth0="..."# To set options for dhclient, you need to have an /etc/dhclient.conf file# See the dhclient man page for details# GENERIC DHCP OPTIONS# Set generic DHCP options like so#dhcp_eth0="release nodns nontp nonis"# This tells the dhcp client to release it's lease when it stops and not to# overwrite dns, ntp and nis settings when it starts. You can use any# combination of the above options - the default is not to use any of them#-----------------------------------------------------------------------------# Automatic Private IP Addressing (APIPA)# For APIPA support, emerge net-misc/iputils or net-analyzer/arping# APIPA is a module that tries to find a free address in the range# 169.254.0.0-169.254.255.255 by arping a random address in that range on the# interface. If no reply is found then we assign that address to the interface# This is only useful for LANs where there is no DHCP server and you don't# connect directly to the internet.#config_eth0=( "dhcp" )#fallback_eth0=( "apipa" )#-----------------------------------------------------------------------------# VLAN (802.1q support)# For VLAN support, emerge net-misc/vconfig# Specify the VLAN numbers for the interface like so# Please ensure your VLAN IDs are NOT zero-padded#vlans_eth0="1 2"# You can also configure the VLAN - see for vconfig man page for more details#vconfig_eth0=( "set_name_type VLAN_PLUS_VID_NO_PAD" )#vconfig_vlan1=( "set_flag 1" "set_egress_map 2 6" )#config_vlan1=( "172.16.3.1 netmask 255.255.254.0" )#config_vlan2=( "172.16.2.1 netmask 255.255.254.0" )#-----------------------------------------------------------------------------# Bonding# For link bonding/trunking emerge net-misc/ifenslave# To bond interfaces together#slaves_bond0="eth0 eth1 eth2"#config_bond0=( "null" ) # You may not want to assign an IP the the bond# If any of the slaves require extra configuration - for example wireless or# ppp devices - we need to write a depend function for the bond so they get# configured correctly.# This is exactly the same as a depend() function in our init scripts#depend_br0() {#       need net.eth0 net.eth1#}#-----------------------------------------------------------------------------# ADSL# For ADSL support, emerge net-dialup/rp-pppoe # You should make the following settings and also put your# username/password information in /etc/ppp/pap-secrets# Configure the interface to use ADSL#config_eth0=( "adsl" )# You probably won't need to edit /etc/ppp/pppoe.conf if you set this#adsl_user_eth0="my-adsl-username"#-----------------------------------------------------------------------------# ISDN# For ISDN support, emerge net-dialup/isdn4k-utils# You should make the following settings and also put your# username/password information in /etc/ppp/pap-secrets# Configure the interface to use ISDN#config_ippp0=( "dhcp" )# It's important to specify dhcp if you need it!#config_ippp0=( "192.168.0.1/24" )# Otherwise, you can use a static IP# NOTE: The interface name must be either ippp or isdn followed by a number# You may need this option to set the default route#ipppd_eth0="defaultroute"#-----------------------------------------------------------------------------# MAC changer# For changing MAC addresses emerge net-analyzer/macchanger# - to set a specific MAC address#mac_eth0="00:11:22:33:44:55"# - to randomize the last 3 bytes only#mac_eth0="random-ending"# - to randomize between the same physical type of connection (eg fibre,# copper, wireless) , all vendors#mac_eth0="random-samekind"# - to randomize between any physical type of connection (eg fibre, copper,# wireless) , all vendors#mac_eth0="random-anykind"# - full randomization - WARNING: some MAC addresses generated by this may NOT# act as expected#mac_eth0="random-full"# custom - passes all parameters directly to net-analyzer/macchanger#mac_eth0="some custom set of parameters"#-----------------------------------------------------------------------------# TUN/TAP# For TUN/TAP support emerge sys-apps/usermode-utilities## NOTE: The interface name must be either tun or tap followed by a number#config_tun1=( "192.168.0.1/24")# For passing custom options to tunctl use something like the following.  This# example sets the owner to adm#tunctl_tun1="-u adm"#-----------------------------------------------------------------------------# Bridging (802.1d)# For bridging support emerge net-misc/bridge-utils# To add ports to bridge br0#bridge_br0="eth0 eth1"# You need to configure the ports to null values so dhcp does not get started #config_eth0=( "null" )#config_eth1=( "null" )# Finally give the bridge an address - dhcp or a static IP#config_br0=( "dhcp" )#config_br0=( "192.168.0.1/24" )# If any of the ports require extra configuration - for example wireless or# ppp devices - we need to write a depend function for the bridge so they get# configured correctly.# This is exactly the same as a depend() function in our init scripts#depend_br0() {# need net.eth0 net.eth1#}# NOTE: This creates an interface called br0 - you can give the interface# any name you like# Below is an example of configuring the bridge# Consult "man brctl" for more details#brctl_br0=( "setfd 0" "sethello 0" "stp off" )#-----------------------------------------------------------------------------# Tunnelling# For GRE tunnels#iptunnel_vpn0="mode gre remote 207.170.82.1 key 0xffffffff ttl 255"# For IPIP tunnels#iptunnel_vpn0="mode ipip remote 207.170.82.2 ttl 255"# To configure the interface#config_vpn0=( "192.168.0.2 pointopoint 192.168.1.2" )  # ifconfig style#config_vpn0=( "192.168.0.2 peer 192.168.1.1" )   # iproute2 style############################################################################### ADVANCED CONFIGURATION# # Four functions can be defined which will be called surrounding the# start/stop operations.  The functions are called with the interface# name first so that one function can control multiple adapters.## The return values for the preup and predown functions should be 0# (success) to indicate that configuration or deconfiguration of the# interface can continue.  If preup returns a non-zero value, then# interface configuration will be aborted.  If predown returns a# non-zero value, then the interface will not be allowed to continue# deconfiguration.## The return values for the postup and postdown functions are ignored# since there's nothing to do if they indicate failure.## ${IFACE} is set to the interface being brought up/down# ${IFVAR} is ${IFACE} converted to variable name bash allows#preup() {# # Test for link on the interface prior to bringing it up.  This# # only works on some network adapters and requires the mii-diag# # package to be installed.# if mii-tool ${IFACE} 2> /dev/null | grep -q 'no link'; then#  ewarn "No link on ${IFACE}, aborting configuration"#  return 1# fi ## # Test for link on the interface prior to bringing it up.  This# # only works on some network adapters and requires the ethtool# # package to be installed.# if ethtool ${IFACE} | grep -q 'Link detected: no'; then#  ewarn "No link on ${IFACE}, aborting configuration"#  return 1# fi## # Remember to return 0 on success# return 0#}#predown() {# # The default in the script is to test for NFS root and disallow# # downing interfaces in that case.  Note that if you specify a# # predown() function you will override that logic.  Here it is, in# # case you still want it...# if is_net_fs /; then#  eerror "root filesystem is network mounted -- can't stop ${IFACE}"#  return 1# fi## # Remember to return 0 on success# return 0#}#postup() {# # This function could be used, for example, to register with a# # dynamic DNS service.  Another possibility would be to# # send/receive mail once the interface is brought up.# return 0#}#postdown() {# # This function is mostly here for completeness... I haven't# # thought of anything nifty to do with it yet ;-)# # Return 0 always# return 0#}############################################################################### FORCING MODULES# The Big Fat Warning :- If you use module forcing do not complain to us or# file bugs about it not working!## Loading modules is a slow afair - we have to check each one for the following# 1) Code sanity# 2) Has the required package been emerged?# 3) Has it modified anything?# 4) Have all the dependant modules been loaded?# Then we have to strip out the conflicting modules based on user preference# and default configuration and sort them into the correct order.# Finally we check the end result for dependancies.# This, of course, takes valuable CPU time so we provide module forcing as a# means to speed things up. We still do *some* checking but not much.# It is essential that you force modules in the correct order and supply all# the modules you need. You must always supply an interface module - we# supply ifconfig or iproute2.# The Big Fat Warning :- If you use module forcing do not complain to us or# file bugs about it not working!# Now that we've warned you twice, here's how to do it#modules_force=( "ifconfig" )#modules_force=( "iproute2" "dhcpcd" )# We can also apply this to a specific interface#modules_force_eth1=( "iproute2" )# The below will not work#modules_force=( "dhcpcd" )# No interface (ifconfig/iproute2)#modules_force=( "ifconfig" "essidnet" "iwconfig" )# Although it will not crash, essidnet will not work as it has to come after# iwconfig#modules_force=( "iproute2" "ifconfig" )# The interface will be setup twice which will cause problems