@takodotid/circuit 0.18.0 → 0.18.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli/index.js
CHANGED
|
@@ -1202,6 +1202,11 @@ var DYNAMIC = new Set([
|
|
|
1202
1202
|
"/ip firewall filter",
|
|
1203
1203
|
"/ipv6 firewall filter",
|
|
1204
1204
|
"/ip firewall nat",
|
|
1205
|
+
"/ipv6 firewall nat",
|
|
1206
|
+
"/ip firewall mangle",
|
|
1207
|
+
"/ipv6 firewall mangle",
|
|
1208
|
+
"/ip firewall raw",
|
|
1209
|
+
"/ipv6 firewall raw",
|
|
1205
1210
|
"/ip dhcp-server lease"
|
|
1206
1211
|
]);
|
|
1207
1212
|
var quote = (value) => `"${value.replace(/\\/g, "\\\\").replace(/"/g, "\\\"").replace(/\$/g, "\\$")}"`;
|
|
@@ -2274,6 +2279,7 @@ function bgpConnections(out, ctx) {
|
|
|
2274
2279
|
connect: settings.passive ? "no" : undefined,
|
|
2275
2280
|
"hold-time": settings.hold_time ? duration(settings.hold_time) : undefined,
|
|
2276
2281
|
"input.filter": chainName(settings.import ?? REJECT_ALL, family),
|
|
2282
|
+
instance: "default",
|
|
2277
2283
|
[`input.limit-process-routes-${family}`]: settings.max_prefixes,
|
|
2278
2284
|
"keepalive-time": settings.keepalive ? duration(settings.keepalive) : undefined,
|
|
2279
2285
|
listen: settings.passive ? "yes" : undefined,
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@ Behaviour that looks like something else. Each one has been hit on a real device
|
|
|
7
7
|
- `[find address=X/Y]` unquoted matches nothing, silently. Every selector the plan builds is quoted.
|
|
8
8
|
- `~` in `find` has no anchors. Match exactly.
|
|
9
9
|
- A property of the same group is printed as a bare suffix, `output.filter-chain=X .network=Y`, which only reads back inside that command. The parser expands it before building a `set`.
|
|
10
|
-
- `/routing bgp connection add` without `local.role` is refused, so the render always states one.
|
|
10
|
+
- `/routing bgp connection add` without `local.role` is refused, so the render always states one. On 7.23 one without `instance` is refused too, `missing value(s) of argument(s) instance`, although the export never prints `instance=default`.
|
|
11
11
|
- A connection without `input.filter` accepts everything. A neighbor without a policy is given `REJECT-ALL`.
|
|
12
12
|
- A session edited repeatedly can stick: SYN both ways, no RST, no log. Remove the connection and add it again.
|
|
13
13
|
- A session that never established is missing from `/routing bgp session print`; look at `/routing bgp connection print`.
|
|
@@ -17,6 +17,7 @@ Behaviour that looks like something else. Each one has been hit on a real device
|
|
|
17
17
|
- A switch-chip rule's `rate` did not limit traffic the CPU routes. On a CCR2216 on 7.23.5, under a 12 Gbps flood, a rule at `2G` and then at `100M` changed nothing that reached the CPU, while a drop with the same match left 3 Mbps. Drop what you can recognise instead of limiting it.
|
|
18
18
|
- The switch chip reads a UDP fragment after the first as port 0. `src-port=0` drops the rest of a fragmented flood whose first fragments another rule dropped by port; without it they reach the CPU, which holds them waiting for a first fragment that never comes.
|
|
19
19
|
- A switch-chip rule takes one port or a range, `1900-1901`; a list is refused. The render makes one rule for each port in a list.
|
|
20
|
+
- Any rule using fasttrack adds a dynamic "special dummy rule to show fasttrack counters" to the filter and the raw table. It cannot be removed, `cannot remove builtin`, so every selector over those menus skips dynamic entries.
|
|
20
21
|
- The connection table holds 1,048,576 entries on a CCR2216 with 16 GiB, and a full table refuses every new connection through the router, not only the target's. A SYN flood of 210,000 packets a second filled it in five seconds; a UDP flood from random sources fills it about six times faster, because an unanswered UDP entry lives 30 seconds. Traffic in `untracked` prefixes never enters it.
|
|
21
22
|
- With hardware offload on, routed traffic bypasses the forward chain entirely. `hardware_offload: false` on an interface is what makes the firewall apply to it, at the cost of CPU. The only proof of offload is the `H` flag on a route.
|
|
22
23
|
- `/ip cloud ddns-enabled` cannot be turned off on 7.23.5.
|
|
@@ -74,6 +74,11 @@ const DYNAMIC = new Set([
|
|
|
74
74
|
"/ip firewall filter",
|
|
75
75
|
"/ipv6 firewall filter",
|
|
76
76
|
"/ip firewall nat",
|
|
77
|
+
"/ipv6 firewall nat",
|
|
78
|
+
"/ip firewall mangle",
|
|
79
|
+
"/ipv6 firewall mangle",
|
|
80
|
+
"/ip firewall raw",
|
|
81
|
+
"/ipv6 firewall raw",
|
|
77
82
|
"/ip dhcp-server lease",
|
|
78
83
|
]);
|
|
79
84
|
|
|
@@ -1141,6 +1141,8 @@ function bgpConnections(out: Output, ctx: Context): void {
|
|
|
1141
1141
|
connect: settings.passive ? "no" : undefined,
|
|
1142
1142
|
"hold-time": settings.hold_time ? duration(settings.hold_time) : undefined,
|
|
1143
1143
|
"input.filter": chainName(settings.import ?? REJECT_ALL, family),
|
|
1144
|
+
// The one instance bgpInstance adds. 7.23 refuses a new connection without it.
|
|
1145
|
+
instance: "default",
|
|
1144
1146
|
[`input.limit-process-routes-${family}`]: settings.max_prefixes,
|
|
1145
1147
|
"keepalive-time": settings.keepalive ? duration(settings.keepalive) : undefined,
|
|
1146
1148
|
listen: settings.passive ? "yes" : undefined,
|