You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/api-extensions.md
+4Lines changed: 4 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -2685,3 +2685,7 @@ This adds extra fields to the OVN network state struct for the IPv4 and IPv6 add
2685
2685
## `qemu_scriptlet_config`
2686
2686
2687
2687
This extends the QEMU scriptlet feature by allowing to modify QEMU configuration before a VM starts, and passing information about the instance to the scriptlet.
2688
+
2689
+
## `network_bridge_acl_devices`
2690
+
2691
+
This adds support for device ACLs when attached to a bridged network.
When using network ACLs with a bridge network, be aware of the following limitations:
211
211
212
212
- Unlike OVN ACLs, bridge ACLs are applied only on the boundary between the bridge and the Incus host.
213
-
This means they can only be used to apply network policies for traffic going to or from external networks.
213
+
This means they can only be used to apply network policies for traffic going to or from external networks (see exception for `nftables` firewall driver below).
214
214
They cannot be used for to create {spellexception}`intra-bridge` firewalls, thus firewalls that control traffic between instances connected to the same bridge.
215
+
- When using the `nftables` firewall driver you can apply ACLs to the NIC device and control traffic between the instances. In this case the `reject` ACL rules applied to the ingress traffic are converted to `drop` to address `nftables` limitation.
215
216
- {ref}`ACL groups and network selectors <network-acls-selectors>` are not supported.
216
217
- When using the `iptables` firewall driver, you cannot use IP range subjects (for example, `192.0.2.1-192.0.2.10`).
217
218
- Baseline network service rules are added before ACL rules (in their respective INPUT/OUTPUT chains), because we cannot differentiate between INPUT/OUTPUT and FORWARD traffic once we have jumped into the ACL chain.
Copy file name to clipboardExpand all lines: doc/reference/devices_nic.md
+31-26Lines changed: 31 additions & 26 deletions
Original file line number
Diff line number
Diff line change
@@ -70,32 +70,37 @@ A `bridged` NIC uses an existing bridge on the host and creates a virtual device
70
70
71
71
NIC devices of type `bridged` have the following device options:
72
72
73
-
Key | Type | Default | Managed | Description
74
-
:-- | :-- | :-- | :-- | :--
75
-
`boot.priority` | integer | - | no | Boot priority for VMs (higher value boots first)
76
-
`host_name` | string | randomly assigned | no | The name of the interface inside the host
77
-
`hwaddr` | string | randomly assigned | no | The MAC address of the new interface
78
-
`ipv4.address` | string | - | no | An IPv4 address to assign to the instance through DHCP (can be `none` to restrict all IPv4 traffic when `security.ipv4_filtering` is set)
79
-
`ipv4.routes` | string | - | no | Comma-delimited list of IPv4 static routes to add on host to NIC
80
-
`ipv4.routes.external` | string | - | no | Comma-delimited list of IPv4 static routes to route to the NIC and publish on uplink network (BGP)
81
-
`ipv6.address` | string | - | no | An IPv6 address to assign to the instance through DHCP (can be `none` to restrict all IPv6 traffic when `security.ipv6_filtering` is set)
82
-
`ipv6.routes` | string | - | no | Comma-delimited list of IPv6 static routes to add on host to NIC
83
-
`ipv6.routes.external` | string | - | no | Comma-delimited list of IPv6 static routes to route to the NIC and publish on uplink network (BGP)
84
-
`limits.egress` | string | - | no | I/O limit in bit/s for outgoing traffic (various suffixes supported, see {ref}`instances-limit-units`)
85
-
`limits.ingress` | string | - | no | I/O limit in bit/s for incoming traffic (various suffixes supported, see {ref}`instances-limit-units`)
86
-
`limits.max` | string | - | no | I/O limit in bit/s for both incoming and outgoing traffic (same as setting both `limits.ingress` and `limits.egress`)
87
-
`limits.priority` | integer | - | no | The `skb->priority` value (32-bit unsigned integer) for outgoing traffic, to be used by the kernel queuing discipline (qdisc) to prioritize network packets (The effect of this value depends on the particular qdisc implementation, for example, `SKBPRIO` or `QFQ`. Consult the kernel qdisc documentation before setting this value.)
88
-
`mtu` | integer | parent MTU | yes | The MTU of the new interface
89
-
`name` | string | kernel assigned | no | The name of the interface inside the instance
90
-
`network` | string | - | no | The managed network to link the device to (instead of specifying the `nictype` directly)
91
-
`parent` | string | - | yes | The name of the host device (required if specifying the `nictype` directly)
92
-
`queue.tx.length` | integer | - | no | The transmit queue length for the NIC
93
-
`security.ipv4_filtering`| bool | `false` | no | Prevent the instance from spoofing another instance's IPv4 address (enables `security.mac_filtering`)
94
-
`security.ipv6_filtering`| bool | `false` | no | Prevent the instance from spoofing another instance's IPv6 address (enables `security.mac_filtering`)
95
-
`security.mac_filtering` | bool | `false` | no | Prevent the instance from spoofing another instance's MAC address
96
-
`security.port_isolation`| bool | `false` | no | Prevent the NIC from communicating with other NICs in the network that have port isolation enabled
97
-
`vlan` | integer | - | no | The VLAN ID to use for non-tagged traffic (can be `none` to remove port from default VLAN)
98
-
`vlan.tagged` | integer | - | no | Comma-delimited list of VLAN IDs or VLAN ranges to join for tagged traffic
73
+
Key | Type | Default | Managed | Description
74
+
:-- | :-- | :-- | :-- | :--
75
+
`boot.priority` | integer | - | no | Boot priority for VMs (higher value boots first)
76
+
`host_name` | string | randomly assigned | no | The name of the interface inside the host
77
+
`hwaddr` | string | randomly assigned | no | The MAC address of the new interface
78
+
`ipv4.address` | string | - | no | An IPv4 address to assign to the instance through DHCP (can be `none` to restrict all IPv4 traffic when `security.ipv4_filtering` is set)
79
+
`ipv4.routes` | string | - | no | Comma-delimited list of IPv4 static routes to add on host to NIC
80
+
`ipv4.routes.external` | string | - | no | Comma-delimited list of IPv4 static routes to route to the NIC and publish on uplink network (BGP)
81
+
`ipv6.address` | string | - | no | An IPv6 address to assign to the instance through DHCP (can be `none` to restrict all IPv6 traffic when `security.ipv6_filtering` is set)
82
+
`ipv6.routes` | string | - | no | Comma-delimited list of IPv6 static routes to add on host to NIC
83
+
`ipv6.routes.external` | string | - | no | Comma-delimited list of IPv6 static routes to route to the NIC and publish on uplink network (BGP)
84
+
`limits.egress` | string | - | no | I/O limit in bit/s for outgoing traffic (various suffixes supported, see {ref}`instances-limit-units`)
85
+
`limits.ingress` | string | - | no | I/O limit in bit/s for incoming traffic (various suffixes supported, see {ref}`instances-limit-units`)
86
+
`limits.max` | string | - | no | I/O limit in bit/s for both incoming and outgoing traffic (same as setting both `limits.ingress` and `limits.egress`)
87
+
`limits.priority` | integer | - | no | The `skb->priority` value (32-bit unsigned integer) for outgoing traffic, to be used by the kernel queuing discipline (qdisc) to prioritize network packets (The effect of this value depends on the particular qdisc implementation, for example, `SKBPRIO` or `QFQ`. Consult the kernel qdisc documentation before setting this value.)
88
+
`mtu` | integer | parent MTU | yes | The MTU of the new interface
89
+
`name` | string | kernel assigned | no | The name of the interface inside the instance
90
+
`network` | string | - | no | The managed network to link the device to (instead of specifying the `nictype` directly)
91
+
`parent` | string | - | yes | The name of the host device (required if specifying the `nictype` directly)
92
+
`queue.tx.length` | integer | - | no | The transmit queue length for the NIC
93
+
`security.acls` | string | - | no | Comma-separated list of network ACLs to apply
94
+
`security.acls.default.egress.action` | string | `drop` | no | Action to use for egress traffic that doesn't match any ACL rule
95
+
`security.acls.default.egress.logged` | bool | `false` | no | Whether to log egress traffic that doesn't match any ACL rule
96
+
`security.acls.default.ingress.action`| string | `drop` | no | Action to use for ingress traffic that doesn't match any ACL rule
97
+
`security.acls.default.ingress.logged`| bool | `false` | no | Whether to log ingress traffic that doesn't match any ACL rule
98
+
`security.ipv4_filtering` | bool | `false` | no | Prevent the instance from spoofing another instance's IPv4 address (enables `security.mac_filtering`)
99
+
`security.ipv6_filtering` | bool | `false` | no | Prevent the instance from spoofing another instance's IPv6 address (enables `security.mac_filtering`)
100
+
`security.mac_filtering` | bool | `false` | no | Prevent the instance from spoofing another instance's MAC address
101
+
`security.port_isolation` | bool | `false` | no | Prevent the NIC from communicating with other NICs in the network that have port isolation enabled
102
+
`vlan` | integer | - | no | The VLAN ID to use for non-tagged traffic (can be `none` to remove port from default VLAN)
103
+
`vlan.tagged` | integer | - | no | Comma-delimited list of VLAN IDs or VLAN ranges to join for tagged traffic
0 commit comments