Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
docs:user-guide:base-system:network:basic-ipv4-configuration [2018/02/17 16:11] bobafetthotmaildocs:guide-user:network:ipv4:start [2021/09/09 20:47] – ==> 21.02 migration / use the previous page version for 19.07 <== vgaetera
Line 1: Line 1:
-===== IPv4 ==== +====== IPv4 ======
 Due to obvious reasons, IPv4 is fully supported in default firmware. Due to obvious reasons, IPv4 is fully supported in default firmware.
  
-==== Upstream configuration for WAN-Interfaces ====+===== Upstream configuration for WAN-Interfaces =====
 The following sections describe the configuration of IPv4 connections to your ISP or an upstream router.  The following sections describe the configuration of IPv4 connections to your ISP or an upstream router. 
  
 For an uplink with native IPv4 connectivity you can just use the default configuration. For an uplink with native IPv4 connectivity you can just use the default configuration.
  
-<code>root@lede:/# uci show network+<code bash> 
 +# uci show network
 ... ...
 network.wan=interface network.wan=interface
-network.wan.ifname='eth0.2'+network.wan.device='eth0.2'
 network.wan.proto='dhcp' network.wan.proto='dhcp'
-...</code>+... 
 +</code>
  
-<code>root@lede:/# cat /etc/config/network+<code bash># cat /etc/config/network
 ... ...
 config interface 'wan' config interface 'wan'
-        option ifname 'eth0.2' + option device 'eth0.2' 
-        option proto 'dhcp' + option proto 'dhcp' 
-...</code>+... 
 +</code>
  
-=== Protocol "static", IPv4 ==+===== Protocol "static", IPv4 =====
 ^ Name ^ Type ^ Required ^ Default ^ Description ^ ^ Name ^ Type ^ Required ^ Default ^ Description ^
 | ''ipaddr'' | ip address | yes, if no ''ip6addr'' is set. | //(none)// | IP address. [openwrt 12.09] It could be a list of ipaddr , that is: several ipaddresses will be assigned to the interface. If, instead of a list, several ipaddr are specified as options, only the last is applied. | | ''ipaddr'' | ip address | yes, if no ''ip6addr'' is set. | //(none)// | IP address. [openwrt 12.09] It could be a list of ipaddr , that is: several ipaddresses will be assigned to the interface. If, instead of a list, several ipaddr are specified as options, only the last is applied. |
Line 32: Line 34:
 | ''metric'' | integer | no | ''0'' | Specifies the default route metric to use | | ''metric'' | integer | no | ''0'' | Specifies the default route metric to use |
  
-=== Protocol "dhcp" ===+===== Protocol "dhcp" =====
 ^ Name ^ Type ^ Required ^ Default ^ Description ^ ^ Name ^ Type ^ Required ^ Default ^ Description ^
 | ''<del>gateway</del>'' | <del>string</del> | <del>no</del> | <del>//(none)//</del> | <del>Suppresses DHCP-assigned default gateway if set to 0.0.0.0</del> \\ (deprecated) | | ''<del>gateway</del>'' | <del>string</del> | <del>no</del> | <del>//(none)//</del> | <del>Suppresses DHCP-assigned default gateway if set to 0.0.0.0</del> \\ (deprecated) |
Line 48: Line 50:
 | ''reqopts'' | string | no | //(none)// | Space-separated list of additional DHCP options to request from the server | | ''reqopts'' | string | no | //(none)// | Space-separated list of additional DHCP options to request from the server |
 | ''sendopts'' | string | no | //(none)// | Space-separated list of additional DHCP options to send to the server. Syntax: ''option:value'' where ''option'' is either an integer code or a symbolic name such as ''hostname''. | | ''sendopts'' | string | no | //(none)// | Space-separated list of additional DHCP options to send to the server. Syntax: ''option:value'' where ''option'' is either an integer code or a symbolic name such as ''hostname''. |
 +| ''norelease'' | boolean | no | ''0'' | If set DO NOT release DHCP address on interface shutdown |
 | ''zone'' | firewall zone | no | //(none)// | Firewall zone to which this interface should be added | | ''zone'' | firewall zone | no | //(none)// | Firewall zone to which this interface should be added |
  
-:!: These parameters are handled partially by netifd (in ''interface.c'') and partially by a shell script in ''lib/netifd/proto/dhcp.sh''.+:!: These parameters are handled partially by netifd (in ''interface.c'') and partially by a shell script in ''lib/netifd/proto/dhcp.sh''.  Note prior to commit 3cee6f3f24 the norelease option was known as release and had the opposite sense.
  
 FIXME Outdated information, please proofread and test it:  FIXME Outdated information, please proofread and test it: 
  
-:!: If an interface is configured as dhcp client, the default route received by dhcp will be the only one listed and will remove other default route/metrics defined for other interfaces if those interfaces comes "before" the interface with dhcp in terms of "ifname" values. For example: +:!: If an interface is configured as dhcp client, the default route received by dhcp will be the only one listed and will remove other default route/metrics defined for other interfaces if those interfaces comes "before" the interface with dhcp in terms of "device" values. For example: 
-<code> + 
-config interface wan +<code bash
-    option ifname eth0 +config interface 'wan' 
-    option proto static +    option device 'eth0' 
-    ..other options..+    option proto 'static' 
 +    ...
          
-config interface wan2 +config interface 'wan2' 
-    option ifname eth1 +    option device 'eth1' 
-    option proto dhcp +    option proto 'dhcp' 
-    ..other options..+    ...
 </code> </code>
 +
 The interface with dhcp comes after (because eth1 comes after eth0 in a lexicografical order) The interface with dhcp comes after (because eth1 comes after eth0 in a lexicografical order)
 and will overwrite the default routes set up by the interface "wan". While is not true the contrary. and will overwrite the default routes set up by the interface "wan". While is not true the contrary.
 If we have: If we have:
-<code> + 
-config interface wan +<code bash
-    option ifname eth0 +config interface 'wan' 
-    option proto dhcp +    option device 'eth0' 
-    ..other options..+    option proto 'dhcp' 
 +    ...
          
-config interface wan2 +config interface 'wan2' 
-    option ifname eth1 +    option device 'eth1' 
-    option proto static +    option proto 'static' 
-    ..other options..+    ...
 </code> </code>
 +
 Both default routes set up by wan and wan2 will appear in the routing table. Both default routes set up by wan and wan2 will appear in the routing table.
  
 +===== Downstream configuration for LAN-Interfaces =====
 +For a downlink with IPv4 connectivity you can just use the default configuration, DHCP server is enabled by default, please see [[docs:guide-user:base-system:dhcp|DHCP configuration]] for more details on that.
  
-==== Downstream configuration for LAN-Interfaces ==== +<code bash> 
-For a downlink with IPv4 connectivity you can just use the default configuration, dhcp server is enabled bu default, please see [[docs:user-guide:dhcp_configuration|DHCP configuration]] for more details on that. +# uci show network
- +
-<code>root@lede:/# uci show network +
-...+
 network.lan=interface network.lan=interface
-network.lan.type='bridge' +network.lan.device='br-lan'
-network.lan.ifname='eth0.1'+
 network.lan.proto='static' network.lan.proto='static'
 network.lan.netmask='255.255.255.0' network.lan.netmask='255.255.255.0'
 network.lan.ip6assign='60' network.lan.ip6assign='60'
 network.lan.ipaddr='192.168.1.1' network.lan.ipaddr='192.168.1.1'
-...</code> 
- 
-<code>root@lede:/# cat /etc/config/network 
 ... ...
 +</code>
 +
 +<code bash>
 +# /etc/config/network
 config interface 'lan' config interface 'lan'
-        option type 'bridge+ option device 'br-lan
-        option ifname 'eth0.1' + option proto 'static' 
-        option proto 'static' + option netmask '255.255.255.0' 
-        option netmask '255.255.255.0' + option ip6assign '60' 
-        option ip6assign '60' + option ipaddr '192.168.1.1'
-        option ipaddr '192.168.1.1'+
  
-...</code>+config device 'lan_dev' 
 + option name 'br-lan' 
 + option type 'bridge' 
 + list ports 'lan3' 
 + list ports 'lan4' 
 +... 
 +</code>
  
 ===== Examples ===== ===== Examples =====
- 
 Below are a few examples for special, non-standard interface configurations. Below are a few examples for special, non-standard interface configurations.
  
 ==== Bridge without IP ==== ==== Bridge without IP ====
 +<code bash>
 +config interface 'example'
 + option proto   'none'
 + option device  'br-lan'
 + option auto    '1'
  
-<code>config 'interface' 'example+config device 'example_dev' 
-        option 'type   'bridge' + option name 'br-lan
-        option 'proto'   'none+ option type 'bridge' 
-        option 'ifname'  'eth0 eth1' + list ports 'eth0
-        option 'auto'    '1'</code>+ list ports 'eth1' 
 +</code>
  
 ==== DHCP without default gateway ==== ==== DHCP without default gateway ====
- +<code bash> 
-<code>config 'interface'example' +config interface 'example' 
-        option 'proto  'dhcp' + option proto   'dhcp' 
-        option 'ifname'  'eth0' + option device  'eth0' 
-        option 'defaultroute' '0'+ option defaultroute' '0'
 </code> </code>
  
 ==== DHCP and IPv6 ==== ==== DHCP and IPv6 ====
 +<code bash>
 +config interface 'example'
 + option proto     'dhcp'
 + option device    'eth0'
  
-<code>config 'interface' 'example' +config alias 
-        option 'proto'     'dhcp' + option interface 'example' 
-        option 'ifname'    'eth0' + option proto     'static' 
- + option ip6addr   '2001:0DB8:100:F00:BA3::1' 
-config 'alias' +</code>
-        option 'interface'example' +
-        option 'proto    'static' +
-        option 'ip6addr  '2001:0DB8:100:F00:BA3::1'</code>+
  
-==== Static IP configuration with multiple dnses ==== +==== Static IP configuration with multiple DNS servers ==== 
-<code>config 'interface'example' +<code bash> 
-        option 'proto    'static' +config interface 'example' 
-        option 'ifname'    'eth0' + option proto     'static' 
-        option 'ipaddr   '192.168.1.200' + option device    'eth0' 
-        option 'netmask  '255.255.255.0' + option ipaddr    '192.168.1.200' 
-        list   'dns      '192.168.1.1' + option netmask   '255.255.255.0' 
-        list   'dns      '192.168.10.1'+ list   dns       '192.168.1.1' 
 + list   dns       '192.168.10.1'
 </code> </code>
-:!: the last dns listed will be the first one to be chosen for the name resolution. 
  
-:!: LEDE will use the new dns configured only after a reboot or a ''/etc/init.d/dnsmasq restart''.+:!: The last DNS listed will be the first one to be chosen for the name resolution. 
 + 
 +:!: Restart the service to apply the new DNS configuration: ''service dnsmasq restart'' 
 ==== Static IP configuration and default gateway with non-zero metric ==== ==== Static IP configuration and default gateway with non-zero metric ====
 +<code bash>
 +config interface 'example'
 + option proto'     'static'
 + option device'    'eth0'
 + option ipaddr'    '192.168.1.200'
 + option netmask'   '255.255.255.0'
 + option dns'       '192.168.1.1'
  
-<code>config 'interface'example' +config route 
-        option 'proto'     'static' + option interface 'example' 
-        option 'ifname'    'eth0' + option target    '0.0.0.0
-        option 'ipaddr'    '192.168.1.200+ option netmask   '0.0.0.0' 
-        option 'netmask  '255.255.255.0' + option gateway   '192.168.1.1' 
-        option 'dns'       '192.168.1.1'+ option metric    '100' 
 +</code>
  
-config 'route' 
-        option 'interface' 'example' 
-        option 'target'    '0.0.0.0' 
-        option 'netmask'   '0.0.0.0' 
-        option 'gateway'   '192.168.1.1' 
-        option 'metric'    '100'</code> 
-         
 ===== Multiple IP addresses ===== ===== Multiple IP addresses =====
-Assigning multiple ip addresses to the same interface: +Assigning multiple IP addresses to the same interface: 
-<code> + 
-config interface foo +<code bash
-  option ifname eth1 +config interface 'foo' 
-  list ipaddr 10.8.0.1/24 + option device 'eth1' 
-  list ipaddr 10.9.0.1/24 + list ipaddr '10.8.0.1/24' 
-  list ip6addr fdca:abcd::1/64 + list ipaddr '10.9.0.1/24' 
-  list ip6addr fdca:cdef::1/64+ list ip6addr 'fdca:abcd::1/64' 
 + list ip6addr 'fdca:cdef::1/64'
 </code> </code>
 +
 Specifying multiple interfaces sharing the same device: Specifying multiple interfaces sharing the same device:
-<code> 
-config interface foo 
-  option ifname eth1 
-  option ipaddr 10.8.0.1 
-  option netmask 255.255.255.0 
-  option ip6addr fdca:abcd::1/64 
  
-config interface foo2 +<code bash> 
-  option ifname eth1 +config interface 'foo' 
-  option ipaddr 10.9.0.1 + option device 'eth1' 
-  option netmask 255.255.255.0 + option ipaddr '10.8.0.1' 
-  option ip6addr fdca:cdef::1/64+ option netmask '255.255.255.0' 
 + option ip6addr 'fdca:abcd::1/64' 
 + 
 +config interface 'foo2' 
 + option device 'eth1' 
 + option ipaddr '10.9.0.1' 
 + option netmask '255.255.255.0' 
 + option ip6addr 'fdca:cdef::1/64'
 </code> </code>
 +
 Originally posted at [[https://dev.openwrt.org/ticket/2829#comment:7]]. Originally posted at [[https://dev.openwrt.org/ticket/2829#comment:7]].
 +
  • Last modified: 2021/11/27 17:36
  • by vgaetera