Deployed a3c6ec0c to dev with MkDocs 1.6.1 and mike 2.2.0

This commit is contained in:
github-actions[bot]
2026-04-30 11:14:35 +00:00
parent 99d7b38ced
commit 66b94d98f7
6 changed files with 339 additions and 52 deletions
+59
View File
@@ -853,6 +853,17 @@
<nav class="md-nav" aria-label="Multicast Filtering and Snooping">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#static-multicast-filters" class="md-nav__link">
<span class="md-ellipsis">
Static Multicast Filters
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#terminology-abbreviations" class="md-nav__link">
<span class="md-ellipsis">
@@ -2356,6 +2367,17 @@
<nav class="md-nav" aria-label="Multicast Filtering and Snooping">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#static-multicast-filters" class="md-nav__link">
<span class="md-ellipsis">
Static Multicast Filters
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#terminology-abbreviations" class="md-nav__link">
<span class="md-ellipsis">
@@ -2615,6 +2637,43 @@ br1 1 ff02::1:ff00:0 br1
<p>In this setup we have a lot more going on. Multiple multicast router
ports have been detected, and behind the scenes someone has also added
an IGMP/MLD fast-leave port.</p>
<h3 id="static-multicast-filters">Static Multicast Filters<a class="headerlink" href="#static-multicast-filters" title="Permanent link"></a></h3>
<p>When IGMP/MLD snooping is in use, traffic for an unregistered group is
flooded to all ports until a receiver joins. For MAC multicast groups,
or for groups where snooping cannot learn membership automatically, you
can add static entries to the MDB that immediately restrict forwarding
to a given set of ports.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Snooping must be enabled on the bridge (or per VLAN) before static
multicast filters can be configured.</p>
</div>
<p>On a plain (non-VLAN) bridge, add a static IPv4 or MAC multicast filter
like this:</p>
<pre class="cli"><code>admin@example:/&gt; <b>configure</b>
admin@example:/config/&gt; <b>edit interface br0</b>
admin@example:/config/interface/br0/&gt; <b>set bridge multicast-filters multicast-filter 224.1.1.1 ports e2</b>
admin@example:/config/interface/br0/&gt; <b>set bridge multicast-filters multicast-filter 224.1.1.1 ports e3</b>
admin@example:/config/interface/br0/&gt; <b>set bridge multicast-filters multicast-filter 01:00:5e:01:01:01 ports e2</b>
admin@example:/config/interface/br0/&gt; <b>leave</b>
admin@example:/&gt; <b>copy running-config startup-config</b>
</code></pre>
<p>Each <code>ports</code> entry for the same group adds one port to the filter.
Receivers on all other ports will not see traffic for that group.</p>
<p>On a VLAN-filtering bridge the filter is scoped per VLAN:</p>
<pre class="cli"><code>admin@example:/config/interface/br1/&gt; <b>set bridge vlans vlan 10 multicast-filters multicast-filter 224.2.2.2 ports e5</b>
admin@example:/config/interface/br1/&gt; <b>set bridge vlans vlan 10 multicast-filters multicast-filter 224.2.2.2 ports e6</b>
</code></pre>
<p>To verify the MDB — both statically configured and dynamically learned
entries — use:</p>
<pre class="cli"><code>admin@example:/&gt; <b>show bridge mdb</b>
<span class="header">BRIDGE VID GROUP PORTS </span>
br0 224.1.1.1 e2, e3
br0 01:00:5e:01:01:01 e2
</code></pre>
<h3 id="terminology-abbreviations">Terminology &amp; Abbreviations<a class="headerlink" href="#terminology-abbreviations" title="Permanent link"></a></h3>
<ul>
<li><strong>IGMP</strong>: Internet Group Membership Protocol, multicast subscription
+94
View File
@@ -883,6 +883,34 @@
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#dummy-interface" class="md-nav__link">
<span class="md-ellipsis">
Dummy Interface
</span>
</a>
<nav class="md-nav" aria-label="Dummy Interface">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#example-stable-ospf-router-id" class="md-nav__link">
<span class="md-ellipsis">
Example: Stable OSPF Router-ID
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
@@ -2447,6 +2475,34 @@
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#dummy-interface" class="md-nav__link">
<span class="md-ellipsis">
Dummy Interface
</span>
</a>
<nav class="md-nav" aria-label="Dummy Interface">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#example-stable-ospf-router-id" class="md-nav__link">
<span class="md-ellipsis">
Example: Stable OSPF Router-ID
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
@@ -2632,6 +2688,44 @@ admin@example:/config/interface/veth0a/&gt; <b>set custom-phys-address chassis o
=&gt; 02:53:00:c0:ff:f0
</code></pre>
<h2 id="dummy-interface">Dummy Interface<a class="headerlink" href="#dummy-interface" title="Permanent link"></a></h2>
<p>A dummy interface is a virtual interface that is always administratively
and operationally UP, regardless of any physical link state. It can
hold IP addresses just like any other interface.</p>
<p>The two most common uses are:</p>
<ul>
<li><strong>Stable OSPF router-ID</strong>: OSPF picks its router-ID from an interface
address. If that interface goes down, adjacencies can flap. Binding
the router-ID to a /32 address on a dummy avoids this.</li>
<li><strong>Stable management address</strong>: A /32 on a dummy gives the device a
permanent identity on the network, reachable as long as at least one
uplink is up and the address is redistributed into the routing domain.</li>
</ul>
<div class="admonition tip">
<p class="admonition-title">Tip</p>
<p>WiFi interfaces also use dummies as placeholders when the radio
hardware is not detected at boot (e.g., a USB dongle that was
unplugged). See <a href="../wifi/">WiFi</a> for details.</p>
</div>
<h3 id="example-stable-ospf-router-id">Example: Stable OSPF Router-ID<a class="headerlink" href="#example-stable-ospf-router-id" title="Permanent link"></a></h3>
<p>Create a dummy interface with a /32 address and use it as the OSPF
router-ID so that the ID never changes when physical ports bounce:</p>
<pre class="cli"><code>admin@example:/&gt; <b>configure</b>
admin@example:/config/&gt; <b>edit interface lo0</b>
admin@example:/config/interface/lo0/&gt; <b>set type dummy</b>
admin@example:/config/interface/lo0/&gt; <b>set ipv4 address 192.0.2.1 prefix-length 32</b>
admin@example:/config/interface/lo0/&gt; <b>leave</b>
admin@example:/config/&gt; <b>edit routing control-plane-protocol ospfv2 name default ospf</b>
admin@example:/config/routing/…/ospf/&gt; <b>set explicit-router-id 192.0.2.1</b>
admin@example:/config/routing/…/ospf/&gt; <b>leave</b>
admin@example:/&gt; <b>copy running-config startup-config</b>
</code></pre>
<p>To also make the address reachable by other routers, redistribute
connected routes (or add <code>lo0</code> as an OSPF interface):</p>
<pre class="cli"><code>admin@example:/config/routing/…/ospf/&gt; <b>set redistribute connected</b>
</code></pre>
<div class="footnote">
<hr>
<ol>
+134
View File
@@ -1039,6 +1039,45 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#arp-and-neighbor-cache" class="md-nav__link">
<span class="md-ellipsis">
ARP and Neighbor Cache
</span>
</a>
<nav class="md-nav" aria-label="ARP and Neighbor Cache">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#static-ipv4-arp-entry" class="md-nav__link">
<span class="md-ellipsis">
Static IPv4 ARP Entry
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#static-ipv6-neighbor-entry" class="md-nav__link">
<span class="md-ellipsis">
Static IPv6 Neighbor Entry
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
@@ -2535,6 +2574,45 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#arp-and-neighbor-cache" class="md-nav__link">
<span class="md-ellipsis">
ARP and Neighbor Cache
</span>
</a>
<nav class="md-nav" aria-label="ARP and Neighbor Cache">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#static-ipv4-arp-entry" class="md-nav__link">
<span class="md-ellipsis">
Static IPv4 ARP Entry
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#static-ipv6-neighbor-entry" class="md-nav__link">
<span class="md-ellipsis">
Static IPv6 Neighbor Entry
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
@@ -3195,6 +3273,62 @@ admin@example:/config/interface/eth0/&gt; <b>leave</b>
admin@example:/&gt;
</code></pre>
<h2 id="arp-and-neighbor-cache">ARP and Neighbor Cache<a class="headerlink" href="#arp-and-neighbor-cache" title="Permanent link"></a></h2>
<p>Static ARP entries (IPv4) and neighbor cache entries (IPv6) can be
configured per interface. The most common reasons to do so are:</p>
<ul>
<li><strong>Security</strong> — prevent ARP/NDP spoofing by locking critical hosts
(e.g., a default gateway) to their known MAC addresses</li>
<li><strong>Reliability</strong> — ensure reachability of a host even when ARP/NDP
traffic is suppressed or filtered (e.g., across a strict firewall)</li>
</ul>
<p>Dynamic entries are learned automatically by the kernel using ARP and
Neighbor Discovery Protocol (NDP), and are visible as read-only
operational state alongside the static ones.</p>
<h3 id="static-ipv4-arp-entry">Static IPv4 ARP Entry<a class="headerlink" href="#static-ipv4-arp-entry" title="Permanent link"></a></h3>
<pre class="cli"><code>admin@example:/&gt; <b>configure</b>
admin@example:/config/&gt; <b>edit interface eth0 ipv4</b>
admin@example:/config/interface/eth0/ipv4/&gt; <b>set neighbor 192.168.1.100 link-layer-address 00:11:22:33:44:55</b>
admin@example:/config/interface/eth0/ipv4/&gt; <b>diff</b>
+interfaces {
+ interface eth0 {
+ ipv4 {
+ neighbor 192.168.1.100 {
+ link-layer-address 00:11:22:33:44:55;
+ }
+ }
+ }
+}
admin@example:/config/interface/eth0/ipv4/&gt; <b>leave</b>
admin@example:/&gt;
</code></pre>
<h3 id="static-ipv6-neighbor-entry">Static IPv6 Neighbor Entry<a class="headerlink" href="#static-ipv6-neighbor-entry" title="Permanent link"></a></h3>
<pre class="cli"><code>admin@example:/&gt; <b>configure</b>
admin@example:/config/&gt; <b>edit interface eth0 ipv6</b>
admin@example:/config/interface/eth0/ipv6/&gt; <b>set neighbor 2001:db8::100 link-layer-address 00:11:22:33:44:55</b>
admin@example:/config/interface/eth0/ipv6/&gt; <b>diff</b>
+interfaces {
+ interface eth0 {
+ ipv6 {
+ neighbor 2001:db8::100 {
+ link-layer-address 00:11:22:33:44:55;
+ }
+ }
+ }
+}
admin@example:/config/interface/eth0/ipv6/&gt; <b>leave</b>
admin@example:/&gt;
</code></pre>
<p>The full neighbor table — including dynamically learned entries (origin:
<em>dynamic</em>) — is available as operational state via NETCONF or RESTCONF.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Static neighbor entries take effect immediately on <code>leave</code> (commit).
They are installed as <em>permanent</em> entries in the kernel neighbor table,
which means they are never evicted by the normal ARP/NDP aging process.</p>
</div>
<div class="footnote">
<hr>
<ol>
File diff suppressed because one or more lines are too long
+51 -51
View File
@@ -2,206 +2,206 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://kernelkit.github.io/infix/dev/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/boot/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/branding/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/bridging/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/container/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/developers-guide/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/dhcp/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/discovery/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/eth-counters/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/ethernet/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/firewall/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/hardware/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/iface/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/ip/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/keystore/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/lag/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/license/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/management/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/nacm/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/netboot/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/networking/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/ntp/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/override-package/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/ptp/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/qos/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/routing/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/scripting-netconf/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/scripting-prod/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/scripting-restconf/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/scripting-sysrepocfg/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/scripting/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/support/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/syslog/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/system/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/test-arch/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/testing/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/tunnels/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/upgrade/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/virtual/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/vpd/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/vpn-wireguard/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/vpn/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/wifi/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/cli/configure/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/cli/introduction/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/cli/keybindings/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/cli/netcalc/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/cli/quick/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/cli/tcpdump/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/cli/text-editor/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/cli/upgrade/</loc>
<lastmod>2026-04-28</lastmod>
<lastmod>2026-04-30</lastmod>
</url>
</urlset>
Binary file not shown.