<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2937680267848947674</id><updated>2025-10-24T00:34:10.504+08:00</updated><category term="Linux"/><category term="GRUB"/><category term="Ubuntu"/><category term="trick"/><category term="trouble shooting"/><category term="BOOT"/><category term="Brazilfw"/><category term="MBR"/><category term="Tools"/><category term="VPN"/><category term="server service"/><category term="Android"/><category term="Resource"/><category term="other"/><category term="Car"/><category term="Windows"/><category term="Wireshark"/><category term="antivirus"/><category term="asterisk"/><category term="music"/><category term="peugeot"/><category term="theme"/><category term="ubunut"/><category term="voip"/><title type='text'>Tech黑手 - 工作雜記</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>389</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-6682155675935282473</id><published>2024-08-29T18:32:00.001+08:00</published><updated>2024-08-29T18:32:04.429+08:00</updated><title type='text'>How to repair and clone disk with ddrescue</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;span style=&quot;background-color: white; box-sizing: inherit; color: #9c5e00; font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 18px; font-weight: 700;&quot;&gt;ddrescue&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #444444; font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 18px;&quot;&gt;&amp;nbsp;is a tool that can be used to repair and clone disks on a&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://linuxconfig.org/linux-download&quot; rel=&quot;noopener&quot; style=&quot;background-color: white; box-sizing: inherit; color: #3498db; font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 18px; text-decoration-line: none; transition: color 0.1s ease-in-out, background-color 0.1s ease-in-out;&quot; target=&quot;_blank&quot;&gt;Linux system&lt;/a&gt;&lt;span style=&quot;background-color: white; color: #444444; font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 18px;&quot;&gt;. This includes hard drives, partitions, DVD discs, flash drives, or really any storage device. It performs data recovery by copying data as blocks.&lt;/span&gt;&lt;/p&gt;&lt;span id=&quot;more-15542&quot; style=&quot;background-color: white; box-sizing: inherit; color: #444444; font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 18px;&quot;&gt;&lt;/span&gt;&lt;br style=&quot;background-color: white; box-sizing: inherit; color: #444444; font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 18px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #444444; font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 18px;&quot;&gt;If ddrescue encounters errors from the data it’s trying to copy, it can discard them and keep only the good data. This makes it an ideal tool when trying to recover data from a corrupted disk. In this tutorial, you will learn how to install ddrescue and use it to clone a full disk or partition, and write that data to an empty storage space.&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; color: #444444; font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: #444444; font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 18px; margin: 0px 0px 1.5em; padding: 0px;&quot;&gt;To install ddrescue on&amp;nbsp;&lt;a href=&quot;https://linuxconfig.org/ubuntu-linux-download&quot; rel=&quot;noopener&quot; style=&quot;box-sizing: inherit; color: #3498db; text-decoration-line: none; transition: color 0.1s ease-in-out, background-color 0.1s ease-in-out;&quot; target=&quot;_blank&quot;&gt;Ubuntu&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://linuxconfig.org/debian-linux-download&quot; rel=&quot;noopener&quot; style=&quot;box-sizing: inherit; color: #3498db; text-decoration-line: none; transition: color 0.1s ease-in-out, background-color 0.1s ease-in-out;&quot; target=&quot;_blank&quot;&gt;Debian&lt;/a&gt;, and&amp;nbsp;&lt;a href=&quot;https://linuxconfig.org/linux-mint-download&quot; rel=&quot;noopener&quot; style=&quot;box-sizing: inherit; color: #3498db; text-decoration-line: none; transition: color 0.1s ease-in-out, background-color 0.1s ease-in-out;&quot; target=&quot;_blank&quot;&gt;Linux Mint&lt;/a&gt;:&lt;/p&gt;&lt;pre style=&quot;background: rgba(0, 0, 0, 0.05); border-bottom-color: initial; border-bottom-style: initial; border-image: initial; border-left-color: rgb(2, 177, 240); border-left-style: solid; border-right-color: initial; border-right-style: initial; border-top-color: initial; border-top-style: initial; border-width: 0px 0px 0px 11px; box-sizing: inherit; color: #444444; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, sans-serif; font-size: 15px; line-height: 1.1em; margin-bottom: 1.7em; margin-left: 0.3em; margin-top: 1.7em; max-width: 100%; overflow: auto; padding: 20px; width: 925px;&quot;&gt;$ sudo apt install gddrescue&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; color: #444444; font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;h2 style=&quot;border: 0px; box-sizing: inherit; color: #444444; font-family: Oswald, sans-serif; font-size: 28px; font-style: inherit; font-weight: 400; line-height: 1.4em; margin: 0px 0px 20px; padding: 0px;&quot;&gt;Clone a partition to image file or other disk&lt;/h2&gt;&lt;p style=&quot;border: 0px; box-sizing: inherit; margin: 0px 0px 1.5em; padding: 0px;&quot;&gt;In the section, we will use ddrescue to clone a partition or full disk (the process is the same) to an image file. That file can that be written to another disk or partition afterwards. We will also show the process to clone a partition directly to another disk, bypassing the image file creation and instead creating a direct clone onto new hardware.&lt;/p&gt;&lt;ol class=&quot;steps&quot; style=&quot;border: 0px; box-sizing: inherit; list-style: none; margin: 0px; padding: 0px;&quot;&gt;&lt;li style=&quot;border: 0px; box-sizing: inherit; counter-increment: step-counter 1; margin: 0px 0px 50px; padding: 0px;&quot;&gt;First, open a command line terminal and identify the device path to the hard drive or partition that you would line to clone. For this, you can use a tool like&amp;nbsp;&lt;code style=&quot;background: rgb(250, 250, 250); box-sizing: inherit; color: darkorange; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, sans-serif; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; font-weight: bold; line-height: normal; padding: 3px 5px;&quot;&gt;lsblk&lt;/code&gt;,&amp;nbsp;&lt;code style=&quot;background: rgb(250, 250, 250); box-sizing: inherit; color: darkorange; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, sans-serif; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; font-weight: bold; line-height: normal; padding: 3px 5px;&quot;&gt;fdisk&lt;/code&gt;, etc.&lt;pre style=&quot;background: rgba(0, 0, 0, 0.05); border-bottom-color: initial; border-bottom-style: initial; border-image: initial; border-left-color: rgb(2, 177, 240); border-left-style: solid; border-right-color: initial; border-right-style: initial; border-top-color: initial; border-top-style: initial; border-width: 0px 0px 0px 11px; box-sizing: inherit; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, sans-serif; font-size: 15px; line-height: 1.1em; margin-bottom: 1.7em; margin-left: 0.3em; margin-top: 1.7em; max-width: 100%; overflow: auto; padding: 20px; width: 925px;&quot;&gt;$ lsblk
&lt;/pre&gt;&lt;figure aria-describedby=&quot;caption-attachment-15544&quot; class=&quot;wp-caption alignnone&quot; id=&quot;attachment_15544&quot; style=&quot;border: 0px; box-sizing: inherit; margin: 0px 0px 1.5em; max-width: 100%; padding: 0px; position: relative; width: 1190px;&quot;&gt;&lt;a href=&quot;https://linuxconfig.org/wp-content/uploads/2022/07/01-how-to-repair-and-clone-disks-with-ddrescue.avif&quot; style=&quot;box-sizing: inherit; color: #3498db; text-decoration-line: none; transition: color 0.1s ease-in-out, background-color 0.1s ease-in-out;&quot;&gt;&lt;img alt=&quot;Here we find the device path /dev/sdb1 which is the partition we want to clone&quot; class=&quot;size-full wp-image-15544&quot; decoding=&quot;async&quot; height=&quot;675&quot; src=&quot;https://linuxconfig.org/wp-content/uploads/2022/07/01-how-to-repair-and-clone-disks-with-ddrescue.avif&quot; style=&quot;box-sizing: inherit; display: block; height: auto; margin: 0px auto; max-width: 100%; position: relative; vertical-align: bottom;&quot; width=&quot;1200&quot; /&gt;&lt;/a&gt;&lt;figcaption class=&quot;wp-caption-text&quot; id=&quot;caption-attachment-15544&quot; style=&quot;box-sizing: inherit; font-size: 13.5px; opacity: 0.8; padding-top: 5px;&quot;&gt;Here we find the device path /dev/sdb1 which is the partition we want to clone&lt;/figcaption&gt;&lt;/figure&gt;&lt;/li&gt;&lt;li style=&quot;border: 0px; box-sizing: inherit; counter-increment: step-counter 1; margin: 0px 0px 50px; padding: 0px;&quot;&gt;Note that the&amp;nbsp;&lt;code style=&quot;background: rgb(250, 250, 250); box-sizing: inherit; color: darkorange; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, sans-serif; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; font-weight: bold; line-height: normal; padding: 3px 5px;&quot;&gt;-d&lt;/code&gt;&amp;nbsp;option will force ddrescue to ignore the kernel’s cache and instead access the disk directly.&lt;p style=&quot;border: 0px; box-sizing: inherit; margin: 0px 0px 1.5em; padding: 0px;&quot;&gt;&lt;/p&gt;&lt;figure aria-describedby=&quot;caption-attachment-15543&quot; class=&quot;wp-caption alignnone&quot; id=&quot;attachment_15543&quot; style=&quot;border: 0px; box-sizing: inherit; margin: 0px 0px 1.5em; max-width: 100%; padding: 0px; position: relative; width: 1190px;&quot;&gt;&lt;a href=&quot;https://linuxconfig.org/wp-content/uploads/2022/07/02-how-to-repair-and-clone-disks-with-ddrescue.avif&quot; style=&quot;box-sizing: inherit; color: #3498db; text-decoration-line: none; transition: color 0.1s ease-in-out, background-color 0.1s ease-in-out;&quot;&gt;&lt;img alt=&quot;ddrescue process of cloning the partition to an image file&quot; class=&quot;size-full wp-image-15543&quot; decoding=&quot;async&quot; height=&quot;675&quot; src=&quot;https://linuxconfig.org/wp-content/uploads/2022/07/02-how-to-repair-and-clone-disks-with-ddrescue.avif&quot; style=&quot;box-sizing: inherit; display: block; height: auto; margin: 0px auto; max-width: 100%; position: relative; vertical-align: bottom;&quot; width=&quot;1200&quot; /&gt;&lt;/a&gt;&lt;figcaption class=&quot;wp-caption-text&quot; id=&quot;caption-attachment-15543&quot; style=&quot;box-sizing: inherit; font-size: 13.5px; opacity: 0.8; padding-top: 5px;&quot;&gt;ddrescue process of cloning the partition to an image file&lt;/figcaption&gt;&lt;/figure&gt;&lt;/li&gt;&lt;li style=&quot;border: 0px; box-sizing: inherit; counter-increment: step-counter 1; margin: 0px 0px 50px; padding: 0px;&quot;&gt;Note that if you are trying to recover data from a corrupted disk, you may want to append the&amp;nbsp;&lt;code style=&quot;background: rgb(250, 250, 250); box-sizing: inherit; color: darkorange; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, sans-serif; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; font-weight: bold; line-height: normal; padding: 3px 5px;&quot;&gt;-r&lt;/code&gt;&amp;nbsp;option after the first try above. This will instruct ddrescue to retry bad sectors in an effort to recover as much data as possible. You can specify the number of retries after the option. In this example, we will use 3 retries.&lt;pre style=&quot;background: rgba(0, 0, 0, 0.05); border-bottom-color: initial; border-bottom-style: initial; border-image: initial; border-left-color: rgb(2, 177, 240); border-left-style: solid; border-right-color: initial; border-right-style: initial; border-top-color: initial; border-top-style: initial; border-width: 0px 0px 0px 11px; box-sizing: inherit; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, sans-serif; font-size: 15px; line-height: 1.1em; margin-bottom: 1.7em; margin-left: 0.3em; margin-top: 1.7em; max-width: 100%; overflow: auto; padding: 20px; width: 925px;&quot;&gt;$ sudo ddrescue -d -r3 /dev/sdX backup.img backup.logfile
&lt;/pre&gt;&lt;/li&gt;&lt;li style=&quot;border: 0px; box-sizing: inherit; counter-increment: step-counter 1; margin: 0px 0px 50px; padding: 0px;&quot;&gt;Next, we will copy the new image file to a different disk or partition. We can use an ordinary&amp;nbsp;&lt;code style=&quot;background: rgb(250, 250, 250); box-sizing: inherit; color: darkorange; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, sans-serif; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; font-weight: bold; line-height: normal; padding: 3px 5px;&quot;&gt;dd&lt;/code&gt;&amp;nbsp;command for this.&lt;pre style=&quot;background: rgba(0, 0, 0, 0.05); border-bottom-color: initial; border-bottom-style: initial; border-image: initial; border-left-color: rgb(2, 177, 240); border-left-style: solid; border-right-color: initial; border-right-style: initial; border-top-color: initial; border-top-style: initial; border-width: 0px 0px 0px 11px; box-sizing: inherit; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, sans-serif; font-size: 15px; line-height: 1.1em; margin-bottom: 1.7em; margin-left: 0.3em; margin-top: 1.7em; max-width: 100%; overflow: auto; padding: 20px; width: 925px;&quot;&gt;$ sudo dd if=backup.img of=/dev/sdX
&lt;/pre&gt;&lt;p style=&quot;border: 0px; box-sizing: inherit; margin: 0px 0px 1.5em; padding: 0px;&quot;&gt;Alternatively, the&amp;nbsp;&lt;code style=&quot;background: rgb(250, 250, 250); box-sizing: inherit; color: darkorange; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, sans-serif; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; font-weight: bold; line-height: normal; padding: 3px 5px;&quot;&gt;ddrescue&lt;/code&gt;&amp;nbsp;command can be used.&lt;/p&gt;&lt;pre style=&quot;background: rgba(0, 0, 0, 0.05); border-bottom-color: initial; border-bottom-style: initial; border-image: initial; border-left-color: rgb(2, 177, 240); border-left-style: solid; border-right-color: initial; border-right-style: initial; border-top-color: initial; border-top-style: initial; border-width: 0px 0px 0px 11px; box-sizing: inherit; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, sans-serif; font-size: 15px; line-height: 1.1em; margin-bottom: 1.7em; margin-left: 0.3em; margin-top: 1.7em; max-width: 100%; overflow: auto; padding: 20px; width: 925px;&quot;&gt;$ sudo ddrescue -f backup.img /dev/sdX clone.logfile
&lt;/pre&gt;&lt;p style=&quot;border: 0px; box-sizing: inherit; margin: 0px 0px 1.5em; padding: 0px;&quot;&gt;The&amp;nbsp;&lt;code style=&quot;background: rgb(250, 250, 250); box-sizing: inherit; color: darkorange; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, sans-serif; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; font-weight: bold; line-height: normal; padding: 3px 5px;&quot;&gt;-f&lt;/code&gt;&amp;nbsp;option indicates that we are sending our output to a block device rather than a file.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;border: 0px; box-sizing: inherit; counter-increment: step-counter 1; margin: 0px 0px 50px; padding: 0px;&quot;&gt;If you want to clone a disk or partition directly to another, thereby bypassing any image file, you can do so with the following syntax. In this example, we are cloning partition&amp;nbsp;&lt;code style=&quot;background: rgb(250, 250, 250); box-sizing: inherit; color: darkorange; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, sans-serif; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; font-weight: bold; line-height: normal; padding: 3px 5px;&quot;&gt;/dev/sdX1&lt;/code&gt;&amp;nbsp;to&amp;nbsp;&lt;code style=&quot;background: rgb(250, 250, 250); box-sizing: inherit; color: darkorange; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, sans-serif; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; font-weight: bold; line-height: normal; padding: 3px 5px;&quot;&gt;/dev/sdX2&lt;/code&gt;.&lt;pre style=&quot;background: rgba(0, 0, 0, 0.05); border-bottom-color: initial; border-bottom-style: initial; border-image: initial; border-left-color: rgb(2, 177, 240); border-left-style: solid; border-right-color: initial; border-right-style: initial; border-top-color: initial; border-top-style: initial; border-width: 0px 0px 0px 11px; box-sizing: inherit; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, sans-serif; font-size: 15px; line-height: 1.1em; margin-bottom: 1.7em; margin-left: 0.3em; margin-top: 1.7em; max-width: 100%; overflow: auto; padding: 20px; width: 925px;&quot;&gt;$ sudo ddrescue -d -f /dev/sdX1 /dev/sdX2 clone.logfile
&lt;/pre&gt;&lt;/li&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: #444444; font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 18px; margin: 0px 0px 1.5em; padding: 0px;&quot;&gt;&lt;/p&gt;&lt;div class=&quot;incontent_ads&quot; data-fuse-code=&quot;fuse-slot-22189504509-1&quot; data-fuse-processed-at=&quot;1347&quot; data-fuse-slot=&quot;fuse-slot-22189504509-1&quot; data-fuse-zone-instance=&quot;zone-instance-22189504509-1&quot; data-fuse=&quot;22189504509&quot; data-gpid=&quot;/71161633,180063765/LINUX_linuxconfig/article_incontent_3#single-1&quot; style=&quot;background-color: white; box-sizing: inherit; color: #444444; font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 18px; height: 90px; overflow: hidden;&quot;&gt;Next, we will use the following command syntax to copy the partition to an image file. We are using&amp;nbsp;&lt;code style=&quot;background: rgb(250, 250, 250); box-sizing: inherit; color: darkorange; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, sans-serif; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; font-weight: bold; line-height: normal; padding: 3px 5px;&quot;&gt;/dev/sdX&lt;/code&gt;&amp;nbsp;in the example below, but you would just need to substitute your own partition or device in place of it. The contents will be written to a file called&amp;nbsp;&lt;code style=&quot;background: rgb(250, 250, 250); box-sizing: inherit; color: darkorange; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, sans-serif; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size-adjust: none; font-size: 15px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; font-weight: bold; line-height: normal; padding: 3px 5px;&quot;&gt;backup.img&lt;/code&gt;.&lt;div class=&quot;fuse-slot&quot; data-google-query-id=&quot;CNrWnOX-mYgDFVyI6QUdAU8iyw&quot; id=&quot;fuse-slot-22189504509-1&quot; style=&quot;box-sizing: inherit; max-height: inherit; max-width: inherit;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;li style=&quot;border: 0px; box-sizing: inherit; counter-increment: step-counter 1; margin: 0px 0px 50px; padding: 0px;&quot;&gt;&lt;pre style=&quot;background: rgba(0, 0, 0, 0.05); border-bottom-color: initial; border-bottom-style: initial; border-image: initial; border-left-color: rgb(2, 177, 240); border-left-style: solid; border-right-color: initial; border-right-style: initial; border-top-color: initial; border-top-style: initial; border-width: 0px 0px 0px 11px; box-sizing: inherit; color: #444444; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace, sans-serif; font-size: 15px; line-height: 1.1em; margin-bottom: 1.7em; margin-left: 0.3em; margin-top: 1.7em; max-width: 100%; overflow: auto; padding: 20px; width: 925px;&quot;&gt;$ sudo ddrescue -d /dev/sdX backup.img backup.logfile
&lt;/pre&gt;&lt;p style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: #444444; font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 18px; margin: 0px 0px 1.5em; padding: 0px;&quot;&gt;&lt;/p&gt;&lt;br style=&quot;background-color: white; box-sizing: inherit; color: #444444; font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 18px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #444444; font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 18px;&quot;&gt;After completing the steps above, you can access the cloned storage and will hopefully see all of your files there, assuming that ddrescue was successful in recovering them.&lt;/span&gt;&lt;br /&gt;&lt;div class=&quot;incontent_ads&quot; data-fuse-code=&quot;fuse-slot-22189504224-1&quot; data-fuse-processed-at=&quot;1347&quot; data-fuse-slot=&quot;fuse-slot-22189504224-1&quot; data-fuse-zone-instance=&quot;zone-instance-22189504224-1&quot; data-fuse=&quot;22189504224&quot; data-gpid=&quot;/71161633,180063765/LINUX_linuxconfig/article_incontent_2#single-1&quot; style=&quot;background-color: white; box-sizing: inherit; color: #444444; font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 18px; height: 90px; overflow: hidden;&quot;&gt;&lt;div class=&quot;fuse-slot&quot; data-google-query-id=&quot;CITdo4v_mYgDFbSG6QUdnyQqxQ&quot; id=&quot;fuse-slot-22189504224-1&quot; style=&quot;box-sizing: inherit; max-height: inherit; max-width: inherit;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/6682155675935282473/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2024/08/how-to-repair-and-clone-disk-with.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/6682155675935282473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/6682155675935282473'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2024/08/how-to-repair-and-clone-disk-with.html' title='How to repair and clone disk with ddrescue'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-2260183532716277412</id><published>2024-08-29T18:26:00.005+08:00</published><updated>2024-08-29T18:26:43.748+08:00</updated><title type='text'>PFC优先级流量控制</title><content type='html'>&lt;p&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;From :https://support.huawei.com/enterprise/zh/doc/EDOC1100138438/d1e17776&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;idp-ltr-html-topicbody&quot; style=&quot;background-color: white; box-sizing: border-box; color: #494949; font-family: &amp;quot;Microsoft YaHei&amp;quot;, Arial; font-size: 14px;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 0.5em; margin-top: 0.1em; overflow-wrap: break-word;&quot;&gt;PFC（Priority-based Flow Control，基于优先级的流量控制）也称为Per Priority Pause或 CBFC（Class Based Flow Control），是对Pause机制的一种增强。当前以太Pause机制（IEEE 802.3 Annex 31B）也能达到无丢包的要求，原理如下：当下游设备发现接收能力小于上游设备的发送能力时，会主动发Pause帧给上游设备，要求暂停流量的发送，等待一定时间后再继续发送数据。但是以太Pause机制的流量暂停是针对整个接口，即在出现拥塞时会将链路上所有的流量都暂停。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 0.5em; margin-top: 0.1em; overflow-wrap: break-word;&quot;&gt;而PFC允许在一条以太网链路上创建8个虚拟通道，并为每条虚拟通道指定一个优先等级，允许单独暂停和重启其中任意一条虚拟通道，同时允许其它虚拟通道的流量无中断通过。这一方法使网络能够为单个虚拟链路创建无丢包类别的服务，使其能够与同一接口上的其它流量类型共存。&lt;/p&gt;&lt;div class=&quot;idp-ltr-html-fignone&quot; id=&quot;ZH-CN_CONCEPT_0153433055__fig18876327133212&quot; style=&quot;box-sizing: border-box; margin-top: 8px;&quot;&gt;&lt;a name=&quot;ZH-CN_CONCEPT_0153433055__fig18876327133212&quot; style=&quot;box-sizing: border-box; color: inherit;&quot;&gt;&lt;/a&gt;&lt;a name=&quot;fig18876327133212&quot; style=&quot;box-sizing: border-box; color: inherit;&quot;&gt;&lt;/a&gt;&lt;span class=&quot;idp-ltr-html-figcap&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;idp-ltr-html-figurenumber&quot; style=&quot;box-sizing: border-box; font-weight: bold;&quot;&gt;图2-1&lt;/span&gt;&amp;nbsp;PFC的工作机制&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;img data-original=&quot;https://download.huawei.com/mdl/image/download?uuid=22dcd07008a44203ab4bfc672d594f02&quot; src=&quot;https://download.huawei.com/mdl/image/download?uuid=22dcd07008a44203ab4bfc672d594f02&quot; style=&quot;border-style: none; box-sizing: border-box; height: auto; max-width: 100%; vertical-align: middle;&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 0.5em; margin-top: 0.1em; overflow-wrap: break-word;&quot;&gt;如&lt;a href=&quot;https://support.huawei.com/enterprise/zh/doc/EDOC1100138438/d1e17776#fig18876327133212&quot; style=&quot;box-sizing: border-box; color: #cc0000; text-decoration-line: none;&quot;&gt;图2-1&lt;/a&gt;所示，DeviceA发送接口分成了8个优先级队列，DeviceB接收接口有8个接收缓存（buffer），两者一一对应（报文优先级和接口队列存在着一一对应的映射关系），形成了网络中 8 个虚拟化通道，缓存大小不同使得各队列有不同的数据缓存能力。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 0.5em; margin-top: 0.1em; overflow-wrap: break-word;&quot;&gt;当DeviceB的接口上某个接收缓存产生拥塞时，即某个设备的队列缓存消耗较快，超过一定阈值（可设定为端口队列缓存的 1/2、3/4 等比例），DeviceB即向数据进入的方向（上游设备DeviceA）发送反压信号“STOP”。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 0.5em; margin-top: 0.1em; overflow-wrap: break-word;&quot;&gt;DeviceA接收到反压信号，会根据反压信号指示停止发送对应优先级队列的报文，并将数据存储在本地接口缓存。如果DeviceA本地接口缓存消耗超过阈值，则继续向上游反压，如此一级级反压，直到网络终端设备，从而消除网络节点因拥塞造成的丢包。&lt;/p&gt;&lt;div class=&quot;idp-ltr-html-p&quot; style=&quot;box-sizing: border-box;&quot;&gt;“反压信号”实际上是一个以太帧，其具体报文格式如&lt;a href=&quot;https://support.huawei.com/enterprise/zh/doc/EDOC1100138438/d1e17776#fig_dc_fd_dcb_000402&quot; style=&quot;box-sizing: border-box; color: #cc0000; text-decoration-line: none;&quot;&gt;图2-2&lt;/a&gt;所示。&lt;div class=&quot;idp-ltr-html-fignone&quot; id=&quot;ZH-CN_CONCEPT_0153433055__fig_dc_fd_dcb_000402&quot; style=&quot;box-sizing: border-box; margin-top: 8px;&quot;&gt;&lt;a name=&quot;ZH-CN_CONCEPT_0153433055__fig_dc_fd_dcb_000402&quot; style=&quot;box-sizing: border-box; color: inherit;&quot;&gt;&lt;/a&gt;&lt;a name=&quot;fig_dc_fd_dcb_000402&quot; style=&quot;box-sizing: border-box; color: inherit;&quot;&gt;&lt;/a&gt;&lt;span class=&quot;idp-ltr-html-figcap&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;idp-ltr-html-figurenumber&quot; style=&quot;box-sizing: border-box; font-weight: bold;&quot;&gt;图2-2&lt;/span&gt;&amp;nbsp;PFC帧格式&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;img data-original=&quot;https://download.huawei.com/mdl/image/download?uuid=d14a0ca0400445938ab9774da14dedbe&quot; src=&quot;https://download.huawei.com/mdl/image/download?uuid=d14a0ca0400445938ab9774da14dedbe&quot; style=&quot;border-style: none; box-sizing: border-box; height: auto; max-width: 100%; vertical-align: middle;&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;idp-ltr-html-tablenoborder&quot; style=&quot;box-sizing: border-box; margin: 25px 0px 10px; overflow: auto;&quot;&gt;&lt;span class=&quot;idp-ltr-html-tablecap&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span class=&quot;idp-ltr-html-tablenumber&quot; style=&quot;box-sizing: border-box; font-weight: bold;&quot;&gt;表2-1&lt;/span&gt;&amp;nbsp;PFC帧的定义&lt;/span&gt;&lt;table border=&quot;1&quot; cellpadding=&quot;4&quot; cellspacing=&quot;0&quot; class=&quot;idp-ltr-html-tb-normal&quot; frame=&quot;border&quot; id=&quot;ZH-CN_CONCEPT_0153433055__tabled0e526&quot; rules=&quot;all&quot; style=&quot;border-collapse: collapse; border-color: rgb(104, 104, 104); margin: 8px 0px 15px; overflow-wrap: break-word; table-layout: fixed; word-break: normal;&quot; summary=&quot;&quot;&gt;&lt;thead align=&quot;left&quot; style=&quot;box-sizing: border-box; font-size: 14px; font-weight: bold;&quot;&gt;&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;th class=&quot;idp-ltr-html-cellrowborder&quot; id=&quot;mcps1.5.5.5.3.7.3.2.3.1.1&quot; style=&quot;background-color: #cfcfcf; box-sizing: content-box; color: #333333; padding-left: 16px; padding-right: 16px; text-align: -webkit-match-parent;&quot; valign=&quot;top&quot; width=&quot;24%&quot;&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0.2em 0px; overflow-wrap: break-word; word-break: normal;&quot;&gt;项目&lt;/p&gt;&lt;/th&gt;&lt;th class=&quot;idp-ltr-html-cellrowborder&quot; id=&quot;mcps1.5.5.5.3.7.3.2.3.1.2&quot; style=&quot;background-color: #cfcfcf; box-sizing: content-box; color: #333333; padding-left: 16px; padding-right: 16px; text-align: -webkit-match-parent;&quot; valign=&quot;top&quot; width=&quot;76%&quot;&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0.2em 0px; overflow-wrap: break-word; word-break: normal;&quot;&gt;描述&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;box-sizing: border-box; font-size: 14px;&quot;&gt;&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;idp-ltr-html-cellrowborder&quot; headers=&quot;mcps1.5.5.5.3.7.3.2.3.1.1 &quot; style=&quot;box-sizing: border-box; padding: 8px 16px;&quot; valign=&quot;top&quot; width=&quot;24%&quot;&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0.2em 0px; overflow-wrap: break-word; word-break: normal;&quot;&gt;Destination address&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;idp-ltr-html-cellrowborder&quot; headers=&quot;mcps1.5.5.5.3.7.3.2.3.1.2 &quot; style=&quot;box-sizing: border-box; padding: 8px 16px;&quot; valign=&quot;top&quot; width=&quot;76%&quot;&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0.2em 0px; overflow-wrap: break-word; word-break: normal;&quot;&gt;目的MAC地址，取值固定为01-80-c2-00-00-01。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;idp-ltr-html-cellrowborder&quot; headers=&quot;mcps1.5.5.5.3.7.3.2.3.1.1 &quot; style=&quot;box-sizing: border-box; padding: 8px 16px;&quot; valign=&quot;top&quot; width=&quot;24%&quot;&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0.2em 0px; overflow-wrap: break-word; word-break: normal;&quot;&gt;Source address&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;idp-ltr-html-cellrowborder&quot; headers=&quot;mcps1.5.5.5.3.7.3.2.3.1.2 &quot; style=&quot;box-sizing: border-box; padding: 8px 16px;&quot; valign=&quot;top&quot; width=&quot;76%&quot;&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0.2em 0px; overflow-wrap: break-word; word-break: normal;&quot;&gt;源MAC地址。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;idp-ltr-html-cellrowborder&quot; headers=&quot;mcps1.5.5.5.3.7.3.2.3.1.1 &quot; style=&quot;box-sizing: border-box; padding: 8px 16px;&quot; valign=&quot;top&quot; width=&quot;24%&quot;&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0.2em 0px; overflow-wrap: break-word; word-break: normal;&quot;&gt;Ethertype&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;idp-ltr-html-cellrowborder&quot; headers=&quot;mcps1.5.5.5.3.7.3.2.3.1.2 &quot; style=&quot;box-sizing: border-box; padding: 8px 16px;&quot; valign=&quot;top&quot; width=&quot;76%&quot;&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0.2em 0px; overflow-wrap: break-word; word-break: normal;&quot;&gt;以太网帧类型，取值为88-08。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;idp-ltr-html-cellrowborder&quot; headers=&quot;mcps1.5.5.5.3.7.3.2.3.1.1 &quot; style=&quot;box-sizing: border-box; padding: 8px 16px;&quot; valign=&quot;top&quot; width=&quot;24%&quot;&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0.2em 0px; overflow-wrap: break-word; word-break: normal;&quot;&gt;Control opcode&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;idp-ltr-html-cellrowborder&quot; headers=&quot;mcps1.5.5.5.3.7.3.2.3.1.2 &quot; style=&quot;box-sizing: border-box; padding: 8px 16px;&quot; valign=&quot;top&quot; width=&quot;76%&quot;&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0.2em 0px; overflow-wrap: break-word; word-break: normal;&quot;&gt;控制码，取值为01-01。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;idp-ltr-html-cellrowborder&quot; headers=&quot;mcps1.5.5.5.3.7.3.2.3.1.1 &quot; style=&quot;box-sizing: border-box; padding: 8px 16px;&quot; valign=&quot;top&quot; width=&quot;24%&quot;&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0.2em 0px; overflow-wrap: break-word; word-break: normal;&quot;&gt;Priority enable vector&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;idp-ltr-html-cellrowborder&quot; headers=&quot;mcps1.5.5.5.3.7.3.2.3.1.2 &quot; style=&quot;box-sizing: border-box; padding: 8px 16px;&quot; valign=&quot;top&quot; width=&quot;76%&quot;&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0.2em 0px; overflow-wrap: break-word; word-break: normal;&quot;&gt;反压使能向量。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0.2em 0px; overflow-wrap: break-word; word-break: normal;&quot;&gt;其中E(n)和优先级队列n对应，表示优先级队列n是否需要反压。当E(n)=1时，表示优先级队列n需要反压，反压时间为Time(n)；当E(n)=0时，则表示该优先级队列不需要反压。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;idp-ltr-html-cellrowborder&quot; headers=&quot;mcps1.5.5.5.3.7.3.2.3.1.1 &quot; style=&quot;box-sizing: border-box; padding: 8px 16px;&quot; valign=&quot;top&quot; width=&quot;24%&quot;&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0.2em 0px; overflow-wrap: break-word; word-break: normal;&quot;&gt;Time(0)～Time(7)&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;idp-ltr-html-cellrowborder&quot; headers=&quot;mcps1.5.5.5.3.7.3.2.3.1.2 &quot; style=&quot;box-sizing: border-box; padding: 8px 16px;&quot; valign=&quot;top&quot; width=&quot;76%&quot;&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0.2em 0px; overflow-wrap: break-word; word-break: normal;&quot;&gt;反压定时器。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0.2em 0px; overflow-wrap: break-word; word-break: normal;&quot;&gt;当Time(n)=0时表示取消反压。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;idp-ltr-html-cellrowborder&quot; headers=&quot;mcps1.5.5.5.3.7.3.2.3.1.1 &quot; style=&quot;box-sizing: border-box; padding: 8px 16px;&quot; valign=&quot;top&quot; width=&quot;24%&quot;&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0.2em 0px; overflow-wrap: break-word; word-break: normal;&quot;&gt;Pad&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;idp-ltr-html-cellrowborder&quot; headers=&quot;mcps1.5.5.5.3.7.3.2.3.1.2 &quot; style=&quot;box-sizing: border-box; padding: 8px 16px;&quot; valign=&quot;top&quot; width=&quot;76%&quot;&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0.2em 0px; overflow-wrap: break-word; word-break: normal;&quot;&gt;预留。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0.2em 0px; overflow-wrap: break-word; word-break: normal;&quot;&gt;传输时为0。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: border-box;&quot;&gt;&lt;td class=&quot;idp-ltr-html-cellrowborder&quot; headers=&quot;mcps1.5.5.5.3.7.3.2.3.1.1 &quot; style=&quot;box-sizing: border-box; padding: 8px 16px;&quot; valign=&quot;top&quot; width=&quot;24%&quot;&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0.2em 0px; overflow-wrap: break-word; word-break: normal;&quot;&gt;CRC&lt;/p&gt;&lt;/td&gt;&lt;td class=&quot;idp-ltr-html-cellrowborder&quot; headers=&quot;mcps1.5.5.5.3.7.3.2.3.1.2 &quot; style=&quot;box-sizing: border-box; padding: 8px 16px;&quot; valign=&quot;top&quot; width=&quot;76%&quot;&gt;&lt;p style=&quot;box-sizing: border-box; margin: 0.2em 0px; overflow-wrap: break-word; word-break: normal;&quot;&gt;循环冗余校验。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 0.5em; margin-top: 0.1em; overflow-wrap: break-word;&quot;&gt;总而言之，设备会为端口上的8个队列设置各自的PFC门限值，当队列已使用的缓存超过PFC门限值时，则向上游发送PFC反压通知报文，通知上游设备停止发包；当队列已使用的缓存降低到PFC门限值以下时，则向上游发送PFC反压停止报文，通知上游设备重新发包，从而最终实现报文的无丢包传输。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 0.5em; margin-top: 0.1em; overflow-wrap: break-word;&quot;&gt;由此可见，PFC中流量暂停只针对某一个或几个优先级队列，不针对整个接口进行中断，每个队列都能单独进行暂停或重启，而不影响其他队列上的流量，真正实现多种流量共享链路。而对非PFC控制的优先级队列，系统则不进行反压处理，即在发生拥塞时将直接丢弃报文。&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 0.5em; margin-top: 0.1em; overflow-wrap: break-word;&quot;&gt;但是网络中如果出现大量PFC反压帧，则极有可能诱发网络死锁，出现两个或多个队列发生永久堵塞（等待），每个队列都在等待被其他队列占用并堵塞了的资源，最终导致网络系统性风险。智能无损网络提供了PFC死锁检测功能。当设备在死锁检测周期内持续收到反压帧时，将不会响应，确保不出现PFC死锁情况。&lt;/p&gt;&lt;div class=&quot;idp-ltr-html-section&quot; style=&quot;box-sizing: border-box; margin-bottom: 1em; margin-top: 1em;&quot;&gt;&lt;h2 class=&quot;idp-ltr-html-sectiontitle&quot; style=&quot;box-sizing: border-box; color: #333333; font-size: 1.1em; margin: 25px 0px 10px;&quot;&gt;无损与有损的概念&lt;/h2&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 0.5em; margin-top: 0.1em; overflow-wrap: break-word;&quot;&gt;由上述内容可知，报文在以太网络中的无丢包传输是通过PFC流控机制实现的。设备支持基于802.1p优先级的PFC和基于DSCP优先级的PFC：&lt;/p&gt;&lt;ul class=&quot;idp-ltr-html-ul&quot; style=&quot;box-sizing: border-box; list-style: none; margin-bottom: 0px !important; margin-left: 1.2em; margin-top: 0px; padding-inline-start: 0px; padding: 0px;&quot;&gt;&lt;li class=&quot;idp-ltr-html-li&quot; style=&quot;box-sizing: border-box; list-style: disc; margin-bottom: 0.6em; margin-top: 0.6em;&quot;&gt;基于802.1p优先级的PFC：设备将报文中的802.1p优先级值与端口队列一一对应，即优先级值为0对应0号队列、优先级值为1对应1号队列，以此类推。&lt;/li&gt;&lt;li class=&quot;idp-ltr-html-li&quot; style=&quot;box-sizing: border-box; list-style: disc; margin-bottom: 0.6em; margin-top: 0.6em;&quot;&gt;基于DSCP优先级的PFC：设备根据配置的DiffServ域将报文中的DSCP优先级映射为内部优先级，内部优先级与端口队列一一对应，具体对应关系参见&lt;span style=&quot;box-sizing: border-box;&quot;&gt;《&lt;span class=&quot;idp-ltr-html-keyword&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span id=&quot;ZH-CN_CONCEPT_0153433055__ZH-CN_CONCEPT_0153433055_mMcCpPsS_zh-cn_task_0138780876_text362731211175459&quot; style=&quot;box-sizing: border-box;&quot;&gt;CloudEngine 12800, 12800E系列&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;idp-ltr-html-keyword&quot; style=&quot;box-sizing: border-box;&quot;&gt;交换机&lt;/span&gt;&amp;nbsp;配置指南-QoS》&lt;/span&gt;中的“优先级映射配置”。&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;box-sizing: border-box; margin-bottom: 0.5em; margin-top: 0.1em; overflow-wrap: break-word;&quot;&gt;根据报文在网络中传输时是否需要无丢包传输，可以将业务划分为无损业务和有损业务。&lt;/p&gt;&lt;ul class=&quot;idp-ltr-html-ul&quot; style=&quot;box-sizing: border-box; list-style: none; margin-bottom: 0px !important; margin-left: 1.2em; margin-top: 0px; padding-inline-start: 0px; padding: 0px;&quot;&gt;&lt;li class=&quot;idp-ltr-html-li&quot; style=&quot;box-sizing: border-box; list-style: disc; margin-bottom: 0.6em; margin-top: 0.6em;&quot;&gt;无损业务：需要无丢包传输的业务。使能了PFC功能的802.1p优先级或由DSCP优先级映射的内部优先级即为无损优先级，该优先级对应的队列即为无损队列。&lt;/li&gt;&lt;li class=&quot;idp-ltr-html-li&quot; style=&quot;box-sizing: border-box; list-style: disc; margin-bottom: 0.6em; margin-top: 0.6em;&quot;&gt;有损业务：允许丢包传输的业务。未使能PFC功能的802.1p优先级或由DSCP优先级映射的内部优先级即为有损优先级，该优先级对应的队列即为有损队列&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/2260183532716277412/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2024/08/pfc.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/2260183532716277412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/2260183532716277412'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2024/08/pfc.html' title='PFC优先级流量控制'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-5375589374965895725</id><published>2023-06-26T10:47:00.003+08:00</published><updated>2023-06-26T10:47:44.887+08:00</updated><title type='text'>How to use simple speedtest in RaspberryPi CLI</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;pi@ChunchaiRPI2:/tmp $&amp;nbsp;&lt;span style=&quot;color: red;&quot;&gt; wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py&lt;/span&gt;&lt;/p&gt;&lt;p&gt;--2023-06-26 10:43:47--&amp;nbsp; https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py&lt;/p&gt;&lt;p&gt;Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.111.133, 185.199.109.133, 185.199.110.133, ...&lt;/p&gt;&lt;p&gt;Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.111.133|:443... connected.&lt;/p&gt;&lt;p&gt;HTTP request sent, awaiting response... 200 OK&lt;/p&gt;&lt;p&gt;Length: 65334 (64K) [text/plain]&lt;/p&gt;&lt;p&gt;Saving to: ‘speedtest-cli’&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;speedtest-cli&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 100%[=====================================================================================================================&amp;gt;]&amp;nbsp; 63.80K&amp;nbsp; --.-KB/s&amp;nbsp; &amp;nbsp; in 0.08s&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;2023-06-26 10:43:48 (849 KB/s) - ‘speedtest-cli’ saved [65334/65334]&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;pi@ChunchaiRPI2:/tmp $ &lt;span style=&quot;color: red;&quot;&gt;sudo chmod +x speedtest-cli&lt;/span&gt;&lt;/p&gt;&lt;p&gt;pi@ChunchaiRPI2:/tmp $ &lt;span style=&quot;color: red;&quot;&gt;./speedtest-cli --simple&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Ping: 7.342 ms&lt;/p&gt;&lt;p&gt;Download: 301.20 Mbit/s&lt;/p&gt;&lt;p&gt;Upload: 251.35 Mbit/s&lt;/p&gt;&lt;p&gt;pi@ChunchaiRPI2:/tmp $&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/5375589374965895725/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2023/06/how-to-use-simple-speedtest-in.html#comment-form' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/5375589374965895725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/5375589374965895725'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2023/06/how-to-use-simple-speedtest-in.html' title='How to use simple speedtest in RaspberryPi CLI'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-6877762976851400093</id><published>2023-06-20T14:42:00.006+08:00</published><updated>2023-06-20T14:42:51.058+08:00</updated><title type='text'>How to decompile dtb file (Device Tree)</title><content type='html'>&lt;p&gt;dtc -I dtb -O dts -o devicetree.dts devicetree.dtb&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;$ sudo apt-get install device-tree-compiler&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;$ dtc -I dtb -O dts test.dtb &amp;gt; test.dts&lt;/p&gt;&lt;p&gt;$ dtc -I dts -O dtb test.dts &amp;gt; test.dtb&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;reference: https://forum.digilentinc.com/topic/2427-how-to-decompile-dtb-file/&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Device Tree, reference:&lt;/p&gt;&lt;p&gt;Device Tree（一）：背景介绍&amp;nbsp; http://www.wowotech.net/device_model/why-dt.html&lt;/p&gt;&lt;p&gt;Device Tree（二）：基本概念&amp;nbsp; http://www.wowotech.net/device_model/dt_basic_concept.html&lt;/p&gt;&lt;p&gt;Device Tree（三）：代码分析&amp;nbsp; http://www.wowotech.net/device_model/dt-code-analysis.html&lt;/p&gt;&lt;p&gt;Device Tree（四）：文件结构解析 http://www.wowotech.net/device_model/dt-code-file-struct-parse.html&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/6877762976851400093/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2023/06/how-to-decompile-dtb-file-device-tree.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/6877762976851400093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/6877762976851400093'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2023/06/how-to-decompile-dtb-file-device-tree.html' title='How to decompile dtb file (Device Tree)'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-5696143872255903659</id><published>2023-06-01T12:18:00.001+08:00</published><updated>2023-06-01T12:18:18.708+08:00</updated><title type='text'>HGU – Supported Service Scenarios</title><content type='html'>&lt;p&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;From&amp;nbsp;https://halny.com/knowledge-base/hgu-supported-service-scenarios/&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #6a6a6a; font-family: &amp;quot;Source Sans Pro&amp;quot;; font-size: 14px;&quot;&gt;HGU mode allows to flow multiple traffic classes across VEIP.&lt;/span&gt;&lt;br style=&quot;background-color: white; box-sizing: border-box; color: #6a6a6a; font-family: &amp;quot;Source Sans Pro&amp;quot;; font-size: 14px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #6a6a6a; font-family: &amp;quot;Source Sans Pro&amp;quot;; font-size: 14px;&quot;&gt;All UNI interfaces are belonged to one VEIP and it cannot be controlled by OMCI.&lt;/span&gt;&lt;br style=&quot;background-color: white; box-sizing: border-box; color: #6a6a6a; font-family: &amp;quot;Source Sans Pro&amp;quot;; font-size: 14px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #6a6a6a; font-family: &amp;quot;Source Sans Pro&amp;quot;; font-size: 14px;&quot;&gt;This non-OMCI part can be controlled by Web and Auto provisioning.&lt;/span&gt;&lt;br style=&quot;background-color: white; box-sizing: border-box; color: #6a6a6a; font-family: &amp;quot;Source Sans Pro&amp;quot;; font-size: 14px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #6a6a6a; font-family: &amp;quot;Source Sans Pro&amp;quot;; font-size: 14px;&quot;&gt;Most OLT vendors support dual stack:&lt;/span&gt;&lt;br style=&quot;background-color: white; box-sizing: border-box; color: #6a6a6a; font-family: &amp;quot;Source Sans Pro&amp;quot;; font-size: 14px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #6a6a6a; font-family: &amp;quot;Source Sans Pro&amp;quot;; font-size: 14px;&quot;&gt;– IP-HOST #1 -&amp;gt; MGMT (WEB, XML provisioning) – configure by OMCI (from OLT)&lt;/span&gt;&lt;br style=&quot;background-color: white; box-sizing: border-box; color: #6a6a6a; font-family: &amp;quot;Source Sans Pro&amp;quot;; font-size: 14px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #6a6a6a; font-family: &amp;quot;Source Sans Pro&amp;quot;; font-size: 14px;&quot;&gt;– VEIP (non-OMCI : INTERNET, VoIP, IPTV services) – configure by ONT WEB or provisioning&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h4 class=&quot;has-text-align-center wp-block-heading&quot; data-id=&quot;articleTOC_0&quot; style=&quot;background-color: white; box-sizing: border-box; color: #383838; font-family: Poppins; font-size: 16px; line-height: 22px; margin-bottom: 0px; margin-top: 0px; text-align: center;&quot;&gt;1.Bridge mode – only INTERNET:1-4/WIFI + MGMT&lt;/h4&gt;&lt;figure class=&quot;wp-block-image size-large&quot; style=&quot;background-color: white; box-sizing: border-box; color: #6a6a6a; font-family: &amp;quot;Source Sans Pro&amp;quot;; font-size: 14px; height: auto; margin: 2em 0px; max-width: 100%;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-7066&quot; decoding=&quot;async&quot; height=&quot;420&quot; sizes=&quot;(max-width: 954px) 100vw, 954px&quot; src=&quot;https://halny.com/wp-content/uploads/2020/05/Obraz12.png&quot; srcset=&quot;https://halny.com/wp-content/uploads/2020/05/Obraz12.png 954w, https://halny.com/wp-content/uploads/2020/05/Obraz12-300x132.png 300w, https://halny.com/wp-content/uploads/2020/05/Obraz12-768x338.png 768w&quot; style=&quot;border: 0px; box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom;&quot; width=&quot;954&quot; /&gt;&lt;/figure&gt;&lt;figure class=&quot;wp-block-image size-large&quot; style=&quot;background-color: white; box-sizing: border-box; color: #6a6a6a; font-family: &amp;quot;Source Sans Pro&amp;quot;; font-size: 14px; height: auto; margin: 2em 0px; max-width: 100%;&quot;&gt;&lt;h4 class=&quot;has-text-align-center wp-block-heading&quot; data-id=&quot;articleTOC_1&quot; style=&quot;box-sizing: border-box; color: #383838; font-family: Poppins; font-size: 16px; line-height: 22px; margin-bottom: 0px; margin-top: 0px; text-align: center;&quot;&gt;2.Bridge mode – INTERNET:1-4/WIFI, VoIP Interface + MGMT&lt;/h4&gt;&lt;figure class=&quot;wp-block-image size-large&quot; style=&quot;box-sizing: border-box; height: auto; margin: 2em 0px; max-width: 100%;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-7067&quot; decoding=&quot;async&quot; height=&quot;537&quot; loading=&quot;lazy&quot; sizes=&quot;(max-width: 920px) 100vw, 920px&quot; src=&quot;https://halny.com/wp-content/uploads/2020/05/Obraz13.png&quot; srcset=&quot;https://halny.com/wp-content/uploads/2020/05/Obraz13.png 920w, https://halny.com/wp-content/uploads/2020/05/Obraz13-300x175.png 300w, https://halny.com/wp-content/uploads/2020/05/Obraz13-768x448.png 768w&quot; style=&quot;border: 0px; box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom;&quot; width=&quot;920&quot; /&gt;&lt;/figure&gt;&lt;h4 class=&quot;has-text-align-center wp-block-heading&quot; data-id=&quot;articleTOC_2&quot; style=&quot;box-sizing: border-box; color: #383838; font-family: Poppins; font-size: 16px; line-height: 22px; margin-bottom: 0px; margin-top: 0px; text-align: center;&quot;&gt;3.Bridge mode – INTERNET:1-2/WIFI, IPTV:3-4, VoIP Interface + MGMT&lt;/h4&gt;&lt;figure class=&quot;wp-block-image size-large&quot; style=&quot;box-sizing: border-box; height: auto; margin: 2em 0px; max-width: 100%;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-7068&quot; decoding=&quot;async&quot; height=&quot;462&quot; loading=&quot;lazy&quot; sizes=&quot;(max-width: 790px) 100vw, 790px&quot; src=&quot;https://halny.com/wp-content/uploads/2020/05/Obraz14.png&quot; srcset=&quot;https://halny.com/wp-content/uploads/2020/05/Obraz14.png 790w, https://halny.com/wp-content/uploads/2020/05/Obraz14-300x175.png 300w, https://halny.com/wp-content/uploads/2020/05/Obraz14-768x449.png 768w&quot; style=&quot;border: 0px; box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom;&quot; width=&quot;790&quot; /&gt;&lt;/figure&gt;&lt;h4 class=&quot;has-text-align-center wp-block-heading&quot; data-id=&quot;articleTOC_3&quot; style=&quot;box-sizing: border-box; color: #383838; font-family: Poppins; font-size: 16px; line-height: 22px; margin-bottom: 0px; margin-top: 0px; text-align: center;&quot;&gt;4.Router mode – only INTERNET:1-4/WIFI + MGMT&lt;/h4&gt;&lt;figure class=&quot;wp-block-image size-large&quot; style=&quot;box-sizing: border-box; height: auto; margin: 2em 0px; max-width: 100%;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-7069&quot; decoding=&quot;async&quot; height=&quot;451&quot; loading=&quot;lazy&quot; sizes=&quot;(max-width: 1024px) 100vw, 1024px&quot; src=&quot;https://halny.com/wp-content/uploads/2020/05/Obraz15-1024x451.png&quot; srcset=&quot;https://halny.com/wp-content/uploads/2020/05/Obraz15-1024x451.png 1024w, https://halny.com/wp-content/uploads/2020/05/Obraz15-300x132.png 300w, https://halny.com/wp-content/uploads/2020/05/Obraz15-768x338.png 768w, https://halny.com/wp-content/uploads/2020/05/Obraz15.png 1122w&quot; style=&quot;border: 0px; box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom;&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;&lt;h4 class=&quot;has-text-align-center wp-block-heading&quot; data-id=&quot;articleTOC_4&quot; style=&quot;box-sizing: border-box; color: #383838; font-family: Poppins; font-size: 16px; line-height: 22px; margin-bottom: 0px; margin-top: 0px; text-align: center;&quot;&gt;5.Router mode – INTERNET:1-4/WIFI, VoIP Interface + MGMT&lt;/h4&gt;&lt;figure class=&quot;wp-block-image size-large&quot; style=&quot;box-sizing: border-box; height: auto; margin: 2em 0px; max-width: 100%;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-7070&quot; decoding=&quot;async&quot; height=&quot;522&quot; loading=&quot;lazy&quot; sizes=&quot;(max-width: 892px) 100vw, 892px&quot; src=&quot;https://halny.com/wp-content/uploads/2020/05/Obraz16.png&quot; srcset=&quot;https://halny.com/wp-content/uploads/2020/05/Obraz16.png 892w, https://halny.com/wp-content/uploads/2020/05/Obraz16-300x176.png 300w, https://halny.com/wp-content/uploads/2020/05/Obraz16-768x449.png 768w&quot; style=&quot;border: 0px; box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom;&quot; width=&quot;892&quot; /&gt;&lt;/figure&gt;&lt;h4 class=&quot;has-text-align-center wp-block-heading&quot; data-id=&quot;articleTOC_5&quot; style=&quot;box-sizing: border-box; color: #383838; font-family: Poppins; font-size: 16px; line-height: 22px; margin-bottom: 0px; margin-top: 0px; text-align: center;&quot;&gt;6.Router mode – INTERNET:1-2/WIFI, IPTV:3-4, VoIP + MGMT&lt;/h4&gt;&lt;figure class=&quot;wp-block-image size-large&quot; style=&quot;box-sizing: border-box; height: auto; margin: 2em 0px; max-width: 100%;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-7071&quot; decoding=&quot;async&quot; height=&quot;482&quot; loading=&quot;lazy&quot; sizes=&quot;(max-width: 822px) 100vw, 822px&quot; src=&quot;https://halny.com/wp-content/uploads/2020/05/Obraz17.png&quot; srcset=&quot;https://halny.com/wp-content/uploads/2020/05/Obraz17.png 822w, https://halny.com/wp-content/uploads/2020/05/Obraz17-300x176.png 300w, https://halny.com/wp-content/uploads/2020/05/Obraz17-768x450.png 768w&quot; style=&quot;border: 0px; box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom;&quot; width=&quot;822&quot; /&gt;&lt;/figure&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/5696143872255903659/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2023/06/hgu-supported-service-scenarios.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/5696143872255903659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/5696143872255903659'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2023/06/hgu-supported-service-scenarios.html' title='HGU – Supported Service Scenarios'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-4910133326812078345</id><published>2023-06-01T12:15:00.003+08:00</published><updated>2023-06-01T12:18:54.269+08:00</updated><title type='text'>SFU – Supported Service Scenarios</title><content type='html'>&lt;p&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;From:&amp;nbsp;https://halny.com/knowledge-base/sfu-supported-service-scenarios/&lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;eckb-article-content-body&quot; style=&quot;box-sizing: border-box; color: #6a6a6a; font-family: &amp;quot;Source Sans Pro&amp;quot;; font-size: 14px; width: 749.594px;&quot;&gt;&lt;div class=&quot;codeless-content&quot; data-codeless=&quot;true&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;h4 class=&quot;has-text-align-center wp-block-heading&quot; data-id=&quot;articleTOC_0&quot; style=&quot;box-sizing: border-box; color: #383838; font-family: Poppins; font-size: 16px; letter-spacing: 0px; line-height: 22px; margin-bottom: 0px; margin-top: 0px; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/h4&gt;&lt;h4 class=&quot;has-text-align-center wp-block-heading&quot; data-id=&quot;articleTOC_0&quot; style=&quot;box-sizing: border-box; color: #383838; font-family: Poppins; font-size: 16px; letter-spacing: 0px; line-height: 22px; margin-bottom: 0px; margin-top: 0px; text-align: center;&quot;&gt;1.Access mode – only Internet&lt;/h4&gt;&lt;div class=&quot;wp-block-image&quot; style=&quot;box-sizing: border-box; margin: 0px 0px 1em;&quot;&gt;&lt;figure class=&quot;aligncenter size-large&quot; style=&quot;box-sizing: border-box; clear: both; display: table; float: none; margin: 0em auto;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-7230&quot; decoding=&quot;async&quot; height=&quot;126&quot; sizes=&quot;(max-width: 602px) 100vw, 602px&quot; src=&quot;https://halny.com/wp-content/uploads/2020/05/image-6.png&quot; srcset=&quot;https://halny.com/wp-content/uploads/2020/05/image-6.png 602w, https://halny.com/wp-content/uploads/2020/05/image-6-300x63.png 300w&quot; style=&quot;border: 0px; box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom;&quot; width=&quot;602&quot; /&gt;&lt;/figure&gt;&lt;/div&gt;&lt;h4 class=&quot;has-text-align-center wp-block-heading&quot; data-id=&quot;articleTOC_1&quot; style=&quot;box-sizing: border-box; color: #383838; font-family: Poppins; font-size: 16px; letter-spacing: 0px; line-height: 22px; margin-bottom: 0px; margin-top: 0px; text-align: center;&quot;&gt;2.Access mode – only IPTV&lt;/h4&gt;&lt;div class=&quot;wp-block-image&quot; style=&quot;box-sizing: border-box; margin: 0px 0px 1em;&quot;&gt;&lt;figure class=&quot;aligncenter size-large&quot; style=&quot;box-sizing: border-box; clear: both; display: table; float: none; margin: 0em auto;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-7231&quot; decoding=&quot;async&quot; height=&quot;126&quot; loading=&quot;lazy&quot; sizes=&quot;(max-width: 731px) 100vw, 731px&quot; src=&quot;https://halny.com/wp-content/uploads/2020/05/image-7.png&quot; srcset=&quot;https://halny.com/wp-content/uploads/2020/05/image-7.png 731w, https://halny.com/wp-content/uploads/2020/05/image-7-300x52.png 300w&quot; style=&quot;border: 0px; box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom;&quot; width=&quot;731&quot; /&gt;&lt;/figure&gt;&lt;/div&gt;&lt;h4 class=&quot;has-text-align-center wp-block-heading&quot; data-id=&quot;articleTOC_2&quot; style=&quot;box-sizing: border-box; color: #383838; font-family: Poppins; font-size: 16px; letter-spacing: 0px; line-height: 22px; margin-bottom: 0px; margin-top: 0px; text-align: center;&quot;&gt;3.Transparent mode – Internet, IPTV, VoIP&lt;/h4&gt;&lt;div class=&quot;wp-block-image&quot; style=&quot;box-sizing: border-box; margin: 0px 0px 1em;&quot;&gt;&lt;figure class=&quot;aligncenter size-large&quot; style=&quot;box-sizing: border-box; clear: both; display: table; float: none; margin: 0em auto;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-7234&quot; decoding=&quot;async&quot; height=&quot;440&quot; loading=&quot;lazy&quot; sizes=&quot;(max-width: 961px) 100vw, 961px&quot; src=&quot;https://halny.com/wp-content/uploads/2020/05/image-8.png&quot; srcset=&quot;https://halny.com/wp-content/uploads/2020/05/image-8.png 961w, https://halny.com/wp-content/uploads/2020/05/image-8-300x137.png 300w, https://halny.com/wp-content/uploads/2020/05/image-8-768x352.png 768w&quot; style=&quot;border: 0px; box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom;&quot; width=&quot;961&quot; /&gt;&lt;/figure&gt;&lt;/div&gt;&lt;h4 class=&quot;has-text-align-center wp-block-heading&quot; data-id=&quot;articleTOC_3&quot; style=&quot;box-sizing: border-box; color: #383838; font-family: Poppins; font-size: 16px; letter-spacing: 0px; line-height: 22px; margin-bottom: 0px; margin-top: 0px; text-align: center;&quot;&gt;4.VLAN translation – rBSA&lt;/h4&gt;&lt;div class=&quot;wp-block-image&quot; style=&quot;box-sizing: border-box; margin: 0px 0px 1em;&quot;&gt;&lt;figure class=&quot;aligncenter size-large&quot; style=&quot;box-sizing: border-box; clear: both; display: table; float: none; margin: 0em auto;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-7242&quot; decoding=&quot;async&quot; height=&quot;440&quot; loading=&quot;lazy&quot; sizes=&quot;(max-width: 961px) 100vw, 961px&quot; src=&quot;https://halny.com/wp-content/uploads/2020/05/image-9.png&quot; srcset=&quot;https://halny.com/wp-content/uploads/2020/05/image-9.png 961w, https://halny.com/wp-content/uploads/2020/05/image-9-300x137.png 300w, https://halny.com/wp-content/uploads/2020/05/image-9-768x352.png 768w&quot; style=&quot;border: 0px; box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom;&quot; width=&quot;961&quot; /&gt;&lt;/figure&gt;&lt;/div&gt;&lt;h4 class=&quot;has-text-align-center wp-block-heading&quot; data-id=&quot;articleTOC_4&quot; style=&quot;box-sizing: border-box; color: #383838; font-family: Poppins; font-size: 16px; letter-spacing: 0px; line-height: 22px; margin-bottom: 0px; margin-top: 0px; text-align: center;&quot;&gt;5.802.1q in 802.1q Begin/End of Tunnel&lt;/h4&gt;&lt;div class=&quot;wp-block-image&quot; style=&quot;box-sizing: border-box; margin: 0px 0px 1em;&quot;&gt;&lt;figure class=&quot;aligncenter size-large&quot; style=&quot;box-sizing: border-box; clear: both; display: table; float: none; margin: 0em auto;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-7289&quot; decoding=&quot;async&quot; height=&quot;440&quot; loading=&quot;lazy&quot; sizes=&quot;(max-width: 961px) 100vw, 961px&quot; src=&quot;https://halny.com/wp-content/uploads/2020/05/Service-scenario-QinQ-tunnel-beginend.jpg&quot; srcset=&quot;https://halny.com/wp-content/uploads/2020/05/Service-scenario-QinQ-tunnel-beginend.jpg 961w, https://halny.com/wp-content/uploads/2020/05/Service-scenario-QinQ-tunnel-beginend-300x137.jpg 300w, https://halny.com/wp-content/uploads/2020/05/Service-scenario-QinQ-tunnel-beginend-768x352.jpg 768w&quot; style=&quot;border: 0px; box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom;&quot; width=&quot;961&quot; /&gt;&lt;/figure&gt;&lt;/div&gt;&lt;h4 class=&quot;has-text-align-center wp-block-heading&quot; data-id=&quot;articleTOC_5&quot; style=&quot;box-sizing: border-box; color: #383838; font-family: Poppins; font-size: 16px; letter-spacing: 0px; line-height: 22px; margin-bottom: 0px; margin-top: 0px; text-align: center;&quot;&gt;6.Transparent 802.1q in 802.1q&lt;/h4&gt;&lt;figure class=&quot;wp-block-image size-large&quot; style=&quot;box-sizing: border-box; height: auto; margin: 2em 0px; max-width: 100%;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-7290&quot; decoding=&quot;async&quot; height=&quot;440&quot; loading=&quot;lazy&quot; sizes=&quot;(max-width: 961px) 100vw, 961px&quot; src=&quot;https://halny.com/wp-content/uploads/2020/05/Service-scenario-Transparent-QinQ.jpg&quot; srcset=&quot;https://halny.com/wp-content/uploads/2020/05/Service-scenario-Transparent-QinQ.jpg 961w, https://halny.com/wp-content/uploads/2020/05/Service-scenario-Transparent-QinQ-300x137.jpg 300w, https://halny.com/wp-content/uploads/2020/05/Service-scenario-Transparent-QinQ-768x352.jpg 768w&quot; style=&quot;border: 0px; box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom;&quot; width=&quot;961&quot; /&gt;&lt;/figure&gt;&lt;h4 class=&quot;has-text-align-center wp-block-heading&quot; data-id=&quot;articleTOC_6&quot; style=&quot;box-sizing: border-box; color: #383838; font-family: Poppins; font-size: 16px; letter-spacing: 0px; line-height: 22px; margin-bottom: 0px; margin-top: 0px; text-align: center;&quot;&gt;7.OSE/MdO&lt;/h4&gt;&lt;figure class=&quot;wp-block-image size-large&quot; style=&quot;box-sizing: border-box; height: auto; margin: 2em 0px; max-width: 100%;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-7291&quot; decoding=&quot;async&quot; height=&quot;437&quot; loading=&quot;lazy&quot; sizes=&quot;(max-width: 981px) 100vw, 981px&quot; src=&quot;https://halny.com/wp-content/uploads/2020/05/Service-scenario-OSE-MdO.jpg&quot; srcset=&quot;https://halny.com/wp-content/uploads/2020/05/Service-scenario-OSE-MdO.jpg 981w, https://halny.com/wp-content/uploads/2020/05/Service-scenario-OSE-MdO-300x134.jpg 300w, https://halny.com/wp-content/uploads/2020/05/Service-scenario-OSE-MdO-768x342.jpg 768w&quot; style=&quot;border: 0px; box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom;&quot; width=&quot;981&quot; /&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/4910133326812078345/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2023/06/sfu-supported-service-scenarios.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/4910133326812078345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/4910133326812078345'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2023/06/sfu-supported-service-scenarios.html' title='SFU – Supported Service Scenarios'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-1902345600420497105</id><published>2023-06-01T12:09:00.005+08:00</published><updated>2023-06-01T12:09:48.918+08:00</updated><title type='text'>OMCI協議二層功能的模型選擇</title><content type='html'>&lt;p&gt;&lt;span style=&quot;background-color: white; box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;From:https://blog.csdn.net/JIANGXIN04211/article/details/48294645&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333; font-family: -apple-system, SF UI Text, Arial, PingFang SC, Hiragino Sans GB, Microsoft YaHei, WenQuanYi Micro Hei, sans-serif, SimHei, SimSun;&quot;&gt;我們知道有兩種大的二層功能，即MAC橋以及802.1p映射。&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;MAC橋是IEEE 802.1D描述的，有許多的特性，可以基於MAC地址透明轉發（True bridging）或VLAN characteristics（利用VLAN filter）。&lt;/span&gt;&lt;span style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;而映射功能描述了一個用戶側實體到1到8個網絡側流標記的關係。&lt;/span&gt;&lt;span style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;那種映射與只利用VLAN標記中pbit字段作為VLAN filters的MAC橋是相等的。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 24px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 24px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;那兩種基本二層服務能組合實現各種連接要求。&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;有三種大的基本模式：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 24px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;N:1 bridging多個用戶端口在同一個橋中，而只有一個網絡服務&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 24px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;1:M mapping基於pbit來將一個用戶端口映射成多個網絡側服務&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 24px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 700; outline: 0px; overflow-wrap: break-word;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: red; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 0px;&quot;&gt;1:P filtering&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&amp;nbsp;&amp;nbsp;基於非pbit的VLAN信息來將單一的用戶端口映射成多個網絡側服務&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 24px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;除了以上三個基本可能外，也有四種複雜的組合。&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;即：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 24px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;N:M bridging mapping顧名思義，N個用戶端口在一個橋中先橋轉發然後&lt;/span&gt;&lt;a name=&quot;OLE_LINK2&quot; style=&quot;box-sizing: border-box; color: #336699; cursor: pointer; margin: 0px; outline: none; overflow-wrap: break-word; padding: 0px;&quot; target=&quot;_blank&quot;&gt;&lt;/a&gt;&lt;a name=&quot;OLE_LINK1&quot; style=&quot;box-sizing: border-box; color: #336699; cursor: pointer; margin: 0px; outline: none; overflow-wrap: break-word; padding: 0px;&quot; target=&quot;_blank&quot;&gt;再進行基於&lt;/a&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;pbit的映射。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 24px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;1:MP map-filtering 一個用戶端口做filtering以及mapping&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 24px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;N:P bridging-filtering N個用戶端口在一個橋中先橋轉發然後再進行基於非pbit的VLAN信息的映射&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 24px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;N:MP bridging-map-filtering顯而易見。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 24px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;系統性地，tag filtering發生在接近MAC橋而不是tagging操作的部位。&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;如下順序：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 24px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 700; outline: 0px; overflow-wrap: break-word;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: red; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 0px;&quot;&gt;ANI—Tag operation—Tag filtering—Bridging—Tag filtering—Tag operation—UNI&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 24px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;許多公司實現了非802.1p模型而採用最簡單的bridging模型，而最簡單一種是每個用戶端在一個Bridge中。&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;1:P模型被採用。&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;如果是多端口的CPE設備（一般由Interworking模塊，如Broadlight chip與交換Switch模塊，如Broadcom switch組成），那塊switch chip每個用戶口有個port VLAN（每個端口不一樣），為了區隔彼此。&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;對於Untag流需要映射pbit的話可以採用管理對象(ID:171 Extended VLAN Tagging operation configuration data)屬性來達到要求。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 24px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 24px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;參考：G.984.4 Section 8.2.2&lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/1902345600420497105/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2023/06/omci.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/1902345600420497105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/1902345600420497105'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2023/06/omci.html' title='OMCI協議二層功能的模型選擇'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-7505324698717531200</id><published>2023-04-10T23:34:00.004+08:00</published><updated>2023-04-10T23:35:42.805+08:00</updated><title type='text'>secure boot（三）secure boot的签名和验签方案</title><content type='html'>&lt;p&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;From:&lt;a href=&quot;https://cloud.tencent.com/developer/article/2182626?from=article.detail.2182624&amp;amp;areaSource=106000.1&amp;amp;traceId=6TuiWB62dtuJGznPqWlJ1&quot; target=&quot;_blank&quot;&gt;https://cloud.tencent.com/developer/article/2182626?from=article.detail.2182624&amp;amp;areaSource=106000.1&amp;amp;traceId=6TuiWB62dtuJGznPqWlJ1&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 id=&quot;%E7%AE%80%E4%BB%8B&quot; name=&quot;%E7%AE%80%E4%BB%8B&quot; style=&quot;background-color: white; box-sizing: border-box; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 16px; line-height: 26px; list-style: inherit; margin: 16px 0px 8px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;简介&lt;/strong&gt; &lt;/h2&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;FIT 格式支持存储镜像的hash值，并且在加载镜像时会校验hash值。这可以保护镜像免受破坏，但是，它并不能保护镜像不被替换。&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;而如果对hash值使用私钥签名，在加载镜像时使用公钥验签则可以保护镜像不被替换。因此，公钥必须保存在一个绝对安全的地方。&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;接下来的内容要求大家了解一些密码学的内容，之前也介绍过一些，可以看这篇文章&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;a href=&quot;https://mp.weixin.qq.com/s?__biz=Mzg5ODUxNDMxMA==&amp;amp;mid=2247491414&amp;amp;idx=1&amp;amp;sn=bc37745718e2f6e271505209de24e515&amp;amp;chksm=c06033bff717baa9370c8ef2c2c517065e6816f0f14a0406cd51a711c1c56632108c1815871e&amp;amp;token=1171270122&amp;amp;lang=zh_CN&amp;amp;scene=21#wechat_redirect&quot; rel=&quot;nofollow noopener noreferrer&quot; style=&quot;box-sizing: border-box; color: #00a4ff; list-style: inherit; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;secure boot (一)FIT Image&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;a href=&quot;https://mp.weixin.qq.com/s?__biz=Mzg5ODUxNDMxMA==&amp;amp;mid=2247491435&amp;amp;idx=1&amp;amp;sn=7661390f96472a714e92c81d51295b8b&amp;amp;chksm=c0603382f717ba94549f55d92e9153ff2f312d78b7891527738e99dace65c0290e7bb6895054&amp;amp;token=1171270122&amp;amp;lang=zh_CN&amp;amp;scene=21#wechat_redirect&quot; rel=&quot;nofollow noopener noreferrer&quot; style=&quot;box-sizing: border-box; color: #00a4ff; list-style: inherit; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;secure boot (二)基本概念和框架&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;secure boot签名的大致流程：&lt;/p&gt;&lt;ul class=&quot;ul-level-0&quot; style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: none; margin: 0px 0px 16px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;计算镜像的hash值&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;利用私钥对hash值签名&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;签名结果存在FIT Image 中。&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;secure boot验签的大致流程：&lt;/p&gt;&lt;ul class=&quot;ul-level-0&quot; style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: none; margin: 0px 0px 16px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;读取FIT Image&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;获得pubkey&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;从FIT Image 提取签名&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;计算镜像的hash&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;使用公钥验签获得hash值，与计算得到的hash值进行对比&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;签名是由mkimage工具完成的，验签由uboot完成。&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgLPEhXRm2XujYdDkXcG0YWP0SePpe0Z-lSk5b_xBH80btjGh9cd2cGGF-ina2_4ZpenYiqBV38Ae2y8VFk0NvSnUIgobG5wAav5NO81NgobrQMxWRO8whQej8FgGsjGUuurSbTBJK9H7qEygB0Lug076ywRgNCIKNmoADuLKSI4diDZGUGKxUUt3vJ&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;128&quot; data-original-width=&quot;1080&quot; height=&quot;70&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgLPEhXRm2XujYdDkXcG0YWP0SePpe0Z-lSk5b_xBH80btjGh9cd2cGGF-ina2_4ZpenYiqBV38Ae2y8VFk0NvSnUIgobG5wAav5NO81NgobrQMxWRO8whQej8FgGsjGUuurSbTBJK9H7qEygB0Lug076ywRgNCIKNmoADuLKSI4diDZGUGKxUUt3vJ=w589-h70&quot; width=&quot;589&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;figure style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 16px 0px; white-space: pre-wrap;&quot;&gt;&lt;div class=&quot;image-block&quot; style=&quot;box-sizing: border-box; list-style: inherit; margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; list-style: inherit; margin: 0px; padding: 0px; position: relative; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/figure&gt;&lt;h2 id=&quot;%E7%AD%BE%E5%90%8D%E7%AE%97%E6%B3%95&quot; name=&quot;%E7%AD%BE%E5%90%8D%E7%AE%97%E6%B3%95&quot; style=&quot;background-color: white; box-sizing: border-box; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 16px; line-height: 26px; list-style: inherit; margin: 16px 0px 8px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;签名算法&lt;/strong&gt; &lt;/h2&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;原则上讲，任何合适的算法都可以用来签名和验签。在uboot中，目前只支持一类算法：SHA&amp;amp;RSA。&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;RSA 算法使用提前准备好的公钥就可以完成验签，验签相关的代码量也很少。在验签时，RSA只是在FDT中提取必要的数据进行校验。&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;当然也可以在uboot中添加合适的算法，如果有其他签名算法（如DSA），可以直接替换&lt;code style=&quot;background-color: #f3f5f9; border-radius: 0px; box-sizing: border-box; color: #0abf5b; display: inline-block; font-family: Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, &amp;quot;Microsoft Yahei&amp;quot;, monospace; line-height: 20px; list-style: inherit; margin-left: 10px; margin-right: 10px; overflow-wrap: break-word; padding: 0px 12px; word-break: normal;&quot;&gt;rsa.c&lt;/code&gt;，并在&lt;code style=&quot;background-color: #f3f5f9; border-radius: 0px; box-sizing: border-box; color: #0abf5b; display: inline-block; font-family: Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, &amp;quot;Microsoft Yahei&amp;quot;, monospace; line-height: 20px; list-style: inherit; margin-left: 10px; margin-right: 10px; overflow-wrap: break-word; padding: 0px 12px; word-break: normal;&quot;&gt;image-sig.c&lt;/code&gt;中添加对应算法即可。&lt;/p&gt;&lt;h3 id=&quot;%E5%88%9B%E5%BB%BARSA-key%E5%92%8C%E8%AF%81%E4%B9%A6&quot; name=&quot;%E5%88%9B%E5%BB%BARSA-key%E5%92%8C%E8%AF%81%E4%B9%A6&quot; style=&quot;background-color: white; box-sizing: border-box; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; line-height: 24px; list-style: inherit; margin: 16px 0px 8px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;创建RSA key和证书&lt;/strong&gt;&lt;/h3&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;openssl 创建一副2048的密钥对：&lt;/p&gt;&lt;div class=&quot;developer-code-block&quot; style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px; padding: 0px; position: relative; white-space: pre-wrap;&quot;&gt;&lt;pre class=&quot;prism-token token line-numbers language-javascript&quot; style=&quot;background: rgb(80, 85, 107); border-radius: 3px; box-sizing: border-box; color: #cccccc; counter-reset: linenumber 0; font-family: Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, monospace; hyphens: none; line-height: 1.5; list-style: inherit; margin-bottom: 0.5em; margin-top: 0.5em; overflow-wrap: normal; overflow: auto; padding: 1em 1em 1em 3.8em; position: relative; tab-size: 4; word-break: normal; word-spacing: normal;&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-javascript&quot; style=&quot;background: transparent; border-radius: 0px; box-sizing: border-box; color: inherit; display: block; font-family: Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, monospace; hyphens: none; line-height: 1.5; list-style: inherit; margin-left: 0px; margin-right: 10px; overflow-wrap: break-word; padding: 0px; position: relative; tab-size: 4; vertical-align: baseline; white-space: inherit; word-break: normal; word-spacing: normal;&quot;&gt;$ openssl genpkey &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;algorithm &lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;RSA&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;out keys&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;.&lt;/span&gt;key  &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;pkeyopt rsa_keygen_bits&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;2048&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;pkeyopt rsa_keygen_pubexp&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;65537&lt;/span&gt;
&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;border-right: 1px solid rgb(153, 153, 153); box-sizing: border-box; left: -3.8em; letter-spacing: -1px; list-style: inherit; pointer-events: none; position: absolute; top: 0px; user-select: none; width: 3em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;button class=&quot;copy&quot; style=&quot;background-color: #697191; border-color: initial; border-radius: 0.5em; border-style: none; border-width: initial; color: white; cursor: pointer; font-family: &amp;quot;Pingfang SC&amp;quot;, &amp;quot;STHeiti Light&amp;quot;, &amp;quot;helvetica neue&amp;quot;, &amp;quot;hiragino sans gb&amp;quot;, arial, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 0.8em; list-style: inherit; margin: 0px; opacity: 0; padding: 0px 0.5em; position: absolute; right: 0.2em; top: 0.3em; transition: opacity 0.3s ease-in-out 0s; z-index: 10;&quot;&gt;复制&lt;/button&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;创建包含pubkey的证书：&lt;/p&gt;&lt;div class=&quot;developer-code-block&quot; style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px; padding: 0px; position: relative; white-space: pre-wrap;&quot;&gt;&lt;pre class=&quot;prism-token token line-numbers language-javascript&quot; style=&quot;background: rgb(80, 85, 107); border-radius: 3px; box-sizing: border-box; color: #cccccc; counter-reset: linenumber 0; font-family: Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, monospace; hyphens: none; line-height: 1.5; list-style: inherit; margin-bottom: 0.5em; margin-top: 0.5em; overflow-wrap: normal; overflow: auto; padding: 1em 1em 1em 3.8em; position: relative; tab-size: 4; word-break: normal; word-spacing: normal;&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-javascript&quot; style=&quot;background: transparent; border-radius: 0px; box-sizing: border-box; color: inherit; display: block; font-family: Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, monospace; hyphens: none; line-height: 1.5; list-style: inherit; margin-left: 0px; margin-right: 10px; overflow-wrap: break-word; padding: 0px; position: relative; tab-size: 4; vertical-align: baseline; white-space: inherit; word-break: normal; word-spacing: normal;&quot;&gt;$ openssl req &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;batch &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;box-sizing: border-box; color: #cc99cd; list-style: inherit;&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;x509 &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;key keys&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;.&lt;/span&gt;key &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;out keys&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;.&lt;/span&gt;crt
&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;border-right: 1px solid rgb(153, 153, 153); box-sizing: border-box; left: -3.8em; letter-spacing: -1px; list-style: inherit; pointer-events: none; position: absolute; top: 0px; user-select: none; width: 3em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;button class=&quot;copy&quot; style=&quot;background-color: #697191; border-color: initial; border-radius: 0.5em; border-style: none; border-width: initial; color: white; cursor: pointer; font-family: &amp;quot;Pingfang SC&amp;quot;, &amp;quot;STHeiti Light&amp;quot;, &amp;quot;helvetica neue&amp;quot;, &amp;quot;hiragino sans gb&amp;quot;, arial, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 0.8em; list-style: inherit; margin: 0px; opacity: 0; padding: 0px 0.5em; position: absolute; right: 0.2em; top: 0.3em; transition: opacity 0.3s ease-in-out 0s; z-index: 10;&quot;&gt;复制&lt;/button&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;查看pubkey的值：&lt;/p&gt;&lt;div class=&quot;developer-code-block&quot; style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px; padding: 0px; position: relative; white-space: pre-wrap;&quot;&gt;&lt;pre class=&quot;prism-token token line-numbers language-javascript&quot; style=&quot;background: rgb(80, 85, 107); border-radius: 3px; box-sizing: border-box; color: #cccccc; counter-reset: linenumber 0; font-family: Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, monospace; hyphens: none; line-height: 1.5; list-style: inherit; margin-bottom: 0.5em; margin-top: 0.5em; overflow-wrap: normal; overflow: auto; padding: 1em 1em 1em 3.8em; position: relative; tab-size: 4; word-break: normal; word-spacing: normal;&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-javascript&quot; style=&quot;background: transparent; border-radius: 0px; box-sizing: border-box; color: inherit; display: block; font-family: Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, monospace; hyphens: none; line-height: 1.5; list-style: inherit; margin-left: 0px; margin-right: 10px; overflow-wrap: break-word; padding: 0px; position: relative; tab-size: 4; vertical-align: baseline; white-space: inherit; word-break: normal; word-spacing: normal;&quot;&gt;$ openssl rsa &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;box-sizing: border-box; color: #cc99cd; list-style: inherit;&quot;&gt;in&lt;/span&gt; keys&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;.&lt;/span&gt;key &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;pubout
&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;border-right: 1px solid rgb(153, 153, 153); box-sizing: border-box; left: -3.8em; letter-spacing: -1px; list-style: inherit; pointer-events: none; position: absolute; top: 0px; user-select: none; width: 3em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;button class=&quot;copy&quot; style=&quot;background-color: #697191; border-color: initial; border-radius: 0.5em; border-style: none; border-width: initial; color: white; cursor: pointer; font-family: &amp;quot;Pingfang SC&amp;quot;, &amp;quot;STHeiti Light&amp;quot;, &amp;quot;helvetica neue&amp;quot;, &amp;quot;hiragino sans gb&amp;quot;, arial, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 0.8em; list-style: inherit; margin: 0px; opacity: 0; padding: 0px 0.5em; position: absolute; right: 0.2em; top: 0.3em; transition: opacity 0.3s ease-in-out 0s; z-index: 10;&quot;&gt;复制&lt;/button&gt;&lt;/div&gt;&lt;h3 id=&quot;%E7%BB%91%E5%AE%9A%E8%AE%BE%E5%A4%87%E6%A0%91&quot; name=&quot;%E7%BB%91%E5%AE%9A%E8%AE%BE%E5%A4%87%E6%A0%91&quot; style=&quot;background-color: white; box-sizing: border-box; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; line-height: 24px; list-style: inherit; margin: 16px 0px 8px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;绑定设备树&lt;/strong&gt;&lt;/h3&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;在FIT Image的签名节点中需要添加以下 属性，签名节点与哈希节点处于同一级别，被称为&lt;code style=&quot;background-color: #f3f5f9; border-radius: 0px; box-sizing: border-box; color: #0abf5b; display: inline-block; font-family: Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, &amp;quot;Microsoft Yahei&amp;quot;, monospace; line-height: 20px; list-style: inherit; margin-left: 10px; margin-right: 10px; overflow-wrap: break-word; padding: 0px 12px; word-break: normal;&quot;&gt;signature@1, signature@2&lt;/code&gt;等。&lt;/p&gt;&lt;ul class=&quot;ul-level-0&quot; style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: none; margin: 0px 0px 16px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;algo: 算法名称&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;key-name-hint:用来签名的key。密钥对必须存放在单独的文件夹（mkimage 使用-k 参数指定），私钥被命名为 &lt;code style=&quot;background-color: #f3f5f9; border-radius: 0px; box-sizing: border-box; color: #0abf5b; display: inline-block; font-family: Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, &amp;quot;Microsoft Yahei&amp;quot;, monospace; line-height: 20px; list-style: inherit; margin-left: 10px; margin-right: 10px; overflow-wrap: break-word; padding: 0px 12px; word-break: normal;&quot;&gt;&amp;lt;name&amp;gt;.key&lt;/code&gt;，证书命名为&lt;code style=&quot;background-color: #f3f5f9; border-radius: 0px; box-sizing: border-box; color: #0abf5b; display: inline-block; font-family: Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, &amp;quot;Microsoft Yahei&amp;quot;, monospace; line-height: 20px; list-style: inherit; margin-left: 10px; margin-right: 10px; overflow-wrap: break-word; padding: 0px 12px; word-break: normal;&quot;&gt;&amp;lt;name&amp;gt;.crt&lt;/code&gt;。&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;镜像被签名后，以下这些属性都会被自动强制添加：&lt;/p&gt;&lt;ul class=&quot;ul-level-0&quot; style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: none; margin: 0px 0px 16px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;value: 签名后的值(RSA-2048 占256 bytes)&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;以下这些属性是可选的：&lt;/p&gt;&lt;ul class=&quot;ul-level-0&quot; style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: none; margin: 0px 0px 16px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;timestamp:签名的时间&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;signer-name:签名者的名字（例如mkimage）&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;signer-version:签名的版本（例如&quot;2013.01&quot;）&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;comment:签名者或者镜像的额外信息&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;sign-images:签名镜像的列表&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;hashed-nodes:签名者签名的节点列表，一般是包含节点完整路径的字符串。例如：&lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;developer-code-block&quot; style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px; padding: 0px; position: relative; white-space: pre-wrap;&quot;&gt;&lt;pre class=&quot;prism-token token line-numbers language-javascript&quot; style=&quot;background: rgb(80, 85, 107); border-radius: 3px; box-sizing: border-box; color: #cccccc; counter-reset: linenumber 0; font-family: Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, monospace; hyphens: none; line-height: 1.5; list-style: inherit; margin-bottom: 0.5em; margin-top: 0.5em; overflow-wrap: normal; overflow: auto; padding: 1em 1em 1em 3.8em; position: relative; tab-size: 4; word-break: normal; word-spacing: normal;&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-javascript&quot; style=&quot;background: transparent; border-radius: 0px; box-sizing: border-box; color: inherit; display: block; font-family: Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, monospace; hyphens: none; line-height: 1.5; list-style: inherit; margin-left: 0px; margin-right: 10px; overflow-wrap: break-word; padding: 0px; position: relative; tab-size: 4; vertical-align: baseline; white-space: inherit; word-break: normal; word-spacing: normal;&quot;&gt;hashed&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;nodes &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;/&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;/configurations/conf@1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;/images/kernel@1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;/images/kernel@1/hash@1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;/images/fdt@1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;/images/fdt@1/hash@1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;border-right: 1px solid rgb(153, 153, 153); box-sizing: border-box; left: -3.8em; letter-spacing: -1px; list-style: inherit; pointer-events: none; position: absolute; top: 0px; user-select: none; width: 3em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;button class=&quot;copy&quot; style=&quot;background-color: #697191; border-color: initial; border-radius: 0.5em; border-style: none; border-width: initial; color: white; cursor: pointer; font-family: &amp;quot;Pingfang SC&amp;quot;, &amp;quot;STHeiti Light&amp;quot;, &amp;quot;helvetica neue&amp;quot;, &amp;quot;hiragino sans gb&amp;quot;, arial, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 0.8em; list-style: inherit; margin: 0px; opacity: 0; padding: 0px 0.5em; position: absolute; right: 0.2em; top: 0.3em; transition: opacity 0.3s ease-in-out 0s; z-index: 10;&quot;&gt;复制&lt;/button&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;以下是一个待签名镜像的its配置。&lt;/p&gt;&lt;div class=&quot;developer-code-block&quot; style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px; padding: 0px; position: relative; white-space: pre-wrap;&quot;&gt;&lt;pre class=&quot;prism-token token line-numbers language-javascript&quot; style=&quot;background: rgb(80, 85, 107); border-radius: 3px; box-sizing: border-box; color: #cccccc; counter-reset: linenumber 0; font-family: Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, monospace; hyphens: none; line-height: 1.5; list-style: inherit; margin-bottom: 0.5em; margin-top: 0.5em; overflow-wrap: normal; overflow: auto; padding: 1em 1em 1em 3.8em; position: relative; tab-size: 4; word-break: normal; word-spacing: normal;&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-javascript&quot; style=&quot;background: transparent; border-radius: 0px; box-sizing: border-box; color: inherit; display: block; font-family: Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, monospace; hyphens: none; line-height: 1.5; list-style: inherit; margin-left: 0px; margin-right: 10px; overflow-wrap: break-word; padding: 0px; position: relative; tab-size: 4; vertical-align: baseline; white-space: inherit; word-break: normal; word-spacing: normal;&quot;&gt;&lt;span class=&quot;token regex&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;dts-v1&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;/&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
 description &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;Chrome OS kernel image with one or more FDT blobs&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
 #address&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;cells &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;

 images &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
  kernel@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
   data &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;incbin&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;test-kernel.bin&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   type &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;kernel_noload&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   arch &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;sandbox&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   os &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;linux&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   compression &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;none&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   load &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x4&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   entry &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x8&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   kernel&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;version &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   signature@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
    algo &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;sha1,rsa2048&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
    key&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;name&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;hint &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;dev&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  fdt@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
   description &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;snow&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   data &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;incbin&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;sandbox-kernel.dtb&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   type &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;flat_dt&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   arch &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;sandbox&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   compression &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;none&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   fdt&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;version &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   signature@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
    algo &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;sha1,rsa2048&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
    key&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;name&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;hint &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;dev&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
 &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
 configurations &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot; style=&quot;box-sizing: border-box; color: #cc99cd; list-style: inherit;&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;conf@1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  conf@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
   kernel &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;kernel@1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   fdt &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;fdt@1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
 &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;

&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;border-right: 1px solid rgb(153, 153, 153); box-sizing: border-box; left: -3.8em; letter-spacing: -1px; list-style: inherit; pointer-events: none; position: absolute; top: 0px; user-select: none; width: 3em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;button class=&quot;copy&quot; style=&quot;background-color: #697191; border-color: initial; border-radius: 0.5em; border-style: none; border-width: initial; color: white; cursor: pointer; font-family: &amp;quot;Pingfang SC&amp;quot;, &amp;quot;STHeiti Light&amp;quot;, &amp;quot;helvetica neue&amp;quot;, &amp;quot;hiragino sans gb&amp;quot;, arial, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 0.8em; list-style: inherit; margin: 0px; opacity: 0; padding: 0px 0.5em; position: absolute; right: 0.2em; top: 0.3em; transition: opacity 0.3s ease-in-out 0s; z-index: 10;&quot;&gt;复制&lt;/button&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;以下是配置项签名后的its文件。&lt;/p&gt;&lt;div class=&quot;developer-code-block&quot; style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px; padding: 0px; position: relative; white-space: pre-wrap;&quot;&gt;&lt;pre class=&quot;prism-token token line-numbers language-javascript&quot; style=&quot;background: rgb(80, 85, 107); border-radius: 3px; box-sizing: border-box; color: #cccccc; counter-reset: linenumber 0; font-family: Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, monospace; hyphens: none; line-height: 1.5; list-style: inherit; margin-bottom: 0.5em; margin-top: 0.5em; overflow-wrap: normal; overflow: auto; padding: 1em 1em 1em 3.8em; position: relative; tab-size: 4; word-break: normal; word-spacing: normal;&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-javascript&quot; style=&quot;background: transparent; border-radius: 0px; box-sizing: border-box; color: inherit; display: block; font-family: Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, monospace; hyphens: none; line-height: 1.5; list-style: inherit; margin-left: 0px; margin-right: 10px; overflow-wrap: break-word; padding: 0px; position: relative; tab-size: 4; vertical-align: baseline; white-space: inherit; word-break: normal; word-spacing: normal;&quot;&gt;&lt;span class=&quot;token regex&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;dts-v1&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;/&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
 description &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;Chrome OS kernel image with one or more FDT blobs&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
 #address&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;cells &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;

 images &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
  kernel@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
   data &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;incbin&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;test-kernel.bin&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   type &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;kernel_noload&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   arch &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;sandbox&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   os &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;linux&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   compression &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;lzo&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   load &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x4&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   entry &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x8&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   kernel&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;version &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   hash@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
    algo &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;sha1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  fdt@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
   description &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;snow&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   data &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;incbin&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;sandbox-kernel.dtb&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   type &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;flat_dt&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   arch &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;sandbox&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   compression &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;none&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   fdt&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;version &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   hash@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
    algo &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;sha1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
 &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
 configurations &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot; style=&quot;box-sizing: border-box; color: #cc99cd; list-style: inherit;&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;conf@1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  conf@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
   kernel &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;kernel@1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   fdt &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;fdt@1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   signature@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
    algo &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;sha1,rsa2048&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
    key&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;name&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;hint &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;dev&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
    sign&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;images &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;fdt&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;kernel&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
 &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;

&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;border-right: 1px solid rgb(153, 153, 153); box-sizing: border-box; left: -3.8em; letter-spacing: -1px; list-style: inherit; pointer-events: none; position: absolute; top: 0px; user-select: none; width: 3em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;button class=&quot;copy&quot; style=&quot;background-color: #697191; border-color: initial; border-radius: 0.5em; border-style: none; border-width: initial; color: white; cursor: pointer; font-family: &amp;quot;Pingfang SC&amp;quot;, &amp;quot;STHeiti Light&amp;quot;, &amp;quot;helvetica neue&amp;quot;, &amp;quot;hiragino sans gb&amp;quot;, arial, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 0.8em; list-style: inherit; margin: 0px; opacity: 0; padding: 0px 0.5em; position: absolute; right: 0.2em; top: 0.3em; transition: opacity 0.3s ease-in-out 0s; z-index: 10;&quot;&gt;复制&lt;/button&gt;&lt;/div&gt;&lt;h2 id=&quot;pubkey%E7%9A%84%E5%AD%98%E5%82%A8&quot; name=&quot;pubkey%E7%9A%84%E5%AD%98%E5%82%A8&quot; style=&quot;background-color: white; box-sizing: border-box; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 16px; line-height: 26px; list-style: inherit; margin: 16px 0px 8px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;pubkey的存储&lt;/strong&gt; &lt;/h2&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;为了校验签名后的镜像，必须把pubkey存放在可信赖的位置。将pubkey存在镜像中是不安全的，很容易被破解。一般我们将其存放在uboot的FDT中（CONFIG_OF_CONTROL）。&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;pubkey应该作为一个子节点存放在&lt;code style=&quot;background-color: #f3f5f9; border-radius: 0px; box-sizing: border-box; color: #0abf5b; display: inline-block; font-family: Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, &amp;quot;Microsoft Yahei&amp;quot;, monospace; line-height: 20px; list-style: inherit; margin-left: 10px; margin-right: 10px; overflow-wrap: break-word; padding: 0px 12px; word-break: normal;&quot;&gt;/signature&lt;/code&gt;节点中。节点中要加上以下特性：&lt;/p&gt;&lt;ul class=&quot;ul-level-0&quot; style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: none; margin: 0px 0px 16px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;algo:算法名称&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;key-name-hint: 签名使用的key的名称&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;required: 校验某配置所使用的公钥&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;除此之外，每个算法都有一些必要的特性。RSA算法中，以下特性必须被添加：&lt;/p&gt;&lt;ul class=&quot;ul-level-0&quot; style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: none; margin: 0px 0px 16px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;rsa,num-bits:key的位数&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;rsa,modulus:N，多字节的整数&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;rsa,exponent:E，64位的无符号整数&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;rsa,r-squared:&lt;code style=&quot;background-color: #f3f5f9; border-radius: 0px; box-sizing: border-box; color: #0abf5b; display: inline-block; font-family: Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, &amp;quot;Microsoft Yahei&amp;quot;, monospace; line-height: 20px; list-style: inherit; margin-left: 10px; margin-right: 10px; overflow-wrap: break-word; padding: 0px 12px; word-break: normal;&quot;&gt;(2^num-bits)^2&lt;/code&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; list-style: none; margin: 0px 0px 4px; padding: 0px 0px 0px 18px; position: relative;&quot;&gt;rsa,n0-inverse:&lt;code style=&quot;background-color: #f3f5f9; border-radius: 0px; box-sizing: border-box; color: #0abf5b; display: inline-block; font-family: Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, &amp;quot;Microsoft Yahei&amp;quot;, monospace; line-height: 20px; list-style: inherit; margin-left: 10px; margin-right: 10px; overflow-wrap: break-word; padding: 0px 12px; word-break: normal;&quot;&gt;-1 / modulus[0] mod 2^32&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;下面看一个例子，以下是一个uboot.dtb存放RSA的例子。RSA key被mkimage打包在u-boot.dtb和u-boot-spl.dtb中，然后它们再被打包进u-boot.bin和u-boot-spl.bin。&lt;/p&gt;&lt;div class=&quot;developer-code-block&quot; style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px; padding: 0px; position: relative; white-space: pre-wrap;&quot;&gt;&lt;pre class=&quot;prism-token token line-numbers language-javascript&quot; style=&quot;background: rgb(80, 85, 107); border-radius: 3px; box-sizing: border-box; color: #cccccc; counter-reset: linenumber 0; font-family: Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, monospace; hyphens: none; line-height: 1.5; list-style: inherit; margin-bottom: 0.5em; margin-top: 0.5em; overflow-wrap: normal; overflow: auto; padding: 1em 1em 1em 3.8em; position: relative; tab-size: 4; word-break: normal; word-spacing: normal;&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-javascript&quot; style=&quot;background: transparent; border-radius: 0px; box-sizing: border-box; color: inherit; display: block; font-family: Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, monospace; hyphens: none; line-height: 1.5; list-style: inherit; margin-left: 0px; margin-right: 10px; overflow-wrap: break-word; padding: 0px; position: relative; tab-size: 4; vertical-align: baseline; white-space: inherit; word-break: normal; word-spacing: normal;&quot;&gt;&lt;span class=&quot;token literal-property property&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;ubuntu&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;~&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;uboot&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;nextdev$ fdtdump u&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;boot&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;.&lt;/span&gt;dtb &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;|&lt;/span&gt; less
&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;dts&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;v1&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;.&lt;/span&gt;
&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
        #address&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;cells &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000001&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
        #size&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;cells &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000001&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
        compatible &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;rockchip,rv1126-evb&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;rockchip,rv1126&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
        model &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;Rockchip RV1126 Evaluation Board&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token comment&quot; style=&quot;box-sizing: border-box; color: #999999; list-style: inherit;&quot;&gt;// signature节点由mkimage工具自动插入生成，节点里保存了RSA-SHA算法类型、RSA核心因子参&lt;/span&gt;
   &lt;span class=&quot;token comment&quot; style=&quot;box-sizing: border-box; color: #999999; list-style: inherit;&quot;&gt;//数等信息。&lt;/span&gt;
        signature &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
         key&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;dev &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
    required &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;conf&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
          algo &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;sha256,rsa2048&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
          rsa&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;,&lt;/span&gt;np &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x1327f633&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000003&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000003&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000003&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0xc7aead6a&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0xb4c79f40&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0xa82bdf76&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0xfb2f8387&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0xa1e06dce&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0xd451a706&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0xc7f865e3&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x3e2d7ca8&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x6a71762e&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x125f1828&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x36ab1a41&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0xb7e9e852&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x7bd0011a&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x7279e0b8&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0xf37e189c&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x8cf00963&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000100&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000377&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000004&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000004&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000004&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000002&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000003&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x69616c40&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000003&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x6d634066&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000010&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x66633630&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x73797363&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
          rsa&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;,&lt;/span&gt;c &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
          rsa&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;,&lt;/span&gt;r&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;squared &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
          rsa&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;,&lt;/span&gt;modulus &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0xc25ae693&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0xc359f2a4&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0xa866c89d&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0xb7b1994f&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0xf9f9f690&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x518d54a7&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0xda0b83e8&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x06606e12&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x6ad1cbf9&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x92438edd&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x81e039c0&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x5d7322cc&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x124cdc80&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0xa0c3288a&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x9265c3ae&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x6ac47a4b&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000003&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000008&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000003&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000003&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000003&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000002&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x73657300&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x2f736572&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x2f64776d&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000003&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x6d634066&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000001&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x30303000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x726f636b&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x67726600&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000008&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000003&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000004&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000001&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x30303000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x726f636b&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x706d7567&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000003&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00001000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000003&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000002&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x6e616765&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x30000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x726f636b&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x706d7500&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000008&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
          rsa&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;,&lt;/span&gt;exponent&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;BN&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000003&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00010001&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0xe95771c5&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000800&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x64657600&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x616c6961&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x0000002c&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x30303030&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000034&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x30303000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x2f64776d&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000002&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x65303030&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x0000001b&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x3132362d&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000003&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00020000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000003&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000002&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x65303230&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x0000001b&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x3132362d&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x6e000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0xfe020000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000042&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x0000006d&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x722d6d61&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x65303030&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x0000001b&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x3132362d&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000003&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00001000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000002&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x6e74726f&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x30000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x726f636b&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x706d7563&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x0000003e&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000004&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000004&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000004&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000050&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x636c6f63&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x40666634&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000014&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x2c727631&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000008&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
          rsa&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;,&lt;/span&gt;exponent &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000000&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000368&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
          rsa&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;,&lt;/span&gt;n0&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;inverse &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0xe95771c5&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
          rsa&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;,&lt;/span&gt;num&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;bits &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;0x00000800&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
          key&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;name&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;hint &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;dev&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;border-right: 1px solid rgb(153, 153, 153); box-sizing: border-box; left: -3.8em; letter-spacing: -1px; list-style: inherit; pointer-events: none; position: absolute; top: 0px; user-select: none; width: 3em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;button class=&quot;copy&quot; style=&quot;background-color: #697191; border-color: initial; border-radius: 0.5em; border-style: none; border-width: initial; color: white; cursor: pointer; font-family: &amp;quot;Pingfang SC&amp;quot;, &amp;quot;STHeiti Light&amp;quot;, &amp;quot;helvetica neue&amp;quot;, &amp;quot;hiragino sans gb&amp;quot;, arial, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 0.8em; list-style: inherit; margin: 0px; opacity: 0; padding: 0px 0.5em; position: absolute; right: 0.2em; top: 0.3em; transition: opacity 0.3s ease-in-out 0s; z-index: 10;&quot;&gt;复制&lt;/button&gt;&lt;/div&gt;&lt;h2 id=&quot;%E7%AD%BE%E5%90%8D%E6%96%B9%E6%A1%88&quot; name=&quot;%E7%AD%BE%E5%90%8D%E6%96%B9%E6%A1%88&quot; style=&quot;background-color: white; box-sizing: border-box; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 16px; line-height: 26px; list-style: inherit; margin: 16px 0px 8px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;签名方案&lt;/strong&gt; &lt;/h2&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;上一节内容提到过，在secure boot中一般使用RSA签名方案。&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;要完成对镜像的签名，就必须使用私钥。而私钥一般是存在&lt;a data-from=&quot;20065&quot; data-text-link=&quot;375_2182626&quot; href=&quot;https://cloud.tencent.com/product/cvm?from=20065&amp;amp;from_column=20065&quot; style=&quot;box-sizing: border-box; color: #00a4ff; list-style: inherit; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;服务器&lt;/a&gt;上的，在本地PC上只存公钥。要想完成对镜像的签名，就必须把所有镜像上传到服务器重新打包。这种方案上传的文件太多，比较繁琐。下面我们介绍一种常用的签名方案。&lt;/p&gt;&lt;figure style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 16px 0px; white-space: pre-wrap;&quot;&gt;&lt;div class=&quot;image-block&quot; style=&quot;box-sizing: border-box; list-style: inherit; margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; list-style: inherit; margin: 0px; padding: 0px; position: relative; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhWCYLqV7M5Dve8aXtvu4isY5ZBfPb_P2jPkWbpfbYTWQajr-pH1OtWkNXGtyXU8rt3SUhQswWDeD0hX9ldpyyraWj7WsyXb_28kvUwPoVQ5CxBgy1VGrK8zb5rzH3bPOvHOdonXZUl8P8NvjqTagT_0JEPI1b5DKsJuhygtJ_930V6W-rv3fuxJ9_Z&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;481&quot; data-original-width=&quot;1080&quot; height=&quot;271&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhWCYLqV7M5Dve8aXtvu4isY5ZBfPb_P2jPkWbpfbYTWQajr-pH1OtWkNXGtyXU8rt3SUhQswWDeD0hX9ldpyyraWj7WsyXb_28kvUwPoVQ5CxBgy1VGrK8zb5rzH3bPOvHOdonXZUl8P8NvjqTagT_0JEPI1b5DKsJuhygtJ_930V6W-rv3fuxJ9_Z=w607-h271&quot; width=&quot;607&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/figure&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;在PC上，存放一把公钥和临时私钥，公钥是打包进dtb中的，安全启动时使用。临时私钥是为了生成签名数据。&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;在本地打包时，使用临时私钥对非安全镜像签名，将签名数据上传到服务器使用真正的私钥进行二次签名。将二次签名的数据和非安全镜像打包在一起，就得到了安全镜像。安全启动时，从dtb中拿出公钥对安全镜像进行校验即可。&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;这样既可以保证私钥的安全，又避免了上传所有镜像签名的繁琐。&lt;/p&gt;&lt;h2 id=&quot;%E7%AD%BE%E5%90%8D%E9%95%9C%E5%83%8F+%E7%AD%BE%E5%90%8D%E9%85%8D%E7%BD%AE&quot; name=&quot;%E7%AD%BE%E5%90%8D%E9%95%9C%E5%83%8F+%E7%AD%BE%E5%90%8D%E9%85%8D%E7%BD%AE&quot; style=&quot;background-color: white; box-sizing: border-box; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 16px; line-height: 26px; list-style: inherit; margin: 16px 0px 8px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;签名镜像+签名配置&lt;/strong&gt; &lt;/h2&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;在secure boot中，除了对各个独立镜像签名外，还要对FIT Image中的配置项进行签名。&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;有些情况下，已经签名的镜像也有可能遭到破坏。例如，也可以使用相同的签名镜像创建一个FIT image，但是，其配置已经被改变，从而可以选择不同的镜像去加载（混合式匹配攻击）。也有可能拿旧版本的FIT Image去替换新的FIT image（回滚式攻击）。&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;下面举个例子。&lt;/p&gt;&lt;div class=&quot;developer-code-block&quot; style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px; padding: 0px; position: relative; white-space: pre-wrap;&quot;&gt;&lt;pre class=&quot;prism-token token line-numbers language-javascript&quot; style=&quot;background: rgb(80, 85, 107); border-radius: 3px; box-sizing: border-box; color: #cccccc; counter-reset: linenumber 0; font-family: Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, monospace; hyphens: none; line-height: 1.5; list-style: inherit; margin-bottom: 0.5em; margin-top: 0.5em; overflow-wrap: normal; overflow: auto; padding: 1em 1em 1em 3.8em; position: relative; tab-size: 4; word-break: normal; word-spacing: normal;&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-javascript&quot; style=&quot;background: transparent; border-radius: 0px; box-sizing: border-box; color: inherit; display: block; font-family: Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, monospace; hyphens: none; line-height: 1.5; list-style: inherit; margin-left: 0px; margin-right: 10px; overflow-wrap: break-word; padding: 0px; position: relative; tab-size: 4; vertical-align: baseline; white-space: inherit; word-break: normal; word-spacing: normal;&quot;&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
 images &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
  kernel@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
   data &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;data &lt;span class=&quot;token keyword&quot; style=&quot;box-sizing: border-box; color: #cc99cd; list-style: inherit;&quot;&gt;for&lt;/span&gt; kernel1&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;
   signature@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
    algo &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;sha1,rsa2048&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
    # kernel image镜像的哈希值，由mkiamge工具自动生成
    value &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;...&lt;/span&gt;kernel signature &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;
   &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  kernel@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
   data &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;data &lt;span class=&quot;token keyword&quot; style=&quot;box-sizing: border-box; color: #cc99cd; list-style: inherit;&quot;&gt;for&lt;/span&gt; kernel2&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;
   signature@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
    algo &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;sha1,rsa2048&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
    value &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;...&lt;/span&gt;kernel signature &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;2.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;
   &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  fdt@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
   data &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;data &lt;span class=&quot;token keyword&quot; style=&quot;box-sizing: border-box; color: #cc99cd; list-style: inherit;&quot;&gt;for&lt;/span&gt; fdt1&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   signature@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
    algo &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;sha1,rsa2048&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
    vaue &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;...&lt;/span&gt;fdt signature &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;
   &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  fdt@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
   data &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;data &lt;span class=&quot;token keyword&quot; style=&quot;box-sizing: border-box; color: #cc99cd; list-style: inherit;&quot;&gt;for&lt;/span&gt; fdt2&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   signature@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
    algo &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;sha1,rsa2048&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
    vaue &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;...&lt;/span&gt;fdt signature &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;2.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;
   &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
 &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
 configurations &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot; style=&quot;box-sizing: border-box; color: #cc99cd; list-style: inherit;&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;conf@1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  conf@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
   kernel &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;kernel@1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   fdt &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;fdt@1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  conf@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
   kernel &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;kernel@2&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   fdt &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;fdt@2&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
 &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;border-right: 1px solid rgb(153, 153, 153); box-sizing: border-box; left: -3.8em; letter-spacing: -1px; list-style: inherit; pointer-events: none; position: absolute; top: 0px; user-select: none; width: 3em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;button class=&quot;copy&quot; style=&quot;background-color: #697191; border-color: initial; border-radius: 0.5em; border-style: none; border-width: initial; color: white; cursor: pointer; font-family: &amp;quot;Pingfang SC&amp;quot;, &amp;quot;STHeiti Light&amp;quot;, &amp;quot;helvetica neue&amp;quot;, &amp;quot;hiragino sans gb&amp;quot;, arial, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 0.8em; list-style: inherit; margin: 0px; opacity: 0; padding: 0px 0.5em; position: absolute; right: 0.2em; top: 0.3em; transition: opacity 0.3s ease-in-out 0s; z-index: 10;&quot;&gt;复制&lt;/button&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;两个kernel image 都已经被签名了，但是，攻击者可以很容易的将kernel1 和fdt2 作为configuration 3去加载。&lt;/p&gt;&lt;div class=&quot;developer-code-block&quot; style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px; padding: 0px; position: relative; white-space: pre-wrap;&quot;&gt;&lt;pre class=&quot;prism-token token line-numbers language-javascript&quot; style=&quot;background: rgb(80, 85, 107); border-radius: 3px; box-sizing: border-box; color: #cccccc; counter-reset: linenumber 0; font-family: Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, monospace; hyphens: none; line-height: 1.5; list-style: inherit; margin-bottom: 0.5em; margin-top: 0.5em; overflow-wrap: normal; overflow: auto; padding: 1em 1em 1em 3.8em; position: relative; tab-size: 4; word-break: normal; word-spacing: normal;&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-javascript&quot; style=&quot;background: transparent; border-radius: 0px; box-sizing: border-box; color: inherit; display: block; font-family: Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, monospace; hyphens: none; line-height: 1.5; list-style: inherit; margin-left: 0px; margin-right: 10px; overflow-wrap: break-word; padding: 0px; position: relative; tab-size: 4; vertical-align: baseline; white-space: inherit; word-break: normal; word-spacing: normal;&quot;&gt; configurations &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot; style=&quot;box-sizing: border-box; color: #cc99cd; list-style: inherit;&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;conf@1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  conf@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
   kernel &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;kernel@1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   fdt &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;fdt@1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  conf@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
   kernel &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;kernel@2&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   fdt &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;fdt@2&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  conf@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;3&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
   kernel &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;kernel@1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   fdt &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;fdt@2&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
 &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;border-right: 1px solid rgb(153, 153, 153); box-sizing: border-box; left: -3.8em; letter-spacing: -1px; list-style: inherit; pointer-events: none; position: absolute; top: 0px; user-select: none; width: 3em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;button class=&quot;copy&quot; style=&quot;background-color: #697191; border-color: initial; border-radius: 0.5em; border-style: none; border-width: initial; color: white; cursor: pointer; font-family: &amp;quot;Pingfang SC&amp;quot;, &amp;quot;STHeiti Light&amp;quot;, &amp;quot;helvetica neue&amp;quot;, &amp;quot;hiragino sans gb&amp;quot;, arial, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 0.8em; list-style: inherit; margin: 0px; opacity: 0; padding: 0px 0.5em; position: absolute; right: 0.2em; top: 0.3em; transition: opacity 0.3s ease-in-out 0s; z-index: 10;&quot;&gt;复制&lt;/button&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;攻击者可以拿到签名的镜像，并且镜像是正确的。这种组合式攻击会给设备带来很大风险。&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;因此，为了解决这个问题，除了给镜像签名外，我们可以把配置选项也签名，每个镜像都有自己的签名，在给配置选项签名时，把镜像的hash值也包含进去。具体例子如下：&lt;/p&gt;&lt;div class=&quot;developer-code-block&quot; style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px; padding: 0px; position: relative; white-space: pre-wrap;&quot;&gt;&lt;pre class=&quot;prism-token token line-numbers language-javascript&quot; style=&quot;background: rgb(80, 85, 107); border-radius: 3px; box-sizing: border-box; color: #cccccc; counter-reset: linenumber 0; font-family: Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, monospace; hyphens: none; line-height: 1.5; list-style: inherit; margin-bottom: 0.5em; margin-top: 0.5em; overflow-wrap: normal; overflow: auto; padding: 1em 1em 1em 3.8em; position: relative; tab-size: 4; word-break: normal; word-spacing: normal;&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-javascript&quot; style=&quot;background: transparent; border-radius: 0px; box-sizing: border-box; color: inherit; display: block; font-family: Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, monospace; hyphens: none; line-height: 1.5; list-style: inherit; margin-left: 0px; margin-right: 10px; overflow-wrap: break-word; padding: 0px; position: relative; tab-size: 4; vertical-align: baseline; white-space: inherit; word-break: normal; word-spacing: normal;&quot;&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
 images &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
  kernel@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
   data &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;data &lt;span class=&quot;token keyword&quot; style=&quot;box-sizing: border-box; color: #cc99cd; list-style: inherit;&quot;&gt;for&lt;/span&gt; kernel1&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;
   hash@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
    algo &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;sha1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
    value &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;...&lt;/span&gt;kernel hash &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;
   &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  kernel@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
   data &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;data &lt;span class=&quot;token keyword&quot; style=&quot;box-sizing: border-box; color: #cc99cd; list-style: inherit;&quot;&gt;for&lt;/span&gt; kernel2&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;
   hash@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
    algo &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;sha1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
    value &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;...&lt;/span&gt;kernel hash &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;2.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;
   &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  fdt@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
   data &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;data &lt;span class=&quot;token keyword&quot; style=&quot;box-sizing: border-box; color: #cc99cd; list-style: inherit;&quot;&gt;for&lt;/span&gt; fdt1&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   hash@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
    algo &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;sha1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
    value &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;...&lt;/span&gt;fdt hash &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;
   &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  fdt@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
   data &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;data &lt;span class=&quot;token keyword&quot; style=&quot;box-sizing: border-box; color: #cc99cd; list-style: inherit;&quot;&gt;for&lt;/span&gt; fdt2&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   hash@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
    algo &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;sha1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
    value &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;...&lt;/span&gt;fdt hash &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;2.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;
   &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
 &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
 configurations &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot; style=&quot;box-sizing: border-box; color: #cc99cd; list-style: inherit;&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;conf@1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  conf@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
   kernel &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;kernel@1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   fdt &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;fdt@1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   signature@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
    algo &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;sha1,rsa2048&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
    # 对配置项签名，由mkimage工具自动生成
    value &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;...&lt;/span&gt;conf &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; signature&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  conf@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
   kernel &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;kernel@2&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   fdt &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;fdt@2&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   signature@&lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;{&lt;/span&gt;
    algo &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;box-sizing: border-box; color: #7ec699; list-style: inherit;&quot;&gt;&quot;sha1,rsa2048&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
    value &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;...&lt;/span&gt;conf &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;1&lt;/span&gt; signature&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
   &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
 &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;;&lt;/span&gt;
&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;border-right: 1px solid rgb(153, 153, 153); box-sizing: border-box; left: -3.8em; letter-spacing: -1px; list-style: inherit; pointer-events: none; position: absolute; top: 0px; user-select: none; width: 3em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;button class=&quot;copy&quot; style=&quot;background-color: #697191; border-color: initial; border-radius: 0.5em; border-style: none; border-width: initial; color: white; cursor: pointer; font-family: &amp;quot;Pingfang SC&amp;quot;, &amp;quot;STHeiti Light&amp;quot;, &amp;quot;helvetica neue&amp;quot;, &amp;quot;hiragino sans gb&amp;quot;, arial, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 0.8em; list-style: inherit; margin: 0px; opacity: 0; padding: 0px 0.5em; position: absolute; right: 0.2em; top: 0.3em; transition: opacity 0.3s ease-in-out 0s; z-index: 10;&quot;&gt;复制&lt;/button&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;如上所示，除了给所有镜像添加了hash值，还为每个配置添加了签名。mkimage将会对&lt;code style=&quot;background-color: #f3f5f9; border-radius: 0px; box-sizing: border-box; color: #0abf5b; display: inline-block; font-family: Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, &amp;quot;Microsoft Yahei&amp;quot;, monospace; line-height: 20px; list-style: inherit; margin-left: 10px; margin-right: 10px; overflow-wrap: break-word; padding: 0px 12px; word-break: normal;&quot;&gt;configurations/conf@1&lt;/code&gt;签名&lt;code style=&quot;background-color: #f3f5f9; border-radius: 0px; box-sizing: border-box; color: #0abf5b; display: inline-block; font-family: Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, &amp;quot;Microsoft Yahei&amp;quot;, monospace; line-height: 20px; list-style: inherit; margin-left: 10px; margin-right: 10px; overflow-wrap: break-word; padding: 0px 12px; word-break: normal;&quot;&gt;(/images/kernel@1, /images/kernel@1/hash@1,/images/fdt@1, /images/fdt@1/hash@1)&lt;/code&gt; 。签名会被写入  &lt;code style=&quot;background-color: #f3f5f9; border-radius: 0px; box-sizing: border-box; color: #0abf5b; display: inline-block; font-family: Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, &amp;quot;Microsoft Yahei&amp;quot;, monospace; line-height: 20px; list-style: inherit; margin-left: 10px; margin-right: 10px; overflow-wrap: break-word; padding: 0px 12px; word-break: normal;&quot;&gt;/configurations/conf@1/signature@1/value&lt;/code&gt;。&lt;/p&gt;&lt;h2 id=&quot;%E9%AA%8C%E7%AD%BE&quot; name=&quot;%E9%AA%8C%E7%AD%BE&quot; style=&quot;background-color: white; box-sizing: border-box; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 16px; line-height: 26px; list-style: inherit; margin: 16px 0px 8px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;验签&lt;/strong&gt; &lt;/h2&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;FIT image 在加载时会验签。如果&#39;required&#39; 指定了验签的公钥，则会使用这把公钥校验该配置对应的所有镜像。&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;为了支持FIT格式，以下配置项必须被选上。&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;CONFIG_FIT_SIGNATURE ：使能FIT image的签名和验签&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;CONFIG_RSA ：使能RSA签名算法&lt;/p&gt;&lt;blockquote style=&quot;background-color: white; border-left: 4px solid rgb(221, 221, 221); box-sizing: border-box; color: #777777; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 24px; padding: 0px 15px; white-space: pre-wrap;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; list-style: inherit; margin: 0px; min-height: 24px; padding: 0px;&quot;&gt;默认情况下，使能FIT Image的签名和验签后，CONFIG_IMAGE_FORMAT_LEGACY会被禁用。即FIT uboot image的只能引导FIT kernel Image。
如果需要引导legacy kernel image，需要手动添加CONFIG_IMAGE_FORMAT_LEGACY 定义。&lt;/p&gt;&lt;/blockquote&gt;&lt;h2 id=&quot;%E6%B5%8B%E8%AF%95&quot; name=&quot;%E6%B5%8B%E8%AF%95&quot; style=&quot;background-color: white; box-sizing: border-box; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 16px; line-height: 26px; list-style: inherit; margin: 16px 0px 8px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;测试&lt;/strong&gt; &lt;/h2&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;为了校验签名和验签是否正确，可以使用测试脚本&lt;code style=&quot;background-color: #f3f5f9; border-radius: 0px; box-sizing: border-box; color: #0abf5b; display: inline-block; font-family: Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, &amp;quot;Microsoft Yahei&amp;quot;, monospace; line-height: 20px; list-style: inherit; margin-left: 10px; margin-right: 10px; overflow-wrap: break-word; padding: 0px 12px; word-break: normal;&quot;&gt;test/vboot/vboot_test.sh&lt;/code&gt;。下面以sandbox为例子来说明bootm的启动和对镜像的验签。&lt;/p&gt;&lt;div class=&quot;developer-code-block&quot; style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px; padding: 0px; position: relative; white-space: pre-wrap;&quot;&gt;&lt;pre class=&quot;prism-token token line-numbers language-javascript&quot; style=&quot;background: rgb(80, 85, 107); border-radius: 3px; box-sizing: border-box; color: #cccccc; counter-reset: linenumber 0; font-family: Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, monospace; hyphens: none; line-height: 1.5; list-style: inherit; margin-bottom: 0.5em; margin-top: 0.5em; overflow-wrap: normal; overflow: auto; padding: 1em 1em 1em 3.8em; position: relative; tab-size: 4; word-break: normal; word-spacing: normal;&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-javascript&quot; style=&quot;background: transparent; border-radius: 0px; box-sizing: border-box; color: inherit; display: block; font-family: Consolas, Monaco, &amp;quot;Andale Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, monospace; hyphens: none; line-height: 1.5; list-style: inherit; margin-left: 0px; margin-right: 10px; overflow-wrap: break-word; padding: 0px; position: relative; tab-size: 4; vertical-align: baseline; white-space: inherit; word-break: normal; word-spacing: normal;&quot;&gt;$ make &lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;O&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt;sandbox sandbox_config
$ make &lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;O&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt;sandbox
$ &lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;O&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;=&lt;/span&gt;sandbox &lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;test&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;vboot&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;vboot_test&lt;span class=&quot;token punctuation&quot; style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;.&lt;/span&gt;sh
&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;hs&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;ids&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;u&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;boot&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;sandbox&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;tools&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;/&lt;/span&gt;mkimage &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;D&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;I&lt;/span&gt; dts &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;O&lt;/span&gt; dtb &lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;-&lt;/span&gt;p &lt;span class=&quot;token number&quot; style=&quot;box-sizing: border-box; color: #f08d49; list-style: inherit;&quot;&gt;2000&lt;/span&gt;
Build keys
&lt;span class=&quot;token keyword&quot; style=&quot;box-sizing: border-box; color: #cc99cd; list-style: inherit;&quot;&gt;do&lt;/span&gt; sha1 test
Build &lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;FIT&lt;/span&gt; &lt;span class=&quot;token keyword&quot; style=&quot;box-sizing: border-box; color: #cc99cd; list-style: inherit;&quot;&gt;with&lt;/span&gt; signed images
Test Verified Boot Run&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt; unsigned signatures&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;OK&lt;/span&gt;
Sign images
Test Verified Boot Run&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt; signed images&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;OK&lt;/span&gt;
Build &lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;FIT&lt;/span&gt; &lt;span class=&quot;token keyword&quot; style=&quot;box-sizing: border-box; color: #cc99cd; list-style: inherit;&quot;&gt;with&lt;/span&gt; signed configuration
Test Verified Boot Run&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt; unsigned config&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;OK&lt;/span&gt;
Sign images
Test Verified Boot Run&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt; signed config&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;OK&lt;/span&gt;
check signed config on the host
Signature check &lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;OK&lt;/span&gt;
&lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;OK&lt;/span&gt;
Test Verified Boot Run&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt; signed config&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;OK&lt;/span&gt;
Test Verified Boot Run&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt; signed config &lt;span class=&quot;token keyword&quot; style=&quot;box-sizing: border-box; color: #cc99cd; list-style: inherit;&quot;&gt;with&lt;/span&gt; bad hash&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;OK&lt;/span&gt;
&lt;span class=&quot;token keyword&quot; style=&quot;box-sizing: border-box; color: #cc99cd; list-style: inherit;&quot;&gt;do&lt;/span&gt; sha256 test
Build &lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;FIT&lt;/span&gt; &lt;span class=&quot;token keyword&quot; style=&quot;box-sizing: border-box; color: #cc99cd; list-style: inherit;&quot;&gt;with&lt;/span&gt; signed images
Test Verified Boot Run&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt; unsigned signatures&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;OK&lt;/span&gt;
Sign images
Test Verified Boot Run&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt; signed images&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;OK&lt;/span&gt;
Build &lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;FIT&lt;/span&gt; &lt;span class=&quot;token keyword&quot; style=&quot;box-sizing: border-box; color: #cc99cd; list-style: inherit;&quot;&gt;with&lt;/span&gt; signed configuration
Test Verified Boot Run&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt; unsigned config&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;OK&lt;/span&gt;
Sign images
Test Verified Boot Run&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt; signed config&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;OK&lt;/span&gt;
check signed config on the host
Signature check &lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;OK&lt;/span&gt;
&lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;OK&lt;/span&gt;
Test Verified Boot Run&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt; signed config&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;OK&lt;/span&gt;
Test Verified Boot Run&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt; signed config &lt;span class=&quot;token keyword&quot; style=&quot;box-sizing: border-box; color: #cc99cd; list-style: inherit;&quot;&gt;with&lt;/span&gt; bad hash&lt;span class=&quot;token operator&quot; style=&quot;box-sizing: border-box; color: #67cdcc; list-style: inherit;&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token constant&quot; style=&quot;box-sizing: border-box; color: #f8c555; list-style: inherit;&quot;&gt;OK&lt;/span&gt;

Test passed
&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;border-right: 1px solid rgb(153, 153, 153); box-sizing: border-box; left: -3.8em; letter-spacing: -1px; list-style: inherit; pointer-events: none; position: absolute; top: 0px; user-select: none; width: 3em;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; counter-increment: linenumber 1; display: block; list-style: inherit;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;button class=&quot;copy&quot; style=&quot;background-color: #697191; border-color: initial; border-radius: 0.5em; border-style: none; border-width: initial; color: white; cursor: pointer; font-family: &amp;quot;Pingfang SC&amp;quot;, &amp;quot;STHeiti Light&amp;quot;, &amp;quot;helvetica neue&amp;quot;, &amp;quot;hiragino sans gb&amp;quot;, arial, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 0.8em; list-style: inherit; margin: 0px; opacity: 0; padding: 0px 0.5em; position: absolute; right: 0.2em; top: 0.3em; transition: opacity 0.3s ease-in-out 0s; z-index: 10;&quot;&gt;复制&lt;/button&gt;&lt;/div&gt;&lt;h2 id=&quot;%E5%AE%8C%E6%95%B4%E6%A0%A1%E9%AA%8C%E6%B5%81%E7%A8%8B&quot; name=&quot;%E5%AE%8C%E6%95%B4%E6%A0%A1%E9%AA%8C%E6%B5%81%E7%A8%8B&quot; style=&quot;background-color: white; box-sizing: border-box; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 16px; line-height: 26px; list-style: inherit; margin: 16px 0px 8px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;完整校验流程&lt;/strong&gt; &lt;/h2&gt;&lt;h3 id=&quot;OTP%E6%A0%A1%E9%AA%8Cloader&quot; name=&quot;OTP%E6%A0%A1%E9%AA%8Cloader&quot; style=&quot;background-color: white; box-sizing: border-box; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; line-height: 24px; list-style: inherit; margin: 12px 0px 8px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;OTP校验loader&lt;/strong&gt;&lt;/h3&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;那么，这种镜像校验方式有个很重要的问题，公钥存在哪里才是安全的呢？&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;一般SOC中会有一个叫OTP或EFUSE的区域，这部分区域比较特殊，只可以写入一次，写入后就再也不可以修改了。把公钥存储在OTP中，就可以很好地保证其不能被修改。&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;OTP的存储空间很小，一般只有几KB，因此并不适合直接存放RSA公钥。一般都是将RSA公钥的hash val 存放在OTP中。像sha256的hash值仅为256 bits，而RSA 公钥本身一般存放在镜像中。&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;在使用公钥之前，只需要使用OTP中的公钥hash值验证镜像附带公钥的完整性，即可确定公钥是否合法。&lt;/p&gt;&lt;figure style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 16px 0px; white-space: pre-wrap;&quot;&gt;&lt;div class=&quot;image-block&quot; style=&quot;box-sizing: border-box; list-style: inherit; margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; list-style: inherit; margin: 0px; padding: 0px; position: relative; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgWTO4s7RZWhGvF56vpRFXZEnNwEuhO_SEBLJzPFWQ8XhTIVqn6vBg1Yn85bhcJ6ypWo8rMRxvdPjvZSJbN0zkSo4l_1hRDCPfDNCBeUNkos37TBsXDH892kC-rT2HlUSCJ3QNdJkcST8H-o36AS7-5zbmLgpzxXj86dZO1y8menyeY_CA-ixq-N4Ld&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;345&quot; data-original-width=&quot;1080&quot; height=&quot;183&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgWTO4s7RZWhGvF56vpRFXZEnNwEuhO_SEBLJzPFWQ8XhTIVqn6vBg1Yn85bhcJ6ypWo8rMRxvdPjvZSJbN0zkSo4l_1hRDCPfDNCBeUNkos37TBsXDH892kC-rT2HlUSCJ3QNdJkcST8H-o36AS7-5zbmLgpzxXj86dZO1y8menyeY_CA-ixq-N4Ld=w575-h183&quot; width=&quot;575&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/figure&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;RSA公钥需要一般使用芯片厂家的工具写入loader。安全启动时，bootrom首先从loader固件头中获取RSA公钥并校验合法性；然后再使用该公钥校验SPL的固件签名。&lt;/p&gt;&lt;h3 id=&quot;spl%E6%A0%A1%E9%AA%8Cuboot&quot; name=&quot;spl%E6%A0%A1%E9%AA%8Cuboot&quot; style=&quot;background-color: white; box-sizing: border-box; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; line-height: 24px; list-style: inherit; margin: 16px 0px 8px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;spl校验uboot&lt;/strong&gt;&lt;/h3&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;SPL把RSA公钥保存在u-boot-spl.dtb中，u-boot-spl.dtb会被打包进u-boot-spl.bin文件（最后打包进loader）；安全启动时SPL从自己的dtb文件中拿出RSA公钥对uboot.img进行安全校验。&lt;/p&gt;&lt;h3 id=&quot;uboot%E6%A0%A1%E9%AA%8Ckernel&quot; name=&quot;uboot%E6%A0%A1%E9%AA%8Ckernel&quot; style=&quot;background-color: white; box-sizing: border-box; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; line-height: 24px; list-style: inherit; margin: 16px 0px 8px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;uboot校验kernel&lt;/strong&gt;&lt;/h3&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;U-Boot把RSA公钥保存在u-boot.dtb中，u-boot.dtb会被打包进u-boot.bin文件（最后打包为uboot.img）；安全启动时U-Boot从自己的dtb文件中拿RSA公钥对boot.img进行校验。&lt;/p&gt;&lt;h2 id=&quot;%E6%80%BB%E7%BB%93&quot; name=&quot;%E6%80%BB%E7%BB%93&quot; style=&quot;background-color: white; box-sizing: border-box; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 16px; line-height: 26px; list-style: inherit; margin: 16px 0px 8px; padding: 0px; white-space: pre-wrap;&quot;&gt;&lt;strong style=&quot;box-sizing: border-box; list-style: inherit;&quot;&gt;总结&lt;/strong&gt; &lt;/h2&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; font-size: 14px; list-style: inherit; margin: 0px 0px 8px; min-height: 24px; padding: 0px; white-space: pre-wrap;&quot;&gt;从bootrom到kernel为止的安全启动，统一使用一把RSA公钥完成安全校验,并且当前这级的RSA Key已经作为自身固件的一部分，由前一级loader完成了安全校验，从而保证了Key的安全。&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/7505324698717531200/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2023/04/secure-bootsecure-boot.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/7505324698717531200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/7505324698717531200'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2023/04/secure-bootsecure-boot.html' title='secure boot（三）secure boot的签名和验签方案'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEgLPEhXRm2XujYdDkXcG0YWP0SePpe0Z-lSk5b_xBH80btjGh9cd2cGGF-ina2_4ZpenYiqBV38Ae2y8VFk0NvSnUIgobG5wAav5NO81NgobrQMxWRO8whQej8FgGsjGUuurSbTBJK9H7qEygB0Lug076ywRgNCIKNmoADuLKSI4diDZGUGKxUUt3vJ=s72-w589-h70-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-2919039074646551086</id><published>2023-02-21T18:20:00.000+08:00</published><updated>2023-02-21T18:20:23.045+08:00</updated><title type='text'></title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;A&amp;nbsp;&lt;a href=&quot;https://developers.redhat.com/topics/linux&quot; style=&quot;box-sizing: border-box; cursor: pointer; font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;);&quot;&gt;Linux&lt;/a&gt;&amp;nbsp;bridge is a kernel module that behaves like a network switch, forwarding packets between interfaces that are connected to it. It&#39;s usually used for forwarding packets on routers, on gateways, or between VMs and network namespaces on a host.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;The Linux bridge has included basic support for the&amp;nbsp;&lt;a href=&quot;https://www.inap.com/blog/spanning-tree-protocol-explained/&quot; style=&quot;box-sizing: border-box; cursor: pointer; font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;);&quot;&gt;Spanning Tree Protocol&lt;/a&gt;&amp;nbsp;(STP), multicast, and&amp;nbsp;&lt;a href=&quot;https://www.netfilter.org/&quot; style=&quot;box-sizing: border-box; cursor: pointer; font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;);&quot;&gt;Netfilter&lt;/a&gt;&amp;nbsp;since the 2.4 and 2.6 kernel series. Features that have been added in more recent releases include:&lt;/p&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; list-style: var(--pf-c-content--ul--ListStyle); margin-bottom: var(--pf-c-content--MarginBottom); margin-left: var(--pf-c-content--ul--MarginLeft); margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: var(--pf-c-content--ul--PaddingLeft); padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 0px;&quot;&gt;Configuration via&amp;nbsp;&lt;a href=&quot;https://man7.org/linux/man-pages/man7/netlink.7.html&quot; style=&quot;box-sizing: border-box; cursor: pointer; font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;);&quot;&gt;Netlink&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: var(--pf-c-content--li--MarginTop); padding: 0px;&quot;&gt;VLAN filter&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: var(--pf-c-content--li--MarginTop); padding: 0px;&quot;&gt;VxLAN tunnel mapping&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: var(--pf-c-content--li--MarginTop); padding: 0px;&quot;&gt;Internet Group Management Protocol version 3&amp;nbsp;(IGMPv3) and Multicast Listener Discovery version 2&amp;nbsp;(MLDv2)&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: var(--pf-c-content--li--MarginTop); padding: 0px;&quot;&gt;Switchdev&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;In this article, you&#39;ll get an introduction to these features and some useful commands to enable and control them. You&#39;ll also briefly examine&amp;nbsp;&lt;a href=&quot;https://www.openvswitch.org/&quot; style=&quot;box-sizing: border-box; cursor: pointer; font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;);&quot;&gt;Open vSwitch&lt;/a&gt;&amp;nbsp;as an alternative to Linux bridging.&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;rhd-c-has-toc-target&quot; id=&quot;basic_bridge_commands&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; display: block; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-top: -2.1rem; pointer-events: none; position: absolute; visibility: hidden;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 id=&quot;basic_bridge_commands-h2&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatDisplay, Overpass, Helvetica, Arial, sans-serif; font-size: 28px; font-weight: var(--rhd-global--FontWeight-Display--medium); line-height: 37px; margin-bottom: var(--rhd-theme--container-spacer-md); margin-left: 0px; margin-right: 0px; margin-top: var(--pf-c-content--h2--MarginTop); padding: 0px;&quot;&gt;Basic bridge commands&lt;/h2&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;All the commands used in this article are part of the&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;iproute2&lt;/code&gt;&amp;nbsp;module, which invokes Netlink messages to configure the bridge. There are two&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;iproute2&lt;/code&gt;&amp;nbsp;commands for setting and configuring bridges:&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;ip link&lt;/code&gt;&amp;nbsp;and&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;bridge&lt;/code&gt;.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;ip link&lt;/code&gt;&amp;nbsp;can add and remove bridges and set their options.&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;bridge&lt;/code&gt;&amp;nbsp;displays and manipulates bridges on final distribution boards (FDBs), main distribution boards (MDBs), and virtual local area networks (VLANs).&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;The listings that follow demonstrate some basic uses for the two commands. Both require administrator privileges, and therefore the listings are shown with the&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;#&lt;/code&gt;&amp;nbsp;root prompt instead of a regular user prompt.&lt;/p&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; list-style: var(--pf-c-content--ul--ListStyle); margin-bottom: var(--pf-c-content--MarginBottom); margin-left: var(--pf-c-content--ul--MarginLeft); margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: var(--pf-c-content--ul--PaddingLeft); padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 0px;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;Show help information about the&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;bridge&lt;/code&gt;&amp;nbsp;object:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; font-family: monospace, serif; font-size: 1em; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# ip link help bridge&lt;/span&gt;

&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# bridge -h&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; display: flex; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1028px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-0&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1026px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: var(--pf-c-content--li--MarginTop); padding: 0px;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;Create a bridge named&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;br0&lt;/code&gt;:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; font-family: monospace, serif; font-size: 1em; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# ip link add br0 type bridge&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; display: flex; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1028px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-1&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1026px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: var(--pf-c-content--li--MarginTop); padding: 0px;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;Show bridge details:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; font-family: monospace, serif; font-size: 1em; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# ip -d link show br0&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; display: flex; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1028px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-2&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1026px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: var(--pf-c-content--li--MarginTop); padding: 0px;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;Show bridge details in a pretty JSON format (which is a good way to get bridge key-value pairs):&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; font-family: monospace, serif; font-size: 1em; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# ip -j -p -d link show br0&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; display: flex; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1028px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-3&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1026px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: var(--pf-c-content--li--MarginTop); padding: 0px;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;Add interfaces to a bridge:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; font-family: monospace, serif; font-size: 1em; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# ip link set veth0 master br0&lt;/span&gt;

&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# ip link set tap0 master br0&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; display: flex; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1028px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-4&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1026px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span class=&quot;rhd-c-has-toc-target&quot; id=&quot;spanning_tree_protocol&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; display: block; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-top: -2.1rem; pointer-events: none; position: absolute; visibility: hidden;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 id=&quot;spanning_tree_protocol-h2&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatDisplay, Overpass, Helvetica, Arial, sans-serif; font-size: 28px; font-weight: var(--rhd-global--FontWeight-Display--medium); line-height: 37px; margin-bottom: var(--rhd-theme--container-spacer-md); margin-left: 0px; margin-right: 0px; margin-top: var(--pf-c-content--h2--MarginTop); padding: 0px;&quot;&gt;Spanning Tree Protocol&lt;/h2&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;The purpose of STP is to prevent a networking loop, which can lead to a traffic storm in the network. Figure 1 shows such a loop.&lt;/p&gt;&lt;figure role=&quot;group&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--pf-global--spacer--md); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;&lt;div class=&quot;rhd-c-figure&quot; style=&quot;box-sizing: border-box; color: var(--pf-c-card--Color); text-align: center;&quot;&gt;&lt;article class=&quot;media media--type-image media--view-mode-article-content-full-width&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;div class=&quot;field field--name-image field--type-image field--label-hidden field__items&quot; style=&quot;box-sizing: border-box; margin-right: var(--pf-global--spacer--sm);&quot;&gt;&lt;a data-featherlight=&quot;image&quot; href=&quot;https://developers.redhat.com/sites/default/files/br_1.png&quot; style=&quot;box-sizing: border-box; cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;);&quot;&gt;&lt;img alt=&quot;Without STP, a network can be configured in a loop.&quot; height=&quot;229&quot; loading=&quot;lazy&quot; src=&quot;https://developers.redhat.com/sites/default/files/styles/article_full_width_1440px_w/public/br_1.png?itok=J-oXObCl&quot; style=&quot;box-sizing: border-box; height: auto; max-width: 100%;&quot; typeof=&quot;foaf:Image&quot; width=&quot;473&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;field field--name-field-caption field--type-string field--label-hidden field__items&quot; style=&quot;box-sizing: border-box; margin-right: var(--pf-global--spacer--sm);&quot;&gt;&lt;div class=&quot;rhd-c-caption field__item&quot; style=&quot;box-sizing: border-box; margin-bottom: var(--pf-global--spacer--md);&quot;&gt;Figure 1: Without STP, a network can be configured in a loop.&lt;/div&gt;&lt;/div&gt;&lt;/article&gt;&lt;/div&gt;&lt;figcaption class=&quot;rhd-c-caption&quot; style=&quot;box-sizing: border-box; margin-bottom: var(--pf-global--spacer--md); text-align: center;&quot;&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;With STP enabled, the bridges will send each other Bridge Protocol Data Units (BPDUs) so they can elect a root bridge and block an interface, making the network topology loop-free (Figure 2).&lt;/p&gt;&lt;figure role=&quot;group&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--pf-global--spacer--md); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;&lt;div class=&quot;rhd-c-figure&quot; style=&quot;box-sizing: border-box; color: var(--pf-c-card--Color); text-align: center;&quot;&gt;&lt;article class=&quot;media media--type-image media--view-mode-article-content-full-width&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;div class=&quot;field field--name-image field--type-image field--label-hidden field__items&quot; style=&quot;box-sizing: border-box; margin-right: var(--pf-global--spacer--sm);&quot;&gt;&lt;a data-featherlight=&quot;image&quot; href=&quot;https://developers.redhat.com/sites/default/files/br_2.png&quot; style=&quot;box-sizing: border-box; cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;);&quot;&gt;&lt;img alt=&quot;STP can choose a link and block it.&quot; height=&quot;229&quot; loading=&quot;lazy&quot; src=&quot;https://developers.redhat.com/sites/default/files/styles/article_full_width_1440px_w/public/br_2.png?itok=ZJbkJjVE&quot; style=&quot;box-sizing: border-box; height: auto; max-width: 100%;&quot; typeof=&quot;foaf:Image&quot; width=&quot;471&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;field field--name-field-caption field--type-string field--label-hidden field__items&quot; style=&quot;box-sizing: border-box; margin-right: var(--pf-global--spacer--sm);&quot;&gt;&lt;div class=&quot;rhd-c-caption field__item&quot; style=&quot;box-sizing: border-box; margin-bottom: var(--pf-global--spacer--md);&quot;&gt;Figure 2: STP can choose a link and block it.&lt;/div&gt;&lt;/div&gt;&lt;/article&gt;&lt;/div&gt;&lt;figcaption class=&quot;rhd-c-caption&quot; style=&quot;box-sizing: border-box; margin-bottom: var(--pf-global--spacer--md); text-align: center;&quot;&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;Linux bridging has supported STP since the 2.4 and 2.6 kernel series. To enable STP on a bridge, enter:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #151515; font-family: monospace, serif; font-size: 16px; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# ip link set br0 type bridge stp_state 1&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; color: #151515; display: flex; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1076px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-5&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1074px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;p class=&quot;Indent1&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 2rem !important; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;box-sizing: border-box;&quot;&gt;Note:&lt;/strong&gt;&amp;nbsp;The Linux bridge does not support the Rapid Spanning Tree Protocol (RSTP).&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;Now you can show the STP blocking state on the bridge:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #151515; font-family: monospace, serif; font-size: 16px; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# ip -j -p -d link show br0 | grep root_port&lt;/span&gt;

                &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;&quot;root_port&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt;,

&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# ip -j -p -d link show br1 | grep root_port&lt;/span&gt;

                &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;&quot;root_port&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt;,

&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# bridge link show&lt;/span&gt;

&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;7&lt;/span&gt;: veth0@veth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1500&lt;/span&gt; master br0 state forwarding priority &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;32&lt;/span&gt; cost &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;2&lt;/span&gt;

&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;8&lt;/span&gt;: veth1@veth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1500&lt;/span&gt; master br1 state forwarding priority &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;32&lt;/span&gt; cost &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;2&lt;/span&gt;

&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;9&lt;/span&gt;: veth2@veth3: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1500&lt;/span&gt; master br0 state blocking priority &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;32&lt;/span&gt; cost &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;2&lt;/span&gt;

&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;10&lt;/span&gt;: veth3@veth2: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1500&lt;/span&gt; master br1 state forwarding priority &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;32&lt;/span&gt; cost &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;2&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; color: #151515; display: flex; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1076px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-6&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1074px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;The line labeled 9 in the output shows that the&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;veth2&lt;/code&gt;&amp;nbsp;interface is in a blocking state, as illustrated in Figure 3.&lt;/p&gt;&lt;figure role=&quot;group&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--pf-global--spacer--md); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;&lt;div class=&quot;rhd-c-figure&quot; style=&quot;box-sizing: border-box; color: var(--pf-c-card--Color); text-align: center;&quot;&gt;&lt;article class=&quot;media media--type-image media--view-mode-article-content-full-width&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;div class=&quot;field field--name-image field--type-image field--label-hidden field__items&quot; style=&quot;box-sizing: border-box; margin-right: var(--pf-global--spacer--sm);&quot;&gt;&lt;a data-featherlight=&quot;image&quot; href=&quot;https://developers.redhat.com/sites/default/files/br_3.png&quot; style=&quot;box-sizing: border-box; cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;);&quot;&gt;&lt;img alt=&quot;The link from br0 to veth2 is blocked.&quot; height=&quot;257&quot; loading=&quot;lazy&quot; src=&quot;https://developers.redhat.com/sites/default/files/styles/article_full_width_1440px_w/public/br_3.png?itok=RcE8tX77&quot; style=&quot;box-sizing: border-box; height: auto; max-width: 100%;&quot; typeof=&quot;foaf:Image&quot; width=&quot;470&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;field field--name-field-caption field--type-string field--label-hidden field__items&quot; style=&quot;box-sizing: border-box; margin-right: var(--pf-global--spacer--sm);&quot;&gt;&lt;div class=&quot;rhd-c-caption field__item&quot; style=&quot;box-sizing: border-box; margin-bottom: var(--pf-global--spacer--md);&quot;&gt;Figure 3: The link from br0 to veth2 is blocked.&lt;/div&gt;&lt;/div&gt;&lt;/article&gt;&lt;/div&gt;&lt;figcaption class=&quot;rhd-c-caption&quot; style=&quot;box-sizing: border-box; margin-bottom: var(--pf-global--spacer--md); text-align: center;&quot;&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;To change the STP hello time, enter:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #151515; font-family: monospace, serif; font-size: 16px; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# ip link set br0 type bridge hello_time 300&lt;/span&gt;

&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# ip -j -p -d link show br0 | grep \&quot;hello_time\&quot;&lt;/span&gt;

                &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;&quot;hello_time&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;300&lt;/span&gt;,&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; color: #151515; display: flex; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1076px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-7&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1074px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;You can use the same basic approach to change other STP parameters, such as maximum age, forward delay, ageing time, and so on.&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;rhd-c-has-toc-target&quot; id=&quot;vlan_filter&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; display: block; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-top: -2.1rem; pointer-events: none; position: absolute; visibility: hidden;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 id=&quot;vlan_filter-h2&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatDisplay, Overpass, Helvetica, Arial, sans-serif; font-size: 28px; font-weight: var(--rhd-global--FontWeight-Display--medium); line-height: 37px; margin-bottom: var(--rhd-theme--container-spacer-md); margin-left: 0px; margin-right: 0px; margin-top: var(--pf-c-content--h2--MarginTop); padding: 0px;&quot;&gt;VLAN filter&lt;/h2&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;The VLAN filter was introduced in Linux kernel 3.8. Previously, to separate VLAN traffic on the bridge, the administrator needed to create multiple bridge/VLAN interfaces. As illustrated in Figure 4, three bridges—&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;br0&lt;/code&gt;,&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;br2&lt;/code&gt;, and&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;br3&lt;/code&gt;—would be needed to support three VLANs to make sure that VLAN traffic went to the corresponding VLANs.&lt;/p&gt;&lt;figure class=&quot;rhd-u-has-filter-caption&quot; role=&quot;group&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--pf-global--spacer--md); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;&lt;div class=&quot;rhd-c-figure&quot; style=&quot;box-sizing: border-box; color: var(--pf-c-card--Color); text-align: center;&quot;&gt;&lt;article class=&quot;media media--type-image media--view-mode-article-content-full-width&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;div class=&quot;field field--name-image field--type-image field--label-hidden field__items&quot; style=&quot;box-sizing: border-box; margin-right: var(--pf-global--spacer--sm);&quot;&gt;&lt;a data-featherlight=&quot;image&quot; href=&quot;https://developers.redhat.com/sites/default/files/br_4.png&quot; style=&quot;box-sizing: border-box; cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;);&quot;&gt;&lt;img alt=&quot;Without VLAN filter, three VLANs required three bridges and network configurations.&quot; height=&quot;328&quot; loading=&quot;lazy&quot; src=&quot;https://developers.redhat.com/sites/default/files/styles/article_full_width_1440px_w/public/br_4.png?itok=gQOf45H2&quot; style=&quot;box-sizing: border-box; height: auto; max-width: 100%;&quot; typeof=&quot;foaf:Image&quot; width=&quot;874&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;field field--name-field-caption field--type-string field--label-hidden field__items&quot; style=&quot;box-sizing: border-box; margin-right: var(--pf-global--spacer--sm);&quot;&gt;&lt;/div&gt;&lt;/article&gt;&lt;/div&gt;&lt;figcaption class=&quot;rhd-c-caption&quot; style=&quot;box-sizing: border-box; margin-bottom: var(--pf-global--spacer--md); text-align: center;&quot;&gt;Figure 4: Without the VLAN filter, three VLANs required three bridges and network configurations.&lt;/figcaption&gt;&lt;/figure&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;But with the VLAN filter, just one bridge device is enough to set all the VLAN configurations, as illustrated in Figure 5.&lt;/p&gt;&lt;figure class=&quot;rhd-u-has-filter-caption&quot; role=&quot;group&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--pf-global--spacer--md); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;&lt;div class=&quot;rhd-c-figure&quot; style=&quot;box-sizing: border-box; color: var(--pf-c-card--Color); text-align: center;&quot;&gt;&lt;article class=&quot;media media--type-image media--view-mode-article-content-full-width&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;div class=&quot;field field--name-image field--type-image field--label-hidden field__items&quot; style=&quot;box-sizing: border-box; margin-right: var(--pf-global--spacer--sm);&quot;&gt;&lt;a data-featherlight=&quot;image&quot; href=&quot;https://developers.redhat.com/sites/default/files/br_5.png&quot; style=&quot;box-sizing: border-box; cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;);&quot;&gt;&lt;img alt=&quot;With VLAN filter, a single bridge can serve multiple VLANs.&quot; height=&quot;301&quot; loading=&quot;lazy&quot; src=&quot;https://developers.redhat.com/sites/default/files/styles/article_full_width_1440px_w/public/br_5.png?itok=W0KYDfZM&quot; style=&quot;box-sizing: border-box; height: auto; max-width: 100%;&quot; typeof=&quot;foaf:Image&quot; width=&quot;558&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;field field--name-field-caption field--type-string field--label-hidden field__items&quot; style=&quot;box-sizing: border-box; margin-right: var(--pf-global--spacer--sm);&quot;&gt;&lt;/div&gt;&lt;/article&gt;&lt;/div&gt;&lt;figcaption class=&quot;rhd-c-caption&quot; style=&quot;box-sizing: border-box; margin-bottom: var(--pf-global--spacer--md); text-align: center;&quot;&gt;Figure 5: With the VLAN filter, a single bridge can serve multiple VLANs.&lt;/figcaption&gt;&lt;/figure&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;The following commands enable the VLAN filter and configure three VLANs:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #151515; font-family: monospace, serif; font-size: 16px; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# ip link set br0 type bridge vlan_filtering 1&lt;/span&gt;

&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# ip link set eth1 master br0&lt;/span&gt;

&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# ip link set eth1 up&lt;/span&gt;

&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# ip link set br0 up&lt;/span&gt;



&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# bridge vlan add dev veth1 vid 2&lt;/span&gt;

&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# bridge vlan add dev veth2 vid 2 pvid untagged&lt;/span&gt;

&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# bridge vlan add dev veth3 vid 3 pvid untagged master&lt;/span&gt;



&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# bridge vlan add dev eth1 vid 2-3&lt;/span&gt;



&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# bridge vlan show&lt;/span&gt;

port              vlan-id

eth1              &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt; PVID Egress Untagged

                  &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;2&lt;/span&gt;

                  &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;3&lt;/span&gt;

br0               &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt; PVID Egress Untagged

veth1             &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt; Egress Untagged

                  &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;2&lt;/span&gt;

veth2             &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt; Egress Untagged

                  &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;2&lt;/span&gt; PVID Egress Untagged

veth3             &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt; Egress Untagged

                  &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;3&lt;/span&gt; PVID Egress Untagged&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; color: #151515; display: flex; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1076px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-8&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1074px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;Then the following command enables a VLAN filter on the&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;br0&lt;/code&gt;&amp;nbsp;bridge:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #151515; font-family: monospace, serif; font-size: 16px; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;ip &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; color: #e36209;&quot;&gt;link&lt;/span&gt; &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; color: #e36209;&quot;&gt;&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49; font-weight: bold;&quot;&gt;set&lt;/span&gt;&lt;/span&gt; br0 &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; color: #e36209;&quot;&gt;type&lt;/span&gt; bridge vlan_filtering &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; color: #151515; display: flex; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1076px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-9&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1074px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;This next command makes the&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;veth1&lt;/code&gt;&amp;nbsp;bridge port transmit only VLAN 2 data:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #151515; font-family: monospace, serif; font-size: 16px; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;bridge vlan add dev veth1 vid &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;2&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; color: #151515; display: flex; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1076px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-10&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1074px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;The following command, similar to the previous one, makes the&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;veth2&lt;/code&gt;&amp;nbsp;bridge port transmit VLAN 2 data. The&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;pvid&lt;/code&gt;&amp;nbsp;parameter causes untagged frames to be assigned to this VLAN at ingress (&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;veth2&lt;/code&gt;&amp;nbsp;to bridge), and the&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;untagged&lt;/code&gt;&amp;nbsp;parameter causes the packet to be untagged on egress (bridge to&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;veth2&lt;/code&gt;):&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #151515; font-family: monospace, serif; font-size: 16px; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;bridge vlan add dev veth2 vid &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;2&lt;/span&gt; pvid untagged&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; color: #151515; display: flex; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1076px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-11&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1074px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;The next command carries out the same operation as the previous one, this time on&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;veth3&lt;/code&gt;. The&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;master&lt;/code&gt;&amp;nbsp;parameter indicates that the link setting is configured on the software bridge. However, because&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;master&lt;/code&gt;&amp;nbsp;is a default option, this command has the same effect as the previous one:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #151515; font-family: monospace, serif; font-size: 16px; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;bridge vlan add dev veth3 vid &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;3&lt;/span&gt; pvid untagged master&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; color: #151515; display: flex; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1076px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-12&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1074px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;The following command enables VLAN 2 and VLAN 3 traffic on&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;eth1&lt;/code&gt;:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #151515; font-family: monospace, serif; font-size: 16px; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;bridge vlan add dev eth1 vid &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;2&lt;/span&gt;-&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;3&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; color: #151515; display: flex; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1076px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-13&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1074px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;To show the VLAN traffic state, enable VLAN statistics (added in kernel 4.7) as follows:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #151515; font-family: monospace, serif; font-size: 16px; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;ip &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; color: #e36209;&quot;&gt;link&lt;/span&gt; &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; color: #e36209;&quot;&gt;&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49; font-weight: bold;&quot;&gt;set&lt;/span&gt;&lt;/span&gt; br0 &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; color: #e36209;&quot;&gt;type&lt;/span&gt; bridge vlan_stats_enabled &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; color: #151515; display: flex; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1076px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-14&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1074px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;The previous command enables just global VLAN statistics on the bridge, and is not fine grained enough to show each VLAN&#39;s state. To enable per-VLAN statistics when there are&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;no&lt;/code&gt;&amp;nbsp;port VLANs in the bridge, you also need to enable&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;vlan_stats_per_port&lt;/code&gt;&amp;nbsp;(added in kernel 4.20). You can run:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #151515; font-family: monospace, serif; font-size: 16px; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;ip &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; color: #e36209;&quot;&gt;link&lt;/span&gt; &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; color: #e36209;&quot;&gt;&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49; font-weight: bold;&quot;&gt;set&lt;/span&gt;&lt;/span&gt; br0 &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; color: #e36209;&quot;&gt;type&lt;/span&gt; bridge vlan_stats_per_port &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; color: #151515; display: flex; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1076px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-15&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1074px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;Then you can show per-VLAN statistics like so:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #151515; font-family: monospace, serif; font-size: 16px; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# bridge -s vlan show&lt;/span&gt;

port              vlan-id

br0               &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt; PVID Egress Untagged

                    RX: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;248&lt;/span&gt; bytes &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;3&lt;/span&gt; packets

                    TX: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;333&lt;/span&gt; bytes &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt; packets

eth1              &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt; PVID Egress Untagged

                    RX: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;333&lt;/span&gt; bytes &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt; packets

                    TX: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;248&lt;/span&gt; bytes &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;3&lt;/span&gt; packets

                  &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;2&lt;/span&gt;

                    RX: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt; bytes &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt; packets

                    TX: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;56&lt;/span&gt; bytes &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt; packets

                  &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;3&lt;/span&gt;

                    RX: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt; bytes &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt; packets

                    TX: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;224&lt;/span&gt; bytes &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;7&lt;/span&gt; packets

veth1             &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt; Egress Untagged

                    RX: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt; bytes &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt; packets

                    TX: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;581&lt;/span&gt; bytes &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;4&lt;/span&gt; packets

                  &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;2&lt;/span&gt; PVID Egress Untagged

                    RX: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;6356&lt;/span&gt; bytes &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;77&lt;/span&gt; packets

                    TX: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;6412&lt;/span&gt; bytes &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;78&lt;/span&gt; packets

veth2             &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt; Egress Untagged

                    RX: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt; bytes &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt; packets

                    TX: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;581&lt;/span&gt; bytes &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;4&lt;/span&gt; packets

                  &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;2&lt;/span&gt; PVID Egress Untagged

                    RX: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;6412&lt;/span&gt; bytes &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;78&lt;/span&gt; packets

                    TX: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;6356&lt;/span&gt; bytes &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;77&lt;/span&gt; packets

veth3             &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt; Egress Untagged

                    RX: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt; bytes &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt; packets

                    TX: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;581&lt;/span&gt; bytes &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;4&lt;/span&gt; packets

                  &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;3&lt;/span&gt; PVID Egress Untagged

                    RX: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;224&lt;/span&gt; bytes &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;7&lt;/span&gt; packets

                    TX: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt; bytes &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt; packets&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; color: #151515; display: flex; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1076px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-16&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1074px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;span class=&quot;rhd-c-has-toc-target&quot; id=&quot;vlan_tunnel_mapping&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; display: block; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-top: -2.1rem; pointer-events: none; position: absolute; visibility: hidden;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 id=&quot;vlan_tunnel_mapping-h2&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatDisplay, Overpass, Helvetica, Arial, sans-serif; font-size: 28px; font-weight: var(--rhd-global--FontWeight-Display--medium); line-height: 37px; margin-bottom: var(--rhd-theme--container-spacer-md); margin-left: 0px; margin-right: 0px; margin-top: var(--pf-c-content--h2--MarginTop); padding: 0px;&quot;&gt;VLAN tunnel mapping&lt;/h2&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;VxLAN builds Layer 2 virtual networks on top of a Layer 3 underlay. A VxLAN tunnel endpoint (VTEP) originates and terminates VxLAN tunnels. VxLAN bridging is the function provided by VTEPs to terminate VxLAN tunnels and map the VxLAN network identifier (VNI) to the traditional end host&#39;s VLAN.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;Previously, to achieve VLAN tunnel mapping, administrators needed to add local ports and VxLAN network devices (netdevs) into a VLAN filtering bridge. The local ports were configured as trunk ports carrying all VLANs. A VxLAN netdev for each VNI would then need to be added to the bridge. VLAN to VNI mapping was achieved by configuring a port VLAN identifier (pvid) for each VLAN as on the corresponding VxLAN netdev, as shown in Figure 6.&lt;/p&gt;&lt;figure class=&quot;rhd-u-has-filter-caption&quot; role=&quot;group&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--pf-global--spacer--md); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;&lt;div class=&quot;rhd-c-figure&quot; style=&quot;box-sizing: border-box; color: var(--pf-c-card--Color); text-align: center;&quot;&gt;&lt;article class=&quot;media media--type-image media--view-mode-article-content-full-width&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;div class=&quot;field field--name-image field--type-image field--label-hidden field__items&quot; style=&quot;box-sizing: border-box; margin-right: var(--pf-global--spacer--sm);&quot;&gt;&lt;a data-featherlight=&quot;image&quot; href=&quot;https://developers.redhat.com/sites/default/files/br_6.png&quot; style=&quot;box-sizing: border-box; cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;);&quot;&gt;&lt;img alt=&quot;VxLAN used to require multiple netdevs.&quot; height=&quot;234&quot; loading=&quot;lazy&quot; src=&quot;https://developers.redhat.com/sites/default/files/styles/article_full_width_1440px_w/public/br_6.png?itok=cbHrDl-b&quot; style=&quot;box-sizing: border-box; height: auto; max-width: 100%;&quot; typeof=&quot;foaf:Image&quot; width=&quot;398&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;field field--name-field-caption field--type-string field--label-hidden field__items&quot; style=&quot;box-sizing: border-box; margin-right: var(--pf-global--spacer--sm);&quot;&gt;&lt;/div&gt;&lt;/article&gt;&lt;/div&gt;&lt;figcaption class=&quot;rhd-c-caption&quot; style=&quot;box-sizing: border-box; margin-bottom: var(--pf-global--spacer--md); text-align: center;&quot;&gt;Figure 6. VxLAN used to require multiple netdevs.&lt;/figcaption&gt;&lt;/figure&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;Since 4.11, the kernel has provided a native way to support VxLAN bridging. The topology for this looks like Figure 7. The&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;vxlan0&lt;/code&gt;&amp;nbsp;endpoint in this figure was added with lightweight tunnel (LWT) support to handle multiple VNIs.&lt;/p&gt;&lt;figure class=&quot;rhd-u-has-filter-caption&quot; role=&quot;group&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--pf-global--spacer--md); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;&lt;div class=&quot;rhd-c-figure&quot; style=&quot;box-sizing: border-box; color: var(--pf-c-card--Color); text-align: center;&quot;&gt;&lt;article class=&quot;media media--type-image media--view-mode-article-content-full-width&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;div class=&quot;field field--name-image field--type-image field--label-hidden field__items&quot; style=&quot;box-sizing: border-box; margin-right: var(--pf-global--spacer--sm);&quot;&gt;&lt;a data-featherlight=&quot;image&quot; href=&quot;https://developers.redhat.com/sites/default/files/br_7.png&quot; style=&quot;box-sizing: border-box; cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;);&quot;&gt;&lt;img alt=&quot;Now Linux bridging handle multiple VNIs with one VxLAN.&quot; height=&quot;236&quot; loading=&quot;lazy&quot; src=&quot;https://developers.redhat.com/sites/default/files/styles/article_full_width_1440px_w/public/br_7.png?itok=8fJ6xtLr&quot; style=&quot;box-sizing: border-box; height: auto; max-width: 100%;&quot; typeof=&quot;foaf:Image&quot; width=&quot;399&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;field field--name-field-caption field--type-string field--label-hidden field__items&quot; style=&quot;box-sizing: border-box; margin-right: var(--pf-global--spacer--sm);&quot;&gt;&lt;/div&gt;&lt;/article&gt;&lt;/div&gt;&lt;figcaption class=&quot;rhd-c-caption&quot; style=&quot;box-sizing: border-box; margin-bottom: var(--pf-global--spacer--md); text-align: center;&quot;&gt;Figure 7: Now Linux bridging can handle multiple VNIs with one VxLAN.&lt;/figcaption&gt;&lt;/figure&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;To create a tunnel, you must first add related VIDs to the interfaces:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #151515; font-family: monospace, serif; font-size: 16px; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;bridge vlan add dev eth1 vid &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;100&lt;/span&gt;-&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;101&lt;/span&gt;

bridge vlan add dev eth1 vid &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;200&lt;/span&gt;

bridge vlan add dev vxlan0 vid &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;100&lt;/span&gt;-&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;101&lt;/span&gt;

bridge vlan add dev vxlan0 vid &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;200&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; color: #151515; display: flex; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1076px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-17&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1074px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;Now enable a VLAN tunnel mapping on a bridge port:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #151515; font-family: monospace, serif; font-size: 16px; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# ip link set dev vxlan0 type bridge_slave vlan_tunnel on&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; color: #151515; display: flex; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1076px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-18&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1074px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;Alternatively, you can enable the tunnel with this command:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #151515; font-family: monospace, serif; font-size: 16px; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# bridge link set dev vxlan0 vlan_tunnel on&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; color: #151515; display: flex; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1076px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-19&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1074px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;Then add VLAN tunnel mapping:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #151515; font-family: monospace, serif; font-size: 16px; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# bridge vlan add dev vxlan0 vid 2000 tunnel_info id 2000&lt;/span&gt;

&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# bridge vlan add dev vxlan0 vid 1000-1001 tunnel_info id 1000-1001&lt;/span&gt;



&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# bridge -j -p vlan tunnelshow&lt;/span&gt;

[ {

        &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;&quot;ifname&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;&quot;vxlan0&quot;&lt;/span&gt;,

        &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;&quot;tunnels&quot;&lt;/span&gt;: [ {

                &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;&quot;vlan&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;100&lt;/span&gt;,

                &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;&quot;vlanEnd&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;101&lt;/span&gt;,

                &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;&quot;tunid&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;100&lt;/span&gt;,

                &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;&quot;tunidEnd&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;101&lt;/span&gt;

            },{

                &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;&quot;vlan&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;200&lt;/span&gt;,

                &lt;span class=&quot;hljs-string&quot; style=&quot;box-sizing: border-box; color: #032f62;&quot;&gt;&quot;tunid&quot;&lt;/span&gt;: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;200&lt;/span&gt;

            } ]

    } ]&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; color: #151515; display: flex; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1076px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-20&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1074px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;span class=&quot;rhd-c-has-toc-target&quot; id=&quot;multicast&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; display: block; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-top: -2.1rem; pointer-events: none; position: absolute; visibility: hidden;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 id=&quot;multicast-h2&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatDisplay, Overpass, Helvetica, Arial, sans-serif; font-size: 28px; font-weight: var(--rhd-global--FontWeight-Display--medium); line-height: 37px; margin-bottom: var(--rhd-theme--container-spacer-md); margin-left: 0px; margin-right: 0px; margin-top: var(--pf-c-content--h2--MarginTop); padding: 0px;&quot;&gt;Multicast&lt;/h2&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;Linux bridging has included support for IGMPv2 and MLDv1 support since kernel version 2.6. IGMPv3/MLDv2 support was added in kernel 5.10.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;To use multicast, enable bridge multicast snooping, querier, and statistics as follows:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #151515; font-family: monospace, serif; font-size: 16px; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# ip link set br0 type bridge mcast_snooping 1&lt;/span&gt;

&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# ip link set br0 type bridge mcast_querier 1&lt;/span&gt;

&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# ip link set br0 type bridge mcast_stats_enabled 1&lt;/span&gt;

&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# tcpdump -i br0 -nn -l&lt;/span&gt;

&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;02&lt;/span&gt;:&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;47&lt;/span&gt;:&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;03.417331&lt;/span&gt; IP &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0.0&lt;/span&gt;.&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0.0&lt;/span&gt; &amp;gt; &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;224.0&lt;/span&gt;.&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0.1&lt;/span&gt;: igmp query v2

&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;02&lt;/span&gt;:&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;47&lt;/span&gt;:&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;03.417340&lt;/span&gt; IP6 fe80::&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;3454&lt;/span&gt;:&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;82&lt;/span&gt;ff:feb9:d7b4 &amp;gt; ff02::&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt;: HBH ICMP6, multicast listener querymax resp delay: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;10000&lt;/span&gt; addr: ::, length &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;24&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; color: #151515; display: flex; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1076px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-21&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1074px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;By default, when snooping is enabled, the bridge uses IGMPv2/MLDv1. You can change the versions with these commands:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #151515; font-family: monospace, serif; font-size: 16px; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;ip &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; color: #e36209;&quot;&gt;link&lt;/span&gt; &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; color: #e36209;&quot;&gt;&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49; font-weight: bold;&quot;&gt;set&lt;/span&gt;&lt;/span&gt; br0 &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; color: #e36209;&quot;&gt;type&lt;/span&gt; bridge mcast_igmp_version &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;3&lt;/span&gt;

ip &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; color: #e36209;&quot;&gt;link&lt;/span&gt; &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; color: #e36209;&quot;&gt;&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49; font-weight: bold;&quot;&gt;set&lt;/span&gt;&lt;/span&gt; br0 &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; color: #e36209;&quot;&gt;type&lt;/span&gt; bridge mcast_mld_version &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;2&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; color: #151515; display: flex; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1076px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;After a port joins a group, you can show the multicast database (mdb) like so:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #151515; font-family: monospace, serif; font-size: 16px; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# bridge mdb show&lt;/span&gt;

dev br0 port br0 grp ff02::fb temp

dev br0 port eth1 grp ff02::fb temp

dev br0 port eth2 grp ff02::fb temp

dev br0 port eth2 grp &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;224.1&lt;/span&gt;.&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1.1&lt;/span&gt; temp

dev br0 port br0 grp ff02::&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;6&lt;/span&gt;a temp

dev br0 port eth1 grp ff02::&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;6&lt;/span&gt;a temp

dev br0 port eth2 grp ff02::&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;6&lt;/span&gt;a temp

dev br0 port br0 grp ff02::&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt;:ffe2:de9f temp

dev br0 port eth1 grp ff02::&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt;:ffe2:de9f temp

dev br0 port eth2 grp ff02::&lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt;:ffe2:de9f temp&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; color: #151515; display: flex; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1076px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-23&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1074px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;Bridging also supports multicast snooping and querier on a single VLAN. Set them as follows:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #151515; font-family: monospace, serif; font-size: 16px; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;bridge vlan &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; color: #e36209;&quot;&gt;&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49; font-weight: bold;&quot;&gt;set&lt;/span&gt;&lt;/span&gt; vid &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;10&lt;/span&gt; dev eth1 mcast_snooping &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt; mcast_querier &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; color: #151515; display: flex; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1076px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-24&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1074px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;You can show bridge xstats (multicast RX/TX information) with this command:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #151515; font-family: monospace, serif; font-size: 16px; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;&lt;span class=&quot;hljs-comment&quot; style=&quot;box-sizing: border-box; color: #6a737d; font-style: italic;&quot;&gt;# ip link xstats type bridge&lt;/span&gt;

br0

                    IGMP queries:

                      RX: v1 &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt; v2 &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt; v3 &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt;

                      TX: v1 &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt; v2 &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;131880&lt;/span&gt; v3 &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt;

                    IGMP reports:

                      RX: v1 &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt; v2 &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt; v3 &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt;

                      TX: v1 &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt; v2 &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;496&lt;/span&gt; v3 &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;18956&lt;/span&gt;

                    IGMP leaves: RX: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt; TX: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt;

                    IGMP parse errors: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt;

                    MLD queries:

                      RX: v1 &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt; v2 &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt;

                      TX: v1 &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;51327&lt;/span&gt; v2 &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt;

                    MLD reports:

                      RX: v1 &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;66&lt;/span&gt; v2 &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;6&lt;/span&gt;

                      TX: v1 &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;3264&lt;/span&gt; v2 &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;213794&lt;/span&gt;

                    MLD leaves: RX: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt; TX: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt;

                    MLD parse errors: &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;0&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; color: #151515; display: flex; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1076px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-25&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1074px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;There are other multicast parameters you can configure, including&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;mcast_router&lt;/code&gt;,&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;mcast_query_interval&lt;/code&gt;, and&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #0a0a0a; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 1px 8px;&quot;&gt;mcast_hash_max&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;rhd-c-has-toc-target&quot; id=&quot;bridge_switchdev&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; display: block; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-top: -2.1rem; pointer-events: none; position: absolute; visibility: hidden;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 id=&quot;bridge_switchdev-h2&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatDisplay, Overpass, Helvetica, Arial, sans-serif; font-size: 28px; font-weight: var(--rhd-global--FontWeight-Display--medium); line-height: 37px; margin-bottom: var(--rhd-theme--container-spacer-md); margin-left: 0px; margin-right: 0px; margin-top: var(--pf-c-content--h2--MarginTop); padding: 0px;&quot;&gt;Bridge switchdev&lt;/h2&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;Linux bridging is always used when virtual machines (VMs) connect to physical networks, by using the virtio tap driver. You can also attach a Single Root I/O Virtualization (SR-IOV) virtual function (VF) in a VM guest to get better performance (Figure 8).&lt;/p&gt;&lt;figure role=&quot;group&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--pf-global--spacer--md); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;&lt;div class=&quot;rhd-c-figure&quot; style=&quot;box-sizing: border-box; color: var(--pf-c-card--Color); text-align: center;&quot;&gt;&lt;article class=&quot;media media--type-image media--view-mode-article-content-full-width&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;div class=&quot;field field--name-image field--type-image field--label-hidden field__items&quot; style=&quot;box-sizing: border-box; margin-right: var(--pf-global--spacer--sm);&quot;&gt;&lt;a data-featherlight=&quot;image&quot; href=&quot;https://developers.redhat.com/sites/default/files/br_8.png&quot; style=&quot;box-sizing: border-box; cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;);&quot;&gt;&lt;img alt=&quot;VFs in virtual machines.&quot; height=&quot;291&quot; loading=&quot;lazy&quot; src=&quot;https://developers.redhat.com/sites/default/files/styles/article_full_width_1440px_w/public/br_8.png?itok=s21JwYjI&quot; style=&quot;box-sizing: border-box; height: auto; max-width: 100%;&quot; typeof=&quot;foaf:Image&quot; width=&quot;596&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;field field--name-field-caption field--type-string field--label-hidden field__items&quot; style=&quot;box-sizing: border-box; margin-right: var(--pf-global--spacer--sm);&quot;&gt;&lt;div class=&quot;rhd-c-caption field__item&quot; style=&quot;box-sizing: border-box; margin-bottom: var(--pf-global--spacer--md);&quot;&gt;Figure 8: VFs in virtual machines.&lt;/div&gt;&lt;/div&gt;&lt;/article&gt;&lt;/div&gt;&lt;figcaption class=&quot;rhd-c-caption&quot; style=&quot;box-sizing: border-box; margin-bottom: var(--pf-global--spacer--md); text-align: center;&quot;&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;But the way Linux used to deal with SR-IOV embedded switches limited their expressiveness and flexibility. And the kernel model for controlling the SR-IOV eSwitch did not allow any forwarding unless it was based on MAC/VLAN.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;To make VFs also support dynamic FDB (as in Figure 9) and maintain the benefits of the VLAN filter while still providing optimal performance, Linux bridging added switchdev support in kernel version 4.9. Switchdev allows the offloading of Layer 2 forwarding to a hardware switch such as&amp;nbsp;&lt;a href=&quot;https://github.com/Mellanox/mlxsw/wiki&quot; style=&quot;box-sizing: border-box; cursor: pointer; font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;);&quot;&gt;Mellanox Spectrum devices&lt;/a&gt;, DSA-based switches, and MLX5 CX6 Dx cards.&lt;/p&gt;&lt;figure role=&quot;group&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--pf-global--spacer--md); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;&lt;div class=&quot;rhd-c-figure&quot; style=&quot;box-sizing: border-box; color: var(--pf-c-card--Color); text-align: center;&quot;&gt;&lt;article class=&quot;media media--type-image media--view-mode-article-content-full-width&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;div class=&quot;field field--name-image field--type-image field--label-hidden field__items&quot; style=&quot;box-sizing: border-box; margin-right: var(--pf-global--spacer--sm);&quot;&gt;&lt;a data-featherlight=&quot;image&quot; href=&quot;https://developers.redhat.com/sites/default/files/br_9.png&quot; style=&quot;box-sizing: border-box; cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;);&quot;&gt;&lt;img alt=&quot;Switchdev provides widespread support for offloading traffic to hardware.&quot; height=&quot;285&quot; loading=&quot;lazy&quot; src=&quot;https://developers.redhat.com/sites/default/files/styles/article_full_width_1440px_w/public/br_9.png?itok=_yu2G2C5&quot; style=&quot;box-sizing: border-box; height: auto; max-width: 100%;&quot; typeof=&quot;foaf:Image&quot; width=&quot;582&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;field field--name-field-caption field--type-string field--label-hidden field__items&quot; style=&quot;box-sizing: border-box; margin-right: var(--pf-global--spacer--sm);&quot;&gt;&lt;div class=&quot;rhd-c-caption field__item&quot; style=&quot;box-sizing: border-box; margin-bottom: var(--pf-global--spacer--md);&quot;&gt;Figure 9: Switchdev provides widespread support for offloading traffic to hardware.&lt;/div&gt;&lt;/div&gt;&lt;/article&gt;&lt;/div&gt;&lt;figcaption class=&quot;rhd-c-caption&quot; style=&quot;box-sizing: border-box; margin-bottom: var(--pf-global--spacer--md); text-align: center;&quot;&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;In switchdev mode, the bridge is up and its related configuration is enabled, e.g., MLX5_BRIDGE for an MLX5 SRIOV eSwitch. Once in switchdev mode, you can connect the VF&#39;s representors to the bridge, and frames that are supposed to be transmitted by the bridge are transmitted by hardware only. Their routing will be done in the switch at the network interface controller (NIC).&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;Once a frame passes through the VF to its representor, the bridge learns that the source MAC of the VF is behind a particular port. The bridge adds an entry with the MAC address and port to its FDB. Immediately afterward, the bridge sends a message to the mlx5 driver, and the driver adds a relevant rule or line to two tables located in the eSwitch on the NIC. Later, frames with the same destination MAC address that come from the VF don&#39;t go through the kernel; instead, they go directly through the NIC to the appropriate port.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;Switchdev support for embedded switches in NICs is simple, but for full-featured switches such as Mellanox Spectrum, the offloading capabilities are much richer, with support for link aggregation group (LAG) hashing (team, bonding), tunneling (VxLAN, etc.), routing, and TC offloading. Routing and TC offloading are out of scope for bridging, but LAGs can be attached to the bridge as well as to VxLAN tunnels, with full support for offloading.&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;rhd-c-has-toc-target&quot; id=&quot;bridging_with_netfilter&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; display: block; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-top: -2.1rem; pointer-events: none; position: absolute; visibility: hidden;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 id=&quot;bridging_with_netfilter-h2&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatDisplay, Overpass, Helvetica, Arial, sans-serif; font-size: 28px; font-weight: var(--rhd-global--FontWeight-Display--medium); line-height: 37px; margin-bottom: var(--rhd-theme--container-spacer-md); margin-left: 0px; margin-right: 0px; margin-top: var(--pf-c-content--h2--MarginTop); padding: 0px;&quot;&gt;Bridging with Netfilter&lt;/h2&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;By default, the traffic forwarded by the bridge does not go through an iptables firewall. To let the iptables forward rules filter Layer 2 traffic, enter:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #151515; font-family: monospace, serif; font-size: 16px; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;ip &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; color: #e36209;&quot;&gt;link&lt;/span&gt; &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; color: #e36209;&quot;&gt;&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49; font-weight: bold;&quot;&gt;set&lt;/span&gt;&lt;/span&gt; br0 &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; color: #e36209;&quot;&gt;type&lt;/span&gt; bridge nf_call_iptables &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;1&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; color: #151515; display: flex; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1076px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-26&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1074px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;The same procedure works for ip6tables and arptables.&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;rhd-c-has-toc-target&quot; id=&quot;bridge_ageing_time&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; display: block; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-top: -2.1rem; pointer-events: none; position: absolute; visibility: hidden;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 id=&quot;bridge_ageing_time-h2&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatDisplay, Overpass, Helvetica, Arial, sans-serif; font-size: 28px; font-weight: var(--rhd-global--FontWeight-Display--medium); line-height: 37px; margin-bottom: var(--rhd-theme--container-spacer-md); margin-left: 0px; margin-right: 0px; margin-top: var(--pf-c-content--h2--MarginTop); padding: 0px;&quot;&gt;Bridge ageing time&lt;/h2&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;Ageing determines the number of seconds a MAC address is kept in the FDB after a packet has been received from that address. After this time has passed, entries are cleaned up. To change the timer, enter:&lt;/p&gt;&lt;pre style=&quot;background: rgb(249, 249, 249); border-radius: 0px; border: 1px solid rgb(213, 213, 213); box-sizing: border-box; color: #151515; font-family: monospace, serif; font-size: 16px; margin: var(--rhd-theme--container-spacer-sm) 0 0; overflow-wrap: break-word; overflow: auto; padding: var(--rhd-theme--container-spacer-sm); position: relative; white-space: pre-wrap;&quot;&gt;&lt;code class=&quot;language-bash hljs hljs &quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; box-sizing: border-box; color: #0a0a0a; display: block; font-family: monospace, serif; font-size: 1em; overflow: auto; padding: 0px;&quot;&gt;ip &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; color: #e36209;&quot;&gt;link&lt;/span&gt; &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; color: #e36209;&quot;&gt;&lt;span class=&quot;hljs-keyword&quot; style=&quot;box-sizing: border-box; color: #d73a49; font-weight: bold;&quot;&gt;set&lt;/span&gt;&lt;/span&gt; br0 &lt;span class=&quot;hljs-built_in&quot; style=&quot;box-sizing: border-box; color: #e36209;&quot;&gt;type&lt;/span&gt; bridge ageing_time &lt;span class=&quot;hljs-number&quot; style=&quot;box-sizing: border-box; color: #005cc5;&quot;&gt;20000&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=&quot;copy-code-container&quot; style=&quot;align-items: flex-start; background-color: #f9f9f9; border-bottom-color: rgb(213, 213, 213); border-bottom-style: solid; border-image: initial; border-left-color: rgb(213, 213, 213); border-left-style: solid; border-right-color: rgb(213, 213, 213); border-right-style: solid; border-top-color: initial; border-top-style: initial; border-width: 0px 1px 1px; box-sizing: border-box; color: #151515; display: flex; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--rhd-theme--container-spacer-md); width: 1076px;&quot;&gt;&lt;a class=&quot;copy-code__link&quot; id=&quot;copy-code-27&quot; style=&quot;box-sizing: border-box; color: var(--pf-theme--color--ui-link,#06c); cursor: pointer; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 5px 10px; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;); width: 1074px;&quot;&gt;&lt;svg aria-hidden=&quot;true&quot; class=&quot;code-copy__icon&quot; viewbox=&quot;0 0 448 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 00358.059 0H352v96h96v-6.059a24 24 0 00-7.029-16.97z&quot; fill=&quot;#06c&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;span class=&quot;rhd-c-has-toc-target&quot; id=&quot;bridging_versus_open_vswitch&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; display: block; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; margin-top: -2.1rem; pointer-events: none; position: absolute; visibility: hidden;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 id=&quot;bridging_versus_open_vswitch-h2&quot; style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatDisplay, Overpass, Helvetica, Arial, sans-serif; font-size: 28px; font-weight: var(--rhd-global--FontWeight-Display--medium); line-height: 37px; margin-bottom: var(--rhd-theme--container-spacer-md); margin-left: 0px; margin-right: 0px; margin-top: var(--pf-c-content--h2--MarginTop); padding: 0px;&quot;&gt;Bridging versus Open vSwitch&lt;/h2&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;Linux bridging is very useful and has become popular over the past few years. It supplies Layer 2 forwarding, and connects VMs and networks with VLAN/multicast support. Bridging on Linux is stable, reliable, and easy to set up and configure.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;On the other hand, Linux bridging also has some limitations. It&#39;s missing some types of tunnel support, for instance. If you want to get easier network management, more tunnel support (GRE, VXLAN, etc.), Layer 3 forwarding, and integration with software-defined networking (SDN), you can try&amp;nbsp;&lt;a href=&quot;https://www.openvswitch.org/&quot; style=&quot;box-sizing: border-box; cursor: pointer; font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;);&quot;&gt;Open vSwitch&lt;/a&gt;&amp;nbsp;(OVS).&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-bottom: var(--pf-c-content--MarginBottom); margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;&quot;&gt;To learn more about Linux network interfaces and other networking topics, check out these articles from Red Hat Developer:&lt;/p&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #151515; font-family: RedHatText, Overpass, Helvetica, Arial, sans-serif; font-size: 16px; list-style: var(--pf-c-content--ul--ListStyle); margin-bottom: 0px; margin-left: var(--pf-c-content--ul--MarginLeft); margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: var(--pf-c-content--ul--PaddingLeft); padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin: 0px; padding: 0px;&quot;&gt;&lt;a href=&quot;https://developers.redhat.com/blog/2019/05/17/an-introduction-to-linux-virtual-interfaces-tunnels&quot; style=&quot;box-sizing: border-box; cursor: pointer; font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;);&quot;&gt;An introduction to Linux virtual interfaces: Tunnels&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: var(--pf-c-content--li--MarginTop); padding: 0px;&quot;&gt;&lt;a href=&quot;https://developers.redhat.com/blog/2018/10/22/introduction-to-linux-interfaces-for-virtual-networking&quot; style=&quot;box-sizing: border-box; cursor: pointer; font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;);&quot;&gt;Introduction to Linux interfaces for virtual networking&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; font-weight: var(--rhd-global--FontWeight-Display--medium,400); line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: var(--pf-c-content--li--MarginTop); padding: 0px;&quot;&gt;&lt;a href=&quot;https://developers.redhat.com/blog/2021/04/01/get-started-with-xdp&quot; style=&quot;box-sizing: border-box; cursor: pointer; font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; text-decoration: var(--pf-theme--link--text-decoration,&amp;quot;underline&amp;quot;);&quot;&gt;Get started with XDP&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/2919039074646551086/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2023/02/a-linux-is-kernel-module-that-behaves.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/2919039074646551086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/2919039074646551086'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2023/02/a-linux-is-kernel-module-that-behaves.html' title=''/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-2705685674004128643</id><published>2022-12-15T13:21:00.002+08:00</published><updated>2022-12-15T13:21:38.352+08:00</updated><title type='text'>SecureCRT &amp; Notepad++ 的 網路設備 關鍵字顯示 （Keyword Highlighting/Syntax highlighting）</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: #303030; font-family: PT Sans, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif; font-size: xx-small;&quot;&gt;From:https://chingfengwang.com/2020/12/10/securecrt-and-notepad-keyword-highlighting-syntax-highlighting/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #303030; font-family: PT Sans, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;由於常常用&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; font-weight: bolder; max-width: unset;&quot;&gt;SecureCRT&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px;&quot;&gt;終端機軟體及文字編輯器&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; font-weight: bolder; max-width: unset;&quot;&gt;NOTEPAD++&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px;&quot;&gt;,發現常常盯著眼睛有點花 ,之前有找到 Notepad++ 的,今天阿豐找到感覺不錯的 SCRT 跟 Notepad++ 的語法：）&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 32px auto; max-width: calc(750px); overflow-wrap: break-word; padding: 0px;&quot;&gt;1.&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;SecureCRT 的 Text Highlighting&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;＃出處：feral packet&lt;/span&gt;&amp;nbsp;網站&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;&lt;a href=&quot;https://feralpacket.org/?p=817&quot; rel=&quot;noreferrer noopener&quot; style=&quot;background-color: transparent; box-sizing: inherit; cursor: pointer; max-width: unset;&quot; target=&quot;_blank&quot;&gt;https://feralpacket.org/?p=817&amp;nbsp;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 32px auto; max-width: calc(750px); overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;#下載ini：&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;wp-block-file&quot; style=&quot;background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 0.8em; margin: 32px auto; max-width: calc(750px);&quot;&gt;&lt;a href=&quot;https://chingfengwang.files.wordpress.com/2020/12/feralpacket.zip&quot; style=&quot;background-color: transparent; box-sizing: inherit; cursor: pointer; max-width: unset; text-decoration-line: none;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;feralpacket.ini&lt;/span&gt;&amp;nbsp;下載 （unzip password：&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;chingfengwang.com&lt;/span&gt;&amp;nbsp;)&lt;/a&gt;&lt;a class=&quot;wp-block-file__button&quot; download=&quot;&quot; href=&quot;https://chingfengwang.files.wordpress.com/2020/12/feralpacket.zip?force_download=true&quot; style=&quot;background-color: var(--wp--preset--color--primary); border-radius: 5px; border-width: 0px; box-sizing: inherit; cursor: pointer; font-family: var(--font-base, &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Roboto&amp;quot;, &amp;quot;Oxygen&amp;quot;, &amp;quot;Ubuntu&amp;quot;, &amp;quot;Cantarell&amp;quot;, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif); font-size: 0.86957rem; font-weight: bold; line-height: 1; margin-left: 16px; margin-right: 16px; max-width: unset; padding: 16px 24px; text-decoration-line: none;&quot;&gt;下載&lt;/a&gt;&lt;/div&gt;&lt;p style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 32px auto; max-width: calc(750px); overflow-wrap: break-word; padding: 0px;&quot;&gt;從作者的&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;feral packet&amp;nbsp;&lt;/span&gt;網站 下載:&amp;nbsp;&lt;a href=&quot;http://download.feralpacket.org/feralpacket.ini%C2%A0&quot; style=&quot;background-color: transparent; box-sizing: inherit; cursor: pointer; max-width: unset;&quot;&gt;http://download.feralpacket.org/feralpacket.ini&amp;nbsp;&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 32px auto; max-width: calc(750px); overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;＃下載後把複製 ini 到：&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;#&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;MAC:&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;/Users/username/Library/Application/Support/VanDyke/SecureCRT/Config/Keywords/.&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;Windows&lt;/span&gt;: 存放在&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;%APPDATA%&lt;/span&gt;, &amp;nbsp;&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;C:\Users\{使用者名稱}\AppData\Roaming\VanDyke\Config\Keywords&amp;gt;&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;Linux：&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;複製&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;ini 檔案到:&lt;/span&gt;&amp;nbsp;/home/username/.vandyke/SecureCRT/Config/Keywords/&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;＃設定方式：&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;SecureCRT Settings:&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;–&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;Session Options&lt;/span&gt;&amp;nbsp;-&amp;gt;&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;Terminal&amp;nbsp;&lt;/span&gt;-&amp;gt;&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;Appearance&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;-&amp;gt; Current color scheme&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;-&amp;gt; White / Black&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;-&amp;gt;&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;Highlight keywords&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;-&amp;gt; Name:&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;feralpacket&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;-&amp;gt; Style:&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;Color&amp;nbsp;&lt;/span&gt;打勾&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;&lt;/p&gt;&lt;figure class=&quot;wp-block-image size-large&quot; style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 32px auto; max-width: calc(750px); padding: 0px; text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-527&quot; data-attachment-id=&quot;527&quot; data-comments-opened=&quot;1&quot; data-image-caption=&quot;&quot; data-image-description=&quot;&quot; data-image-meta=&quot;{&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;}&quot; data-image-title=&quot;image-4-1&quot; data-large-file=&quot;https://chingfengwang.files.wordpress.com/2020/12/image-4-1.png?w=541&quot; data-medium-file=&quot;https://chingfengwang.files.wordpress.com/2020/12/image-4-1.png?w=300&quot; data-orig-file=&quot;https://chingfengwang.files.wordpress.com/2020/12/image-4-1.png&quot; data-orig-size=&quot;541,477&quot; data-permalink=&quot;https://chingfengwang.com/image-4-1/&quot; sizes=&quot;(max-width: 541px) 100vw, 541px&quot; src=&quot;https://chingfengwang.files.wordpress.com/2020/12/image-4-1.png?w=541&quot; srcset=&quot;https://chingfengwang.files.wordpress.com/2020/12/image-4-1.png 541w, https://chingfengwang.files.wordpress.com/2020/12/image-4-1.png?w=150 150w, https://chingfengwang.files.wordpress.com/2020/12/image-4-1.png?w=300 300w&quot; style=&quot;border-style: none; box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom;&quot; /&gt;&lt;/figure&gt;&lt;p style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 32px auto; max-width: calc(750px); overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;– Keyword List Properties&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;&lt;/span&gt;-&amp;gt; Match case 打勾&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;&lt;/p&gt;&lt;figure class=&quot;wp-block-image size-large&quot; style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 32px auto; max-width: calc(750px); padding: 0px; text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-524&quot; data-attachment-id=&quot;524&quot; data-comments-opened=&quot;1&quot; data-image-caption=&quot;&quot; data-image-description=&quot;&quot; data-image-meta=&quot;{&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;}&quot; data-image-title=&quot;image-3-1&quot; data-large-file=&quot;https://chingfengwang.files.wordpress.com/2020/12/image-3-1.png?w=517&quot; data-medium-file=&quot;https://chingfengwang.files.wordpress.com/2020/12/image-3-1.png?w=300&quot; data-orig-file=&quot;https://chingfengwang.files.wordpress.com/2020/12/image-3-1.png&quot; data-orig-size=&quot;517,314&quot; data-permalink=&quot;https://chingfengwang.com/image-3-1/&quot; sizes=&quot;(max-width: 517px) 100vw, 517px&quot; src=&quot;https://chingfengwang.files.wordpress.com/2020/12/image-3-1.png?w=517&quot; srcset=&quot;https://chingfengwang.files.wordpress.com/2020/12/image-3-1.png 517w, https://chingfengwang.files.wordpress.com/2020/12/image-3-1.png?w=150 150w, https://chingfengwang.files.wordpress.com/2020/12/image-3-1.png?w=300 300w&quot; style=&quot;border-style: none; box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom;&quot; /&gt;&lt;/figure&gt;&lt;p style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 32px auto; max-width: calc(750px); overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;– To set for the default session:&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;&lt;/span&gt;-&amp;gt; Global Options -&amp;gt; General -&amp;gt; Default Session&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;-&amp;gt; Edit Default Settings…&lt;/p&gt;&lt;p style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 32px auto; max-width: calc(750px); overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;＃作者的截圖：&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;wp-block-image size-large&quot; style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 32px auto; max-width: calc(750px); padding: 0px; text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-554&quot; data-attachment-id=&quot;554&quot; data-comments-opened=&quot;1&quot; data-image-caption=&quot;&quot; data-image-description=&quot;&quot; data-image-meta=&quot;{&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;}&quot; data-image-title=&quot;config_prompt&quot; data-large-file=&quot;https://chingfengwang.files.wordpress.com/2020/12/config_prompt.png?w=661&quot; data-medium-file=&quot;https://chingfengwang.files.wordpress.com/2020/12/config_prompt.png?w=248&quot; data-orig-file=&quot;https://chingfengwang.files.wordpress.com/2020/12/config_prompt.png&quot; data-orig-size=&quot;661,800&quot; data-permalink=&quot;https://chingfengwang.com/config_prompt/&quot; sizes=&quot;(max-width: 661px) 100vw, 661px&quot; src=&quot;https://chingfengwang.files.wordpress.com/2020/12/config_prompt.png?w=661&quot; srcset=&quot;https://chingfengwang.files.wordpress.com/2020/12/config_prompt.png 661w, https://chingfengwang.files.wordpress.com/2020/12/config_prompt.png?w=124 124w, https://chingfengwang.files.wordpress.com/2020/12/config_prompt.png?w=248 248w&quot; style=&quot;border-style: none; box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom;&quot; /&gt;&lt;/figure&gt;&lt;figure class=&quot;wp-block-image size-large&quot; style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 32px auto; max-width: calc(750px); padding: 0px; text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-555&quot; data-attachment-id=&quot;555&quot; data-comments-opened=&quot;1&quot; data-image-caption=&quot;&quot; data-image-description=&quot;&quot; data-image-meta=&quot;{&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;}&quot; data-image-title=&quot;logs&quot; data-large-file=&quot;https://chingfengwang.files.wordpress.com/2020/12/logs.png?w=750&quot; data-medium-file=&quot;https://chingfengwang.files.wordpress.com/2020/12/logs.png?w=300&quot; data-orig-file=&quot;https://chingfengwang.files.wordpress.com/2020/12/logs.png&quot; data-orig-size=&quot;1808,454&quot; data-permalink=&quot;https://chingfengwang.com/logs/&quot; sizes=&quot;(max-width: 1024px) 100vw, 1024px&quot; src=&quot;https://chingfengwang.files.wordpress.com/2020/12/logs.png?w=1024&quot; srcset=&quot;https://chingfengwang.files.wordpress.com/2020/12/logs.png?w=1024 1024w, https://chingfengwang.files.wordpress.com/2020/12/logs.png?w=150 150w, https://chingfengwang.files.wordpress.com/2020/12/logs.png?w=300 300w, https://chingfengwang.files.wordpress.com/2020/12/logs.png?w=768 768w, https://chingfengwang.files.wordpress.com/2020/12/logs.png 1808w&quot; style=&quot;border-style: none; box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom;&quot; /&gt;&lt;figcaption style=&quot;box-sizing: inherit; color: var(--wp--preset--color--foreground-low-contrast); font-size: 0.75614rem; margin-bottom: 16px; margin-top: calc(8px); max-width: unset;&quot;&gt;範例:出處&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;feral packet&lt;/span&gt;&amp;nbsp;網站&lt;/figcaption&gt;&lt;/figure&gt;&lt;p style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 32px auto; max-width: calc(750px); overflow-wrap: break-word; padding: 0px;&quot;&gt;更多截圖可以到&lt;a href=&quot;https://feralpacket.org/?p=817&quot; style=&quot;background-color: transparent; box-sizing: inherit; cursor: pointer; max-width: unset;&quot;&gt;作者網站&lt;/a&gt;看喔:)&lt;/p&gt;&lt;p style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 32px auto; max-width: calc(750px); overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;2.NOTEPAD++&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 32px auto; max-width: calc(750px); overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;給notepad++用的顯示不同網路設備 config 的語法 （ Syntax Highlight ）&lt;/span&gt;下載：&lt;/p&gt;&lt;p style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 32px auto; max-width: calc(750px); overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;a href=&quot;https://github.com/click0/npp-udl&quot; style=&quot;background-color: transparent; box-sizing: inherit; cursor: pointer; max-width: unset;&quot;&gt;https://github.com/click0/npp-udl&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 32px auto; max-width: calc(750px); overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;＃安裝：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 32px auto; max-width: calc(750px); overflow-wrap: break-word; padding: 0px;&quot;&gt;解壓縮後,抓下來把要用的 xml 丟到：&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 32px auto; max-width: calc(750px); overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;C:\Users\{​使用者名稱}​\AppData\Roaming\Notepad++\userDefineLangs&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;&lt;/span&gt;1.然後再開啟&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;notepad++&amp;nbsp;&lt;/span&gt;,&lt;/p&gt;&lt;p style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 32px auto; max-width: calc(750px); overflow-wrap: break-word; padding: 0px;&quot;&gt;2. 跟需要的config 檔案&lt;/p&gt;&lt;p style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 32px auto; max-width: calc(750px); overflow-wrap: break-word; padding: 0px;&quot;&gt;3.至&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;語言 &amp;gt; 選擇需要的設備語言 (如 Junos , iOS)&lt;/span&gt;&lt;/p&gt;&lt;figure class=&quot;wp-block-image size-large&quot; style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 32px auto; max-width: calc(750px); padding: 0px; text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-516&quot; data-attachment-id=&quot;516&quot; data-comments-opened=&quot;1&quot; data-image-caption=&quot;&quot; data-image-description=&quot;&quot; data-image-meta=&quot;{&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;}&quot; data-image-title=&quot;image&quot; data-large-file=&quot;https://chingfengwang.files.wordpress.com/2020/12/image.png?w=240&quot; data-medium-file=&quot;https://chingfengwang.files.wordpress.com/2020/12/image.png?w=103&quot; data-orig-file=&quot;https://chingfengwang.files.wordpress.com/2020/12/image.png&quot; data-orig-size=&quot;240,700&quot; data-permalink=&quot;https://chingfengwang.com/image-25/&quot; sizes=&quot;(max-width: 240px) 100vw, 240px&quot; src=&quot;https://chingfengwang.files.wordpress.com/2020/12/image.png?w=240&quot; srcset=&quot;https://chingfengwang.files.wordpress.com/2020/12/image.png 240w, https://chingfengwang.files.wordpress.com/2020/12/image.png?w=51 51w&quot; style=&quot;border-style: none; box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom;&quot; /&gt;&lt;/figure&gt;&lt;h6 class=&quot;wp-block-heading&quot; style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; clear: both; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 1.15rem; line-height: 1.125; margin: 32px auto; max-width: calc(750px); padding: 0px;&quot;&gt;下面是作者範例的截圖:&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;&lt;em style=&quot;box-sizing: inherit; max-width: unset;&quot;&gt;(出處為作者github專案&amp;nbsp;&lt;a href=&quot;https://github.com/click0/npp-udl&quot; rel=&quot;noreferrer noopener&quot; style=&quot;background-color: transparent; box-sizing: inherit; cursor: pointer; max-width: unset; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;https://github.com/click0/npp-udl&lt;/a&gt;&amp;nbsp;)&lt;/em&gt;&lt;/h6&gt;&lt;p style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 32px auto; max-width: calc(750px); overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;/p&gt;&lt;ul style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: border-box; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 32px auto; max-width: calc(750px); padding: 0px 0px 0px 32px;&quot;&gt;&lt;li style=&quot;-webkit-font-smoothing: antialiased; box-sizing: inherit; margin: 0px; max-width: unset; padding: 0px;&quot;&gt;Quagga config or ( Cisco IOS )&lt;/li&gt;&lt;/ul&gt;&lt;figure class=&quot;wp-block-image&quot; style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 0px auto; max-width: calc(750px); padding: 0px; text-align: center;&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/click0/npp-udl/master/Example%20screen/Cisco_IOS_and_quagga_UDL-npp.jpg&quot; rel=&quot;noreferrer noopener&quot; style=&quot;background-color: transparent; box-sizing: inherit; cursor: pointer; max-width: unset; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;&quot; scale=&quot;0&quot; src=&quot;https://raw.githubusercontent.com/click0/npp-udl/master/Example%20screen/Cisco_IOS_and_quagga_UDL-npp.jpg&quot; style=&quot;border-style: none; box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom;&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;&lt;ul style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: border-box; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 0px auto 32px; max-width: calc(750px); padding: 0px 0px 0px 32px;&quot;&gt;&lt;li style=&quot;-webkit-font-smoothing: antialiased; box-sizing: inherit; margin: 0px; max-width: unset; padding: 0px;&quot;&gt;AlliedTelesis switch config&lt;/li&gt;&lt;/ul&gt;&lt;figure class=&quot;wp-block-image&quot; style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 0px auto; max-width: calc(750px); padding: 0px; text-align: center;&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/click0/npp-udl/master/Example%20screen/AlliedTelesis_UDL-npp.jpg&quot; rel=&quot;noreferrer noopener&quot; style=&quot;background-color: transparent; box-sizing: inherit; cursor: pointer; max-width: unset; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;&quot; scale=&quot;0&quot; src=&quot;https://raw.githubusercontent.com/click0/npp-udl/master/Example%20screen/AlliedTelesis_UDL-npp.jpg&quot; style=&quot;border-style: none; box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom;&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;&lt;ul style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: border-box; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 0px auto 32px; max-width: calc(750px); padding: 0px 0px 0px 32px;&quot;&gt;&lt;li style=&quot;-webkit-font-smoothing: antialiased; box-sizing: inherit; margin: 0px; max-width: unset; padding: 0px;&quot;&gt;Mikrotik router config ( RouterOS )&lt;/li&gt;&lt;/ul&gt;&lt;figure class=&quot;wp-block-image&quot; style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 0px auto; max-width: calc(750px); padding: 0px; text-align: center;&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/click0/npp-udl/master/Example%20screen/RouterOS_UDL-npp.jpg&quot; rel=&quot;noreferrer noopener&quot; style=&quot;background-color: transparent; box-sizing: inherit; cursor: pointer; max-width: unset; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;&quot; scale=&quot;0&quot; src=&quot;https://raw.githubusercontent.com/click0/npp-udl/master/Example%20screen/RouterOS_UDL-npp.jpg&quot; style=&quot;border-style: none; box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom;&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;&lt;ul style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: border-box; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 0px auto 32px; max-width: calc(750px); padding: 0px 0px 0px 32px;&quot;&gt;&lt;li style=&quot;-webkit-font-smoothing: antialiased; box-sizing: inherit; margin: 0px; max-width: unset; padding: 0px;&quot;&gt;Juniper router config ( JunOS )&lt;/li&gt;&lt;/ul&gt;&lt;figure class=&quot;wp-block-image&quot; style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 0px auto; max-width: calc(750px); padding: 0px; text-align: center;&quot;&gt;&lt;a href=&quot;https://raw.githubusercontent.com/click0/npp-udl/master/Example%20screen/JunOS_UDL-npp.jpg&quot; rel=&quot;noreferrer noopener&quot; style=&quot;background-color: transparent; box-sizing: inherit; cursor: pointer; max-width: unset; text-decoration-line: none;&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;&quot; scale=&quot;0&quot; src=&quot;https://raw.githubusercontent.com/click0/npp-udl/master/Example%20screen/JunOS_UDL-npp.jpg&quot; style=&quot;border-style: none; box-sizing: border-box; height: auto; max-width: 100%; vertical-align: bottom;&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p style=&quot;-webkit-font-smoothing: antialiased; background-color: white; box-sizing: inherit; color: #303030; font-family: &amp;quot;PT Sans&amp;quot;, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 20px; margin: 0px auto 32px; max-width: calc(750px); overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;#參考資料:&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;1.&lt;a href=&quot;https://feralpacket.org/&quot; style=&quot;background-color: transparent; box-sizing: inherit; cursor: pointer; max-width: unset;&quot;&gt;feral packet&lt;/a&gt;&amp;nbsp;,&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;Regular Expressions For SecureCRT Keyword Highlighting – Update&lt;/span&gt;&amp;nbsp;,&amp;nbsp;&lt;a href=&quot;https://feralpacket.org/?p=817&quot; rel=&quot;noreferrer noopener&quot; style=&quot;background-color: transparent; box-sizing: inherit; cursor: pointer; max-width: unset;&quot; target=&quot;_blank&quot;&gt;&lt;em style=&quot;box-sizing: inherit; max-width: unset;&quot;&gt;https://feralpacket.org/?p=817&lt;/em&gt;&lt;/a&gt;&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;2.npp-udl,&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;Syntax Highlight Rules for Notepad++ Text Editor&lt;/span&gt;,&amp;nbsp;&lt;a href=&quot;https://github.com/click0/npp-udl&quot; rel=&quot;noreferrer noopener&quot; style=&quot;background-color: transparent; box-sizing: inherit; cursor: pointer; max-width: unset;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;box-sizing: inherit; font-weight: bolder; max-width: unset;&quot;&gt;&lt;em style=&quot;box-sizing: inherit; max-width: unset;&quot;&gt;https://github.com/click0/npp-udl&lt;/em&gt;&lt;/span&gt;&lt;/a&gt;&lt;br style=&quot;box-sizing: inherit; max-width: unset;&quot; /&gt;3.&lt;a href=&quot;https://npp-user-manual.org/docs/user-defined-language-system/&quot; rel=&quot;nofollow&quot; style=&quot;background-color: transparent; box-sizing: inherit; cursor: pointer; max-width: unset;&quot;&gt;https://npp-user-manual.org/docs/user-defined-language-system/&lt;/a&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/2705685674004128643/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2022/12/securecrt-notepad-keyword.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/2705685674004128643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/2705685674004128643'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2022/12/securecrt-notepad-keyword.html' title='SecureCRT &amp; Notepad++ 的 網路設備 關鍵字顯示 （Keyword Highlighting/Syntax highlighting）'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-8882740015511064009</id><published>2022-08-03T15:50:00.007+08:00</published><updated>2022-08-03T15:50:59.144+08:00</updated><title type='text'> Outlook-解除禁止存取可能不安全的附件</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;span style=&quot;background-color: white; color: #222222; font-family: 微軟正黑體; font-size: 18.6667px; letter-spacing: 1.33333px;&quot;&gt;當你 Outlook 中收到的郵件含有某些檔案格式的附件，會被 Outlook 判定為禁止存取(參考下圖)。要如何取消這個限制呢？&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: 微軟正黑體; font-size: 18.6667px; letter-spacing: 1.33333px; margin: 0px 0px 1em; padding: 0px;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;69&quot; loading=&quot;lazy&quot; src=&quot;https://pic.pimg.tw/isvincent/1313077196-ff7f46d7cc560a51e71d8144fc56fb01.png&quot; style=&quot;background-image: none; border: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: 微軟正黑體; font-size: 18.6667px; letter-spacing: 1.33333px; margin: 0px 0px 1em; padding: 0px;&quot;&gt;參考以下步驟：&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: 微軟正黑體; font-size: 18.6667px; letter-spacing: 1.33333px; margin: 0px 0px 1em; padding: 0px;&quot;&gt;1. 按一下&amp;nbsp;&lt;strong&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;WinKey+R&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;鍵，輸入「&lt;strong&gt;regedit&lt;/strong&gt;」，按一下&amp;nbsp;&lt;strong&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Enter&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;鍵。&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: 微軟正黑體; font-size: 18.6667px; letter-spacing: 1.33333px; margin: 0px 0px 1em; padding: 0px;&quot;&gt;2. 開啟以下路徑：(以 Outlook 365 為例)&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: 微軟正黑體; font-size: 18.6667px; letter-spacing: 1.33333px; margin: 0px 0px 1em; padding: 0px;&quot;&gt;HKEY_CURRENT_USER\Software\Microsoft\Office\&lt;strong&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;16.0&lt;/span&gt;&lt;/strong&gt;\Outlook\Security&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: 微軟正黑體; font-size: 18.6667px; letter-spacing: 1.33333px; margin: 0px 0px 1em; padding: 0px;&quot;&gt;&lt;span style=&quot;letter-spacing: 1.33333px;&quot;&gt;3. 在 Security 中建立一個&lt;/span&gt;&lt;span style=&quot;letter-spacing: 1.33333px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;letter-spacing: 1.33333px;&quot;&gt;Level1Remove&lt;/strong&gt;&lt;span style=&quot;letter-spacing: 1.33333px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;letter-spacing: 1.33333px;&quot;&gt;字串值。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: 微軟正黑體; font-size: 18.6667px; letter-spacing: 1.33333px; margin: 0px 0px 1em; padding: 0px;&quot;&gt;4. 點選 Level1Remove 字串值，數值資料中輸入想要開放的檔案格式(本例為.asp)，若有多種檔案格式要開放，則在各個副檔名中間加上「;」(分號)，例如：「.exe;.asp」。&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: 微軟正黑體; font-size: 18.6667px; letter-spacing: 1.33333px; margin: 0px 0px 1em; padding: 0px;&quot;&gt;5. 你必須關閉登錄編輯程式，重新開啟outlook,設定才會生效。&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: 微軟正黑體; font-size: 18.6667px; letter-spacing: 1.33333px; margin: 0px 0px 1em; padding: 0px;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;626&quot; loading=&quot;lazy&quot; src=&quot;https://pic.pimg.tw/isvincent/1313077197-d057dcfa503a05d3a5f83a2bda369ebd.png&quot; style=&quot;background-image: none; border: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;&quot; width=&quot;595&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: 微軟正黑體; font-size: 18.6667px; letter-spacing: 1.33333px; margin: 0px 0px 1em; padding: 0px;&quot;&gt;註：如果想要回復這些檔案格式禁止開啟，則只要刪除&amp;nbsp;&lt;strong&gt;Level1Remove&lt;/strong&gt;&amp;nbsp;字串值即可。&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/8882740015511064009/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2022/08/outlook.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/8882740015511064009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/8882740015511064009'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2022/08/outlook.html' title=' Outlook-解除禁止存取可能不安全的附件'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-9185394984922411477</id><published>2022-07-04T12:20:00.004+08:00</published><updated>2022-07-04T12:20:41.333+08:00</updated><title type='text'>iOS 16 Beta downgrade 備份恢復問題</title><content type='html'>&lt;p&gt;&amp;nbsp;Downgrade 回iOS15 要恢復備份時, iTunes 顯示版本不符所以不能恢復.&lt;br /&gt;&lt;br /&gt;這時只需要修改 %userprofile%\Apple\MobileSync\Backup\xxxxxxx\Info.plist&lt;br /&gt;&lt;br /&gt;把黃色部分改成15.0後存檔即可.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjyah7YNE2rLgggpOJ5OP5xLHGodqThwUSohC_nOKHucrr38lM9m5ppmwHiqJ7-7D4GdKSQXbJxJx3-kBp30ZOqcuwWUPA7ipGwE6NZDMcOUNGZDa4i1eJEQjoJoK-yiqYJhSx-cI8gOvKh87zguBM5HDThhjzURmh6YlmsH732_IYCn-b0nsH-cDHA&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;1299&quot; data-original-width=&quot;2075&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjyah7YNE2rLgggpOJ5OP5xLHGodqThwUSohC_nOKHucrr38lM9m5ppmwHiqJ7-7D4GdKSQXbJxJx3-kBp30ZOqcuwWUPA7ipGwE6NZDMcOUNGZDa4i1eJEQjoJoK-yiqYJhSx-cI8gOvKh87zguBM5HDThhjzURmh6YlmsH732_IYCn-b0nsH-cDHA&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/9185394984922411477/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2022/07/ios-16-beta-downgrade.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/9185394984922411477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/9185394984922411477'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2022/07/ios-16-beta-downgrade.html' title='iOS 16 Beta downgrade 備份恢復問題'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEjyah7YNE2rLgggpOJ5OP5xLHGodqThwUSohC_nOKHucrr38lM9m5ppmwHiqJ7-7D4GdKSQXbJxJx3-kBp30ZOqcuwWUPA7ipGwE6NZDMcOUNGZDa4i1eJEQjoJoK-yiqYJhSx-cI8gOvKh87zguBM5HDThhjzURmh6YlmsH732_IYCn-b0nsH-cDHA=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-2194255876286735881</id><published>2022-06-16T23:18:00.000+08:00</published><updated>2022-06-16T23:18:02.204+08:00</updated><title type='text'>How do I scroll in tmux?</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;span style=&quot;background-color: #e3e6e8; color: #232629; font-family: ui-monospace, &amp;quot;Cascadia Mono&amp;quot;, &amp;quot;Segoe UI Mono&amp;quot;, &amp;quot;Liberation Mono&amp;quot;, Menlo, Monaco, Consolas, monospace; font-size: 13px; white-space: pre-wrap;&quot;&gt;echo &quot;set -g mouse on&quot; &amp;gt;&amp;gt; ~/.tmux.conf

or 

&lt;/span&gt;&lt;kbd style=&quot;border-radius: var(--br-sm); border: 1px solid var(--black-300); box-shadow: rgba(12, 13, 14, 0.15) 0px 1px 1px, rgb(255, 255, 255) 0px 1px 0px 0px inset; box-sizing: inherit; color: #232629; display: inline-block; font-family: var(--ff-sans); font-size: var(--fs-fine); font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: var(--s-prose-line-height); margin: 0px 0.1em; overflow-wrap: break-word; padding: 0.1em 0.6em; text-shadow: 0 1px 0 var(--white); vertical-align: baseline; white-space: nowrap;&quot;&gt;Ctrl&lt;/kbd&gt;&lt;span style=&quot;background-color: white; color: #232629; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI Adjusted&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif; font-size: 15px;&quot;&gt;-&lt;/span&gt;&lt;kbd style=&quot;border-radius: var(--br-sm); border: 1px solid var(--black-300); box-shadow: rgba(12, 13, 14, 0.15) 0px 1px 1px, rgb(255, 255, 255) 0px 1px 0px 0px inset; box-sizing: inherit; color: #232629; display: inline-block; font-family: var(--ff-sans); font-size: var(--fs-fine); font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: var(--s-prose-line-height); margin: 0px 0.1em; overflow-wrap: break-word; padding: 0.1em 0.6em; text-shadow: 0 1px 0 var(--white); vertical-align: baseline; white-space: nowrap;&quot;&gt;b&lt;/kbd&gt;&lt;span style=&quot;background-color: white; color: #232629; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI Adjusted&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif; font-size: 15px;&quot;&gt;&amp;nbsp;then&amp;nbsp;&lt;/span&gt;&lt;kbd style=&quot;border-radius: var(--br-sm); border: 1px solid var(--black-300); box-shadow: rgba(12, 13, 14, 0.15) 0px 1px 1px, rgb(255, 255, 255) 0px 1px 0px 0px inset; box-sizing: inherit; color: #232629; display: inline-block; font-family: var(--ff-sans); font-size: var(--fs-fine); font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: var(--s-prose-line-height); margin: 0px 0.1em; overflow-wrap: break-word; padding: 0.1em 0.6em; text-shadow: 0 1px 0 var(--white); vertical-align: baseline; white-space: nowrap;&quot;&gt;[&lt;/kbd&gt;&lt;span style=&quot;background-color: white; color: #232629; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI Adjusted&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif; font-size: 15px;&quot;&gt;&amp;nbsp;then you can use your normal navigation keys to scroll around (eg.&amp;nbsp;&lt;/span&gt;&lt;kbd style=&quot;border-radius: var(--br-sm); border: 1px solid var(--black-300); box-shadow: rgba(12, 13, 14, 0.15) 0px 1px 1px, rgb(255, 255, 255) 0px 1px 0px 0px inset; box-sizing: inherit; color: #232629; display: inline-block; font-family: var(--ff-sans); font-size: var(--fs-fine); font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: var(--s-prose-line-height); margin: 0px 0.1em; overflow-wrap: break-word; padding: 0.1em 0.6em; text-shadow: 0 1px 0 var(--white); vertical-align: baseline; white-space: nowrap;&quot;&gt;Up Arrow&lt;/kbd&gt;&lt;span style=&quot;background-color: white; color: #232629; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI Adjusted&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif; font-size: 15px;&quot;&gt;&amp;nbsp;or&amp;nbsp;&lt;/span&gt;&lt;kbd style=&quot;border-radius: var(--br-sm); border: 1px solid var(--black-300); box-shadow: rgba(12, 13, 14, 0.15) 0px 1px 1px, rgb(255, 255, 255) 0px 1px 0px 0px inset; box-sizing: inherit; color: #232629; display: inline-block; font-family: var(--ff-sans); font-size: var(--fs-fine); font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: var(--s-prose-line-height); margin: 0px 0.1em; overflow-wrap: break-word; padding: 0.1em 0.6em; text-shadow: 0 1px 0 var(--white); vertical-align: baseline; white-space: nowrap;&quot;&gt;PgDn&lt;/kbd&gt;&lt;span style=&quot;background-color: white; color: #232629; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI Adjusted&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif; font-size: 15px;&quot;&gt;). Press&amp;nbsp;&lt;/span&gt;&lt;kbd style=&quot;border-radius: var(--br-sm); border: 1px solid var(--black-300); box-shadow: rgba(12, 13, 14, 0.15) 0px 1px 1px, rgb(255, 255, 255) 0px 1px 0px 0px inset; box-sizing: inherit; color: #232629; display: inline-block; font-family: var(--ff-sans); font-size: var(--fs-fine); font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: var(--s-prose-line-height); margin: 0px 0.1em; overflow-wrap: break-word; padding: 0.1em 0.6em; text-shadow: 0 1px 0 var(--white); vertical-align: baseline; white-space: nowrap;&quot;&gt;q&lt;/kbd&gt;&lt;span style=&quot;background-color: white; color: #232629; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI Adjusted&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif; font-size: 15px;&quot;&gt;&amp;nbsp;to quit scroll mode.&lt;/span&gt;&lt;span style=&quot;background-color: #e3e6e8; color: #232629; font-family: ui-monospace, &amp;quot;Cascadia Mono&amp;quot;, &amp;quot;Segoe UI Mono&amp;quot;, &amp;quot;Liberation Mono&amp;quot;, Menlo, Monaco, Consolas, monospace; font-size: 13px; white-space: pre-wrap;&quot;&gt;
&lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/2194255876286735881/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2022/06/how-do-i-scroll-in-tmux.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/2194255876286735881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/2194255876286735881'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2022/06/how-do-i-scroll-in-tmux.html' title='How do I scroll in tmux?'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-1664519061690344751</id><published>2022-04-25T12:23:00.003+08:00</published><updated>2022-04-25T12:23:27.322+08:00</updated><title type='text'>log可打timestamp 並直接顯示在螢幕的 termnal :  extraputty</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiQ3BwOw88OQMXKUxp2n5-Iuj2H3cmBW_2L7_AHesen6lEX98pNGkmVA8M6PtMR5qcox0HVKSVWRXL8fUyDmvHC93EQwjsfGsHeSkp5f7f34jsBgvSp6cUELkT_nwVcG-nBxWiOtqbQCqTgCFM93dqz7y5esmwXjP90Qm4v2-AGKZWFpAurfDnOCiae&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;978&quot; data-original-width=&quot;1626&quot; height=&quot;298&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiQ3BwOw88OQMXKUxp2n5-Iuj2H3cmBW_2L7_AHesen6lEX98pNGkmVA8M6PtMR5qcox0HVKSVWRXL8fUyDmvHC93EQwjsfGsHeSkp5f7f34jsBgvSp6cUELkT_nwVcG-nBxWiOtqbQCqTgCFM93dqz7y5esmwXjP90Qm4v2-AGKZWFpAurfDnOCiae=w496-h298&quot; width=&quot;496&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;載點:https://sourceforge.net/projects/extraputty/&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/1664519061690344751/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2022/04/logtimestamp-termnal-extraputty.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/1664519061690344751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/1664519061690344751'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2022/04/logtimestamp-termnal-extraputty.html' title='log可打timestamp 並直接顯示在螢幕的 termnal :  extraputty'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEiQ3BwOw88OQMXKUxp2n5-Iuj2H3cmBW_2L7_AHesen6lEX98pNGkmVA8M6PtMR5qcox0HVKSVWRXL8fUyDmvHC93EQwjsfGsHeSkp5f7f34jsBgvSp6cUELkT_nwVcG-nBxWiOtqbQCqTgCFM93dqz7y5esmwXjP90Qm4v2-AGKZWFpAurfDnOCiae=s72-w496-h298-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-6779761654456501855</id><published>2022-04-25T12:12:00.000+08:00</published><updated>2022-04-25T12:12:01.308+08:00</updated><title type='text'>主機板廠牌與型號/Windows 10序號  提取command</title><content type='html'>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 style=&quot;background-color: white; box-sizing: border-box; color: #222222; font-family: Hind; font-size: 30px; line-height: 1.4; margin: 0px 0px 15px; overflow-wrap: break-word;&quot;&gt;&lt;span id=&quot;只要輸入一行指令馬上出現-Windows-10序號&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;b style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: blue;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h2 style=&quot;background-color: white; box-sizing: border-box; color: #222222; font-family: Hind; font-size: 30px; line-height: 1.4; margin: 0px 0px 15px; overflow-wrap: break-word;&quot;&gt;&lt;span id=&quot;命令提示字元輸入一行指令，跳出主機板廠牌與型號&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;b style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: blue;&quot;&gt;主機板廠牌與型號&lt;br /&gt;&lt;div style=&quot;color: black; font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium; font-weight: 400;&quot;&gt;&lt;span style=&quot;box-sizing: border-box;&quot;&gt;&lt;b style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: blue;&quot;&gt;&lt;span style=&quot;color: #252324; font-family: Hind; font-size: 17px; font-weight: 400;&quot;&gt;直接開啟「&lt;/span&gt;&lt;strong style=&quot;box-sizing: border-box; color: #252324; font-family: Hind; font-size: 17px;&quot;&gt;Windows系統 →&amp;nbsp;&lt;a class=&quot;st_tag internal_tag &quot; data-adlink-host=&quot;iqmore.tw&quot; data-adlink-id=&quot;converly-190&quot; data-adlink-original=&quot;https://iqmore.tw/tag/%e5%91%bd%e4%bb%a4%e6%8f%90%e7%a4%ba%e5%ad%97%e5%85%83&quot; href=&quot;https://iqmore.tw/tag/%e5%91%bd%e4%bb%a4%e6%8f%90%e7%a4%ba%e5%ad%97%e5%85%83&quot; rel=&quot;tag&quot; style=&quot;background: transparent; box-sizing: border-box; color: #b02b33; outline: none; text-decoration-line: none; transition-duration: 0.2s;&quot; title=&quot;Posts tagged with 命令提示字元&quot;&gt;命令提示字元&lt;/a&gt;&lt;/strong&gt;&lt;span style=&quot;color: #252324; font-family: Hind; font-size: 17px; font-weight: 400;&quot;&gt;」&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;p style=&quot;color: black; font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium; font-weight: 400;&quot;&gt;&lt;span style=&quot;background-color: #f9f2f4; color: #c7254e; font-family: monospace, monospace; font-size: 15.3px;&quot;&gt;指令建議使用複製貼上：&lt;br /&gt;&lt;/span&gt;&lt;strong style=&quot;box-sizing: border-box; color: #252324; font-family: Hind; font-size: 17px;&quot;&gt;wmic baseboard get product,Manufacturer,version,serialnumber&lt;/strong&gt;&lt;/p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h2 style=&quot;background-color: white; box-sizing: border-box; color: #222222; font-family: Hind; font-size: 30px; line-height: 1.4; margin: 0px 0px 15px; overflow-wrap: break-word;&quot;&gt;&lt;span style=&quot;box-sizing: border-box;&quot;&gt;&lt;b style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: blue;&quot;&gt;&lt;a class=&quot;st_tag internal_tag &quot; data-adlink-host=&quot;iqmore.tw&quot; data-adlink-id=&quot;converly-189&quot; data-adlink-original=&quot;https://iqmore.tw/tag/windows&quot; href=&quot;https://iqmore.tw/tag/windows&quot; rel=&quot;tag&quot; style=&quot;background: transparent; box-sizing: border-box; color: #093969; text-decoration-line: none; transition-duration: 0.2s;&quot; title=&quot;Posts tagged with Windows&quot;&gt;Windows&lt;/a&gt;&amp;nbsp;10序號&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;&lt;div&gt;&lt;span style=&quot;box-sizing: border-box;&quot;&gt;&lt;b style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: blue;&quot;&gt;&lt;span style=&quot;background-color: white; color: #252324; font-family: Hind; font-size: 17px; font-weight: 400;&quot;&gt;直接開啟「&lt;/span&gt;&lt;strong style=&quot;background-color: white; box-sizing: border-box; color: #252324; font-family: Hind; font-size: 17px;&quot;&gt;Windows系統 →&amp;nbsp;&lt;a class=&quot;st_tag internal_tag &quot; data-adlink-host=&quot;iqmore.tw&quot; data-adlink-id=&quot;converly-190&quot; data-adlink-original=&quot;https://iqmore.tw/tag/%e5%91%bd%e4%bb%a4%e6%8f%90%e7%a4%ba%e5%ad%97%e5%85%83&quot; href=&quot;https://iqmore.tw/tag/%e5%91%bd%e4%bb%a4%e6%8f%90%e7%a4%ba%e5%ad%97%e5%85%83&quot; rel=&quot;tag&quot; style=&quot;background: transparent; box-sizing: border-box; color: #b02b33; outline: none; text-decoration-line: none; transition-duration: 0.2s;&quot; title=&quot;Posts tagged with 命令提示字元&quot;&gt;命令提示字元&lt;/a&gt;&lt;/strong&gt;&lt;span style=&quot;background-color: white; color: #252324; font-family: Hind; font-size: 17px; font-weight: 400;&quot;&gt;」&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;background-color: #f9f2f4; color: #c7254e; font-family: monospace, monospace; font-size: 15.3px;&quot;&gt;指令建議使用複製貼上：&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; color: #c7254e; font-family: monospace, monospace; font-size: 15.3px;&quot; /&gt;&lt;span style=&quot;background-color: #f9f2f4; color: #c7254e; font-family: monospace, monospace; font-size: 15.3px;&quot;&gt;wmic path softwarelicensingservice get OA3xOriginalProductKey&lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/6779761654456501855/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2022/04/windows-10-command.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/6779761654456501855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/6779761654456501855'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2022/04/windows-10-command.html' title='主機板廠牌與型號/Windows 10序號  提取command'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-5981632835022619939</id><published>2022-02-18T10:52:00.005+08:00</published><updated>2022-02-18T10:52:50.855+08:00</updated><title type='text'>PHY暫存器</title><content type='html'>&lt;p&gt;&lt;span style=&quot;background-color: white; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px;&quot;&gt;  PHY暫存器的地址空間為5位，從0到31最多可以定義32個暫存器（隨著晶片功能不斷增加，很多PHY晶片採用分頁技術來擴充套件地址空間以定義更多的暫存器），IEEE802.3定義了地址為0-15這16個暫存器的功能，地址16-31的暫存器留給晶片製造商自由定義，如下表所示。&lt;/span&gt;&lt;/p&gt;&lt;blockquote style=&quot;background: rgb(251, 251, 251); border-left: 5px solid rgb(229, 229, 229); box-sizing: border-box; color: #666666; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 1.16667rem; margin: 0px 0px 20px; padding: 10px 20px;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; line-height: 1.8; margin: 0px;&quot;&gt;（1）官方介紹請參考IEEE802.3標準的22.2.4 Management functions節。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;（2）上圖的B和E表示了，在特定介面下，暫存器是基本的還是擴充套件的。例如：MII介面下只有0和1暫存器是基本的，其它的是擴充套件的。&lt;em style=&quot;box-sizing: border-box;&quot;&gt;注意：所為擴充套件是指留給IEEE以後的擴充套件特性用，不是給PHY廠商的擴充套件，PHY廠商自定義的只能是16~31號暫存器&lt;/em&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;（3）在IEEE標準文件及某些PHY手冊中，某暫存器的位元(bit)用&lt;code style=&quot;box-sizing: border-box; font-family: monospace, monospace; font-size: 1em;&quot;&gt;X.y&lt;/code&gt;表示，如0.15表示第0暫存器的第15位。&lt;/p&gt;&lt;/blockquote&gt;&lt;h3 style=&quot;background-color: white; border-left: 4px solid rgb(26, 188, 156); box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 1.5rem; line-height: 1.2; margin: 30px 0px 20px; padding-left: 10px;&quot;&gt;&lt;a name=&quot;t7&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;&lt;a name=&quot;t7&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;&lt;a id=&quot;Control_Register_Register_0_96&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;Control Register (Register 0)&lt;/h3&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin: 0px 0px 1.66667rem;&quot;&gt;  暫存器0是PHY控制暫存器，通過Control Register可以對PHY的主要工作狀態進行設定。應該保證控制暫存器每個位的預設值，以便在沒有管理干預的情況下，上電或復位時PHY的初始狀態為正常操作狀態。Control Register的每一位完成的功能見下。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; list-style-position: outside; margin-bottom: 20px; margin-top: 0px; padding-left: 2em;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;Reset：通過將位0.15設定為邏輯1來完成復位PHY。 該操作應將狀態和控制暫存器設定為其預設狀態。 因此，此操作可能會改變PHY的內部狀態以及與PHY關聯的物理鏈路的狀態。&lt;em style=&quot;box-sizing: border-box;&quot;&gt;復位過程中Bit15保持為1，復位完成之後該位應該自動清零。&lt;/em&gt;在復位過程完成之前，PHY不需要接受對控制暫存器的寫入操作，並且在復位過程完成之前寫入0.15以外的控制暫存器位可能不起作用。 復位過程應在0.15位設定的0.5 s內完成。&lt;/li&gt;&lt;/ul&gt;&lt;blockquote style=&quot;background: rgb(251, 251, 251); border-left: 5px solid rgb(229, 229, 229); box-sizing: border-box; color: #666666; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 1.16667rem; margin: 0px 0px 20px; padding: 10px 20px;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; line-height: 1.8; margin: 0px;&quot;&gt;（1）一般要改變埠的工作模式（如速率、雙工、流控或協商資訊等）時，在設定完相應位置的暫存器之後，需要通過Reset位復位PHY來使配置生效。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;（2）該位元位的預設值為 0。&lt;/p&gt;&lt;/blockquote&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; list-style-position: outside; margin-bottom: 20px; margin-top: 0px; padding-left: 2em;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;Loopback：當位0.14被設定為邏輯1時，PHY應置於環回操作模式。 當位0.14置位時，PHY接收電路應與網路介質隔離，並且MII或GMII處的TX_EN斷言不應導致網路介質上的資料傳輸。 當位0.14置位時，PHY應接受來自MII或GMII傳送資料路徑的資料，並將其返回給MII或GMII接收資料路徑，以響應TX_EN的斷言。 當位0.14置位時，從斷言TX_EN到斷言RX_DV的延遲應小於512 BT。 當位0.14置位時，除非設定了位0.7，否則COL訊號應始終保持無效，在這種情況下，COL訊號的行為應如22.2.4.1.9所述。 清0.14位為零允許正常操作。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;  Loopback是一個除錯以及故障診斷中常用的功能，Bit14置1之後，PHY和外部MDI的連線在邏輯上將被斷開，從MAC經過MII/GMII（也可能是其他的MAC/PHY介面）傳送過來的資料將不會被髮送到MDI上，而是在PHY內部（一般在PCS）迴環到本埠的MII/GMII接收通道上，通過Loopback功能可以檢查MII/GMII以及PHY介面部分是否工作正常，對於埠不通的情況可用於故障定位。&lt;/li&gt;&lt;/ul&gt;&lt;blockquote style=&quot;background: rgb(251, 251, 251); border-left: 5px solid rgb(229, 229, 229); box-sizing: border-box; color: #666666; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 1.16667rem; margin: 0px 0px 20px; padding: 10px 20px;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; line-height: 1.8; margin: 0px;&quot;&gt;（1）需要注意的是，很多時候PHY設定Loopback後端口可能就Link down了，MAC無法向該埠發幀，這時就需要通過設定埠Force Link up才能使用Loopback功能。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;（2）該位元位的預設值為 0。&lt;/p&gt;&lt;/blockquote&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; list-style-position: outside; margin-bottom: 20px; margin-top: 0px; padding-left: 2em;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;Speed Selection：***Bit13和Bit6兩位聯合實現***對埠的速率控制功能。連結速度可以通過自動協商過程或手動速度選擇來選擇。 通過將位0.12清零來禁用自動協商時，允許手動速度選擇。&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;當禁用自動協商並將位0.6清除為邏輯0時，將位0.13設定為邏輯1將PHY配置為100 Mb / s操作，並將位0.13清除為邏輯0將PHY配置為10 Mb / s操作 。&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;當禁用自動協商並將位0.6設定為邏輯1時，將位0.13清零為邏輯0會選擇1000 Mb / s的操作。 將位0.6和0.13設定為邏輯1的組合保留用於未來的標準化。&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;當使能自動協商時，可以讀取或寫入位0.6和0.13，但位0.6和位0.13的狀態對鏈路配置沒有影響，位0.6和位0.13不需要反映當它被讀取時連結。&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin: 0px 0px 1.66667rem;&quot;&gt;  如果PHY通過位元1.15：9和位元15.15：12報告它不能工作在所有速度時，則位元0.6和0.13的值應該與PHY可以操作的速度相對應。並且任何試圖將該位設定為無效的操作均將被忽略。&lt;/p&gt;&lt;blockquote style=&quot;background: rgb(251, 251, 251); border-left: 5px solid rgb(229, 229, 229); box-sizing: border-box; color: #666666; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 1.16667rem; margin: 0px 0px 20px; padding: 10px 20px;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; line-height: 1.8; margin: 0px;&quot;&gt;（1）對Speed Selection的修改設定，往往需要復位端口才能配置生效。因此在設定該位置的時候需要檢查自動協商的設定並通過Bit15復位埠。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;（2）位0.6和0.13的預設值是根據位1.15：9和15.15：12所指示的PHY可以操作的***最高資料速率***的編碼組合。&lt;/p&gt;&lt;/blockquote&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; list-style-position: outside; margin-bottom: 20px; margin-top: 0px; padding-left: 2em;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;Auto-Negotiation Enable：自動協商過程應通過將位0.12設定為邏輯1來啟用。 如果位0.12設定為邏輯1，則位0.13、0.8和0.6不應對鏈路配置和除了自動協商協議規定之外的站操作產生影響。 如果將位0.12清零為邏輯0，則無論鏈路配置和自動協商過程的先前狀態如何，位0.13、0.8和0.6都將確定鏈路配置。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;  如果PHY通過位1.3報告它缺乏執行自動協商的能力，則PHY應在位0.12返回零值。 如果PHY通過位1.3報告它缺乏執行自動協商的能力，則位0.12應該始終寫為0，並且任何嘗試將1寫入位0.12都應該被忽略。&lt;/li&gt;&lt;/ul&gt;&lt;blockquote style=&quot;background: rgb(251, 251, 251); border-left: 5px solid rgb(229, 229, 229); box-sizing: border-box; color: #666666; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 1.16667rem; margin: 0px 0px 20px; padding: 10px 20px;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; line-height: 1.8; margin: 0px;&quot;&gt;必須注意的是，對於1000BASE-T介面,自動協商必須開啟。&lt;/p&gt;&lt;/blockquote&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; list-style-position: outside; margin-bottom: 20px; margin-top: 0px; padding-left: 2em;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;Power Down：通過將位0.11設定為邏輯1，可以將PHY置於低功耗狀態。 清0.11位為零允許正常操作。 PHY在掉電狀態下的具體行為是特定實現的。 處於掉電狀態時，PHY應響應管理事務。 在轉換到掉電狀態期間和處於掉電狀態期間，PHY不應在MII或GMII上產生寄生訊號。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;  當位0.11或位0.10被設定為邏輯1時，PHY不需要滿足RX_CLK和TX_CLK訊號功能要求。 在位0.11和0.10清零後，PHY應在0.5 s內滿足22.2.2中定義的RX_CLK和TX_CLK訊號功能要求。&lt;/li&gt;&lt;/ul&gt;&lt;blockquote style=&quot;background: rgb(251, 251, 251); border-left: 5px solid rgb(229, 229, 229); box-sizing: border-box; color: #666666; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 1.16667rem; margin: 0px 0px 20px; padding: 10px 20px;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; line-height: 1.8; margin: 0px;&quot;&gt;（1）Power Down模式一般在軟體shut down埠的時候使用，需要注意的是埠從Power Down模式恢復，需要復位埠以保證埠可靠的連線。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;（2）該位的預設值為 0。&lt;/p&gt;&lt;/blockquote&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; list-style-position: outside; margin-bottom: 20px; margin-top: 0px; padding-left: 2em;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;Isolate：通過將位0.10設定為邏輯1，PHY可能被迫將其資料路徑與MII或GMII電隔離。 清零位0.10允許正常操作。 當PHY與MII或GMII隔離時，它不會響應TXD資料包和TX_EN，TX_ER、GTX_CLK的輸入。並且它的TX_CLK，RX_CLK，RX_DV，RX_ER，RXD資料包、COL和CRS輸出均應為高阻態。 當PHY與MII或GMII隔離時，它將響應管理事務（MDC/MDIO介面的訊號）。&lt;/li&gt;&lt;/ul&gt;&lt;blockquote style=&quot;background: rgb(251, 251, 251); border-left: 5px solid rgb(229, 229, 229); box-sizing: border-box; color: #666666; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 1.16667rem; margin: 0px 0px 20px; padding: 10px 20px;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; line-height: 1.8; margin: 0px;&quot;&gt;（1）IEEE802.3沒有對Isolate 時MDI介面的狀態進行規範，此時MDI端可能還在正常執行。Isolate在實際應用中並沒有用到。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;（2）由於目前很多百兆的PHY晶片其MAC介面主流的都是SMII/S3MII，8個埠的介面是相互關聯的，一個埠設定Isolate可能會影響其他埠的正常使用，因此在使用中注意不要隨意更改bit10的狀態。&lt;/p&gt;&lt;/blockquote&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; list-style-position: outside; margin-bottom: 20px; margin-top: 0px; padding-left: 2em;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;Restart Auto-Negotiation：如果PHY通過位1.3報告它缺乏執行自動協商的能力，或者如果自動協商被禁用，則PHY應在位0.9返回零值。 如果PHY通過位1.3報告它缺乏執行自動協商的能力，或者如果禁用了自動協商，則應將位0.9始終寫為0，並且任何嘗試將1寫入位0.9應被忽略。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;  Bit9置1將重新啟動埠的自動協商程序，當然前提是Auto-Negotiation Enable是使能的。&lt;/li&gt;&lt;/ul&gt;&lt;blockquote style=&quot;background: rgb(251, 251, 251); border-left: 5px solid rgb(229, 229, 229); box-sizing: border-box; color: #666666; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 1.16667rem; margin: 0px 0px 20px; padding: 10px 20px;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; line-height: 1.8; margin: 0px;&quot;&gt;一般在修改埠的自動協商能力資訊之後通過Bit9置1重新啟動自動協商來使埠按照新的配置建立link。&lt;/p&gt;&lt;/blockquote&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; list-style-position: outside; margin-bottom: 20px; margin-top: 0px; padding-left: 2em;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;Duplex Mode：可以通過自動協商過程或手動雙面選擇來選擇雙工模式。 通過將位0.12清零來禁用自動協商時，允許手動雙面選擇。&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;當禁用自動協商時，將位0.8設定為邏輯1將PHY配置為全雙工操作，並將位0.8清零以將邏輯0配置為用於半雙工操作的PHY。&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;當啟用自動協商時，可以讀取或寫入位0.8，但位0.8的狀態對鏈路配置沒有影響。&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin: 0px 0px 1.66667rem;&quot;&gt;  如果PHY通過位1.15：9和15.15：12報告它只能在一個雙工模式下工作，則位0.8的值應該與PHY可以工作的模式相對應，並且任何嘗試改變將該位0.8修改為無效指的操作應被忽略。&lt;/p&gt;&lt;blockquote style=&quot;background: rgb(251, 251, 251); border-left: 5px solid rgb(229, 229, 229); box-sizing: border-box; color: #666666; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 1.16667rem; margin: 0px 0px 20px; padding: 10px 20px;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; line-height: 1.8; margin: 0px;&quot;&gt;對Duplex Mode的修改配置也需要復位端口才能生效。&lt;/p&gt;&lt;/blockquote&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; list-style-position: outside; margin-bottom: 20px; margin-top: 0px; padding-left: 2em;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;Collision Test：衝突訊號（COL）測試開關。在需要對COL訊號進行測試時，可以通過Bit7置1，這時PHY將輸出一個COL脈衝以供測試。實際測試操作中也可以將埠配置為半雙工狀態，通過發幀衝突來測試COL訊號，因此該配置實用價值不大。&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;Unidirectional enable：如果PHY通過位元1.7報告它不具備編碼和傳輸來自媒體獨立介面的資料的能力，而不管PHY是否確定已建立有效鏈路，則PHY應在位元0.5中返回零值，並且 任何嘗試寫一個到位0.5應該被忽略。&lt;/li&gt;&lt;/ul&gt;&lt;h3 style=&quot;background-color: white; border-left: 4px solid rgb(26, 188, 156); box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 1.5rem; line-height: 1.2; margin: 30px 0px 20px; padding-left: 10px;&quot;&gt;&lt;a name=&quot;t8&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;&lt;a name=&quot;t8&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;&lt;a id=&quot;Status_register_145&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;Status register&lt;/h3&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin: 0px 0px 1.66667rem;&quot;&gt;  暫存器1是PHY狀態暫存器，主要包含PHY的狀態資訊，大多數bit的值都是由晶片廠家確定的，每一個bit的功能在表3種已有詳細說明。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;暫存器中各位的詳細說明如下：&lt;/p&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; list-style-position: outside; margin-bottom: 20px; margin-top: 0px; padding-left: 2em;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;100BASE-T4 ability：當讀為邏輯1時，位1.15指示PHY有能力使用100BASE-T4信令規範執行鏈路傳送和接收。 當讀為邏輯0時，位1.15表示PHY缺乏使用100BASE-T4信令規範執行鏈路傳送和接收的能力。&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;100BASE-X full duplex ability：當讀為邏輯1時，位1.14指示PHY有能力使用100BASE-X信令規範執行全雙工鏈路傳輸和接收。 當作為邏輯0讀取時，bit1.14表示PHY缺乏使用100BASE-X信令規範執行全雙工鏈路傳輸和接收的能力。&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;100BASE-X half duplex ability：當讀為邏輯1時，位1.13指示PHY有能力使用100BASE-X信令規範執行半雙工鏈路傳輸和接收。 當讀為邏輯0時，位1.13指示PHY缺乏使用100BASE-X信令規範執行半雙工鏈路傳輸和接收的能力。&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;&lt;em style=&quot;box-sizing: border-box;&quot;&gt;其他同類型的值意義基本與上面幾個相同：指示PHY所具有的工作模式能力，不再一一說明。&lt;/em&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;Unidirectional ability：當讀為邏輯1時，位1.7指示PHY具有編碼和傳輸來自媒體獨立介面的資料的能力，而不管PHY是否確定已建立有效鏈路。 當讀為邏輯0時，位1.7指示PHY只有在PHY確定已建立有效鏈路時才能從媒體獨立介面傳輸資料。&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;MF preamble suppression ability：當讀為邏輯1時，位1.6指示PHY能夠接受管理幀，而不管它們是否在22.2.4.5.2中描述的前導碼模式之前。 當讀為邏輯0時，位1.6指示PHY不能接受管理幀，除非它們之前是22.2.4.5.2中描述的前導碼模式。&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;Auto-Negotiation Complete：當讀為邏輯1時，位1.5指示自動協商過程已完成，並且由自動協商協議（條款28或條款37）實施的擴充套件暫存器的內容是有效的。 當讀為邏輯0時，位1.5指示自動協商過程尚未完成，並且擴充套件暫存器的內容由自動協商協議的當前狀態定義，或者為手動配置寫入。 如果自動協商通過清除位0.12禁用，則PHY應在位1.5返回零值。 如果PHY缺乏執行自動協商的能力，它還應在位1.5返回零值。&lt;/li&gt;&lt;/ul&gt;&lt;blockquote style=&quot;background: rgb(251, 251, 251); border-left: 5px solid rgb(229, 229, 229); box-sizing: border-box; color: #666666; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 1.16667rem; margin: 0px 0px 20px; padding: 10px 20px;&quot;&gt;&lt;p style=&quot;box-sizing: border-box; line-height: 1.8; margin: 0px;&quot;&gt;在除錯以及異常故障處理時，可以通過該位暫存器的狀態判斷AN是否成功，從而進一步的檢查AN相關的設定是否正確，或者晶片的AN功能是否正常等。&lt;/p&gt;&lt;/blockquote&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; list-style-position: outside; margin-bottom: 20px; margin-top: 0px; padding-left: 2em;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;Remote Fault：當讀為邏輯1時，位1.4表示檢測到遠端故障狀態。 故障型別以及故障檢測的標準和方法是PHY特定的。 遠端故障位必須使用鎖存功能來實現，以便發生遠端故障將導致遠端故障位置位，並保持置位狀態直至被​​清除。 每當通過管理介面讀取暫存器1時，遠端故障位應清零，並且還應通過PHY復位清零。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;  遠端錯誤指示位。Bit4=1代表連線對端（Link Partner）出錯，至於出錯的具體型別以及錯誤檢測機制在規範中並沒有定義，由PHY的製造商自由發揮，一般的廠商都會在其他的暫存器（Register16-31由廠商自行定義）指示比較詳細的錯誤型別。在與埠相關的故障查證中，Remote Fault是一個重要的指示資訊，通過互聯雙方的Remote Fault資訊（可能要加上其他的具體錯誤指示），可以幫助定位故障原因。&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;Auto-Negotiation ability：當讀為邏輯1時，位1.3指示PHY有能力執行自動協商。 當讀為邏輯0時，位1.3指示PHY缺乏執行自動協商的能力。&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;Link Status：當讀為邏輯1時，位1.2指示PHY已經確定已建立有效鏈路。 當作為邏輯0讀取時，位1.2指示該連結無效。 確定鏈路有效性的標準是PHY特定的。 鏈路狀態位應該使用鎖存功能來實現，以便發生鏈路故障情況將導致鏈路狀態位清零並保持清零，直到通過管理介面讀取。 此狀態指示旨在支援在30.5.1.1.4，aMediaAvailable中定義的管理屬性。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;  實際應用中一般都是通過Bit2來判斷埠的狀態。而且，一般的MAC晶片也是通過輪詢PHY的這個暫存器值來判斷埠的Link狀態的（這個過程可能有不同的名稱，比如BCM叫做Link Scan，而Marvell叫做PHY Polling。）如前所述，在AN Enable的情況下，Link Status的資訊只有在Auto-Negotiation Complete指示已經完成的情況下才是正確可靠的，否則有可能出錯。&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;Jabber Detect：當作為邏輯1讀取時，位1.1指示已經檢測到爆音條件。 此狀態指示旨在支援30.5.1.1.6中定義的管理屬性，aJabber和30.5.1.3.1 nJabber中定義的MAU通知。 檢測Jabber條件的標準是PHY特定的。 Jabber檢測位應該使用鎖存功能來實現，以便發生Jabber條件將導致Jabber檢測位置位，並保持置位狀態直至被​​清除。 每次通過管理介面讀取暫存器1時，Jabber檢測位應清零，並且還應通過PHY復位清零。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;  IEEE802.3對Jabber的解釋是“A condition wherein a station transmits for a period of time longer than the maximum permissible packet length, usually due to a fault condition”。這一位指示的是Link Partner傳送的時間超過了規定的最大長度。值得注意的是，Jabber Detect只有在10BASE-T模式下才有意義，100和1000M模式是沒有定義Jabber這一功能的。&lt;/li&gt;&lt;/ul&gt;&lt;h3 style=&quot;background-color: white; border-left: 4px solid rgb(26, 188, 156); box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 1.5rem; line-height: 1.2; margin: 30px 0px 20px; padding-left: 10px;&quot;&gt;&lt;a name=&quot;t9&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;&lt;a name=&quot;t9&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;&lt;a id=&quot;PHY_Identifier_Register_167&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;PHY Identifier Register&lt;/h3&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin: 0px 0px 1.66667rem;&quot;&gt;  暫存器2和3存放PHY晶片的型號程式碼，暫存器2(PHY ID1)為高16位，而暫存器3(PHY ID2)為低16位。由晶片製造商自行定義，實際應用中軟體通過讀取這兩個暫存器的內容可以識別PHY的型號和版本。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;  PHY識別符號應由由IEEE分配給PHY製造商的組織唯一識別符號（OUI）的（&lt;em style=&quot;box-sizing: border-box;&quot;&gt;只需要使用第3至第24位，共22位&lt;/em&gt;），加上6位製造商的型號以及4位製造商的修訂版編號組成。 PHY識別符號旨在提供足夠的資訊來支援30.1.2中所要求的oResourceTypeID物件。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;  OUI的第三位分配給位2.15，OUI的第四位分配給位2.14，依此類推。 位2.0包含OUI的第十八位。 位3.15包含OUI的第十九位，位3.10包含OUI的第二十四位。 位3.9包含製造商型號的MSB。 位3.4包含製造商型號的LSB。 位3.3包含製造商版本號的MSB，位3.0包含製造商版本號的LSB。具體如下圖所示：&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;h3 style=&quot;background-color: white; border-left: 4px solid rgb(26, 188, 156); box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 1.5rem; line-height: 1.2; margin: 30px 0px 20px; padding-left: 10px;&quot;&gt;&lt;a name=&quot;t10&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;&lt;a name=&quot;t10&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;&lt;a id=&quot;AutoNegotiation_Advertisement_Register_Register_4_RW_173&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;Auto-Negotiation Advertisement Register (Register 4) (R/W)&lt;/h3&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin: 0px 0px 1.66667rem;&quot;&gt;  暫存器4是自動協商的能力通告暫存器，在AN Enable的前提下（見暫存器0），埠根據該暫存器的相關配置將自動協商資訊通過FLP在MDI上進行通告。當AN配置為Disable狀態的時候，暫存器4的配置將不起作用，埠的工作模式由控制暫存器中的配置決定。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;  該暫存器包含PHY的通告能力，它們將在自動協商期間傳送給其連結夥伴。 基本頁的位定義在IEEE標準的28.2.1.2中定義。 上電時，在自動協商開始之前，該暫存器應具有以下預設配置：&lt;/p&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; list-style-position: outside; margin-bottom: 20px; margin-top: 0px; padding-left: 2em;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;Selector Field （4.4：0）：被設定為適當的程式碼，如IEEE標準的附件28A中所規定。&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;Reserved（4.14）：被設定為邏輯0。&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;Technology Ability Field（4.11：5）：&lt;em style=&quot;box-sizing: border-box;&quot;&gt;根據MII狀態暫存器（暫存器1）（1.15：11）中設定的值或等效值設定&lt;/em&gt;。 另見28.2.1.2.3和附件28D。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4 style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 18px; line-height: 1.1; margin-bottom: 10px; margin-top: 10px;&quot;&gt;&lt;a id=&quot;Link_codeword_encoding_182&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;Link codeword encoding（基本鏈路碼字）&lt;/h4&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin: 0px 0px 1.66667rem;&quot;&gt;  在FLP Burst內傳輸的基本鏈路程式碼字（基本頁面）應該傳達如圖28-7所示的編碼。 自動協商功能可以使用下一頁功能支援其他頁面。 下一頁交換中使用的連結程式碼字的編碼在28.2.3.4中定義。 在FLP Burst中，D0應該是第一個傳輸的位。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;h4 style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 18px; line-height: 1.1; margin-bottom: 10px; margin-top: 10px;&quot;&gt;&lt;a id=&quot;Next_Page_function_186&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;Next Page function&lt;/h4&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin: 0px 0px 1.66667rem;&quot;&gt;  下一頁功能使用標準的自動協商仲裁機制來允許交換任意的資料。 資料由可選的下一頁資訊攜帶，其遵循用於基本連結碼字的傳輸和確認過程。 定義了四種類型的下一頁編碼：訊息頁面，未格式化頁面，擴充套件訊息頁面和擴充套件的未格式化頁面。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;  關於該部分，具體見IEEE標準的28.2.3.4 Next Page function。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;  在IEEE標準中，Auto-Negotiation Advertisement Register中的各部分全部是在獨立章節中進行介紹的。具體如下：&lt;/p&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; list-style-position: outside; margin-bottom: 20px; margin-top: 0px; padding-left: 2em;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;Selector Field：選擇器欄位（S [4：0]）是一個5位寬的欄位，編碼32個可能的訊息。 鏈路碼字中的選擇器欄位S [4：0]應用於識別自動協商傳送的訊息的型別。 下表列出了可能傳送的訊息的型別。 隨著新訊息的發展，該表格將相應更新。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;未指定的組合保留供將來使用。 不會傳輸選擇器欄位的預留組合。***我們所接觸的乙太網PHY遵從IEEE802.3規範，Selector Field=0001，該區域不可隨意更改（很多PHY將此區域設計為只讀暫存器，以免被修改）***。&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;Technology Ability Field：技術能力欄位（A [6：0]）是一個7位寬的欄位，其中包含指示選擇器欄位值特定的支援技術的資訊。 這些位被對映到各個技術，以便能夠針對單個選擇器欄位值並行通告能力。 附錄28B.2和附件28D描述了IEEE 802.3選擇器的技術能力欄位編碼。 連結程式碼字中可能會公佈多種技術。 裝置應支援其宣傳的技術的資料服務能力。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;Extended Next Page：擴充套件下一頁（XNP）被編碼在基本鏈路碼字的位D12中。 擴充套件下一頁位指示本地裝置在設定為邏輯1時支援擴充套件下一頁的傳輸，並指示本地裝置在設定為邏輯0時不支援擴充套件下一頁。 Extended Next Page的使用與協商的資料速率，媒體或連結技術是正交的。 擴充套件下一頁位按照28.2.3.4中的擴充套件下一頁功能規範使用。&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;Next Page：無論選擇器欄位值還是連結碼字編碼，下一頁（NP）都在D15位編碼。 支援附加連結碼字編碼的傳輸和接收是可選的。 如果不支援Next Page功能，NP位應始終設定為邏輯0。 如果裝置實現下一頁功能並希望進行下一頁交換，則應將NP位設定為邏輯1。 裝置可以實現下一頁功能，並通過將NP位設定為邏輯0來選擇不參與下一頁交換。 下一頁功能在28.2.3.4中定義。&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; margin-bottom: 10px;&quot;&gt;Remote Fault：遠端故障（RF）編碼在基本鏈路碼字的位D13中。 預設值是邏輯零。 遠端故障位為傳輸簡單的故障資訊提供了一種標準的傳輸機制。 當自動協商通告暫存器（暫存器4）中的RF位設定為邏輯1時，傳送的基本鏈路碼字中的RF位被設定為邏輯1。 當接收到的基本鏈路程式碼字中的RF位被設定為邏輯1時，如果存在MII管理功能，則MII狀態暫存器（暫存器1）中的遠端故障位將被設定為邏輯1。&lt;/li&gt;&lt;/ul&gt;&lt;h3 style=&quot;background-color: white; border-left: 4px solid rgb(26, 188, 156); box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 1.5rem; line-height: 1.2; margin: 30px 0px 20px; padding-left: 10px;&quot;&gt;&lt;a name=&quot;t11&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;&lt;a name=&quot;t11&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;&lt;a id=&quot;AutoNegotiation_Link_Partner_ability_register_Register_5_RO_200&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;Auto-Negotiation Link Partner ability register (Register 5) (RO)&lt;/h3&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin: 0px 0px 1.66667rem;&quot;&gt;  暫存器5儲存的是本端PHY接收到的對端PHY所通告的埠能力，暫存器5的結構和暫存器4基本一致。&lt;/p&gt;&lt;h3 style=&quot;background-color: white; border-left: 4px solid rgb(26, 188, 156); box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 1.5rem; line-height: 1.2; margin: 30px 0px 20px; padding-left: 10px;&quot;&gt;&lt;a name=&quot;t12&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;&lt;a name=&quot;t12&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;&lt;a id=&quot;AutoNegotiation_Expansion_Register_Register_6_RO_203&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;Auto-Negotiation Expansion Register (Register 6) (RO)&lt;/h3&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin: 0px 0px 1.66667rem;&quot;&gt;  暫存器6儲存了PHY自動協商過程的異常資訊。從這個寄存其中我們可以獲取到Link Partner子否支援自動協商以及自動協商下一頁有沒有收到的資訊。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;h3 style=&quot;background-color: white; border-left: 4px solid rgb(26, 188, 156); box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 1.5rem; line-height: 1.2; margin: 30px 0px 20px; padding-left: 10px;&quot;&gt;&lt;a name=&quot;t13&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;&lt;a name=&quot;t13&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;&lt;a id=&quot;AutoNegotiation_Next_Page_transmit_register_Register_7_RW_207&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;Auto-Negotiation Next Page transmit register (Register 7) (R/W)&lt;/h3&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin: 0px 0px 1.66667rem;&quot;&gt;  自動協商下一頁傳送暫存器包含在支援下一頁功能時要傳送的下一頁連結碼字。 （見表28-6）內容在28.2.3.4中定義。 上電時，該暫存器應包含預設值2001H，該值表示訊息程式碼設定為Null訊息的訊息頁面。 該值可以由裝置希望傳輸的任何有效的下一頁訊息程式碼替換。 寫入該暫存器應將mr_next_page_loaded設定為true。&lt;br style=&quot;box-sizing: border-box;&quot; /&gt;&lt;/p&gt;&lt;h3 style=&quot;background-color: white; border-left: 4px solid rgb(26, 188, 156); box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 1.5rem; line-height: 1.2; margin: 30px 0px 20px; padding-left: 10px;&quot;&gt;&lt;a name=&quot;t14&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;&lt;a name=&quot;t14&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;&lt;a id=&quot;AutoNegotiation_Link_Partner_Received_Next_Page_register_Register_8_RO_211&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #1abc9c; transition: all 0.3s ease-out 0s;&quot;&gt;&lt;/a&gt;Auto-Negotiation Link Partner Received Next Page register (Register 8) (RO)&lt;/h3&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin: 0px 0px 1.66667rem;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin: 0px 0px 1.66667rem;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #262626; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans CN&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin: 0px 0px 1.66667rem;&quot;&gt;&lt;i&gt;https://blog.csdn.net/sternlycore/article/details/89065789&lt;/i&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/5981632835022619939/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2022/02/phy.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/5981632835022619939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/5981632835022619939'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2022/02/phy.html' title='PHY暫存器'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-2583095327720283489</id><published>2020-11-17T11:28:00.002+08:00</published><updated>2020-11-17T11:28:13.716+08:00</updated><title type='text'>GPON Type B保護</title><content type='html'>&lt;p&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;i&gt;from:https://blog.csdn.net/derek_yi/article/details/8743146&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;box-sizing: border-box; color: #4d4d4d; font-family: 宋体; font-size: 13px; line-height: 18px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;br /&gt;GPON TYPE B保護的組網圖如&lt;/span&gt;&lt;a href=&quot;http://localhost:7890/pages/AZB0315V/02/AZB0315V/02/resources/feature/feature_1080.html?ft=0&amp;amp;fe=10&amp;amp;hib=3.3.17.10.6&amp;amp;id=AZB0315V_02_10950#feature_1080__fig_feature108001&quot; style=&quot;box-sizing: border-box; color: #6795b5; cursor: pointer; font-family: 宋体; font-size: 13px; line-height: 18px; margin: 0px; outline: none; overflow-wrap: break-word; padding: 0px; text-decoration-line: none;&quot;&gt;圖1&lt;/a&gt;&lt;span style=&quot;box-sizing: border-box; color: #4d4d4d; font-family: 宋体; font-size: 13px; line-height: 18px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 0px;&quot;&gt;所示，相應的保護範圍包括OLT的主用和備用PON端口，主用和備用光纖。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #4d4d4d; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 26px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: 宋体; font-size: 13px; line-height: 18px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://img-my.csdn.net/uploads/201303/31/1364716333_2509.png&quot; style=&quot;border: 0px; box-sizing: border-box; cursor: zoom-in; height: auto; max-width: 100%; outline: none; overflow-wrap: break-word;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #4d4d4d; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 26px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR6gBuyVhidMxGMrMWqZO73kAoIiDgeSajBK_voET4EK5hVGf6CA_PKhxgJ-wERGSgkotVYl8WDF4jH-ja3jUTNVnnkyOryHttoLzRjtEcdjSRd3_MtHL6V_XPRIjNULZnKt1vyetLaCI/s413/1364716333_2509.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;189&quot; data-original-width=&quot;413&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR6gBuyVhidMxGMrMWqZO73kAoIiDgeSajBK_voET4EK5hVGf6CA_PKhxgJ-wERGSgkotVYl8WDF4jH-ja3jUTNVnnkyOryHttoLzRjtEcdjSRd3_MtHL6V_XPRIjNULZnKt1vyetLaCI/s320/1364716333_2509.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style=&quot;box-sizing: border-box; font-family: 宋体; font-size: 13px; line-height: 18px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot; /&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #4d4d4d; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 26px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: 宋体; font-size: 13px; line-height: 18px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; line-height: 18px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;場景一：PON口工作過程中主用光纖斷，如&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://localhost:7890/pages/AZB0315V/02/AZB0315V/02/resources/feature/feature_1080.html?ft=0&amp;amp;fe=10&amp;amp;hib=3.3.17.10.6&amp;amp;id=AZB0315V_02_10950#feature_1080__fig_feature108002&quot; style=&quot;box-sizing: border-box; color: #6795b5; cursor: pointer; line-height: 18px; margin: 0px; outline: none; overflow-wrap: break-word; padding: 0px; text-decoration-line: none;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;圖2&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;box-sizing: border-box; line-height: 18px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;所示。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #4d4d4d; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 26px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: 宋体; font-size: 13px; line-height: 18px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; line-height: 18px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZN4LlGn289fQ0QR3RJzJ0c1RIE-ksDHyYGpbs0LpLLQ_rzhnyr-Z2V-rtRwwu4szZnOuDdPxIJYEUG1Fh9F3W1oiNVIiLomZEb7g_u2jAi1m-l7g7Evkd3hpnwHVPXRXH7USx187GAPs/s413/1364716365_8646.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;189&quot; data-original-width=&quot;413&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZN4LlGn289fQ0QR3RJzJ0c1RIE-ksDHyYGpbs0LpLLQ_rzhnyr-Z2V-rtRwwu4szZnOuDdPxIJYEUG1Fh9F3W1oiNVIiLomZEb7g_u2jAi1m-l7g7Evkd3hpnwHVPXRXH7USx187GAPs/s320/1364716365_8646.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #4d4d4d; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 26px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: 宋体; font-size: 13px; line-height: 18px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://img-my.csdn.net/uploads/201303/31/1364716365_8646.png&quot; style=&quot;border: 0px; box-sizing: border-box; cursor: zoom-in; height: auto; max-width: 100%; outline: none; overflow-wrap: break-word;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #4d4d4d; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 26px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: 宋体; font-size: 13px; line-height: 18px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;Standby PON口在進入Standby狀態後，啟動上行光信號檢測功能。&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot; /&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;Active PON口檢測到LOS告警（主用光纖斷引起的LOS告警），立即關閉主用GPON端口光模塊發送功能。&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot; /&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;Standby PON口檢測到主用PON口LOS告警，打開GPON端口光模塊發送功能並進行ONU測試操作。&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot; /&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;如果Standby PON口光纖正常，並發現ONU，便上報端口LOS恢復告警。&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot; /&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;Active PON口切換為Standby狀態，並啟動上行光檢測功能。&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;Standby PON口被設置為Active狀態。&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;至此倒換處理過程結束。&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #4d4d4d; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 26px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: 宋体; font-size: 13px; line-height: 18px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #4d4d4d; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 26px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: 宋体; font-size: 13px; line-height: 18px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; line-height: 18px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;場景二：PON口相關聯的ONU全部離線，如&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://localhost:7890/pages/AZB0315V/02/AZB0315V/02/resources/feature/feature_1080.html?ft=0&amp;amp;fe=10&amp;amp;hib=3.3.17.10.6&amp;amp;id=AZB0315V_02_10950#feature_1080__fig_feature108003&quot; style=&quot;box-sizing: border-box; color: #6795b5; cursor: pointer; line-height: 18px; margin: 0px; outline: none; overflow-wrap: break-word; padding: 0px; text-decoration-line: none;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;圖3&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;box-sizing: border-box; line-height: 18px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;所示。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #4d4d4d; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 26px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: 宋体; font-size: 13px; line-height: 18px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; line-height: 18px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMl_mDoHhNimdN-F5ot9iI6sT4Gt1nrVmBvBqds48lnSkQ5-AVG1mrfaiFgsYvJWCai_7B5EmB63Ut0W10ueG_Szuzwdd5enE2ZLnyOwTkeGIy1HpY2V0cBSZHYWwFH8hT2sGE_kXeL00/s413/1364716390_4509.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;189&quot; data-original-width=&quot;413&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMl_mDoHhNimdN-F5ot9iI6sT4Gt1nrVmBvBqds48lnSkQ5-AVG1mrfaiFgsYvJWCai_7B5EmB63Ut0W10ueG_Szuzwdd5enE2ZLnyOwTkeGIy1HpY2V0cBSZHYWwFH8hT2sGE_kXeL00/s320/1364716390_4509.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #4d4d4d; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 26px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: 宋体; font-size: 13px; line-height: 18px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://img-my.csdn.net/uploads/201303/31/1364716390_4509.png&quot; style=&quot;border: 0px; box-sizing: border-box; cursor: zoom-in; height: auto; max-width: 100%; outline: none; overflow-wrap: break-word;&quot; /&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #4d4d4d; font-family: -apple-system, &amp;quot;SF UI Text&amp;quot;, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif, SimHei, SimSun; font-size: 16px; line-height: 26px !important; margin: 0px 0px 16px; outline: 0px; overflow-wrap: break-word; overflow: auto hidden; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-family: 宋体; font-size: 13px; line-height: 18px; margin: 0px; outline: 0px; overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;Standby PON口在進入Standby狀態後，啟動上行光信號檢測功能。&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot; /&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;Active PON口檢測到LOS告警（所有ONU全部離線引起的LOS告警），立即關閉GPON端口光模塊發送功能。&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot; /&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;Standby PON口檢測到主用PON口LOS告警，打開GPON端口光模塊發送功能並進行ONU測試操作。&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot; /&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;由於PON口下沒有ONU在線，設備會一直進行主用端口與備用端口的循環檢測，直到有ONU上線。&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word;&quot; /&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; outline: 0px; overflow-wrap: break-word; vertical-align: inherit;&quot;&gt;當ONU上線的時候，PON端口沒有進行倒換。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/2583095327720283489/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2020/11/gpon-type-b.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/2583095327720283489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/2583095327720283489'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2020/11/gpon-type-b.html' title='GPON Type B保護'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR6gBuyVhidMxGMrMWqZO73kAoIiDgeSajBK_voET4EK5hVGf6CA_PKhxgJ-wERGSgkotVYl8WDF4jH-ja3jUTNVnnkyOryHttoLzRjtEcdjSRd3_MtHL6V_XPRIjNULZnKt1vyetLaCI/s72-c/1364716333_2509.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-1835016455193883044</id><published>2020-11-10T11:42:00.000+08:00</published><updated>2020-11-10T11:42:07.781+08:00</updated><title type='text'>MACsec on Linux</title><content type='html'>&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&amp;nbsp;from&amp;nbsp;https://nextheader.net/2016/10/14/macsec-on-linux/&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;Starting with kernel 4.6,&amp;nbsp;&lt;a href=&quot;https://kernelnewbies.org/Linux_4.6#head-8b8146ce3054d61fae7f5e2dd5331488d0809031&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #135995; text-decoration-line: none;&quot;&gt;support for MACsec has been added in Linux&lt;/a&gt;&amp;nbsp;so it won’t be needed to use a release candidate to test this feature.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;There are two ways to implement MACsec:&lt;/p&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; margin-bottom: 10px; margin-top: 0px; padding-left: 15px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; padding-bottom: 0.3em; padding-top: 0.3em;&quot;&gt;manually configure secure channel(SC), security association(SA) and the keys(this is what we are going to see)&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; padding-bottom: 0.3em; padding-top: 0.3em;&quot;&gt;use dot1x with MACsec extensions that allows dynamic discovery of MACsec peers, SA and SC setup, key generation and distribution&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;This is the topology that is being used to demonstrate most of the implementation of MACsec on Linux and the purpose is to have connectivity between the two hosts using MACsec.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&lt;img alt=&quot;linux_macsec_single&quot; class=&quot;aligncenter size-large wp-image-864&quot; height=&quot;330&quot; sizes=&quot;(max-width: 1024px) 100vw, 1024px&quot; src=&quot;https://nextheader.net/wp/wp-content/uploads/2016/10/linux_macsec_single-1024x330.png&quot; srcset=&quot;https://nextheader.net/wp/wp-content/uploads/2016/10/linux_macsec_single-1024x330.png 1024w, https://nextheader.net/wp/wp-content/uploads/2016/10/linux_macsec_single-300x97.png 300w, https://nextheader.net/wp/wp-content/uploads/2016/10/linux_macsec_single-768x248.png 768w, https://nextheader.net/wp/wp-content/uploads/2016/10/linux_macsec_single.png 1346w&quot; style=&quot;border: none; box-sizing: border-box; display: block; height: auto; margin: 0.3rem auto 2rem; max-width: 100%; vertical-align: middle;&quot; width=&quot;1024&quot; /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&lt;span id=&quot;more-861&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;Between the two hosts there is a L2VPN that is provided by the QFX10K switches.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;I won’t discuss how to set up the L2VPN as we already did this several times, one example being&amp;nbsp;&lt;a href=&quot;https://nextheader.net/2016/10/05/l2circuit-for-l2-protocol-tunneling/&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #135995; text-decoration-line: none;&quot;&gt;L2circuit for L2 protocol tunneling&lt;/a&gt;.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;On top of this, we want to have additional security at Layer 2 between the two Linux hosts, hence MACsec is the suitable option here.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;There are few prerequisites for running MACsec on Linux. I won’t mention here that you need a kernel that supports MACsec:&lt;/p&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; margin-bottom: 10px; margin-top: 0px; padding-left: 15px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; padding-bottom: 0.3em; padding-top: 0.3em;&quot;&gt;add the macsec module in kernel&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; padding-bottom: 0.3em; padding-top: 0.3em;&quot;&gt;install the latest version of iproute2&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;This is how you perform these two operations&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; color: #333333; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; white-space: pre-wrap; word-break: break-all;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;git clone git://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;cd iproute2/&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;./configure&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;make&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;make install&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;modprobe macsec&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;So let’s move further with the configuration.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;The required steps to configure MACsec are the following:&lt;/p&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; margin-bottom: 10px; margin-top: 0px; padding-left: 15px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; padding-bottom: 0.3em; padding-top: 0.3em;&quot;&gt;create a MACsec device on the physical link over the traffic will be received and sent&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; padding-bottom: 0.3em; padding-top: 0.3em;&quot;&gt;configure a secure association on the MACsec device&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; padding-bottom: 0.3em; padding-top: 0.3em;&quot;&gt;configure a receive channel(you will need to use the peer MAC address as parameter)&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; padding-bottom: 0.3em; padding-top: 0.3em;&quot;&gt;configure a receive association(you will need to use the peer MAC address as parameter)&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;First we need to know the MAC addresses of the two hosts between which MACsec will be configured. Each host needs to know from what MAC address will receive protected traffic.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;This is UBUNTU-1:&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; color: #333333; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; white-space: pre-wrap; word-break: break-all;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;root@UBUNTU-1:~# ifconfig eth1&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;eth1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Link encap:Ethernet&amp;nbsp; HWaddr 56:68:a6:6f:08:d1&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; inet6 addr: fe80::5468:a6ff:fe6f:8d1/64 Scope:Link&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UP BROADCAST RUNNING MULTICAST&amp;nbsp; MTU:1500&amp;nbsp; Metric:1&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RX packets:114 errors:2 dropped:91 overruns:0 frame:2&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TX packets:158 errors:0 dropped:0 overruns:0 carrier:0&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; collisions:0 txqueuelen:1000&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RX bytes:30957 (30.9 KB)&amp;nbsp; TX bytes:26724 (26.7 KB)&lt;/span&gt;

&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;root@UBUNTU-1:~#&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;And this is UBUNTU-2:&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; color: #333333; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; white-space: pre-wrap; word-break: break-all;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;root@UBUNTU-2:~# ifconfig eth1&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;eth1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Link encap:Ethernet&amp;nbsp; HWaddr 56:68:a6:6f:08:d6&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; inet6 addr: fe80::5468:a6ff:fe6f:8d6/64 Scope:Link&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UP BROADCAST RUNNING MULTICAST&amp;nbsp; MTU:1500&amp;nbsp; Metric:1&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RX packets:63 errors:2 dropped:36 overruns:0 frame:2&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TX packets:163 errors:0 dropped:0 overruns:0 carrier:0&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; collisions:0 txqueuelen:1000&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RX bytes:15079 (15.0 KB)&amp;nbsp; TX bytes:27392 (27.3 KB)&lt;/span&gt;

&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;root@UBUNTU-2:~#&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;Let’s see the configuration for UBUNTU-1(the last two commands are also adding an IP address on the newly created interface and bring it up so we can test later on the IP reachability between the hosts):&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; color: #333333; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; white-space: pre-wrap; word-break: break-all;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: blue;&quot;&gt;ip link add link eth1 macsec0 type macsec&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;Creates the MACsec device on eth1 interface&lt;/p&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; color: #333333; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; white-space: pre-wrap; word-break: break-all;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: blue;&quot;&gt;ip macsec add macsec0 tx sa 0 pn 1 on key 01 12345678901234567890123456789012&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;Configure the transmit secure association, the packet number used as the start ID for the packets sent through this SA and the key.&lt;/p&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; color: #333333; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; white-space: pre-wrap; word-break: break-all;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: blue;&quot;&gt;ip macsec add macsec0 rx address 56:68:a5:c2:37:76 port 1&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: blue;&quot;&gt;ip macsec add macsec0 rx address 56:68:a5:c2:37:76 port 1 sa 0 pn 1 on key 02 09876543210987654321098765432109&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;Configure the receive channel and receive association based on the peer MAC address, the port number, the first packet number expected and the key.&lt;/p&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; color: #333333; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; white-space: pre-wrap; word-break: break-all;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: blue;&quot;&gt;ip link set dev macsec0 up&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: blue;&quot;&gt;ifconfig macsec0 10.10.12.1/24&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;These two bring up the interface and configure an IP address on macsec0 interface.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;Remember that the transmit SA key has to match the peer’s receive SA key and the other way around.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;And this is the configuration for UBUNTU-2:&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; color: #333333; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; white-space: pre-wrap; word-break: break-all;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: blue;&quot;&gt;ip link add link eth1 macsec0 type macsec&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: blue;&quot;&gt;ip macsec add macsec0 tx sa 0 pn 1 on key 02 09876543210987654321098765432109&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: blue;&quot;&gt;ip macsec add macsec0 rx address 56:68:a5:c2:4c:14 port 1&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: blue;&quot;&gt;ip macsec add macsec0 rx address 56:68:a5:c2:4c:14 port 1 sa 0 pn 1 on key 01 12345678901234567890123456789012&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: blue;&quot;&gt;ip link set dev macsec0 up&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: blue;&quot;&gt;ifconfig macsec0 10.10.12.2/24&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;Once the configuration is applied on both sides, you can check the MACsec configuration:&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; color: #333333; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; white-space: pre-wrap; word-break: break-all;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;root@UBUNTU-1:~# ip macsec show&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;8: macsec0: protect on validate strict sc off sa off encrypt off send_sci on end_station off scb off replay off&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cipher suite: GCM-AES-128, using ICV length 16&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TXSC: 5668a5c24c140001 on SA 0&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0: PN 12, state on, key 12345678901234567890123456789012&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RXSC: 5668a5c237760001, state on&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0: PN 12, state on, key 09876543210987654321098765432109&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;root@UBUNTU-1:~#&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;As you can see the traffic is authenticated and encrypted by default using AES-GCM-128.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;From the above output, some packets protected by MACsec exited and entered this device(“PN 12” shows this, we started at 1).&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;Let’s send some packets between the two hosts:&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; color: #333333; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; white-space: pre-wrap; word-break: break-all;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;root@UBUNTU-1:~# ping 10.10.12.2 -c 3&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;PING 10.10.12.2 (10.10.12.2) 56(84) bytes of data.&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;64 bytes from 10.10.12.2: icmp_seq=1 ttl=64 time=24.3 ms&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;64 bytes from 10.10.12.2: icmp_seq=2 ttl=64 time=20.8 ms&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;64 bytes from 10.10.12.2: icmp_seq=3 ttl=64 time=19.3 ms&lt;/span&gt;

&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;--- 10.10.12.2 ping statistics ---&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;3 packets transmitted, 3 received, 0% packet loss, time 2003ms&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;rtt min/avg/max/mdev = 19.367/21.533/24.388/2.106 ms&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;root@UBUNTU-1:~# ip macsec show&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;8: macsec0: protect on validate strict sc off sa off encrypt off send_sci on end_station off scb off replay off&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cipher suite: GCM-AES-128, using ICV length 16&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TXSC: 5668a5c24c140001 on SA 0&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0: PN 15, state on, key 12345678901234567890123456789012&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RXSC: 5668a5c237760001, state on&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0: PN 15, state on, key 09876543210987654321098765432109&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;root@UBUNTU-1:~#&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;As you can see, the packet number increased.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;You can also check detailed statistics about the MACsec traffic like this:&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; color: #333333; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; white-space: pre-wrap; word-break: break-all;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;root@UBUNTU-1:~# ip -s macsec show&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;8: macsec0: protect on validate strict sc off sa off encrypt off send_sci on end_station off scb off replay off&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cipher suite: GCM-AES-128, using ICV length 16&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TXSC: 5668a5c24c140001 on SA 0&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stats: OutPktsUntagged InPktsUntagged OutPktsTooLong InPktsNoTag InPktsBadTag InPktsUnknownSCI InPktsNoSCI InPktsOverrun&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stats: OutOctetsProtected OutOctetsEncrypted OutPktsProtected OutPktsEncrypted&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1572&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0: PN 15, state on, key 12345678901234567890123456789012&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OutPktsProtected OutPktsEncrypted&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RXSC: 5668a5c237760001, state on&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stats: InOctetsValidated InOctetsDecrypted InPktsUnchecked InPktsDelayed InPktsOK InPktsInvalid InPktsLate InPktsNotValid InPktsNotUsingSA InPktsUnusedSA&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 668&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0: PN 15, state on, key 09876543210987654321098765432109&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InPktsOK InPktsInvalid InPktsNotValid InPktsNotUsingSA InPktsUnusedSA&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;root@UBUNTU-1:~#&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;Two optional features that increase the security on MACsec traffic are encryption and replay protection.&lt;/p&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; margin-bottom: 10px; margin-top: 0px; padding-left: 15px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; padding-bottom: 0.3em; padding-top: 0.3em;&quot;&gt;Encryption – The original payload is encrypted and authenticated&lt;/li&gt;&lt;li style=&quot;box-sizing: border-box; padding-bottom: 0.3em; padding-top: 0.3em;&quot;&gt;Replay protection – The packet number of each packet that crossed the MACsec secured link is checked. If there is any packet that arrived out of sequence and the difference between the packet numbers is higher than the replay protection window size, the packet is dropped.&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;Let’s see how these are configured.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;First the encryption:&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; color: #333333; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; white-space: pre-wrap; word-break: break-all;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: blue;&quot;&gt;ip link set macsec0 type macsec encrypt on&lt;/span&gt;

&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;Remember that we were at PN 15. Let’s send another 3 packets using ping and then check the statistics:&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; color: #333333; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; white-space: pre-wrap; word-break: break-all;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;root@UBUNTU-1:~# ip macsec show&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;8: macsec0: protect on validate strict sc off sa off encrypt on send_sci on end_station off scb off replay off&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cipher suite: GCM-AES-128, using ICV length 16&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TXSC: 5668a5c24c140001 on SA 0&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0: PN 19, state on, key 12345678901234567890123456789012&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RXSC: 5668a5c237760001, state on&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0: PN 19, state on, key 09876543210987654321098765432109&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;root@UBUNTU-1:~# ip -s macsec show&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;8: macsec0: protect on validate strict sc off sa off encrypt on send_sci on end_station off scb off replay off&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cipher suite: GCM-AES-128, using ICV length 16&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TXSC: 5668a5c24c140001 on SA 0&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stats: OutPktsUntagged InPktsUntagged OutPktsTooLong InPktsNoTag InPktsBadTag InPktsUnknownSCI InPktsNoSCI InPktsOverrun&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 23&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stats: OutOctetsProtected OutOctetsEncrypted OutPktsProtected OutPktsEncrypted&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1572&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 464&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0: PN 19, state on, key 12345678901234567890123456789012&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OutPktsProtected OutPktsEncrypted&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RXSC: 5668a5c237760001, state on&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stats: InOctetsValidated InOctetsDecrypted InPktsUnchecked InPktsDelayed InPktsOK InPktsInvalid InPktsLate InPktsNotValid InPktsNotUsingSA InPktsUnusedSA&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 668&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 464&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0: PN 19, state on, key 09876543210987654321098765432109&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InPktsOK InPktsInvalid InPktsNotValid InPktsNotUsingSA InPktsUnusedSA&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;root@UBUNTU-1:~#&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;As you can see, we are now at PN 19, which means that actually there were 4 packets that were sent.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;Three of them were the ICMP packets and one of them was the ARP Request.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;The 4 packets have a total size of 464B. Let’s decompose the ICMP Request packet:&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;IP – 20B&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;ICMP – 64B&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;ICV – 16B&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;SecTag – 16B&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;Ethernet – 14&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;So a total of 130B and this means that 3 ICMP Request packets are 390B, which leave us 74B for the ARP Request packet which is broken down like this:&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;ARP – 28B&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;ICV – 16B&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;SecTag – 16B&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;Ethernet – 14&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;Actually doing a tcpdump on UBUNTU-2 while an ICMP Request/Reply was received/sent, you can see that the size is 130B:&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; color: #333333; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; white-space: pre-wrap; word-break: break-all;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;root@UBUNTU-2:~# tcpdump -i eth1&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;tcpdump: verbose output suppressed, use -v or -vv for full protocol decode&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;07:51:20.389014 56:68:a5:c2:4c:14 (oui Unknown) &amp;gt; 56:68:a5:c2:37:76 (oui Unknown), ethertype Unknown (0x88e5), length 130:&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;07:51:20.389190 56:68:a5:c2:37:76 (oui Unknown) &amp;gt; 56:68:a5:c2:4c:14 (oui Unknown), ethertype Unknown (0x88e5), length 130:&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;^C&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;2 packets captured&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;2 packets received by filter&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;0 packets dropped by kernel&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;root@UBUNTU-2:~#&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;You can also see the MACsec ether-type, 0x88e5.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;This is how you can enable the replay protection:&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; color: #333333; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; white-space: pre-wrap; word-break: break-all;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: blue;&quot;&gt;ip link set macsec0 type macsec replay on window 128&lt;/span&gt;

&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;You can see that encryption and replay protection are enabled by checking the MACsec configuration:&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;pre style=&quot;background-color: whitesmoke; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: border-box; color: #333333; font-family: Menlo, Monaco, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 13px; line-height: 1.42857; margin-bottom: 10px; margin-top: 0px; overflow-wrap: break-word; overflow: auto; padding: 9.5px; white-space: pre-wrap; word-break: break-all;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;root@UBUNTU-1:~# ip macsec show&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;8: macsec0: protect on validate strict sc off sa off &lt;span style=&quot;box-sizing: border-box; font-weight: 700;&quot;&gt;encrypt on&lt;/span&gt; send_sci on end_station off scb off &lt;span style=&quot;box-sizing: border-box; font-weight: 700;&quot;&gt;replay on window 128&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cipher suite: GCM-AES-128, using ICV length 16&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TXSC: 5668a5c24c140001 on SA 0&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0: PN 40, state on, key 12345678901234567890123456789012&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RXSC: 5668a5c237760001, state on&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0: PN 40, state on, key 09876543210987654321098765432109&lt;/span&gt;
&lt;span style=&quot;box-sizing: border-box; color: red;&quot;&gt;root@UBUNTU-1:~#&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;And this would be the basic configuration that you need to enable MACsec to protect the Layer 2 traffic.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;I also tried to enable MACsec on bond links(aggregated interfaces or port-channels how they are named in networking vendors terminology), but I wasn’t able to do it.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;In case of bond interfaces, the macsec devices are enslaved instead of the physical links and the macsec devices are created on the physical links. However, I wasn’t allowed to enslave the macsec devices in the bond for some reason.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;I hope you found this post useful.&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; line-height: 1.5em; margin: 1em 0px;&quot;&gt;References:&lt;/p&gt;&lt;ul style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: sans-serif; font-size: 15px; margin-bottom: 10px; margin-top: 0px; padding-left: 15px;&quot;&gt;&lt;li style=&quot;box-sizing: border-box; padding-bottom: 0.3em; padding-top: 0.3em;&quot;&gt;&lt;a href=&quot;http://www.netdevconf.org/1.1/proceedings/slides/dubroca-macsec-encryption-wire-lan.pdf&quot; style=&quot;background-color: transparent; box-sizing: border-box; color: #135995; text-decoration-line: none;&quot;&gt;MACsec – Encryption for the wired LAN&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/1835016455193883044/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2020/11/macsec-on-linux.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/1835016455193883044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/1835016455193883044'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2020/11/macsec-on-linux.html' title='MACsec on Linux'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-4971714449315160572</id><published>2020-09-18T11:00:00.000+08:00</published><updated>2020-09-18T11:00:09.081+08:00</updated><title type='text'>SSH 命令的三種代理功能（-L/-R/-D）</title><content type='html'>&lt;p&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&amp;nbsp;From:https://zhuanlan.zhihu.com/p/57630633&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 0px 0px 1.4em;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;ssh 命令除了登陸外還有三種代理功能：&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;background-color: white; color: #121212; display: table; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px; padding: 0px;&quot;&gt;&lt;li style=&quot;display: table-row; list-style: none;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;正向代理（-L）：相當於iptable 的port forwarding&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;display: table-row; list-style: none;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;反向代理（-R）：相當於frp 或者ngrok&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;display: table-row; list-style: none;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;socks5 代理（-D）：相當於ss/ssr&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;如要長期高效的服務，應使用對應的專用軟件。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;如沒法安裝軟件，比如當你處在限制環境下想要訪問下某個不可達到的目標，或者某個臨時需求，那麼ssh 就是你的兜底方案。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;ztext-empty-paragraph&quot; style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: -0.8em 0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;font-weight: 600;&quot;&gt;正向代理：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;所謂“正向代理”就是在本地啟動端口，把本地端口數據轉發到遠端。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;用法1：遠程端口映射到其他機器&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;HostB 上啟動一個PortB 端口，映射到HostC:PortC 上，在HostB 上運行：&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;highlight&quot; style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1em 0px;&quot;&gt;&lt;pre style=&quot;background: rgb(246, 246, 246); border-radius: 4px; font-size: 0.9em; margin-bottom: 0px; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 0.88889em; word-break: normal;&quot;&gt;&lt;code class=&quot;language-bash&quot; style=&quot;background-color: inherit; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &amp;quot;Andale Mono&amp;quot;, &amp;quot;lucida console&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; margin: 0px; padding: 0px;&quot;&gt;HostB$ ssh -L 0.0.0.0:PortB:HostC:PortC user@HostC&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;這時訪問HostB:PortB 相當於訪問HostC:PortC（和iptable 的port-forwarding 類似）。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;用法2：本地端口通過跳板映射到其他機器&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;HostA 上啟動一個PortA 端口，通過HostB 轉發到HostC:PortC上，在HostA 上運行：&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;highlight&quot; style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1em 0px;&quot;&gt;&lt;pre style=&quot;background: rgb(246, 246, 246); border-radius: 4px; font-size: 0.9em; margin-bottom: 0px; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 0.88889em; word-break: normal;&quot;&gt;&lt;code class=&quot;language-bash&quot; style=&quot;background-color: inherit; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &amp;quot;Andale Mono&amp;quot;, &amp;quot;lucida console&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; margin: 0px; padding: 0px;&quot;&gt;HostA$ ssh -L 0.0.0.0:PortA:HostC:PortC  user@HostB&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;這時訪問HostA:PortA 相當於訪問HostC:PortC。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;兩種用法的區別是，第一種用法本地到跳板機HostB 的數據是明文的，而第二種用法一般本地就是HostA，訪問本地的PortA，數據被ssh 加密傳輸給HostB 又轉發給HostC:PortC 。&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;font-weight: 600;&quot;&gt;反向代理：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;所謂“反向代理”就是讓遠端啟動端口，把遠端端口數據轉發到本地。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;HostA 將自己可以訪問的HostB:PortB 暴露給外網服務器HostC:PortC，在HostA 上運行：&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;highlight&quot; style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1em 0px;&quot;&gt;&lt;pre style=&quot;background: rgb(246, 246, 246); border-radius: 4px; font-size: 0.9em; margin-bottom: 0px; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 0.88889em; word-break: normal;&quot;&gt;&lt;code class=&quot;language-bash&quot; style=&quot;background-color: inherit; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &amp;quot;Andale Mono&amp;quot;, &amp;quot;lucida console&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; margin: 0px; padding: 0px;&quot;&gt;HostA$ ssh -R HostC:PortC:HostB:PortB  user@HostC&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;那麼鏈接HostC:PortC 就相當於鏈接HostB:PortB。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;使用時需修改HostC 的/etc/ssh/sshd_config，添加：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;highlight&quot; style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1em 0px;&quot;&gt;&lt;pre style=&quot;background: rgb(246, 246, 246); border-radius: 4px; font-size: 0.9em; margin-bottom: 0px; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 0.88889em; word-break: normal;&quot;&gt;&lt;code class=&quot;language-apacheconf&quot; style=&quot;background-color: inherit; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &amp;quot;Andale Mono&amp;quot;, &amp;quot;lucida console&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; margin: 0px; padding: 0px;&quot;&gt;&lt;span class=&quot;nb&quot; style=&quot;color: #0084ff;&quot;&gt;GatewayPorts&lt;/span&gt; yes&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;相當於內網穿透，比如HostA 和HostB 是同一個內網下的兩台可以互相訪問的機器，HostC是外網跳板機，HostC不能訪問HostA，但是HostA 可以訪問HostC。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;那麼通過在內網HostA上運行&lt;/span&gt;&lt;code style=&quot;background-color: #f6f6f6; border-radius: 3px; font-family: Menlo, Monaco, Consolas, &amp;quot;Andale Mono&amp;quot;, &amp;quot;lucida console&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 0.9em; margin: 0px 2px; padding: 3px 4px;&quot;&gt;ssh -R&lt;/code&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;告訴HostC，創建PortC端口監聽，把該端口所有數據轉發給我（HostA），我會再轉發給同一個內網下的HostB:PortB。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;同內網下的HostA/HostB也可以是同一台機器，換句話說就是&lt;/span&gt;&lt;span style=&quot;font-weight: 600;&quot;&gt;內網HostA把自己可以訪問的端口暴露給了外網HostC。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;按照前文《&lt;/span&gt;&lt;a class=&quot;internal&quot; data-za-detail-view-id=&quot;1043&quot; href=&quot;https://zhuanlan.zhihu.com/p/57477087&quot; style=&quot;border-bottom: 1px solid grey; cursor: pointer; text-decoration-line: none;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;韋易笑：內網穿透：在公網訪問你家的NAS&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;》中，相當於再HostA上啟動了frpc，而再HostC上啟動了frps。&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;ztext-empty-paragraph&quot; style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: -0.8em 0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;font-weight: 600;&quot;&gt;本地socks5 代理&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;在HostA 的本地1080 端口啟動一個socks5 服務，通過本地socks5 代理的數據會通過ssh 鏈接先發送給HostB，再從HostB 轉發送給遠程主機：&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;highlight&quot; style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1em 0px;&quot;&gt;&lt;pre style=&quot;background: rgb(246, 246, 246); border-radius: 4px; font-size: 0.9em; margin-bottom: 0px; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 0.88889em; word-break: normal;&quot;&gt;&lt;code class=&quot;language-bash&quot; style=&quot;background-color: inherit; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &amp;quot;Andale Mono&amp;quot;, &amp;quot;lucida console&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; margin: 0px; padding: 0px;&quot;&gt;HostA$ ssh -D localhost:1080  HostB&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;那麼在HostA 上面，瀏覽器配置socks5 代理為127.0.0.1:1080，看網頁時就能把數據通過HostB 代理出去，類似ss/ssr 版本，只不過用ssh 來實現。&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;ztext-empty-paragraph&quot; style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: -0.8em 0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;font-weight: 600;&quot;&gt;使用優化&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;為了更好用一點，ssh後面還可以加上：&lt;/span&gt;&lt;code style=&quot;background-color: #f6f6f6; border-radius: 3px; font-family: Menlo, Monaco, Consolas, &amp;quot;Andale Mono&amp;quot;, &amp;quot;lucida console&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 0.9em; margin: 0px 2px; padding: 3px 4px;&quot;&gt;-CqTnN&lt;/code&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;參數，比如：&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;highlight&quot; style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1em 0px;&quot;&gt;&lt;pre style=&quot;background: rgb(246, 246, 246); border-radius: 4px; font-size: 0.9em; margin-bottom: 0px; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 0.88889em; word-break: normal;&quot;&gt;&lt;code class=&quot;language-bash&quot; style=&quot;background-color: inherit; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &amp;quot;Andale Mono&amp;quot;, &amp;quot;lucida console&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; margin: 0px; padding: 0px;&quot;&gt;$ ssh -CqTnN -L 0.0.0.0:PortA:HostC:PortC  user@HostB&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;其中&lt;/span&gt;&lt;code style=&quot;background-color: #f6f6f6; border-radius: 3px; font-family: Menlo, Monaco, Consolas, &amp;quot;Andale Mono&amp;quot;, &amp;quot;lucida console&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 0.9em; margin: 0px 2px; padding: 3px 4px;&quot;&gt;-C&lt;/code&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;為壓縮數據，&lt;/span&gt;&lt;code style=&quot;background-color: #f6f6f6; border-radius: 3px; font-family: Menlo, Monaco, Consolas, &amp;quot;Andale Mono&amp;quot;, &amp;quot;lucida console&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 0.9em; margin: 0px 2px; padding: 3px 4px;&quot;&gt;-q&lt;/code&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;安靜模式，&lt;/span&gt;&lt;code style=&quot;background-color: #f6f6f6; border-radius: 3px; font-family: Menlo, Monaco, Consolas, &amp;quot;Andale Mono&amp;quot;, &amp;quot;lucida console&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 0.9em; margin: 0px 2px; padding: 3px 4px;&quot;&gt;-T&lt;/code&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;禁止遠程分配終端，&lt;/span&gt;&lt;code style=&quot;background-color: #f6f6f6; border-radius: 3px; font-family: Menlo, Monaco, Consolas, &amp;quot;Andale Mono&amp;quot;, &amp;quot;lucida console&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 0.9em; margin: 0px 2px; padding: 3px 4px;&quot;&gt;-n&lt;/code&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;關閉標準輸入，&lt;/span&gt;&lt;code style=&quot;background-color: #f6f6f6; border-radius: 3px; font-family: Menlo, Monaco, Consolas, &amp;quot;Andale Mono&amp;quot;, &amp;quot;lucida console&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 0.9em; margin: 0px 2px; padding: 3px 4px;&quot;&gt;-N&lt;/code&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;不執行遠程命令。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;此外視需要還可以增加&lt;/span&gt;&lt;/span&gt;&lt;code style=&quot;background-color: #f6f6f6; border-radius: 3px; font-family: Menlo, Monaco, Consolas, &amp;quot;Andale Mono&amp;quot;, &amp;quot;lucida console&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 0.9em; margin: 0px 2px; padding: 3px 4px;&quot;&gt;-f&lt;/code&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;參數，把ssh放到後台運行。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;這些ssh 代理沒有短線重連功能，鏈接斷了命令就退出了，所以需要些腳本監控重啟，或者使用autossh 之類的工具保持鏈接。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;font-weight: 600;&quot;&gt;功能對比&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;正向代理（-L）的第一種用法可以用iptable 的port-forwarding 模擬，iptable 性能更好，但是需要root 權限，ssh -L 性能不好，但是正向代理花樣更多些。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;反向代理（-R）一般就作為沒有安裝frp/ngrok/shootback 時候的一種代替，但是數據傳輸的性能和穩定性當然frp 這些專用軟件更好。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;socks5 代理（-D）其實是可以代替ss/ssr 的，區別和上麵類似。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;所以要長久使用，推薦安裝對應軟件，臨時用一下ssh 挺順手。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;ztext-empty-paragraph&quot; style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: -0.8em 0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;--&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;補充下iptable的&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;background-color: #f6f6f6; border-radius: 3px; font-family: Menlo, Monaco, Consolas, &amp;quot;Andale Mono&amp;quot;, &amp;quot;lucida console&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 0.9em; margin: 0px 2px; padding: 3px 4px;&quot;&gt;port-forwarding&lt;/code&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;怎麼設置，十分管用的功能，兩個函數即可：&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;highlight&quot; style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1em 0px;&quot;&gt;&lt;pre style=&quot;background: rgb(246, 246, 246); border-radius: 4px; font-size: 0.9em; margin-bottom: 0px; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 0.88889em; word-break: normal;&quot;&gt;&lt;code class=&quot;language-bash&quot; style=&quot;background-color: inherit; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &amp;quot;Andale Mono&amp;quot;, &amp;quot;lucida console&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; margin: 0px; padding: 0px;&quot;&gt;&lt;span class=&quot;cp&quot; style=&quot;color: #999999; font-weight: 600;&quot;&gt;#! /bin/sh
&lt;/span&gt;&lt;span class=&quot;cp&quot; style=&quot;color: #999999; font-weight: 600;&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;c1&quot; style=&quot;color: #999999; font-style: italic;&quot;&gt;# create forward rule by source interface&lt;/span&gt;
&lt;span class=&quot;c1&quot; style=&quot;color: #999999; font-style: italic;&quot;&gt;# http://serverfault.com/questions/532569/how-to-do-port-forwarding-redirecting-on-debian&lt;/span&gt;
PortForward1&lt;span class=&quot;o&quot; style=&quot;font-weight: 600;&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot; style=&quot;font-weight: 600;&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;nb&quot; style=&quot;color: #0084ff;&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;IN_IF&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;font-weight: 600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;$1&lt;/span&gt;
    &lt;span class=&quot;nb&quot; style=&quot;color: #0084ff;&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;IN_PORT&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;font-weight: 600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;$2&lt;/span&gt;
    &lt;span class=&quot;nb&quot; style=&quot;color: #0084ff;&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;OUT_IP&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;font-weight: 600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;$3&lt;/span&gt;
    &lt;span class=&quot;nb&quot; style=&quot;color: #0084ff;&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;OUT_PORT&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;font-weight: 600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;$4&lt;/span&gt;
    &lt;span class=&quot;nb&quot; style=&quot;color: #0084ff;&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;IPTBL&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;font-weight: 600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;color: #f1403c;&quot;&gt;&quot;/sbin/iptables&quot;&lt;/span&gt;
    &lt;span class=&quot;nb&quot; style=&quot;color: #0084ff;&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;s2&quot; style=&quot;color: #f1403c;&quot;&gt;&quot;1&quot;&lt;/span&gt; &amp;gt; /proc/sys/net/ipv4/ip_forward
    &lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;$IPTBL&lt;/span&gt; -A PREROUTING -t nat -i &lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;$IN_IF&lt;/span&gt; -p tcp --dport &lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;$IN_PORT&lt;/span&gt; -j DNAT --to-destination &lt;span class=&quot;si&quot; style=&quot;color: #f1403c;&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;OUT_IP&lt;/span&gt;&lt;span class=&quot;si&quot; style=&quot;color: #f1403c;&quot;&gt;}&lt;/span&gt;:&lt;span class=&quot;si&quot; style=&quot;color: #f1403c;&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;OUT_PORT&lt;/span&gt;&lt;span class=&quot;si&quot; style=&quot;color: #f1403c;&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;$IPTBL&lt;/span&gt; -A FORWARD -p tcp -d &lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;$OUT_IP&lt;/span&gt; --dport &lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;$OUT_PORT&lt;/span&gt; -j ACCEPT
    &lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;$IPTBL&lt;/span&gt; -A POSTROUTING -t nat -j MASQUERADE
&lt;span class=&quot;o&quot; style=&quot;font-weight: 600;&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;c1&quot; style=&quot;color: #999999; font-style: italic;&quot;&gt;# create forward rule by source ip&lt;/span&gt;
&lt;span class=&quot;c1&quot; style=&quot;color: #999999; font-style: italic;&quot;&gt;# http://blog.csdn.net/zzhongcy/article/details/42738285&lt;/span&gt;
ForwardPort2&lt;span class=&quot;o&quot; style=&quot;font-weight: 600;&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot; style=&quot;font-weight: 600;&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;nb&quot; style=&quot;color: #0084ff;&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;IN_IP&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;font-weight: 600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;$1&lt;/span&gt;
    &lt;span class=&quot;nb&quot; style=&quot;color: #0084ff;&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;IN_PORT&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;font-weight: 600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;$2&lt;/span&gt;
    &lt;span class=&quot;nb&quot; style=&quot;color: #0084ff;&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;OUT_IP&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;font-weight: 600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;$3&lt;/span&gt;
    &lt;span class=&quot;nb&quot; style=&quot;color: #0084ff;&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;OUT_PORT&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;font-weight: 600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;$4&lt;/span&gt;
    &lt;span class=&quot;nb&quot; style=&quot;color: #0084ff;&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;IPTBL&lt;/span&gt;&lt;span class=&quot;o&quot; style=&quot;font-weight: 600;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;color: #f1403c;&quot;&gt;&quot;/sbin/iptables&quot;&lt;/span&gt;
    &lt;span class=&quot;nb&quot; style=&quot;color: #0084ff;&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;s2&quot; style=&quot;color: #f1403c;&quot;&gt;&quot;1&quot;&lt;/span&gt; &amp;gt; /proc/sys/net/ipv4/ip_forward
    &lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;$IPTBL&lt;/span&gt; -t nat -A PREROUTING --dst &lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;$IN_IP&lt;/span&gt; -p tcp --dport &lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;$IN_PORT&lt;/span&gt; -j DNAT --to-destination &lt;span class=&quot;si&quot; style=&quot;color: #f1403c;&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;OUT_IP&lt;/span&gt;&lt;span class=&quot;si&quot; style=&quot;color: #f1403c;&quot;&gt;}&lt;/span&gt;:&lt;span class=&quot;si&quot; style=&quot;color: #f1403c;&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;OUT_PORT&lt;/span&gt;&lt;span class=&quot;si&quot; style=&quot;color: #f1403c;&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;$IPTBL&lt;/span&gt; -t nat -A POSTROUTING --dst &lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;$OUT_IP&lt;/span&gt; -p tcp --dport &lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;$OUT_PORT&lt;/span&gt; -j SNAT --to-source &lt;span class=&quot;nv&quot; style=&quot;color: #0084ff;&quot;&gt;$IN_IP&lt;/span&gt;
&lt;span class=&quot;o&quot; style=&quot;font-weight: 600;&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;第一個函數是按照網卡名稱設置轉發：&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;highlight&quot; style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1em 0px;&quot;&gt;&lt;pre style=&quot;background: rgb(246, 246, 246); border-radius: 4px; font-size: 0.9em; margin-bottom: 0px; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 0.88889em; word-break: normal;&quot;&gt;&lt;code class=&quot;language-bash&quot; style=&quot;background-color: inherit; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &amp;quot;Andale Mono&amp;quot;, &amp;quot;lucida console&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; margin: 0px; padding: 0px;&quot;&gt;PortForward1 eth1 &lt;span class=&quot;m&quot; style=&quot;color: #0084ff;&quot;&gt;8765&lt;/span&gt; 202.115.8.2 &lt;span class=&quot;m&quot; style=&quot;color: #0084ff;&quot;&gt;8765&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;這時，本地eth1 網卡的8765 端口就會被轉發給202.115.8.2 的8765 端口。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;第二個函數是按照本機的ip 地址，比如本機是192.168.1.2：&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;highlight&quot; style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1em 0px;&quot;&gt;&lt;pre style=&quot;background: rgb(246, 246, 246); border-radius: 4px; font-size: 0.9em; margin-bottom: 0px; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 0.88889em; word-break: normal;&quot;&gt;&lt;code class=&quot;language-bash&quot; style=&quot;background-color: inherit; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &amp;quot;Andale Mono&amp;quot;, &amp;quot;lucida console&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: inherit; margin: 0px; padding: 0px;&quot;&gt;PortForward2 192.168.1.2 &lt;span class=&quot;m&quot; style=&quot;color: #0084ff;&quot;&gt;8765&lt;/span&gt; 202.115.8.2 &lt;span class=&quot;m&quot; style=&quot;color: #0084ff;&quot;&gt;8765&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;那麼任何訪問本機192.168.1.2 這個地址8765 端口，都會被轉發到202.115.8.2:8765&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #121212; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;這個iptable的&lt;/span&gt;&lt;code style=&quot;background-color: #f6f6f6; border-radius: 3px; font-family: Menlo, Monaco, Consolas, &amp;quot;Andale Mono&amp;quot;, &amp;quot;lucida console&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 0.9em; margin: 0px 2px; padding: 3px 4px;&quot;&gt;port forwarding&lt;/code&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;是內核層運行的，性能極好，只不過每次重啟都需要重新設置下。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/4971714449315160572/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2020/09/ssh-l-r-d.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/4971714449315160572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/4971714449315160572'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2020/09/ssh-l-r-d.html' title='SSH 命令的三種代理功能（-L/-R/-D）'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-3428845995002023344</id><published>2020-07-16T16:55:00.003+08:00</published><updated>2020-07-16T16:55:40.836+08:00</updated><title type='text'>常見以太網接口介紹</title><content type='html'>&lt;span style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;i&gt;from:&lt;a href=&quot;https://www.wpgdadatong.com/tw/blog/detail?BID=B0594&quot;&gt;https://www.wpgdadatong.com/tw/blog/detail?BID=B0594&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 15px;&quot;&gt;一.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-size: 15px; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;PHY包含的各個子層&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; font-size: 15px; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;：&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;PCS：編碼和解碼&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;PMA：串行器和反序列化器&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;PMD：取決於物理介質&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;Firgure 1:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&amp;nbsp;OSI模型裡示意圖：&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://edit.wpgdadawant.com/uploads/news_file/blog/2019/726/tinymce/1.png&quot; style=&quot;border: 0px; box-sizing: inherit; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Firgure 2: 實際互連示意圖：&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://edit.wpgdadawant.com/uploads/news_file/blog/2019/726/tinymce/2.png&quot; style=&quot;border: 0px; box-sizing: inherit; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;二.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;以太網上常見的MAC&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;與PHY&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;之間的接口(&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;按照速度區分)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ol style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; list-style-position: inside; vertical-align: baseline;&quot;&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;1億&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&amp;nbsp; MII：介質獨立接口（&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&amp;nbsp;IEEE 802.3 CL22&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;）&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; list-style: initial; vertical-align: baseline;&quot;&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;一種數字接口，可在10/100 Mbit / s PHY與MAC子層之間提供4位寬的數據路徑。&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;TXC，TXD [3：0]，TXEN，TXER&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;RXC，RXD [3：0]，RXDV，RXER&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&amp;nbsp; RMII：簡化的媒體獨立接口&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; list-style: initial; vertical-align: baseline;&quot;&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;對比MII，是信號線數量減半&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;主要支持廠家有BRCM/AMD/TI等&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Figure 3：RMII連接示意圖：&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://edit.wpgdadawant.com/uploads/news_file/blog/2019/726/tinymce/3.png&quot; style=&quot;border: 0px; box-sizing: inherit; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&amp;nbsp; SMII：串行MII&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; list-style: initial; vertical-align: baseline;&quot;&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;串行化的MII&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;信號主要有：&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&amp;nbsp;REFCLK, STXD, SRXD, SSYNC, TX_EN, RX_DV&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;主要支持廠家有Cisco&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Figure 4：SMII連接示意圖：&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://edit.wpgdadawant.com/uploads/news_file/blog/2019/726/tinymce/4.png&quot; style=&quot;border: 0px; box-sizing: inherit; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;S3MII：源同步SMII&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; list-style: initial; vertical-align: baseline;&quot;&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;REFCLK，SSMII_RXC，SSMII_RSYNC，RXD，SSMII_TXC，SSYNC，TXD&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;主要支持廠家Cisco&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Figure 5：S3MII連接示意圖：&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://edit.wpgdadawant.com/uploads/news_file/blog/2019/726/tinymce/5.png&quot; style=&quot;border: 0px; box-sizing: inherit; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;/div&gt;
&lt;ol start=&quot;2&quot; style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; list-style-position: inside; vertical-align: baseline;&quot;&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;1000M&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&amp;nbsp;&amp;nbsp; 2.1&amp;gt;.1GE&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;並行接口&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GMII：&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&amp;nbsp;&amp;nbsp;千兆位媒體獨立接口，IEEE 802.3 CL35&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; list-style: initial; vertical-align: baseline;&quot;&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;在1000 Mbit / s PHY和MAC子層之間提供8位寬數據路徑的數字接口。&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;它還支持IEEE 802.3z規範中定義的4位寬的MII接口。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;GTXCLK，TXD [7：0]，TXEN，TXER&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;RXC，RXD [7：0]，RXDV，RXER，COL CRS&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Figure 6: GMII 連接示意圖：&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://edit.wpgdadawant.com/uploads/news_file/blog/2019/726/tinymce/6.png&quot; style=&quot;border: 0px; box-sizing: inherit; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;RGMII&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;：簡化的GMII，&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;-對比GMII，主要是數據線數量減半；&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;-主要支持廠家有BRCM/HP/MAVL&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&amp;nbsp; 2.2&amp;gt;. 1GE&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;串行接口&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SGMII：串行MII&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;，&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;1.25G波特率，Cisco&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; list-style: initial; vertical-align: baseline;&quot;&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;一個數字接口，可在1000 Mbit / s PHY和MAC子層之間提供1.25 Gbps串行雙數據速率數據路徑。&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;SGIN +-/ SGOUT +-&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;8b / 10b編碼&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Figure 7： SGMII 連接示意圖：&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://edit.wpgdadawant.com/uploads/news_file/blog/2019/726/tinymce/7.png&quot; style=&quot;border: 0px; box-sizing: inherit; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;QSGMII：Quad SGMII&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;，&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;5G波特率&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;，&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;Cisco&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; list-style: initial; vertical-align: baseline;&quot;&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;四路串行千兆媒體獨立接口：一種數字接口，可在四個1000 Mbit / s PHY端口和MAC子層之間提供5.0 Gbps串行數據路徑&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;QSGMII_RDp / n，QSGMII_TDp / n&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;8b / 10b編碼&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;USGMII：&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;通用SGMII，1.25G / 5G / 10G波特率，思科&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; list-style: initial; vertical-align: baseline;&quot;&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;當前SGMII和QSGMII的擴展。&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;USGMII提供了添加新功能的靈活性，同時保持了向後兼容性。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;USGMII_RDp / n，USGMII_TDp / n&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;8b / 10b編碼&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;最多可以支持8個1GE 口&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;PCH: Packet Control Header. 這個是最大特點。&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;PCH提供諸如PTP時間戳之類的可選功能，並可以通過重複使用下文所述的擴展字段來添加功能。&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;PHY通過PCH與端口MAC（ASIC）通信。&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;PCH是8個字節，它代替了幀的前同步碼。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://edit.wpgdadawant.com/uploads/news_file/blog/2019/726/tinymce/8.png&quot; style=&quot;border: 0px; box-sizing: inherit; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/span&gt;&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&amp;nbsp;1000base-X：&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;Serdes，8b / 10b編碼，IEEE 802.3 CL36 / 37&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&amp;nbsp;1000base-KX: &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&amp;nbsp;1G背板的應用, 8b/10b coding, IEEE 802.3 CL70&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;2.3&amp;gt;.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;擴展&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;—BRCM supports USXGMII:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;USXGMII: Universal serial XGMII，它是基於一對serdes的一個端口；&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -10.3125G波特率，64b / 66b編碼;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Figure 9:USXGMII工作在10G和5G時候的區別：&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://edit.wpgdadawant.com/uploads/news_file/blog/2019/726/tinymce/9.png&quot; style=&quot;border: 0px; box-sizing: inherit; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: baseline;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;2.4&amp;gt;.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;比較：&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -USGMII與SGMII / QSGMII&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; USGMII可以最多支持8個1GE口，通過一對10G serdes，對於高密度的應用更合適；&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;USGMII可以過PCH（PacketControlHeader）傳遞MAC和PHY之間的control/status信息，這對PTP上timestamp的應用提供了便利；&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; list-style: initial; vertical-align: baseline;&quot;&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;USGMII與USXGMII&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&amp;nbsp; USGMII是出8個1GE口，&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;USXGMII是出一個口，此口可以是10M/100M/1000M/5G/10G等&lt;/span&gt;&lt;/div&gt;
&lt;ol start=&quot;3&quot; style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; list-style-position: inside; vertical-align: baseline;&quot;&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;10G&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; XAUI&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&amp;nbsp;---- 10千兆位附件單元接口，IEEE 802.3 CL47 10GBASE-LX4（CL53），10GBASE-KX4（CL71），10GBASE-CX4（CL54）&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; list-style: initial; vertical-align: baseline;&quot;&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;125Gbps，8b / 10b編碼&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;XG_RX [3：0] _p / n，XG_TX [3：0] _p / n&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;4對差分線出1一個10G口；&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&amp;nbsp;DXAUI--&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;雙重XAUI 4x6.25Gbps，8b / 10b編碼&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; list-style: initial; vertical-align: baseline;&quot;&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;XG_RX [3：0] _p / n，XG_TX [3：0] _p / n&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;4對差分線出一個20G口；&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&amp;nbsp; &amp;nbsp; RAXUI&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&amp;nbsp;---減少XAUI 2x6.25Gbps，8b / 10b編碼&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; list-style: initial; vertical-align: baseline;&quot;&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;XG_RX [1：0] _p / n，XG_TX [1：0] _p / n&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;兩對差分線出一個10G口；&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; padding: 0px 0px 1em; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&amp;nbsp;XFI：&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&amp;nbsp;10 Gigibit附件單元接口，INF-8077&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; list-style: initial; vertical-align: baseline;&quot;&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;The XFI 用來做10G速率下chip-to-chip 互聯，最初是被XFP multi-source agreement定義.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;10.3125Gbps，64b / 66b編碼&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;一對差分線出10G口；&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; font-weight: 700; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&amp;nbsp; &amp;nbsp; 10GBASE-KR:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;背板側應用，IEEE 802.3，CL72&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); font-family: 微軟正黑體; font-size: 15px; list-style: initial; vertical-align: baseline;&quot;&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;主要特點是CL73 AN，CL72 training，CL74 FEC；&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;速率10.3125G，64b/66b編碼；&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; box-sizing: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;一對差分線出一個10G口；&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/3428845995002023344/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2020/07/blog-post.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/3428845995002023344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/3428845995002023344'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2020/07/blog-post.html' title='常見以太網接口介紹'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-4624239999939965210</id><published>2020-07-01T15:09:00.004+08:00</published><updated>2020-07-01T15:09:36.302+08:00</updated><title type='text'>QoS中ToS和CoS的區別？802.1p、ip pri、dscp的區別？</title><content type='html'>&lt;h4 style=&quot;-webkit-font-smoothing: antialiased; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;from:&lt;/span&gt;&lt;a href=&quot;https://blog.51cto.com/imccie/1750821&quot;&gt;https://blog.51cto.com/imccie/1750821&lt;/a&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;談到qos首先需要了解qos調度的幾個重要過程,qos調度過程包括網絡入口數據流量的分類和標記、骨幹網設備上的擁塞避免和擁塞管理、網路出口的隊列調度這幾個重要過程.&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;1、cos和tos的區別:&lt;/strong&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;通過acl對流量進行分類以後,緊接著就需要對報文進行標記,打標記可以在三層(ip)報文頭上做,也可以在二層報文頭上做.&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;tos（type of service）就是指在三層報文頭(即ip頭)作標記,cos（code of service）則是在二層報文頭作標記,tos與cos只是qos的一種標記機制。&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;2、802.1p、ip preference、tos、dscp的區別：&lt;/strong&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;(1)、802.1p：&lt;/strong&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;當需要在二層報文頭做標記的時候，由於單純二層報文沒有地方能打標記，二層打標記只能在trunk上完成，trunk要用到802.1q或isl協議，如果使用的是802.1q協議，標記會打在802.1q協議頭的tci字段上，打了標記（優先級）後的報文，就稱為802.1p報文了。&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;二層報文頭：&lt;/span&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;-webkit-font-smoothing: antialiased; border-collapse: collapse; border-spacing: 0px; color: #333333; display: block; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; margin: 0px 0px 15px; max-width: 100%; overflow: auto; padding: 0px; width: 764px; word-break: keep-all;&quot;&gt;&lt;tbody style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;da&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;sa&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;data&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;fcs&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;802.1q報文頭：&lt;/span&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;-webkit-font-smoothing: antialiased; border-collapse: collapse; border-spacing: 0px; color: #333333; display: block; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; margin: 0px 0px 15px; max-width: 100%; overflow: auto; padding: 0px; width: 764px; word-break: keep-all;&quot;&gt;&lt;tbody style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;da&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;sa&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;tpid&lt;/strong&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;2byte&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;tci&lt;/strong&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;2byte&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;pt&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;data&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;fcs&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;tci字段結構：&lt;/span&gt;&lt;/div&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;-webkit-font-smoothing: antialiased; border-collapse: collapse; border-spacing: 0px; color: #333333; display: block; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; margin: 0px 0px 15px; max-width: 100%; overflow: auto; padding: 0px; width: 290px; word-break: keep-all;&quot;&gt;&lt;tbody style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td colspan=&quot;3&quot; style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;tci&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;pri&lt;/strong&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;3 bits&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;cfi&lt;/strong&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;1 bit&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;vlan id&lt;/strong&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;12 bits&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&amp;nbsp;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;tpid字段標識此報文是802.1q報文，tci字段有3bit是用來標記優先級的，如果標記了優先級就稱為802.1p報文了。&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;(2)、ip preference和tos：&lt;/strong&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;ip報文結構如下：&lt;/span&gt;&lt;/div&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;-webkit-font-smoothing: antialiased; border-collapse: collapse; border-spacing: 0px; color: #333333; display: block; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; margin: 0px 0px 15px; max-width: 100%; overflow: auto; padding: 0px; width: 764px; word-break: keep-all;&quot;&gt;&lt;tbody style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;version&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;ihl&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;type of service&lt;/strong&gt;&lt;/td&gt;&lt;td colspan=&quot;3&quot; style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;packet length&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td colspan=&quot;3&quot; style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;identification&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;flag&lt;/strong&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;frag offset&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td colspan=&quot;2&quot; style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;time to live&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;protocol&lt;/strong&gt;&lt;/td&gt;&lt;td colspan=&quot;3&quot; style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;header checksum&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td colspan=&quot;6&quot; style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;source address&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td colspan=&quot;6&quot; style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;destination address&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td colspan=&quot;5&quot; style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;options&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;padding&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;ip報文頭的type of sevice字段長度為1個字節，其中高3 bit用來標記優先級，所以有0-7共8個ip preference級別。&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;type of service字段的中間4bit為tos子字段，最低1bit未用但必須置0。4bit的tos分別代表：最小時延、最大吞吐量、最小費用和最高可靠性。&lt;/span&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;4bit中只能將其中1bit置1。&lt;/span&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;如果所有4bit均為0，那麼就表示是普通服務。&lt;/span&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;type of service字段結構如下：&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;-webkit-font-smoothing: antialiased; border-collapse: collapse; border-spacing: 0px; color: #333333; display: block; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; margin: 0px 0px 15px; max-width: 100%; overflow: auto; padding: 0px; width: 764px; word-break: keep-all;&quot;&gt;&lt;tbody style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td colspan=&quot;8&quot; style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;type of service&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;x&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;x&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;x&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;delay&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;troughput&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;cost&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;rely&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;0&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td colspan=&quot;3&quot; style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;ip preference&lt;/strong&gt;&lt;/td&gt;&lt;td colspan=&quot;4&quot; style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;tos&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;長置0&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;(3)、dscp：&lt;/strong&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;為了更精細化的控制數據流分類，rfc2474定義了dscp（differential services code point），dscp擴展了type of service字段的高6 bit來表示報文優先級，因此，標記範圍從0-63。&lt;/span&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;type of service字段結構如下：&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;-webkit-font-smoothing: antialiased; border-collapse: collapse; border-spacing: 0px; color: #333333; display: block; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; margin: 0px 0px 15px; max-width: 100%; overflow: auto; padding: 0px; width: 764px; word-break: keep-all;&quot;&gt;&lt;tbody style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td colspan=&quot;8&quot; style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;type of service&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;x&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;x&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;x&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;x&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;x&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;x&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;0&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;0&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td colspan=&quot;6&quot; style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;ip preference&lt;/strong&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;長置0&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;dscp定義了四個系列，default、cs系列、af系列、ef系列。&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;①、default&lt;/strong&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&amp;nbsp;:&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;就是默認的不做優先級，即ip preference字段都是0。&lt;/span&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;-webkit-font-smoothing: antialiased; border-collapse: collapse; border-spacing: 0px; color: #333333; display: block; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; margin: 0px 0px 15px; max-width: 100%; overflow: auto; padding: 0px; width: 764px; word-break: keep-all;&quot;&gt;&lt;tbody style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td colspan=&quot;8&quot; style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;type of service&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;0&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;0&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;0&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;0&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;0&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;0&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;0&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;0&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td colspan=&quot;6&quot; style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;ip preference&lt;/strong&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;長置0&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;②、cs系列:&lt;/strong&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;rfc2474定義最高3比特為級別／類別選擇代碼（class selector codepoints，cs），其意義和ipv4報頭中ip優先級的定義是相同的，cs0 ～ cs7的級別相當於ip優先級0 ～ 7。&lt;/span&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;但它並沒有定義第3到第5比特的具體含義以及使用規則。&lt;/span&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;dscp使用6比特，可以定義64個優先級（0－63）。&lt;/span&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;cs系列ip報文中type of service字段結構如下：&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&amp;nbsp;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;-webkit-font-smoothing: antialiased; border-collapse: collapse; border-spacing: 0px; color: #333333; display: block; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; margin: 0px 0px 15px; max-width: 100%; overflow: auto; padding: 0px; width: 764px; word-break: keep-all;&quot;&gt;&lt;tbody style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td colspan=&quot;8&quot; style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;type of service&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;0&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;0&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;1&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;0&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;0&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;0&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;0&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;0&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td colspan=&quot;6&quot; style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;ip preference&lt;/strong&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;長置0&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;.&lt;/strong&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;.&lt;/strong&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;.&lt;/strong&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;-webkit-font-smoothing: antialiased; border-collapse: collapse; border-spacing: 0px; color: #333333; display: block; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; margin: 0px 0px 15px; max-width: 100%; overflow: auto; padding: 0px; width: 764px; word-break: keep-all;&quot;&gt;&lt;tbody style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td colspan=&quot;8&quot; style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;type of service&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;1&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;1&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;1&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;0&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;0&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;0&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;0&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;0&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td colspan=&quot;6&quot; style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;ip preference&lt;/strong&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;長置0&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;cs = 6網間控制（internetwork control），&lt;/span&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;dscp&lt;/strong&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&amp;nbsp;= 48 (110000).路由協議優先級默認是cs6。&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;cs = 7網內控制（intranetwork control），&lt;/span&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;dscp&lt;/strong&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&amp;nbsp;= 56 (111000)&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;③、af&lt;/strong&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&amp;nbsp;:&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;保證轉發（assured forwarding, af）由rfc2597對cs1～cs4進行進一步定義。&lt;/span&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;它使用第3和第4比特做丟棄優先級標誌。&lt;/span&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;01－低丟棄優先級；10－中丟棄優先級；11－高丟棄優先級。&lt;/span&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;這樣，在同一類數據中，又根據被丟棄的可能性劃分出3個級別。&lt;/span&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;af11～af13,af21～af23,af31～af33,af41～af43.下表列出了af服務等級及其對應的dscp值：&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;-webkit-font-smoothing: antialiased; border-collapse: collapse; border-spacing: 0px; color: #333333; display: block; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; margin: 0px 0px 15px; max-width: 100%; overflow: auto; padding: 0px; width: 764px; word-break: keep-all;&quot;&gt;&lt;tbody style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;cs1&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;00100&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;cs2&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;01000&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;cs3&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;01100&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;cs4&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;10000&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;low drop&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;01&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;af11&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;00101&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;af21&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;01001&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;af31&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;01101&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;af41&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;10001&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;medium drop&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;10&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;af12&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;00110&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;af22&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;01010&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;af32&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;01110&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;af42&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;10010&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;high drop&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;11&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;af13&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;00111&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;af23&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;01011&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;af33&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;01111&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-font-smoothing: antialiased; border: 1px solid rgb(221, 221, 221); margin: 0px; max-width: 748px; padding: 5px; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;af43&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;10011&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;-webkit-font-smoothing: antialiased; color: #3d464d; font-family: -apple-system, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-size: 16px; line-height: 1.8; margin-bottom: 0.7rem; max-width: 100%; overflow-wrap: break-word; padding: 0px; word-break: break-all;&quot;&gt;
&lt;strong style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot;&gt;④、ef:&lt;/strong&gt;&lt;br style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; word-break: break-all;&quot; /&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;由rfc2598定義，dscp值為46 (101110)。&lt;/span&gt;&lt;span style=&quot;-webkit-font-smoothing: antialiased; margin: 0px; max-width: 100%; padding: 0px; vertical-align: inherit; word-break: break-all;&quot;&gt;ef服務適用於低丟包率，低延遲，低抖動及保證帶寬的業務，voip默認級別是ef。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/4624239999939965210/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2020/07/qostoscos8021pip-pridscp.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/4624239999939965210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/4624239999939965210'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2020/07/qostoscos8021pip-pridscp.html' title='QoS中ToS和CoS的區別？802.1p、ip pri、dscp的區別？'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-8836847734476387368</id><published>2020-06-02T10:16:00.000+08:00</published><updated>2020-06-02T10:16:22.828+08:00</updated><title type='text'>SMI（MDC/MDIO）介紹 Clause 22/45</title><content type='html'>&lt;div style=&quot;background-color: white; color: #333333; font-family: avenir, &amp;quot;microsoft yahei&amp;quot;, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft sans serif&amp;quot;, &amp;quot;wenquanyi micro hei&amp;quot;, sans-serif; margin-bottom: 10px; padding: 0px;&quot;&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 10px; padding: 0px;&quot;&gt;
&lt;/div&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;font-size: xx-small; vertical-align: inherit;&quot;&gt;From:&lt;a href=&quot;http://blog.chinaaet.com/justlxy/p/5100064818&quot;&gt;http://blog.chinaaet.com/justlxy/p/5100064818&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 16px; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;br /&gt;SMI：串行管理接口（Serial Management Interface），通常直接被稱為MDIO接口（Management Data Input/Output Interface）。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;MDIO最早在IEEE 802.3的第22卷定義，後來在第45卷又定義了增強版本的MDIO，其主要被應用於以太網的MAC和PHY層之間，用於MAC層器件通過讀寫寄存器來實現對PHY層器件的操作與管理。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; margin-bottom: 10px; padding: 0px;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;MDIO主機（即產生MDC時鐘的設備）通常被稱為STA（Station Management Entity），而MDIO從機通常被稱為MMD（MDIO Management Device）。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;通常STA都是MAC層器件的一部分，而MMD則是PHY層器件的一部分。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;MDIO接口包括兩條線，MDIO和MDC，其中MDIO是雙向數據線，而MDC是由STA驅動的時鐘線。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;MDC時鐘的最高速率一般為2.5MHz，MDC也可以是非固定頻率，甚至可以是非週期的。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;MDIO接口只是會在MDC時鐘的上升沿進行採樣，而並不在意MDC時鐘的頻率（類似於I2C接口）。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;如下圖所示。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; margin-bottom: 10px; padding: 0px; text-align: center;&quot;&gt;
&lt;img alt=&quot;blob.png&quot; src=&quot;http://files.chinaaet.com/images/blog/2019/20190924/1000019445-6370494317263169496318344.png&quot; style=&quot;border: 0px; height: auto; margin: 0px; max-height: 100%; max-width: 100%; overflow: hidden; padding: 0px; width: auto;&quot; title=&quot;blob.png&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; margin-bottom: 10px; padding: 0px;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;MDIO接口有兩個版本，通常被稱為卷22版本和卷45版本。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;卷22版本的MDIO接口最多支持連接32個MMD（PHY層設備），每個設備最多支持32個寄存器。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;卷45版本的MDIO接口最多支持連接32個MMD，32個設備類型，每個設備最多支持64K個寄存器。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;卷22版本的MDIO接口的數據幀格式如下：&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; margin-bottom: 10px; padding: 0px; text-align: center;&quot;&gt;
&lt;img alt=&quot;blob.png&quot; src=&quot;http://files.chinaaet.com/images/blog/2019/20190924/1000019445-6370494343987147319277880.png&quot; style=&quot;border: 0px; height: auto; margin: 0px; max-height: 100%; max-width: 100%; overflow: hidden; padding: 0px; width: auto;&quot; title=&quot;blob.png&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; margin-bottom: 10px; padding: 0px;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;具體每個bit描述如下：&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; margin-bottom: 10px; padding: 0px; text-align: center;&quot;&gt;
&lt;img alt=&quot;blob.png&quot; src=&quot;http://files.chinaaet.com/images/blog/2019/20190924/1000019445-6370494349284781811923503.png&quot; style=&quot;border: 0px; height: auto; margin: 0px; max-height: 100%; max-width: 100%; overflow: hidden; padding: 0px; width: auto;&quot; title=&quot;blob.png&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; margin-bottom: 10px; padding: 0px; text-align: center;&quot;&gt;
&lt;img alt=&quot;blob.png&quot; src=&quot;http://files.chinaaet.com/images/blog/2019/20191009/1000019445-6370622280634317787828939.png&quot; style=&quot;border: 0px; height: auto; margin: 0px; max-height: 100%; max-width: 100%; overflow: hidden; padding: 0px; width: auto;&quot; title=&quot;blob.png&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; margin-bottom: 10px; padding: 0px;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;卷45版本的MDIO接口的數據幀格式如下：&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; margin-bottom: 10px; padding: 0px; text-align: center;&quot;&gt;
&lt;img alt=&quot;blob.png&quot; src=&quot;http://files.chinaaet.com/images/blog/2019/20190924/1000019445-6370494361389407842076563.png&quot; style=&quot;border: 0px; height: auto; margin: 0px; max-height: 100%; max-width: 100%; overflow: hidden; padding: 0px; width: auto;&quot; title=&quot;blob.png&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; margin-bottom: 10px; padding: 0px;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;具體每個bit的描述如下：&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; margin-bottom: 10px; padding: 0px; text-align: center;&quot;&gt;
&lt;img alt=&quot;blob.png&quot; src=&quot;http://files.chinaaet.com/images/blog/2019/20190924/1000019445-6370494372165176355024998.png&quot; style=&quot;border: 0px; height: auto; margin: 0px; max-height: 100%; max-width: 100%; overflow: hidden; padding: 0px; width: auto;&quot; title=&quot;blob.png&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; margin-bottom: 10px; padding: 0px; text-align: center;&quot;&gt;
&lt;img alt=&quot;blob.png&quot; src=&quot;http://files.chinaaet.com/images/blog/2019/20191009/1000019445-6370622277257785935910509.png&quot; style=&quot;border: 0px; height: auto; margin: 0px; max-height: 100%; max-width: 100%; overflow: hidden; padding: 0px; width: auto;&quot; title=&quot;blob.png&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; margin-bottom: 10px; padding: 0px;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;如果是STA（MAC層設備）驅動MDIO，則MDIO相對於MDC上升沿，至少要有10ns的建立時間（Setup Time）和10ns的保持時間（Hold Time）。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;如下圖所示：&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; margin-bottom: 10px; padding: 0px; text-align: center;&quot;&gt;
&lt;img alt=&quot;blob.png&quot; src=&quot;http://files.chinaaet.com/images/blog/2019/20190924/1000019445-6370494592516864862629248.png&quot; style=&quot;border: 0px; height: auto; margin: 0px; max-height: 100%; max-width: 100%; overflow: hidden; padding: 0px; width: auto;&quot; title=&quot;blob.png&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; margin-bottom: 10px; padding: 0px;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;如果MDIO是由MMD（PHY層設備）驅動的，則MDIO相對於MDC的Tco（Clock to Output Delay）的範圍是0ns~300ns。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;如下圖所示：&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; margin-bottom: 10px; padding: 0px; text-align: center;&quot;&gt;
&lt;img alt=&quot;blob.png&quot; src=&quot;http://files.chinaaet.com/images/blog/2019/20190924/1000019445-6370494606215090501812398.png&quot; style=&quot;border: 0px; height: auto; margin: 0px; max-height: 100%; max-width: 100%; overflow: hidden; padding: 0px; width: auto;&quot; title=&quot;blob.png&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; margin-bottom: 10px; padding: 0px;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;實際上，MDC的頻率也並非一定是小於或等於2.5MHz，比如Marvell的88E1512最大支持12MHz的MDC：&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; margin-bottom: 10px; padding: 0px; text-align: center;&quot;&gt;
&lt;img alt=&quot;blob.png&quot; src=&quot;http://files.chinaaet.com/images/blog/2019/20190926/1000019445-6370511154697741484450094.png&quot; style=&quot;border: 0px; height: auto; margin: 0px; max-height: 100%; max-width: 100%; overflow: hidden; padding: 0px; width: auto;&quot; title=&quot;blob.png&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; margin-bottom: 10px; padding: 0px;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;IEEE 802.3建議同時對MDIO進行下拉（下拉電阻建議為2k歐姆+5%），和上拉（上拉電阻建議為1.5k歐姆+5%），使得在TA時，MDIO處於中間態。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;但是並非所有的PHY器件都有這樣的要求，比如Marvell的88E1512只要求對MDIO進行上拉即可，上拉電阻範圍為1.5k~10kΩ。&lt;/span&gt;&lt;/span&gt;&lt;strong style=&quot;color: inherit;&quot;&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; margin-bottom: 10px; padding: 0px;&quot;&gt;
&lt;strong style=&quot;color: inherit;&quot;&gt;主要參考資料&lt;/strong&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; margin-bottom: 10px; padding: 0px;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;1、IEEE 802.3 第22卷，第45卷&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; margin-bottom: 10px; padding: 0px;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;2、網友落塵紛擾的博客：&lt;/span&gt;&lt;a href=&quot;https://blog.csdn.net/jasonchen_gbd/article/details/51628992&quot; style=&quot;color: #4d4b4b; text-decoration-line: none;&quot;&gt;https://blog.csdn.net/jasonchen_gbd/article/details/51628992&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; margin-bottom: 10px; padding: 0px;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;3、Lattice, RD1194, MDIO Master and Slave Controllers User Guide&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Avenir, &amp;quot;Microsoft Yahei&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;Microsoft Sans Serif&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 16px; margin-bottom: 10px; padding: 0px;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;4、Marvell，Alaska 88E1512 Datasheet&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/8836847734476387368/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2020/06/smimdcmdio-clause-2245.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/8836847734476387368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/8836847734476387368'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2020/06/smimdcmdio-clause-2245.html' title='SMI（MDC/MDIO）介紹 Clause 22/45'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-1962636681843705449</id><published>2020-02-20T17:05:00.002+08:00</published><updated>2020-02-20T17:05:51.383+08:00</updated><title type='text'>arp_ignore 和 arp_filter</title><content type='html'>&lt;span style=&quot;color: #999999;&quot;&gt;From:&lt;/span&gt;&lt;a href=&quot;http://huntxu.github.io/2015-12-24-arp-filter-vs-arp-ignore.html&quot;&gt;http://huntxu.github.io/2015-12-24-arp-filter-vs-arp-ignore.html&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;color: #999999;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;h1&gt;
&lt;span style=&quot;color: #999999;&quot;&gt;arp_ignore 和 arp_filter&lt;/span&gt;&lt;/h1&gt;
&lt;div style=&quot;margin: 1em;&quot;&gt;
&lt;span style=&quot;color: #999999;&quot;&gt;24 Dec 2015&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 1em;&quot;&gt;
&lt;span style=&quot;color: #999999;&quot;&gt;先說結論好了&lt;/span&gt;&lt;/div&gt;
&lt;ol style=&quot;margin-left: 1.2em;&quot;&gt;
&lt;li style=&quot;line-height: 1.2em;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;arp_filter&lt;/code&gt;有個表哥叫做&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;rp_filter&lt;/code&gt;，這裏的&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;rp&lt;/code&gt;是&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;Reserve Path&lt;/code&gt;的意思，其實就是用來檢查返回的包是否會從相對應的到來的包使用相同的網絡接口出去。它們的區別只是層次不同&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;line-height: 1.2em;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;arp_ignore&lt;/code&gt;&amp;nbsp;則是內核用來確定是否應該回覆從該端口收到的&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;ARP&lt;/code&gt;請求的&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;line-height: 1.2em;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;這兩個判斷都在內核中的&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;net/ipv4/arp.c&lt;/code&gt;中&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;margin: 1em;&quot;&gt;
&lt;span style=&quot;color: #999999;&quot;&gt;故事是因爲有個同事在一個機器上用&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;libvirt&lt;/code&gt;搭建了幾臺虛擬機之後使用橋接連接這幾臺機器，並且使用自動部署工具去部署這幾臺機器。結果發現其中有一臺機器的一個網卡沒有成功得到預期的地址。調查之後發現那臺機器在配置該地址之前使用了&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;arping -D&lt;/code&gt;去檢查是否與其他機器已有的地址相互衝突了，剛巧該地址和宿主機之上的另外一個網卡地址相同，於是宿主機上橋接虛擬機網絡的網卡，便響應了那個&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;ARP&lt;/code&gt;請求，導致配置失敗。&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 1em;&quot;&gt;
&lt;span style=&quot;color: #999999;&quot;&gt;一開始我也很奇怪，爲什麼明明宿主機上橋接着虛擬機網絡的網卡並不擁有那個目標地址但卻會回覆，而更奇怪的是，虛擬機中使用&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;arping&lt;/code&gt;不加&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;-D&lt;/code&gt;參數，也收不到回覆。所以經過一番搜索與測試驗證，才大致搞明白了其中的原因。&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 1em;&quot;&gt;
&lt;span style=&quot;color: #999999;&quot;&gt;首先，在內核文檔中有這樣一段對&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;arp_filter&lt;/code&gt;參數的描述：&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;highlighter-rouge&quot;&gt;
&lt;pre class=&quot;highlight&quot; style=&quot;background-color: #08175d; display: inline-block; font-size: 12px; line-height: 1.5em; margin-left: 5em; margin-right: 5em; padding: 0px 1em;&quot;&gt;&lt;code style=&quot;font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;0 - (default) The kernel can respond to arp requests with addresses
from other interfaces. This may seem wrong but it usually makes
sense, because it increases the chance of successful communication.
IP addresses are owned by the complete host on Linux, not by
particular interfaces. Only for more complex setups like load-
balancing, does this behaviour cause problems.
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;margin: 1em;&quot;&gt;
&lt;span style=&quot;color: #999999;&quot;&gt;內核認爲一個IP地址是屬於整個主機的，而非某個特定的端口，所以默認情況下，每個端口都會回覆目標是其他端口的IP地址的ARP請求。&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 1em;&quot;&gt;
&lt;span style=&quot;color: #999999;&quot;&gt;查看了機器之後發現這一項爲默認值0，但是又一個疑問發生了，爲什麼使用&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;arping&lt;/code&gt;不帶&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;-D&lt;/code&gt;參數就無法收到返回呢？答案是&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;rp_filter&lt;/code&gt;做了過濾，默認回應的包不從收到的端口出去，所以並不回覆。&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 1em;&quot;&gt;
&lt;span style=&quot;color: #999999;&quot;&gt;那麼接下來又有一個問題，爲什麼帶了&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;-D&lt;/code&gt;參數就收的到回覆呢？原因是，如果使用&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;arping -D&lt;/code&gt;的話，發出的請求包的原地址是設置爲&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;0.0.0.0&lt;/code&gt;的，這點可以參考&lt;a href=&quot;https://tools.ietf.org/html/rfc2131&quot;&gt;RFC2131&lt;/a&gt;中的&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;4.4.1&lt;/code&gt;一段。然後來看代碼：&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;highlighter-rouge&quot;&gt;
&lt;pre class=&quot;highlight&quot; style=&quot;background-color: #08175d; display: inline-block; font-size: 12px; line-height: 1.5em; margin-left: 5em; margin-right: 5em; padding: 0px 1em;&quot;&gt;&lt;code style=&quot;font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;    /* Special case: IPv4 duplicate address detection packet (RFC2131) */
    if (sip == 0) {
            if (arp-&amp;gt;ar_op == htons(ARPOP_REQUEST) &amp;amp;&amp;amp;
                inet_addr_type_dev_table(net, dev, tip) == RTN_LOCAL &amp;amp;&amp;amp;
                !arp_ignore(in_dev, sip, tip))
                    arp_send_dst(ARPOP_REPLY, ETH_P_ARP, sip, dev, tip,
                                    sha, dev-&amp;gt;dev_addr, sha, reply_dst);
            goto out;
    }
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;margin: 1em;&quot;&gt;
&lt;span style=&quot;color: #999999;&quot;&gt;當請求包的地址爲&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;0.0.0.0&lt;/code&gt;的時候，內核只照顧&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;arp_ignore&lt;/code&gt;這個選項，而不去管&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;arp_filter&lt;/code&gt;選項的內容，也不去管&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;rp_filter&lt;/code&gt;的內容。&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin: 1em;&quot;&gt;
&lt;span style=&quot;color: #999999;&quot;&gt;下面看兩個場景，加深一下對這幾個參數的印象：&lt;/span&gt;&lt;/div&gt;
&lt;ol style=&quot;margin-left: 1.2em;&quot;&gt;
&lt;li style=&quot;line-height: 1.2em;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;主機上兩個接口，地址分別處於不同的子網之中&lt;/span&gt;&lt;ul style=&quot;margin-left: 1.2em;&quot;&gt;
&lt;li style=&quot;line-height: 1.2em;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;這種情況不會引起混亂&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;line-height: 1.2em;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;從哪個端口進來的&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;ARP&lt;/code&gt;請求，一般來說請求的源地址也是那個子網之中的地址，因此回覆包也會從該端口出去，所以能通過&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;rp_filter&lt;/code&gt;以及&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;arp_filter&lt;/code&gt;的驗證&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;line-height: 1.2em;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;這種情況下的回覆只需要考慮&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;arp_ignore&lt;/code&gt;的影響&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style=&quot;line-height: 1.2em;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;主機上兩個接口，地址處於相同的子網之中&lt;/span&gt;&lt;ul style=&quot;margin-left: 1.2em;&quot;&gt;
&lt;li style=&quot;line-height: 1.2em;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;容易引起混亂的情況&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;line-height: 1.2em;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;兩個端口進來的&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;ARP&lt;/code&gt;請求，基本上源地址是同一個子網，因此回覆的包只會從&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;ifindex&lt;/code&gt;較小（猜測，未驗證）的端口發送出去，因此從其中一個端口進來的請求有可能無法通過&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;rp_filter&lt;/code&gt;以及&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;arp_filter&lt;/code&gt;的驗證&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;line-height: 1.2em;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;同樣需要考慮&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;arp_ignore&lt;/code&gt;的影響，對於上面說的收到無法通過&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;rp_filter&lt;/code&gt;以及&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;arp_filter&lt;/code&gt;驗證的請求包的端口，除非請求的源地址爲&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;0.0.0.0&lt;/code&gt;，否則便根本不會回覆，而另一端口收到的則正常，而且對兩個接口上所設置的地址，都能夠通過上述的驗證&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;line-height: 1.2em;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;要想讓兩個端口在同一子網中互不干擾，各自使用各自的地址並各自對請求包進行回覆，則需要使用策略路由，並且將&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;arp_filter&lt;/code&gt;和&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;rp_filter&lt;/code&gt;打開，&lt;code class=&quot;highlighter-rouge&quot; style=&quot;background-color: #08175d; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, Courier, monospace; padding: 0.1em 0.5em;&quot;&gt;arp_ignore&lt;/code&gt;正確設置&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;margin: 1em;&quot;&gt;
&lt;span style=&quot;color: #999999;&quot;&gt;關於這些選項的具體設置值的意義，可以參考內核文檔，這裏就不複製粘貼進來加長篇幅了。總之，在能夠進行規劃的情況下，還是儘量避免容易引起混亂的情況爲好。&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/1962636681843705449/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2020/02/from-httphuntxu.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/1962636681843705449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/1962636681843705449'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2020/02/from-httphuntxu.html' title='arp_ignore 和 arp_filter'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-1072392750501189678</id><published>2019-03-25T15:49:00.001+08:00</published><updated>2019-03-25T15:49:33.198+08:00</updated><title type='text'>VXLAN vs VLAN</title><content type='html'>&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em;&quot;&gt;
&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;font-size: xx-small; vertical-align: inherit;&quot;&gt;&lt;i&gt;from:https://zhuanlan.zhihu.com/p/36165475&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;br /&gt;VXLAN（Virtual eXtensible Local Area Network）或許是目前最熱門的網絡虛擬化技術。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;網絡虛擬化是指在一套物理網絡設備上虛擬出多個二層網絡。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;VXLAN由RFC7348定義，這是2014年定稿的一個協議，VXLAN協議將Ethernet幀封裝在UDP內，再加上8個字節的VXLAN header，用來標識不同的二層網絡。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;同樣是網絡虛擬化技術的VLAN（Virtual Local Network）在1998年就提出了第一稿，並且得到廣泛的應用，VLAN直接在Ethernet幀的頭部加上4個字節的VLAN Tag，用來標識不同的二層網絡。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;VLAN已經在大部分的網絡設備和操作系統中得到了支持，它處理起來也比較簡單，在讀取Ethernet數據的時候，只需要根據EtherType相應的偏移4個字節就行。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;相比之下，VXLAN因為提出的較晚，在設備上的支持率不如VLAN，而且，VXLAN數據的封裝解封裝，要比VLAN複雜的多。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;看起來沒理由VXLAN搶占VLAN的地位，但是現實卻不是如此，那究竟是什麼原因導致的呢？&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h2 style=&quot;background-color: white; clear: left; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 1.2em; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 1.5; margin: 2.33333em 0px 1.16667em;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;VXLAN協議&lt;/span&gt;&lt;/h2&gt;
&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;我們先來看看VXLAN協議，前面說過，VXLAN是將Ethernet Frame封裝在UDP包裡面，具體的協議格式如下。&lt;/span&gt;&lt;/div&gt;
&lt;figure data-size=&quot;normal&quot; style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;img class=&quot;origin_image zh-lightbox-thumb lazy&quot; data-actualsrc=&quot;https://pic3.zhimg.com/v2-5b08893335ea7f4094de7c17ccdd5b7a_b.jpg&quot; data-caption=&quot;&quot; data-original=&quot;https://pic3.zhimg.com/v2-5b08893335ea7f4094de7c17ccdd5b7a_r.jpg&quot; data-rawheight=&quot;389&quot; data-rawwidth=&quot;600&quot; data-size=&quot;normal&quot; src=&quot;https://pic3.zhimg.com/80/v2-5b08893335ea7f4094de7c17ccdd5b7a_hd.jpg&quot; style=&quot;cursor: zoom-in; display: block; margin: 0px auto; max-width: 100%;&quot; width=&quot;600&quot; /&gt;&lt;/figure&gt;&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;除了常規的各層的header之外，VXLAN協議定義了8個字節的VXLAN Header。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;其中的24bit用來標識不同的二層網絡，這樣總共可以標識1600多萬個不同的二層網絡。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;一般的傳輸層端口號用來標識進程或者應用，但是在VXLAN協議裡面的，Ethernet Frame封裝在UDP裡面，UDP的source port被用來在ECMP或者LACP做負載均衡；destination port被用來標識VXLAN數據，IANA（Internet Assigned Numbers Authority）分配給VXLAN的端口號是4789。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;VXLAN數據是經過VTEP（VXLAN Tunnel EndPoint）封裝和解封裝的，相應的VXLAN數據的外層IP地址就是VTEP的IP地址。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;最外層的MAC地址用來實現VTEP之間的數據傳遞。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;VXLAN與VLAN的最大區別在於，VLAN只是修改了原始的Ethernet Header，但是整個網絡數據包還是原來那個數據包，而VXLAN是將原始的Ethernet Frame隱藏在UDP數據裡面。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;經過VTEP封裝之後，在網絡線路上看起來只有VTEP之間的UDP數據傳遞，原始的網絡數據包被掩蓋了。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;VXLAN並不是憑空出現，這種在UDP裡面封裝網絡數據的做法，在VXLAN之前就已經存在，例如OTV（Overlay Transport Virtualization）和LISP（Locator/ID Separation Protocol&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-weight: 600;&quot;&gt;）。&lt;/span&gt;&lt;/div&gt;
&lt;h2 style=&quot;background-color: white; clear: left; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 1.2em; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 1.5; margin: 2.33333em 0px 1.16667em;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;為什麼要VXLAN？&lt;/span&gt;&lt;/h2&gt;
&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;相比VLAN，VXLAN顯得複雜很多。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;再加上VLAN的先發優勢，已經得到了廣泛的支持。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;那為什麼還要VXLAN？&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;font-weight: 600;&quot;&gt;&lt;i&gt;VLAN ID數量限制&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;font-weight: 600;&quot;&gt;&lt;i&gt;--&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;首先是VLAN能支持的二層網絡數量有限。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;VLAN Tag總共4個字節，其中有12bit用來標識不同的二層網絡，這樣總共是4000多個。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;而VXLAN header有8個字節，有24bit用來標識不同的二層網絡，這樣總共是1600多萬個。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;這或許是知名度最高的一條原因。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;但這是最根本的原因嗎？&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;VLAN自身也有一些相關的協議，其中QinQ（IEEE 802.1 ad）定義在Ethernet頭部加上2個VLAN Tag，這樣總共也可以由12+12=24bit的數據用來標識不同的二層網絡。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;如果僅僅是因為能支持的二層網絡數量有限，只需要在現有的VLAN設備上做一些改動，直接用QinQ就好了。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;所以，選用VXLAN一定還有其他原因。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;i&gt;&lt;span style=&quot;font-weight: 600;&quot;&gt;TOR交換機MAC地址表限制&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;i&gt;&lt;span style=&quot;font-weight: 600;&quot;&gt;--&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;數據中心的虛擬化給網絡設備帶來的最直接影響就是：之前TOR（Top Of Rack）交換機的一個端口連接一個物理主機對應一個MAC地址，但現在交換機的一個端口雖然還是連接一個物理主機但是可能進而連接幾十個甚至上百個虛擬機和相應數量的MAC地址。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;傳統交換機是根據MAC地址表實現二層轉發。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;如下圖所示，交換機在收到一個數據幀之後，根據VLAN和目的MAC地址，查找到相應的交換機端口，再將數據幀從相應的端口發出。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;figure data-size=&quot;normal&quot; style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;img class=&quot;origin_image zh-lightbox-thumb lazy&quot; data-actualsrc=&quot;https://pic4.zhimg.com/v2-6a14707804784b3dafedc1c15b231d67_b.jpg&quot; data-caption=&quot;&quot; data-original=&quot;https://pic4.zhimg.com/v2-6a14707804784b3dafedc1c15b231d67_r.jpg&quot; data-rawheight=&quot;502&quot; data-rawwidth=&quot;720&quot; data-size=&quot;normal&quot; src=&quot;https://pic4.zhimg.com/80/v2-6a14707804784b3dafedc1c15b231d67_hd.jpg&quot; style=&quot;cursor: zoom-in; display: block; margin: 0px auto; max-width: 100%;&quot; width=&quot;720&quot; /&gt;&lt;/figure&gt;&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;這個MAC地址表是通過交換機的flood-learn學習並記錄在交換機的內存。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;交換機的內存比較寶貴，所以MAC地址表的大小通常是有限的。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;現在因為虛擬化，整個數據中心的MAC地址多了幾十倍，那相應的交換機裡面的MAC地址表也需要擴大幾十倍。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;如果交換機不支持這麼大的MAC地址表，那麼就會導致MAC地址表溢出。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;溢出之後，交換機不能將新的MAC地址學習到自己的MAC地址表。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;如果交換機收到這些MAC地址的數據幀，因為不能通過查表轉發，會flood到所有的端口。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;這不但增加了交換機的負擔，還增加了網絡中其他設備的負擔。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;為了避免這個問題，可以用一些更大容量的交換機，但是相應的成本也要上升，而且還不能從根本上解決這個問題。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;如果使用VXLAN，虛擬機的Ethernet Frame被VTEP封裝在UDP裡面，一個VTEP可以被一個物理主機上的所有虛擬機共用。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;從交換機的角度，交換機看到的是VTEP之間在傳遞UDP數據。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;通常，一個物理主機對應一個VTEP，所以交換機的MAC地址表，只需要記錄與物理主機數量相當條目就可以了，虛擬化帶來的MAC地址表暴增的問題也不存在了。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;這是VXLAN能解決的，而現有的VLAN沒有辦法迴避的問題。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;font-weight: 600;&quot;&gt;&lt;i&gt;靈活的虛機部署和部署&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;font-weight: 600;&quot;&gt;&lt;i&gt;--&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;採用VLAN網絡的虛擬環境，不存在overlay網絡。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;虛擬機的網絡數據，被打上VLAN Tag之後，直接在物理網絡上傳輸，與物理網絡上的VLAN是融合在一起的。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;這樣的好處是虛擬機能直接訪問到物理網絡的設備，但是壞處是，虛擬網絡現在不能打破物理網絡的限制。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;比如，如果要在VLAN 100部署虛擬機，那隻能在支持VLAN 100的物理設備上部署虛機。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;通常不同的VLAN網絡，會被分配不同的IP地址段，通過路由器或者其他的三層設備連接在一起。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;設想我有下面一個環境，​​紫色區域和綠色區域分別對應不同的VLAN網絡，紫色區域裡面每個服務器已經有10個虛機，綠色區域每個服務器只有2個虛機，紫色區域雖然服務器數量更多，但是總的負擔已經夠重了。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;現在因為業務的需求，我們還需要向紫色網絡裡面部署虛機，因為VLAN網絡無法打破物理二層網絡的限制，虛機還是只能部署在紫色區域，這明顯不合理。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;另一方面，就算不部署新的虛擬機，只是對現有的部署做一個優化，將部分虛擬機從紫色區域遷移到綠色區域，因為無法打破物理二層網絡的限制，這也是不可行的。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;因為業務肯定不是平均分配的，那如果採用VLAN網絡，極有可能會導致數據中心的利用率分佈不均勻。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;figure data-size=&quot;normal&quot; style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;img class=&quot;origin_image zh-lightbox-thumb lazy&quot; data-actualsrc=&quot;https://pic2.zhimg.com/v2-5aa91b6df1d8cd86cad8dbd0acb453b1_b.jpg&quot; data-caption=&quot;&quot; data-original=&quot;https://pic2.zhimg.com/v2-5aa91b6df1d8cd86cad8dbd0acb453b1_r.jpg&quot; data-rawheight=&quot;718&quot; data-rawwidth=&quot;1078&quot; data-size=&quot;normal&quot; src=&quot;https://pic2.zhimg.com/80/v2-5aa91b6df1d8cd86cad8dbd0acb453b1_hd.jpg&quot; style=&quot;cursor: zoom-in; display: block; margin: 0px auto; max-width: 100%;&quot; width=&quot;1078&quot; /&gt;&lt;/figure&gt;&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;VLAN其實有自己的解決辦法，如果將所有的交換機Trunk連接起來，那在物理上沒有明確的區域區分。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;但是這樣就產生了一個大的二層，相應的BUM（Broadcast，Unknown Unicast，Multicast）和交換機MAC地址表的問題也會隨之產生。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;如果使用VXLAN呢？&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;因為VXLAN通過UDP傳輸Ethernet Frame，那相應的可以在一個L3網絡上，傳遞L2的數據。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;又或者用官方的說法，在一個L3網絡上構建了L2網絡。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;物理網絡的二層邊界還存在，但是現在虛機的網絡數據在三層網絡傳輸，可以跨越物理二層網絡的限制。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;figure data-size=&quot;normal&quot; style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin: 1.4em 0px;&quot;&gt;&lt;img class=&quot;origin_image zh-lightbox-thumb lazy&quot; data-actualsrc=&quot;https://pic4.zhimg.com/v2-3c372aa2b3cb1e2d19729af508f1823f_b.jpg&quot; data-caption=&quot;&quot; data-original=&quot;https://pic4.zhimg.com/v2-3c372aa2b3cb1e2d19729af508f1823f_r.jpg&quot; data-rawheight=&quot;341&quot; data-rawwidth=&quot;523&quot; data-size=&quot;normal&quot; src=&quot;https://pic4.zhimg.com/80/v2-3c372aa2b3cb1e2d19729af508f1823f_hd.jpg&quot; style=&quot;cursor: zoom-in; display: block; margin: 0px auto; max-width: 100%;&quot; width=&quot;523&quot; /&gt;&lt;/figure&gt;&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;不管物理網絡的二層還是三層，虛擬機現在已經感知不到了。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;通過VXLAN的封裝，虛擬機現在走的是一套獨立於物理網絡（underlay network）的overlay network。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;這樣的話，在物理網絡上，就不必把所有的交換機Trunk連起來，還是可以保持一個個小的L2 Pod。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;但是同時，虛擬機的部署和遷移，又不用受物理網絡的限制，整個數據中心可以保持一個平均的利用率。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;這是另外一個VXLAN能解決，但是VLAN無法迴避的問題。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;font-weight: 600;&quot;&gt;&lt;i&gt;更好的利用多條網絡鏈路&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;--&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;VLAN協議使用STP（Spanning Tree Protocol）來管理多條線路，STP根據優先級和cost，只會選出一條線路來工作，這樣可以避免數據傳遞的環路。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;這種主備（active-passive）的模式，比只連接一條線路肯定是有優勢，但是對於用戶來說，相當於花了N倍的錢，卻只用到了1倍的服務。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;當網絡流量較大的時，也不能通過增加線路來提升性能。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;而VXLAN因為是通過UDP封裝，在三層網絡上傳輸。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;雖然傳遞的還是二層的Ethernet Frame，但是VXLAN可以利用一些基於三層的協議來實現多條線路共同工作（active-active），以實現負載均衡，例如ECMP，LACP。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;現在對於用戶來說，花了N倍的錢，也用到了N倍的服務。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;當網絡流量較大時，現在可以通過增加線路來減輕現有線路的負擔。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;這在提升數據中心網絡性能，尤其是東西向流量的性能時，尤其重要。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;這是VXLAN相比VLAN，能帶來的另一個好處。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h2 style=&quot;background-color: white; clear: left; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; font-size: 1.2em; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 1.5; margin: 2.33333em 0px 1.16667em;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;最後&lt;/span&gt;&lt;/h2&gt;
&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;所以，儘管VXLAN要復雜一些，提出的晚一些，普及率也要低一些，但是隨著數據中心規模的發展和虛擬化的普及，VXLAN逐漸成為構建數據中心網絡的趨勢。&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-bottom: 1.4em; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;不過理智點看，VXLAN有這麼多優點，在可以預見的未來，還是不能完全替代VLAN。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;首先VXLAN是一種overlay網絡，不能獨立存在，必須依賴underlay網絡，而在構建underlay網絡時，還是需要藉助VLAN。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;其次，這裡介紹的VXLAN的優勢，都是在大規模環境下，如果你的數據中心的規模，不論虛機還是物理的，就百十台的樣子，那直接用VLAN也可以了，沒必要上VXLAN。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Source Han Sans SC&amp;quot;, &amp;quot;Noto Sans CJK SC&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, sans-serif; margin-top: 1.4em;&quot;&gt;
&lt;span style=&quot;vertical-align: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;VXLAN最多是在構建數據中心時的一個選項，而不是唯一的選項。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;套用馬斯洛的“工具法則”：當你只有一個錘子時，任何東西看起來都像是個釘子。&lt;/span&gt;&lt;span style=&quot;vertical-align: inherit;&quot;&gt;在設計數據中心網絡時，也應該避免用一種方法解決所有問題，VXLAN，VLAN，BGP，EVPN，OpenStack應該綜合考慮。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/1072392750501189678/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2019/03/vxlan-vs-vlan.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/1072392750501189678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/1072392750501189678'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2019/03/vxlan-vs-vlan.html' title='VXLAN vs VLAN'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2937680267848947674.post-3256693584171563451</id><published>2018-12-27T10:24:00.002+08:00</published><updated>2018-12-27T10:24:35.879+08:00</updated><title type='text'>什麼是MPLS</title><content type='html'>&lt;table border=&quot;0&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; class=&quot;s1&quot; style=&quot;background-color: white; font-size: 12px; letter-spacing: 1pt; line-height: 18px; width: 100%px; word-spacing: 1pt;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;b&gt;From:http://eservice.seed.net.tw/class/class0801c.html&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;blockquote&gt;
多重通訊協定標籤交換傳輸(Multi-Protocol Label Switching)是由IETF 所發展出來的Network Standard。它是實現寬頻網際網路最熱門的技術；其目的是要提供一個更具彈性、擴充性及效率更高的IP層交換技術。&lt;br /&gt;
MPLS 是一種整合了標籤交換架構與網路層的路由機制的技術，最基本的概念是將進入MPLS Network 的封包(Packet)配置一個固定長度的標籤(Label)，在MPLS Network中Packet會根據標籤(Label) 做Forwarding , 由Label來決定Packet在網路上的路徑，不會再看 Layer 3的 IP Header(標頭)。&lt;/blockquote&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;傳統IP Network 的運作方式&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;blockquote&gt;
Packet在一般的IP Network傳遞時，路由器的運作是以所謂的&quot;Store and Forward&quot;的程序來做Packet路由的選擇及轉送，所以當路由器收到一個Packet時，會先儲存Packet 、分析路由、轉送Packet 到下一個適當的路由器，而當此路由器又收到下一個Packet 要傳送到相同的目的地時，它必須重覆執行相同的程序(儲存、分析、轉送)，這樣是很沒有效率的而且會耗用路由器大量的CPU處理能力及記憶體空間，此外傳統的路由器是以軟體的處理方式轉送IP 封包，而MPLS的技術則是引用與ATM交換技術類似的標籤交換(Label Switching)技術，簡化了路由器的轉送功能直接利用Switching Fabric以線上速度(Line Speed)來轉送封包(Packet)到達目的地。&lt;/blockquote&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;MPLS Label 的Format及插入Packet的位置&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;blockquote&gt;
Label是一個4Bytes、固定長度、locally-significant identifier類似在ATM網路中VPI(Virtual Path Identifier)/VCI(Virtual Circuit Identifier)或是Frame-Relay網路中的DLCI(Data Link Circuit Identifier)，Label是被插入於Packet的第二層資料鏈結層(data link layer)與第三層網路層(network layer)Header之間。&lt;/blockquote&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td height=&quot;209&quot; valign=&quot;top&quot;&gt;&lt;div align=&quot;center&quot;&gt;
&lt;img border=&quot;1&quot; height=&quot;234&quot; src=&quot;https://eservice.seed.net.tw/image/class/0801-1c1.gif&quot; width=&quot;433&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td height=&quot;83&quot; valign=&quot;top&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;MPLS Network 的組成&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;blockquote&gt;
MPLS 網路是由多個具有標籤交換能力的路由器LSR(Label Switch Router)互相連結所組成，根據在MPLS網路內扮演角色的不同LSR可以分為三種類型：&lt;br /&gt;
(1) Ingress LSR：負責將進入MPLS網路的IP Packet貼上標籤(Push Label)&lt;br /&gt;
(2) Core LSR：LSR則位於MPLS網路的核心，負責做標籤轉換(Label Swap)&lt;br /&gt;
(3) Egress LSR：當封包要離開MPLS網路到一般IP網路時，負責去除標籤( Pop Label)。&lt;/blockquote&gt;
&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td height=&quot;190&quot; valign=&quot;top&quot;&gt;&lt;div align=&quot;center&quot;&gt;
&lt;img border=&quot;1&quot; height=&quot;275&quot; src=&quot;https://eservice.seed.net.tw/image/class/0801-1c2.gif&quot; width=&quot;584&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td height=&quot;299&quot; valign=&quot;top&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Label Assignment and Distribution的過程&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;LSR Routing Table的建立：在MPLS網路中所有的LSR利用routing protocol來交換路由資訊，建立自己的IP Routing Table，並根據Routing Table 建立自己的FIB(Forwarding Information Base)，此時的FIB中並沒有Label的資訊。&lt;/li&gt;
&lt;li&gt;LSR Allocating Label過程： 當LSR路由器開始啟動MPLS功能時,會根據由IGP(如RIP、OSPF)學來的路由表(Routing Table)內容，對於使用相同處理方式、相同path、到達相同目的地IP subnet的Routing entry 做彙整(aggregation)及分類後Assign Label。&lt;/li&gt;
&lt;li&gt;LSR 初步建立自己的LIB及LFIB：將前面步驟Allocating 的local Label資訊儲存於LIB(Label Information Base)和LFIB(Label Forwarding Information Base)中，此時的LFIB中只有local Label 的資訊並沒有outgoing Label 的資訊。&lt;/li&gt;
&lt;li&gt;LSR Label Distribution過程：LSR將他Local assign的Label資訊傳送(Distribution)給相鄰的LSR，不論這相鄰的LSR是local LSR的downstream或upstream 都會傳送，而Label Distribution 靠的是相鄰的LSR間要執行LDP(Label Distribution Protocol)的協定，來互相交換彼此的Label資訊。另外談到LDP 的特性，MPLS Device 會send/receive LDP，LDP 透過Discovery 去和Neighbor溝通對方是否有啟動MPLS及交換Label information，而LDP是用UDP protocol去discovery neighbor,並利用 TCP 去去交換彼此Label information。&lt;/li&gt;
&lt;li&gt;LSR收到相鄰LSR送來的Lable資訊做資訊的彙整過程：最後每個LSR 根據接收到相鄰LSR送來的Label 資訊後，新增這些Label資訊於自己的LIB中，並根據routing table得到的最佳路徑，獲知到某網段的Next-hop LSR 所送來的Label資訊，插入到LFIB的outgoing Label資料結構中。&lt;/li&gt;
&lt;/ol&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td height=&quot;88&quot; valign=&quot;top&quot;&gt;&lt;div align=&quot;center&quot;&gt;
&lt;img border=&quot;1&quot; height=&quot;210&quot; src=&quot;https://eservice.seed.net.tw/image/class/0801-1c3.gif&quot; width=&quot;584&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td height=&quot;89&quot; valign=&quot;top&quot;&gt;&lt;div align=&quot;center&quot;&gt;
&lt;img border=&quot;1&quot; height=&quot;210&quot; src=&quot;https://eservice.seed.net.tw/image/class/0801-1c4.gif&quot; width=&quot;584&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td height=&quot;177&quot; valign=&quot;top&quot;&gt;&lt;div align=&quot;center&quot;&gt;
&lt;img border=&quot;1&quot; height=&quot;210&quot; src=&quot;https://eservice.seed.net.tw/image/class/0801-1c5.gif&quot; width=&quot;584&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td height=&quot;88&quot; valign=&quot;top&quot;&gt;&lt;div align=&quot;center&quot;&gt;
&lt;img border=&quot;1&quot; height=&quot;210&quot; src=&quot;https://eservice.seed.net.tw/image/class/0801-1c6.gif&quot; width=&quot;584&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td height=&quot;89&quot; valign=&quot;top&quot;&gt;&lt;div align=&quot;center&quot;&gt;
&lt;img border=&quot;1&quot; height=&quot;210&quot; src=&quot;https://eservice.seed.net.tw/image/class/0801-1c7.gif&quot; width=&quot;584&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td height=&quot;220&quot; valign=&quot;top&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Packet在MPLS網路中傳送的過程&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Ingress LSR(Router A)：IP Packet 進入MPLS網路的第一顆LSR路由器稱為Ingress LSR，當IP Packet 進入Ingress LSR 首先會查看Packet中的Destination IP address，並且在FIB中lookup 是否有符合的IP network ，如果有則進一步查看FIB中相對應的Label欄位其值為何？(例如：IP =X ，Label=25 )，當Packet從Ingress LSR 送出時，會在此Packet中打上Label=25的標示，再傳送出去。&lt;/li&gt;
&lt;li&gt;Core LSR (Router B)：當帶有Label=25的Packet傳到Router B時，Router B會查看(lookup)他的LFIB的資料，看看是否有Inbound Label=25的entry，如果有則再查看此entry中Outgoing Label的欄位值為何？(例如 Outgoing Label=47)，所以Packet中的Label快速的被置換(Label=25 aLabel=47)並往下一個節點傳送出去。&lt;/li&gt;
&lt;li&gt;Egress LSR(Router C)：當帶有Label=47的Packet傳到Router C時，Router C會查看(lookup)他的LFIB的資料，看看是否有Inbound Label=47的entry，如果有則再查看此entry中Outgoing Label的欄位值為何？(例如 Outgoing Label=Pop)，所以Packet中的Label被移除，此時已離開MPLS網路再進入到IP的網路中，因此重新查看Packet中的Destination IP address為何？並查看其FIB以決定Packet要傳送的下一個節點 。&lt;/li&gt;
&lt;/ol&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot;&gt;&lt;div align=&quot;center&quot;&gt;
&lt;img border=&quot;1&quot; height=&quot;261&quot; src=&quot;https://eservice.seed.net.tw/image/class/0801-1c8.gif&quot; width=&quot;584&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td height=&quot;60&quot; valign=&quot;top&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;在MPLS網路中Egress LSR double lookup的問題&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;blockquote&gt;
由於Egress LSR不但要查看LFIB中的資料以便移除Packet 中的Label，而且還要查看FIB中的資料以決定將Packet往IP網路的下一個節點傳送，這樣的作法會使Egress LSR 的負擔太重，而且對傳送有Label的封包也不是最有效的方式。&lt;/blockquote&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td height=&quot;258&quot; valign=&quot;top&quot;&gt;&lt;div align=&quot;center&quot;&gt;
&lt;img border=&quot;1&quot; height=&quot;261&quot; src=&quot;https://eservice.seed.net.tw/image/class/0801-1c9.gif&quot; width=&quot;584&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td height=&quot;25&quot; valign=&quot;top&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Penultimate Hop Popping&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;blockquote&gt;
所以解決的方式就是在原來Egress LSR前一個節點就把Label移除，最後一顆Router 只要做IP lookup 就好了，此種運作方式稱為Penultimate Hop Popping。&lt;/blockquote&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td height=&quot;186&quot; valign=&quot;top&quot;&gt;&lt;div align=&quot;center&quot;&gt;
&lt;img border=&quot;1&quot; height=&quot;216&quot; src=&quot;https://eservice.seed.net.tw/image/class/0801-1c10.gif&quot; width=&quot;584&quot; /&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td valign=&quot;top&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;結語&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;blockquote&gt;
本篇文章從一開始介紹傳統路由器在IP 路由傳送封包的運作缺點及描述發展MPLS技術的優勢，並且說明整個MPLS 技術的運作原理，從MPLS Label的format介紹及Label在封包標頭位置的解說，到整個MPLS網路中各個不同角色LSR的運作方式，在其中更詳細的探討Label 如何被Assignment及 相鄰LSR之間如何交換彼此的Label Information的過程，另外更舉例說明封包在MPLS網路中從Push(加上)Label，一直到離開MPLS網路前Pop(去除)Label的詳細過程，最後則探討為何封包在離開MPLS網路的前一個節點(Hop)就要先Pop(去除)Label的原因。&lt;/blockquote&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
</content><link rel='replies' type='application/atom+xml' href='http://chunchaichang.blogspot.com/feeds/3256693584171563451/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://chunchaichang.blogspot.com/2018/12/mpls.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/3256693584171563451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2937680267848947674/posts/default/3256693584171563451'/><link rel='alternate' type='text/html' href='http://chunchaichang.blogspot.com/2018/12/mpls.html' title='什麼是MPLS'/><author><name>髒圳嘎</name><uri>http://www.blogger.com/profile/17184209061223272557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuY_q1kZjT7jZcpZ_PeOiQZGP6ssotmWmbbnB0IqSLjOe0dDtwBzSXkOuzZ7qsSHOIRXjPtYu_mvl9XSqmFpTz6YMXrV_uqbOqaiSw4GJg2VAOgLGEqKs6HT1AZuoxGA/s1600/121255644_3681140721950771_6566855191375154821_n.jpg%3F_nc_cat%3D111%26ccb%3D2%26_nc_sid%3D85a577%26_nc_ohc%3DgCcIJ2DqkpkAX-Ymhci%26_nc_oc%3DAQkhdIdcmW3f7tZyVEt3mSQ5Pg-YSKXEV3QVNVssp6DyphQqDtRV48jMr9W6_VJoBfY%26_nc_ht%3Dscontent.ftpe8-3.fna%26oh%3Def8d8c900e7d848ff3eaeea72ddf37ee%26oe%3D5FD92F55'/></author><thr:total>0</thr:total></entry></feed>