add admin guide
This commit is contained in:
		
							parent
							
								
									f282704186
								
							
						
					
					
						commit
						06e2d3b035
					
				
					 1 changed files with 143 additions and 0 deletions
				
			
		
							
								
								
									
										143
									
								
								doc/ADMIN-GUIDE.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										143
									
								
								doc/ADMIN-GUIDE.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,143 @@ | |||
| # ifupdown-ng for system administrators | ||||
| 
 | ||||
| ifupdown-ng is a network device manager which is backwards | ||||
| compatible with traditional ifup and ifdown as used on Debian | ||||
| and Alpine systems, while solving many design deficits with | ||||
| the original approach through robust error handling and the | ||||
| use of a dependency-solver to determine interface bring-up | ||||
| order. | ||||
| 
 | ||||
| This guide is intended to walk users through using the | ||||
| ifupdown-ng system without any assumption of familiarity | ||||
| with the legacy ifupdown system. | ||||
| 
 | ||||
| ## Important Filesystem Paths | ||||
| 
 | ||||
| The ifupdown-ng system uses the following paths, ranked | ||||
| in order of importance: | ||||
| 
 | ||||
| * `/etc/network/interfaces`: the interface configuration | ||||
|   database, which contains information about what | ||||
|   interfaces should be configured. | ||||
| 
 | ||||
| * `/run/ifstate`: the interface state file, which denotes | ||||
|   what physical interfaces are configured, and what | ||||
|   interface definition they are configured as. | ||||
| 
 | ||||
| * `/usr/libexec/ifupdown-ng`: this directory contains the | ||||
|   native ifupdown-ng executors, which are run as necessary | ||||
|   to configure an interface.  See the ifupdown-executor(7) | ||||
|   manual page for more information on how these programs | ||||
|   are written. | ||||
| 
 | ||||
| * `/etc/network/if-{up|down|pre-up|post-down}.d`: | ||||
|   these directories contain scripts that are run when an | ||||
|   interface is brought up or down.  In general, they follow | ||||
|   the same contract described in ifupdown-executor(7). | ||||
| 
 | ||||
| All configuration examples in this guide concern the | ||||
| `/etc/network/interfaces` file. | ||||
| 
 | ||||
| ## Basic Configuration | ||||
| 
 | ||||
| To begin with, lets look at a basic configuration for a | ||||
| desktop computer.  This scenario involves using the DHCP | ||||
| helper to learn an IPv4 address dynamically. | ||||
| 
 | ||||
| In this case, the `/etc/network/interfaces` file would | ||||
| look like: | ||||
| 
 | ||||
| ``` | ||||
| auto eth0 | ||||
| iface eth0 | ||||
|     use dhcp | ||||
| ``` | ||||
| 
 | ||||
| These configuration statements do two things: designate | ||||
| that `eth0` should be started automatically with the `auto` | ||||
| keyword, and designate that the `dhcp` executor should be | ||||
| used to configure the interface. | ||||
| 
 | ||||
| As a more detailed explanation, here is a commented version: | ||||
| 
 | ||||
| ``` | ||||
| # Start eth0 automatically. | ||||
| auto eth0 | ||||
| 
 | ||||
| # Begin an interface definition for eth0. | ||||
| iface eth0 | ||||
| 
 | ||||
|     # Use the dhcp executor to configure eth0. | ||||
|     use dhcp | ||||
| ``` | ||||
| 
 | ||||
| ## IPv6 RA Configuration | ||||
| 
 | ||||
| With IPv6, stateless auto-configuration is typically used to | ||||
| configure network interfaces.  If you are not interested in | ||||
| using IPv4 at all, you can simply use the `ipv6-ra` executor | ||||
| to ensure that an interface is configured to accept IPv6 RA | ||||
| advertisements: | ||||
| 
 | ||||
| ``` | ||||
| auto eth0 | ||||
| iface eth0 | ||||
|     use ipv6-ra | ||||
| ``` | ||||
| 
 | ||||
| ## Static Configuration | ||||
| 
 | ||||
| We can use the `static` executor to configure static IPv4 and | ||||
| IPv6 addresses.  If you use the `address` keyword, the `static` | ||||
| executor will automatically be used to configure the interface: | ||||
| 
 | ||||
| ``` | ||||
| auto eth0 | ||||
| iface eth0 | ||||
|     address 203.0.113.2/24 | ||||
|     gateway 203.0.113.1 | ||||
| ``` | ||||
| 
 | ||||
| ### Multi-homing | ||||
| 
 | ||||
| A typical scenario on servers is multi-homing, where a server | ||||
| has multiple IP addresses on a single interface.  In this case | ||||
| you simply add additional `address` lines like this: | ||||
| 
 | ||||
| ``` | ||||
| auto eth0 | ||||
| iface eth0 | ||||
|     address 203.0.113.2/24 | ||||
|     address 203.0.113.3/24 | ||||
|     address 203.0.113.4/24 | ||||
|     gateway 203.0.113.1 | ||||
| ``` | ||||
| 
 | ||||
| ### Dual-stack configurations | ||||
| 
 | ||||
| Another typical scenario for servers is to run a dual-stack | ||||
| configuration, where interfaces have both an IPv4 and an IPv6 | ||||
| address.  This is accomplished in a similar way as multi-homing. | ||||
| You specify the IPv4 and IPv6 addresses you want, followed by | ||||
| gateways for each: | ||||
| 
 | ||||
| ``` | ||||
| auto eth0 | ||||
| iface eth0 | ||||
|     address 203.0.113.2/24 | ||||
|     address 203.0.113.3/24 | ||||
|     address 203.0.113.4/24 | ||||
|     gateway 203.0.113.1 | ||||
| 
 | ||||
|     address 2001:db8:1000:2::2/64 | ||||
|     address 2001:db8:1000:2::3/64 | ||||
|     address 2001:db8:1000:2::4/64 | ||||
|     gateway 2001:db8:1000:2::1 | ||||
| ``` | ||||
| 
 | ||||
| ## Questions | ||||
| 
 | ||||
| If you have further questions about how to use ifupdown-ng to | ||||
| configure a specific scenario, drop by the [ifupdown-ng IRC channel][irc]. | ||||
| 
 | ||||
|    [irc]: irc://irc.as7007.net/#ifupdown-ng | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue