User Tools

Site Tools


doc:uci:network

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
doc:uci:network [2014/08/18 11:44]
steven
doc:uci:network [2015/03/24 13:46] (current)
valentt
Line 21: Line 21:
  
 ==== Switch ==== ==== Switch ====
-The ''​switch''​ section is responsible for partitioning the switch into several //VLANs// which appear as independent interfaces in the system although they share the same hardware. Not every OpenWrt supported device has a programmable switch, therefore this section might not be present on some platforms. Please also note, that some switches only support 4Bit-VLANs.+The ''​switch''​ section is responsible for partitioning the switch into several //VLANs// which appear as independent interfaces in the system although they share the same hardware. ​**Not every OpenWrt supported device ​(or architecture,​ like x86) has a programmable switch**, therefore this section might not be present on some platforms. Please also note, that some switches only support 4Bit-VLANs.
  
 There are currently two different configuration formats in use, one for the legacy ''/​proc/​switch/''​ API and one for the newer ''​[[doc/​techref/​swconfig|swconfig]]''​-based switch configuration. There are currently two different configuration formats in use, one for the legacy ''/​proc/​switch/''​ API and one for the newer ''​[[doc/​techref/​swconfig|swconfig]]''​-based switch configuration.
Line 85: Line 85:
 | ''​3g''​ | CDMA, UMTS or GPRS connection using an AT-style 3G modem |  ''​comgt'' ​ | | ''​3g''​ | CDMA, UMTS or GPRS connection using an AT-style 3G modem |  ''​comgt'' ​ |
 | ''​qmi''​ | USB modems using QMI protocol |  ''​uqmi'' ​ | | ''​qmi''​ | USB modems using QMI protocol |  ''​uqmi'' ​ |
-| ''​hnet''​ | Self-managing home network (HNCP) | ''​hnet-full''​ |+| ''​ncm''​ | USB modems using NCM protocol |  ''​comgt-ncm''​ + ?  | 
 +| ''​hnet''​ | Self-managing home network (HNCP) |  ''​hnet-full'' ​ |
 | ''​pptp''​ | Connection via PPtP VPN |  ?  | | ''​pptp''​ | Connection via PPtP VPN |  ?  |
 | ''​6in4''​ | IPv6-in-IPv4 tunnel forSuppresses DHCP-assigned default gateway if set to 0.0.0.0 use with Tunnel Brokers like HE.net |  ?  | | ''​6in4''​ | IPv6-in-IPv4 tunnel forSuppresses DHCP-assigned default gateway if set to 0.0.0.0 use with Tunnel Brokers like HE.net |  ?  |
Line 94: Line 95:
 | ''​l2tp''​ | PPP over L2TP Pseudowire Tunnel |  ''​xl2tpd'' ​ | | ''​l2tp''​ | PPP over L2TP Pseudowire Tunnel |  ''​xl2tpd'' ​ |
 | ''​relay''​ | relayd pseudo-bridge |  ''​relayd'' ​ | | ''​relay''​ | relayd pseudo-bridge |  ''​relayd'' ​ |
-| ''​none''​ | Unspecified protocol |  -  |+| ''​gre'',​ ''​gretap''​ | GRE over IPv4 |  ''​gre''​ + ''​kmod-gre'' ​ | 
 +| ''​grev6'',​ ''​grev6tap''​ | GRE over IPv6 |  ''​gre''​ + ''​kmod-gre6'' ​ | 
 +| ''​none''​ | Unspecified protocol, therefore all the other interface settings will be ignored (like disabling the configuration) ​|  -  |
  
 Depending on the used //interface protocol// several other options may be required for a complete interface declaration. Depending on the used //interface protocol// several other options may be required for a complete interface declaration.
 The corresponding options for each protocol are listed below. Options marked as "​yes"​ in the "​Required"​ column //must// be defined in the interface section if the corresponding protocol is used, options marked as "​no"​ //may// be defined but can be omitted as well. The corresponding options for each protocol are listed below. Options marked as "​yes"​ in the "​Required"​ column //must// be defined in the interface section if the corresponding protocol is used, options marked as "​no"​ //may// be defined but can be omitted as well.
 +
 +:!: In openwrt 12.09, if an interface section has no protocol defined (not even ''​none''​ ), the other settings are completely ignored. The result is that, if the interface section is mentioning a physical network interface (i.e. eth0), this will be down even if a cable is connected (with proto '​none'​ the interface is up). (could be that more testing is needed) ​
  
 === Options valid for all protocol types === === Options valid for all protocol types ===
Line 106: Line 111:
 | ''​stp''​ | boolean | no | ''​0''​ | Only valid for type "​bridge",​ enables the Spanning Tree Protocol | | ''​stp''​ | boolean | no | ''​0''​ | Only valid for type "​bridge",​ enables the Spanning Tree Protocol |
 | ''​bridge_empty''​ | boolean | no | ''​0''​ | Only valid for type "​bridge",​ enables creating empty bridges | | ''​bridge_empty''​ | boolean | no | ''​0''​ | Only valid for type "​bridge",​ enables creating empty bridges |
 +| ''​igmp_snooping''​ | boolean | no | ''​1''​ | Only valid for type "​bridge",​ sets the multicast_snooping kernel setting for a bridge |
 | ''​macaddr''​ | mac address | no | //(none)// | Override MAC address of this interface | | ''​macaddr''​ | mac address | no | //(none)// | Override MAC address of this interface |
 | ''​mtu''​ | number | no | //(none)// | Override the default MTU on this interface | | ''​mtu''​ | number | no | //(none)// | Override the default MTU on this interface |
 | ''​auto''​ | boolean | no | ''​0''​ for proto ''​none'',​ else ''​1''​ | Specifies whether to bring up interface on boot | | ''​auto''​ | boolean | no | ''​0''​ for proto ''​none'',​ else ''​1''​ | Specifies whether to bring up interface on boot |
 +| ''​ipv6''​ | boolean | no | ''​1''​ | Specifies whether to enable (1) or disable (0) IPv6 on this interface (Barrier Breaker and later only) |
 | ''​accept_ra''​ | boolean | no | ''​1''​ for protocol ''​dhcp'',​ else ''​0''​ | **deprecated:​** Specifies whether to accept IPv6 Router Advertisements on this interface (On Attitude Adjustment 12.09 and earlier versions) | | ''​accept_ra''​ | boolean | no | ''​1''​ for protocol ''​dhcp'',​ else ''​0''​ | **deprecated:​** Specifies whether to accept IPv6 Router Advertisements on this interface (On Attitude Adjustment 12.09 and earlier versions) |
 | ''​send_rs''​ | boolean | no | ''​1''​ for protocol ''​static'',​ else ''​0''​ | **deprecated:​** Specifies whether to send Router Solicitations on this interface (On Attitude Adjustment 12.09 and earlier versions) | | ''​send_rs''​ | boolean | no | ''​1''​ for protocol ''​static'',​ else ''​0''​ | **deprecated:​** Specifies whether to send Router Solicitations on this interface (On Attitude Adjustment 12.09 and earlier versions) |
 +| ''​enabled''​ | boolean | no | ''​1'' ​ | enable or disable the interface section |
  
 === Protocol "​static"​ === === Protocol "​static"​ ===
  
 ^ Name ^ Type ^ Required ^ Default ^ Description ^ ^ Name ^ Type ^ Required ^ Default ^ Description ^
-| ''​ipaddr''​ | ip address | yes, if no ''​ip6addr''​ is set | //(none)// | IP address |+| ''​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. ​|
 | ''​netmask''​ | netmask | yes, if no ''​ip6addr''​ is set | //(none)// | Netmask | | ''​netmask''​ | netmask | yes, if no ''​ip6addr''​ is set | //(none)// | Netmask |
 | ''​gateway''​ | ip address | no | //(none)// | Default gateway | | ''​gateway''​ | ip address | no | //(none)// | Default gateway |
Line 146: Line 154:
  
 **Note:** To automatically configure 6rd from dhcp you need to create an interface with ''​option auto 0''​ and put its name as the '​iface6rd'​ parameter. In addition you also need to add its name to a suitable firewall zone in /​etc/​config/​firewall. **Note:** To automatically configure 6rd from dhcp you need to create an interface with ''​option auto 0''​ and put its name as the '​iface6rd'​ parameter. In addition you also need to add its name to a suitable firewall zone in /​etc/​config/​firewall.
 +
 +:!: It seems that if an interface is configured as dhcp client, at least on OpenWrt 10.03, 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:
 +<​code>​
 +config interface wan
 +    option ifname eth0
 +    option proto static
 +    ..other options..
 +    ​
 +config interface wan2
 +    option ifname eth1
 +    option proto dhcp
 +    ..other options..
 +</​code>​
 +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.
 +If we have:
 +<​code>​
 +config interface wan
 +    option ifname eth0
 +    option proto dhcp
 +    ..other options..
 +    ​
 +config interface wan2
 +    option ifname eth1
 +    option proto static
 +    ..other options..
 +</​code>​
 +Both default routes set up by wan and wan2 will appear in the routing table.
  
 === Protocol "​dhcpv6"​ === === Protocol "​dhcpv6"​ ===
Line 187: Line 224:
 === Protocol "​pppoe"​ (PPP over Ethernet) === === Protocol "​pppoe"​ (PPP over Ethernet) ===
  
-:!: The package ​''​ppp-mod-pppoe''​ must be installed to use PPPoE.+:!: The packages ''​ppp'',​ ''​kmod-pppoe''​ and ''​ppp-mod-pppoe''​ must be installed to use PPPoE. 
 + 
 +<​code>​ 
 +opkg update 
 +opkg install ppp kmod-pppoe ppp-mod-pppoe 
 +</​code>​
  
 ^ Name ^ Type ^ Required ^ Default ^ Description ^ ^ Name ^ Type ^ Required ^ Default ^ Description ^
Line 236: Line 278:
 | ''​apn''​ | string | yes | //(none)// | Used APN | | ''​apn''​ | string | yes | //(none)// | Used APN |
 | ''​pincode''​ | number | no | //(none)// | PIN code to unlock SIM card | | ''​pincode''​ | number | no | //(none)// | PIN code to unlock SIM card |
 +| ''​dialnumber''​ | string | no | %%*99***1#​%% | Modem dial string e.g. *99# |
 | ''​maxwait''​ | number | no | ''​20''​ | Number of seconds to wait for modem to become ready | | ''​maxwait''​ | number | no | ''​20''​ | Number of seconds to wait for modem to become ready |
 | ''​username''​ | string | no(?) | //(none)// | Username for PAP/CHAP authentication | | ''​username''​ | string | no(?) | //(none)// | Username for PAP/CHAP authentication |
Line 260: Line 303:
 | ''​modes''​ | string | no | //(modem default)// | Allowed network modes, comma separated list of: all, lte, umts, gsm, cdma, td-scdma | | ''​modes''​ | string | no | //(modem default)// | Allowed network modes, comma separated list of: all, lte, umts, gsm, cdma, td-scdma |
 | ''​delay''​ | number | no | 0 | Seconds to wait before trying to interact with the modem (some ZTE modems require up to 30 s.)| | ''​delay''​ | number | no | 0 | Seconds to wait before trying to interact with the modem (some ZTE modems require up to 30 s.)|
 +
 +=== Protocol "​ncm"​ (USB modems using NCM protocol) ===
 +
 +:!: The package ''​comgt-ncm''​ + modem specific driver must be installed to use NCM.
 +
 +^ Name ^ Type ^ Required ^ Default ^ Description ^
 +| ''​device''​ | file path | yes | //(none)// | NCM device node, typically /​dev/​cdc-wdm0 or /​dev/​ttyUSB#​ |
 +| ''​apn''​ | string | yes | //(none)// | Used APN |
 +| ''​pincode''​ | number | no | //(none)// | PIN code to unlock SIM card |
 +| ''​username''​ | string | no | //(none)// | Username for PAP/CHAP authentication |
 +| ''​password''​ | string | no | //(none)// | Password for PAP/CHAP authentication |
 +| ''​auth''​ | string | no | //(none)// | Authentication type: pap, chap, both, none|
 +| ''​mode''​ | string | no | //(modem default)// | Used network mode, not every device support every mode: preferlte, preferumts, lte, umts, gsm, auto |
 +| ''​delay''​ | number | no | 0 | Seconds to wait before trying to interact with the modem (some modems require up to 30 s.)|
  
 === Protocol "​hnet"​ (Self-managing home network (HNCP)) === === Protocol "​hnet"​ (Self-managing home network (HNCP)) ===
Line 296: Line 353:
 | ''​defaultroute''​ | boolean | no | ''​1''​ | Whether to create an IPv6 default route over the tunnel | | ''​defaultroute''​ | boolean | no | ''​1''​ | Whether to create an IPv6 default route over the tunnel |
 | ''​ttl''​ | integer | no | ''​64''​ | TTL used for the tunnel interface | | ''​ttl''​ | integer | no | ''​64''​ | TTL used for the tunnel interface |
 +| ''​tos''​ | string | no | //(none)// | Type Of Service : either "​inherit"​ (the outer header inherits the value of the inner header) or an hexadecimal value (Chaos Calmer and later only) |
 | ''​mtu''​ | integer | no | ''​1280''​ | MTU used for the tunnel interface | | ''​mtu''​ | integer | no | ''​1280''​ | MTU used for the tunnel interface |
 | ''​tunnelid''​ | integer | no | //(none)// | HE.net global tunnel ID (used for endpoint update) | | ''​tunnelid''​ | integer | no | //(none)// | HE.net global tunnel ID (used for endpoint update) |
Line 323: Line 381:
 | ''​server''​ | string | no | ''​tic.sixxs.net''​ | Tunnel setup server to use | | ''​server''​ | string | no | ''​tic.sixxs.net''​ | Tunnel setup server to use |
 | ''​ip6addr''​ | IPv6 address (CIDR) | no | //(none)// | Local IPv6 address delegated to the tunnel endpoint (not necessary) | | ''​ip6addr''​ | IPv6 address (CIDR) | no | //(none)// | Local IPv6 address delegated to the tunnel endpoint (not necessary) |
 +| ''​ntpsynctimeout''​ | integer | no | ''​90''​ | Wait for NTP sync that many seconds ([[https://​github.com/​openwrt/​packages/​pull/​579|available since aiccu 20070115-12]]) ​ |
 +| ''​tunnelid''​ | integer | no | //(none)// | TIC server tunnel ID |
 | ''​ip6prefix''​ | IPv6 prefix | no | //(none)// | Routed IPv6 prefix for downstream interfaces | | ''​ip6prefix''​ | IPv6 prefix | no | //(none)// | Routed IPv6 prefix for downstream interfaces |
 | ''​defaultroute''​ | boolean | no | ''​1''​ | Whether to create an IPv6 default route over the tunnel | | ''​defaultroute''​ | boolean | no | ''​1''​ | Whether to create an IPv6 default route over the tunnel |
Line 342: Line 402:
 | ''​defaultroute''​ | boolean | no | ''​1''​ | Whether to create an IPv6 default route over the tunnel | | ''​defaultroute''​ | boolean | no | ''​1''​ | Whether to create an IPv6 default route over the tunnel |
 | ''​ttl''​ | integer | no | ''​64''​ | TTL used for the tunnel interface | | ''​ttl''​ | integer | no | ''​64''​ | TTL used for the tunnel interface |
 +| ''​tos''​ | string | no | //(none)// | Type Of Service : either "​inherit"​ (the outer header inherits the value of the inner header) or an hexadecimal value (Chaos Calmer and later only) |
 | ''​mtu''​ | integer | no | ''​1280''​ | MTU used for the tunnel interface | | ''​mtu''​ | integer | no | ''​1280''​ | MTU used for the tunnel interface |
 | ''​metric''​ | integer | no | ''​0''​ | Specifies the default route metric to use | | ''​metric''​ | integer | no | ''​0''​ | Specifies the default route metric to use |
Line 365: Line 426:
 | ''​defaultroute''​ | boolean | no | ''​1''​ | Whether to create an IPv6 default route over the tunnel | | ''​defaultroute''​ | boolean | no | ''​1''​ | Whether to create an IPv6 default route over the tunnel |
 | ''​ttl''​ | integer | no | ''​64''​ | TTL used for the tunnel interface | | ''​ttl''​ | integer | no | ''​64''​ | TTL used for the tunnel interface |
 +| ''​tos''​ | string | no | //(none)// | Type Of Service : either "​inherit"​ (the outer header inherits the value of the inner header) or an hexadecimal value (Chaos Calmer and later only) |
 | ''​mtu''​ | integer | no | ''​1280''​ | MTU used for the tunnel interface | | ''​mtu''​ | integer | no | ''​1280''​ | MTU used for the tunnel interface |
  
Line 422: Line 484:
 === Common options for GRE protocols === === Common options for GRE protocols ===
  
-:!: The package ''​gre''​ must be installed to use GRE.+:!: The package ''​gre''​ must be installed to use GRE. Additionally,​ you need ''​kmod-gre''​ and/or ''​kmod-gre6''​.
  
 GRE support has been introduced in Barrier Breaker. ​ Four protocols are defined: "​gre",​ "​gretap",​ "​grev6",​ and "​grev6tap"​. GRE support has been introduced in Barrier Breaker. ​ Four protocols are defined: "​gre",​ "​gretap",​ "​grev6",​ and "​grev6tap"​.
Line 434: Line 496:
 | ''​tunlink''​ | logical interface name | no | //(none)// | Bind the tunnel to this interface (''​dev''​ option of "ip tunnel"​) | | ''​tunlink''​ | logical interface name | no | //(none)// | Bind the tunnel to this interface (''​dev''​ option of "ip tunnel"​) |
 | ''​zone''​ | zone name | no | "​wan"​ | Firewall zone to which the interface will be added | | ''​zone''​ | zone name | no | "​wan"​ | Firewall zone to which the interface will be added |
 +| ''​tos''​ | string | no | //(none)// | Type of Service (IPv4), Traffic Class (IPv6): either "​inherit"​ (the outer header inherits the value of the inner header) or an hexadecimal value (Chaos Calmer and later only) | 
 | ''​ikey''​ | integer | no | 0 | key for incoming packets | | ''​ikey''​ | integer | no | 0 | key for incoming packets |
 | ''​okey''​ | integer | no | 0 | key for outgoing packets | | ''​okey''​ | integer | no | 0 | key for outgoing packets |
Line 465: Line 528:
  
 ^ Name ^ Type ^ Required ^ Default ^ Description ^ ^ Name ^ Type ^ Required ^ Default ^ Description ^
-| ''​ip6addr''​ |     +| ''​ip6addr''​ | IPv6 address ​no WAN IP Local endpoint ​
-| ''​peer6addr''​ |     +| ''​peer6addr''​ | IPv6 address ​yes //​(none)// ​Remote endpoint ​
-| ''​weakif''​ |     |+| ''​weakif''​ | logical interface name no ''​lan'' ​Logical network from which to select the local endpoint if ip6addr parameter is empty and no WAN IP is available ​|
  
 === Protocol "​grev6tap"​ (Ethernet GRE tunnel over IPv6) === === Protocol "​grev6tap"​ (Ethernet GRE tunnel over IPv6) ===
Line 474: Line 537:
  
 ^ Name ^ Type ^ Required ^ Default ^ Description ^ ^ Name ^ Type ^ Required ^ Default ^ Description ^
-| ''​ip6addr''​ |     +| ''​ip6addr''​ | IPv6 address ​no WAN IP Local endpoint ​
-| ''​peer6addr''​ |     +| ''​peer6addr''​ | IPv6 address ​yes //​(none)// ​Remote endpoint ​
-| ''​weakif''​ |     +| ''​weakif''​ | logical interface name no ''​lan'' ​Logical network from which to select the local endpoint if ip6addr is empty and no WAN IP is available ​
-| ''​network''​ |     | +| ''​network''​ | logical interface name no //​(none)// ​Logical network to which the tunnel will be added (bridged) ​|
 ==== ATM Bridges (Ethernet over ATM AAL5) ==== ==== ATM Bridges (Ethernet over ATM AAL5) ====
  
Line 507: Line 569:
 ==== Aliases ==== ==== Aliases ====
  
 +=== Aliases: the old way ===
 | {{:​meta:​icons:​tango:​48px-outdated.svg.png?​nolink}} | The "​config alias" approach is //​deprecated//​. it used to be needed when multiple interfaces sharing the same device where not supported. [[https://​forum.openwrt.org/​viewtopic.php?​pid=203943#​p203943|JoW]] | | {{:​meta:​icons:​tango:​48px-outdated.svg.png?​nolink}} | The "​config alias" approach is //​deprecated//​. it used to be needed when multiple interfaces sharing the same device where not supported. [[https://​forum.openwrt.org/​viewtopic.php?​pid=203943#​p203943|JoW]] |
  
-===== Aliases: the old way ===== 
 //Alias// sections can be used to define further IPv4 and IPv6 addresses for interfaces. //Alias// sections can be used to define further IPv4 and IPv6 addresses for interfaces.
 They also allow combinations like DHCP on the main interface and a static IPv6 address in the alias, They also allow combinations like DHCP on the main interface and a static IPv6 address in the alias,
Line 546: Line 608:
   ip addr   ip addr
  
-===== Aliases: the new way =====+:!: This "​old"​ way works, at least, for OpenWrt 10.03.1 and 12.09. 
 +=== Aliases: the new way ===
  
 Basically create an '​interface'​ section per IP, but alias interfaces may NOT be of type bridge Basically create an '​interface'​ section per IP, but alias interfaces may NOT be of type bridge
  
-  * For non-bridged interfaces (physdev) the ''​ifname''​ is the <​interface-of-network-for-same-phydev>​+  * For non-bridged interfaces (physdev ​, that is physical interfaces) the ''​ifname''​ is the <​interface-of-network-for-same-phydev>​
   * For cases where the interface is bridged the ''​ifname''​ is br-''​base-interface'',​ where ''​base-interface''​ is the name of the primary IP's config section (e.g. for a the default lan interface config, the first alias would use ifname br-lan).   * For cases where the interface is bridged the ''​ifname''​ is br-''​base-interface'',​ where ''​base-interface''​ is the name of the primary IP's config section (e.g. for a the default lan interface config, the first alias would use ifname br-lan).
  
Line 580: Line 643:
        ​option '​netmask'​ '​255.255.255.0'</​code>​        ​option '​netmask'​ '​255.255.255.0'</​code>​
  
-To see a list of interfaces you can do ''​ubus list network.interface.*''​ and to view the ip of a particular interface (the UCI name not the physical interface), do ''​ifstatus <​interface>''​ (e.g. ''​ifstatus lan2''​)+To see a list of interfaces you can do ''​ubus list network.interface.*''​ and to view the ip of a particular interface (the UCI name not the physical interface), do ''​ifstatus <​interface>''​ (e.g. ''​ifstatus lan2''​)
 + 
 +:!: Does not work on OpenWRT 10.03.x . 
 + 
 +=== Aliases: notes === 
 +On openwrt 12.09, a lan interface that is first defined as dhcp interface  
 +and then has aliases with static ip address could cause problems  
 +in routing the lan traffic through the wan zone using the basic lan-wan forwarding provided by openwrt.  
 +A solution is: having the basic interface with static address and aliases with dhcp protocol.
  
 ==== IPv4 Routes ==== ==== IPv4 Routes ====
Line 608: Line 679:
 | ''​mtu''​ | number | no | //interface MTU// | Defines a specific MTU for this route | | ''​mtu''​ | number | no | //interface MTU// | Defines a specific MTU for this route |
 | ''​table''​ | routing table | no | //(none)// | Defines the table ID to use for the route. The ID can be either a numeric table index ranging from 0 to 65535 or a symbolic alias declared in /​etc/​iproute2/​rt_tables. The special aliases local (255), main (254) and default (253) are recognized as well | | ''​table''​ | routing table | no | //(none)// | Defines the table ID to use for the route. The ID can be either a numeric table index ranging from 0 to 65535 or a symbolic alias declared in /​etc/​iproute2/​rt_tables. The special aliases local (255), main (254) and default (253) are recognized as well |
 +| ''​source''​ | ip address | no | //(none)// | The preferred source address when sending to destinations covered by the target |
 +| ''​onlink''​ | boolean | no | ''​0''​ | When enabled gateway is on link even if the gateway does not match any interface prefix (Barrier Breaker and later only) |
 +| ''​type''​ | string | no | ''​unicast''​ | One of the types outlined in the Routing Types table below (Barrier Breaker and later only) |
  
 +To disable a route quickly, the option ''​enabled''​ is not available. Just rewrite the ''​route''​ config section as ''​disabled_route''​ like:
 +<​file>​
 +config '​disabled_route'​ '​name_your_route'​
 +        ...lines...
 +</​file>​
 +and it will be recognized by the uci parser but not applied by the ''/​etc/​init.d/​network''​ script.
 ==== IPv6 Routes ==== ==== IPv6 Routes ====
  
Line 633: Line 713:
 | ''​mtu''​ | number | no | //interface MTU// | Defines a specific MTU for this route | | ''​mtu''​ | number | no | //interface MTU// | Defines a specific MTU for this route |
 | ''​table''​ | routing table | no | //(none)// | Defines the table ID to use for the route. The ID can be either a numeric table index ranging from 0 to 65535 or a symbolic alias declared in /​etc/​iproute2/​rt_tables. The special aliases local (255), main (254) and default (253) are recognized as well | | ''​table''​ | routing table | no | //(none)// | Defines the table ID to use for the route. The ID can be either a numeric table index ranging from 0 to 65535 or a symbolic alias declared in /​etc/​iproute2/​rt_tables. The special aliases local (255), main (254) and default (253) are recognized as well |
 +| ''​source''​ | ip address | no | //(none)// | The preferred source address when sending to destinations covered by the target |
 +| ''​onlink''​ | boolean | no | ''​0''​ | When enabled gateway is on link even if the gateway does not match any interface prefix (Barrier Breaker and later only) |
 +| ''​type''​ | string | no | ''​unicast''​ | One of the types outlined in the Routing Types table below (Barrier Breaker and later only) |
 +
 +=== Routing Types ===
 +
 +^ Type ^ Description ^
 +| ''​unicast''​ | the route entry describes real paths to the destinations covered by the route prefix. |
 +| ''​local''​ | the destinations are assigned to this host. The packets are looped back and delivered locally. |
 +| ''​broadcast''​ | the destinations are broadcast addresses. The packets are sent as link broadcasts. |
 +| ''​multicast''​ | a special type used for multicast routing. ​ It is not present in normal routing tables. |
 +| ''​unreachable''​ | these destinations are unreachable. Packets are discarded and the ICMP message host unreachable is generated. The local senders get an EHOSTUNREACH error. |
 +| ''​prohibit''​ | these destinations are unreachable. Packets are discarded and the ICMP message communication administratively prohibited is generated. The local senders get an EACCES error. |
 +| ''​blackhole''​ | these destinations are unreachable. Packets are discarded silently. The local senders get an EINVAL error. |
 +| ''​anycast''​ | the destinations are anycast addresses assigned to this host. They are mainly equivalent to local with one difference: such addresses are invalid when used as the source address of any packet. |
 +
  
 ==== IP rules ==== ==== IP rules ====
  
-Since OpenWrt Barrier ​Braker, netifd supports //IP rule// declarations which are required to implement policy routing. \\+Since OpenWrt Barrier ​Breaker, netifd supports //IP rule// declarations which are required to implement policy routing. \\
 IPv4 rules can be defined by declaring one or more sections of type ''​rule'',​ IPv6 rules are denoted by sections of type ''​rule6''​. Both types share the same set of defined options. IPv4 rules can be defined by declaring one or more sections of type ''​rule'',​ IPv6 rules are denoted by sections of type ''​rule6''​. Both types share the same set of defined options.
  
Line 715: Line 811:
         option '​proto' ​    '​static'​         option '​proto' ​    '​static'​
         option '​ip6addr' ​  '​2001:​0DB8:​100:​F00:​BA3::​1'</​code>​         option '​ip6addr' ​  '​2001:​0DB8:​100:​F00:​BA3::​1'</​code>​
 +
 +==== Static IP configuration and default gateway with multiple dnses ====
 +
 +<​code>​config '​interface'​ '​example'​
 +        option '​proto' ​    '​static'​
 +        option '​ifname' ​   '​eth0'​
 +        option '​ipaddr' ​   '​192.168.1.200'​
 +        option '​netmask' ​  '​255.255.255.0'​
 +        list   '​dns' ​      '​192.168.1.1'​
 +        list   '​dns' ​      '​192.168.10.1'​
 +        # the priority is: the last dns listed will be the first one
 +        # to be chosen for the name resolution.
 +</​code>​
  
 ==== Static IP configuration and default gateway with non-zero metric ==== ==== Static IP configuration and default gateway with non-zero metric ====
Line 771: Line 880:
         option encaps '​vc'</​code>​         option encaps '​vc'</​code>​
  
 +==== listing an interface created by software on the router, like vpn ====
 +For example, a vpn interface is normally "​tun0"​. To list it in the uci config files (and therefore in luci):
 +<​code>​
 +config interface '​tun0'​
 +        option ifname '​tun0'​
 +        option proto '​none'​
 +</​code>​
 ==== Static IPv6-in-IPv4 tunnel ==== ==== Static IPv6-in-IPv4 tunnel ====
  
Line 887: Line 1003:
         option '​forward' ​    '​ACCEPT' ​   # Important         option '​forward' ​    '​ACCEPT' ​   # Important
         option '​output' ​     '​ACCEPT'</​code>​         option '​output' ​     '​ACCEPT'</​code>​
 +
 +==== Static addressing of a GRE tunnel ====
 +
 +Create a GRE tunnel with static address 10.42.0.253/​30,​ adding it to an existing firewall zone called ''​tunnels'':​
 +
 +<​code>​
 +config interface mytunnel ​                
 +        option proto    gre            ​
 +        option zone     ​tunnels ​                               ​
 +        option peeraddr 198.51.100.42 ​          
 +                                                            ​
 +config interface mytunnel_addr ​                                                     ​
 +        option proto    static ​                                    
 +        option ifname ​  ​@mytunnel ​                            
 +        option ipaddr ​  ​10.42.0.253 ​                      
 +        option netmask ​ 255.255.255.252 ​                    
 +        # Fixes IPv6 multicast (long-standing bug in kernel).
 +        # Useful if you run Babel or OSPFv3.
 +        option ip6addr ​ '​fe80::​42/​64'​
 +</​code>​
  
 ===== Network management ===== ===== Network management =====
Line 936: Line 1072:
   option ip6addr fdca:​cdef::​1/​64   option ip6addr fdca:​cdef::​1/​64
 </​code>​ </​code>​
-More info at [[https://​dev.openwrt.org/​ticket/​2829#​comment:​7]] ​http://​pracandajr.blogspot.co.uk/​.+More info at [[https://​dev.openwrt.org/​ticket/​2829#​comment:​7]].
doc/uci/network.1408355083.txt.bz2 · Last modified: 2014/08/18 11:44 by steven