<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Vilhelm</title>
    <link>https://vilhelm.tistory.com/</link>
    <description>nv2487@gmail.com</description>
    <language>ko</language>
    <pubDate>Wed, 20 May 2026 22:28:19 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Vilhelm</managingEditor>
    <image>
      <title>Vilhelm</title>
      <url>https://tistory1.daumcdn.net/tistory/8531750/attach/97d30e5468d94adea368f952aa19d51d</url>
      <link>https://vilhelm.tistory.com</link>
    </image>
    <item>
      <title>RSTP(Rapid Spanning Tree Protocol) - 50초를 1초로 줄이다</title>
      <link>https://vilhelm.tistory.com/47</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;PVST의 한계에서 시작된 이야기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞 편에서 PVST의 가장 큰 단점으로 &lt;b&gt;수렴 시간&lt;/b&gt;을 꼽았다.&lt;br /&gt;링크 장애가 발생하면 STP가 새로운 경로를 계산하고 적용하는 데 &lt;b&gt;30~50초&lt;/b&gt;가 걸린다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서버 한 대가 50초 동안 통신이 끊긴다고 생각해보자. 실무에서는 용납하기 어려운 수치다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RSTP는 이 문제를 해결하기 위해 IEEE 802.1w 표준으로 등장했다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;pre id=&quot;code_1779166359347&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Blocking &amp;rarr; Listening (15초) &amp;rarr; Learning (15초) &amp;rarr; Forwarding&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Listening과 Learning 단계에서 각각 15초씩 대기한다.&lt;br /&gt;이 대기 시간은 네트워크가 안정됐는지 확인하기 위한 것인데, 너무 보수적으로 설계됐다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;RSTP의 해결 방식&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RSTP는 대기 시간을 없애는 대신 **스위치끼리 직접 협상(Proposal/Agreement)**으로 빠르게 상태를 전환한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;포트 상태 단순화&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style10&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;STP 포트 상태&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;RSTP 포트 상태&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;Blocking&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;Discarding&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;Listening&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;Discarding&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;Learning&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;Learning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;Forwarding&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;Forwarding&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;Disabled&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;Discarding&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;STP의 5단계를 &lt;b&gt;3단계로 축소&lt;/b&gt;했다.&lt;br /&gt;Listening 단계가 사라지면서 대기 시간이 크게 줄었다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;RSTP 포트 역할&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;STP와 비교해서 포트 역할도 세분화됐다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 89px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style10&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 30.814%; height: 21px;&quot;&gt;포트 역할&lt;/td&gt;
&lt;td style=&quot;width: 69.186%; height: 21px;&quot;&gt;설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 30.814%; height: 17px;&quot;&gt;Root Port&lt;/td&gt;
&lt;td style=&quot;width: 69.186%; height: 17px;&quot;&gt;Root Bridge로 가는 최적 경로 (STP와 동일)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 30.814%; height: 17px;&quot;&gt;Designated Port&lt;/td&gt;
&lt;td style=&quot;width: 69.186%; height: 17px;&quot;&gt;세그먼트 대표 포트 (STP와 동일)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 30.814%; height: 17px;&quot;&gt;Alternate Port&lt;/td&gt;
&lt;td style=&quot;width: 69.186%; height: 17px;&quot;&gt;Root Port의 백업 경로 &amp;rarr; 즉시 대체 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 30.814%; height: 17px;&quot;&gt;Backup Port&lt;/td&gt;
&lt;td style=&quot;width: 69.186%; height: 17px;&quot;&gt;Designated Port의 백업&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;핵심은 &lt;b&gt;Alternate Port&lt;/b&gt;다.&lt;br /&gt;STP에서는 Blocking 포트가 단순히 차단만 했다면, RSTP에서는 Alternate Port가 &lt;b&gt;백업 경로를 미리 계산해두고 대기&lt;/b&gt;한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 장애 발생 시 협상 없이 &lt;b&gt;즉시 Forwarding으로 전환&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Proposal/Agreement 메커니즘&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RSTP가 빠른 수렴을 달성하는 핵심 원리다.&lt;/p&gt;
&lt;pre id=&quot;code_1779166530499&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;1 SW1(Designated) &amp;rarr; SW2로 Proposal 전송
   &quot;나 Forwarding 해도 돼?&quot;

2 SW2는 자신의 하위 포트를 모두 Discarding으로 변경
   (루프 방지를 위해 먼저 차단)

3 SW2 &amp;rarr; SW1로 Agreement 응답
   &quot;OK, Forwarding 해&quot;

4 SW1 포트 즉시 Forwarding 전환

5 SW2도 Root Port를 Forwarding 전환

&amp;rarr; 전체 과정 1초 이내 완료&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 과정이 &lt;b&gt;Edge Port(엣지 포트)&lt;/b&gt; 가 아닌 P2P 링크(스위치끼리 연결된 포트)에서 일어난다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Edge Port &amp;mdash; PC 연결 포트 최적화&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PC나 서버처럼 &lt;b&gt;스위치가 아닌 장치&lt;/b&gt;가 연결된 포트는 STP 협상 자체가 필요 없다.&lt;br /&gt;루프가 생길 가능성이 없기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RSTP는 이런 포트를 &lt;b&gt;Edge Port&lt;/b&gt;로 지정하면 협상 없이 즉시 Forwarding 상태로 올라간다.&lt;/p&gt;
&lt;pre id=&quot;code_1779166565803&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# Edge Port 설정 (Cisco에서는 PortFast로 구현)
SW1(config-if)# spanning-tree portfast&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;주의: Edge Port에 스위치를 연결하면 루프 위험이 있다.&lt;br /&gt;PC, 서버 연결 포트에만 사용할 것.&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Rapid PVST+&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RSTP와 PVST를 합친 것이 &lt;b&gt;Rapid PVST+&lt;/b&gt; 다.&lt;br /&gt;VLAN마다 독립적인 RSTP 인스턴스를 운영한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Cisco 스위치에서 현재 가장 널리 쓰이는 STP 방식이며, &lt;b&gt;기본값&lt;/b&gt;이다.&lt;/p&gt;
&lt;pre id=&quot;code_1779166589083&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# Rapid PVST+ 활성화 (Cisco 기본값)
SW1(config)# spanning-tree mode rapid-pvst

# 현재 STP 모드 확인
SW1# show spanning-tree summary | include Mode&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;확인 명령어&lt;/h2&gt;
&lt;pre id=&quot;code_1779166614475&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# RSTP 상태 확인
SW1# show spanning-tree vlan 10

# 포트 역할 및 상태 확인
SW1# show spanning-tree detail

# 수렴 시간 확인 (Topology Change 횟수)
SW1# show spanning-tree vlan 10 detail | include Topology&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;STP vs PVST vs RSTP 비교 정리&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;항목&lt;/td&gt;
&lt;td&gt;STP&lt;/td&gt;
&lt;td&gt;PVST&lt;/td&gt;
&lt;td&gt;RSTP(Rapid PVST+)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;표준&lt;/td&gt;
&lt;td&gt;IEEE 802.1D&lt;/td&gt;
&lt;td&gt;Cisco 독자&lt;/td&gt;
&lt;td&gt;IEEE 802.1w&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VLAN 지원&lt;/td&gt;
&lt;td&gt;단일 인스턴스&lt;/td&gt;
&lt;td&gt;VLAN별 인스턴스&lt;/td&gt;
&lt;td&gt;VLAN별 인스턴스&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;수렴 시간&lt;/td&gt;
&lt;td&gt;30~50초&lt;/td&gt;
&lt;td&gt;30~50초&lt;/td&gt;
&lt;td&gt;&lt;b&gt;1초 이내&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;백업 경로&lt;/td&gt;
&lt;td&gt;없음&lt;/td&gt;
&lt;td&gt;없음&lt;/td&gt;
&lt;td&gt;Alternate Port&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;현재 사용&lt;/td&gt;
&lt;td&gt;거의 안 씀&lt;/td&gt;
&lt;td&gt;레거시 환경&lt;/td&gt;
&lt;td&gt;&lt;b&gt;현재 표준&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;마치며&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RSTP의 핵심은 두 가지다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;포트 상태 단순화&lt;/b&gt; &amp;rarr; 불필요한 대기 시간 제거&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Proposal/Agreement + Alternate Port&lt;/b&gt; &amp;rarr; 장애 시 즉시 전환&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실무에서는 Rapid PVST+가 기본값으로 적용되어 있어서 별도 설정 없이도 RSTP가 동작한다.&lt;br /&gt;다만 설계 의도를 가지고 Edge Port, Priority, Root Bridge를 직접 설정하는 것이 안정적인 네트워크를 만드는 핵심이다.&lt;/p&gt;</description>
      <category>Network &amp;amp; Infra/STP</category>
      <author>Vilhelm</author>
      <guid isPermaLink="true">https://vilhelm.tistory.com/47</guid>
      <comments>https://vilhelm.tistory.com/47#entry47comment</comments>
      <pubDate>Tue, 19 May 2026 14:05:59 +0900</pubDate>
    </item>
    <item>
      <title>PVST(Per-VLAN Spanning Tree) - VLAN마다 다른 STP 인스턴스</title>
      <link>https://vilhelm.tistory.com/46</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;기존 STP의 문제&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞서 STP는 루프를 막기 위해 특정 포트를 Blocking한다고 했다.&lt;br /&gt;그런데 여기서 한 가지 문제가 생긴다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;기본 STP는 VLAN을 구분하지 않는다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 VLAN 10과 VLAN 20이 있어도, STP는 하나의 트리만 만든다.&lt;br /&gt;즉, VLAN 10 트래픽이나 VLAN 20 트래픽이나 &lt;b&gt;똑같은 경로&lt;/b&gt;를 사용한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;455&quot; data-origin-height=&quot;338&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lG9pe/dJMcahdpufX/tWJ43SjGqIBisKgkOYJ77K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lG9pe/dJMcahdpufX/tWJ43SjGqIBisKgkOYJ77K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lG9pe/dJMcahdpufX/tWJ43SjGqIBisKgkOYJ77K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlG9pe%2FdJMcahdpufX%2FtWJ43SjGqIBisKgkOYJ77K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;455&quot; height=&quot;338&quot; data-origin-width=&quot;455&quot; data-origin-height=&quot;338&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &lt;span style=&quot;text-align: center;&quot;&gt;우측 상단의 Fa0/1는 항상 Blocking이다. VLAN 10도, VLAN 20도 이 링크를 못 쓴다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;PVST란?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;PVST(Per-VLAN Spanning Tree)&lt;/b&gt; 는 VLAN마다 &lt;b&gt;별도의 STP 인스턴스&lt;/b&gt;를 운영하는 방식이다.&lt;br /&gt;Cisco 전용 프로토콜이며, 기본 STP를 VLAN 단위로 확장한 것이다.&lt;/p&gt;
&lt;pre id=&quot;code_1779159815984&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;기본 STP: VLAN 전체에 STP 인스턴스 1개
PVST:     VLAN 10 &amp;rarr; STP 인스턴스 1개
          VLAN 20 &amp;rarr; STP 인스턴스 1개
          VLAN 30 &amp;rarr; STP 인스턴스 1개
          ...&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;PVST의 핵심 장점 &amp;mdash; 로드밸런싱&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VLAN마다 Root Bridge를 다르게 설정할 수 있다.&lt;br /&gt;이를 통해 링크를 놀리지 않고 &lt;b&gt;트래픽을 분산&lt;/b&gt;할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;739&quot; data-origin-height=&quot;275&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdEbXm/dJMcafmnqke/HZCXCc4Jwkq8rEmwJJkQ81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdEbXm/dJMcafmnqke/HZCXCc4Jwkq8rEmwJJkQ81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdEbXm/dJMcafmnqke/HZCXCc4Jwkq8rEmwJJkQ81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdEbXm%2FdJMcafmnqke%2FHZCXCc4Jwkq8rEmwJJkQ81%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;739&quot; height=&quot;275&quot; data-origin-width=&quot;739&quot; data-origin-height=&quot;275&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style10&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;VLAN 10&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;VLAN 20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;Root Bridge&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;SW2&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;SW3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;SW1 &amp;rarr; SW2 링크&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;VLAN 10 트래픽 담당&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;Blocking&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;SW1 &amp;rarr; SW3 링크&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;Blocking&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;VLAN 20 트래픽 담당&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 두 링크 모두 활용 가능, 기본 STP 대비 대역폭 2배 활용&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;설정 방법 (Cisco)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Root Bridge Priority 설정&lt;/p&gt;
&lt;pre id=&quot;code_1779160258911&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# VLAN 10의 Root Bridge를 SW2로 지정
SW2(config)# spanning-tree vlan 10 priority 4096

# VLAN 20의 Root Bridge를 SW3으로 지정
SW3(config)# spanning-tree vlan 20 priority 4096&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Priority는 &lt;b&gt;4096의 배수&lt;/b&gt;로만 설정 가능하다. (0, 4096, 8192, 12288 ...)&lt;br /&gt;낮을수록 Root Bridge로 선출될 확률이 높다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간편 설정 명령어&lt;/p&gt;
&lt;pre id=&quot;code_1779160358023&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 해당 스위치를 VLAN 10의 Root Bridge로 자동 설정
SW2(config)# spanning-tree vlan 10 root primary

# 해당 스위치를 VLAN 10의 Backup Root Bridge로 자동 설정
SW2(config)# spanning-tree vlan 10 root secondary&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;pre id=&quot;code_1779160432375&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# VLAN별 STP 상태 확인
SW1# show spanning-tree vlan 10
SW1# show spanning-tree vlan 20

# 전체 VLAN STP 요약
SW1# show spanning-tree summary&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출력 결과에서 &lt;b&gt;Root ID&lt;/b&gt;와 &lt;b&gt;Bridge ID&lt;/b&gt;가 같으면 해당 스위치가 Root Bridge다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;PVST의 한계&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PVST는 강력하지만 단점도 있다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 84px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style10&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 38.1395%; height: 21px;&quot;&gt;한계&lt;/td&gt;
&lt;td style=&quot;width: 61.8605%; height: 21px;&quot;&gt;설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 38.1395%; height: 21px;&quot;&gt;Cisco 전용&lt;/td&gt;
&lt;td style=&quot;width: 61.8605%; height: 21px;&quot;&gt;타사 장비와 혼용 환경에서 호환성 문제&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 38.1395%; height: 21px;&quot;&gt;수렴 시간 느림&lt;/td&gt;
&lt;td style=&quot;width: 61.8605%; height: 21px;&quot;&gt;기본 STP와 동일하게 30~50초 소요&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 38.1395%; height: 21px;&quot;&gt;VLAN 많을수록 부하 증가&lt;/td&gt;
&lt;td style=&quot;width: 61.8605%; height: 21px;&quot;&gt;VLAN 100개면 STP 인스턴스도 100개&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히 &lt;b&gt;수렴 시간 문제&lt;/b&gt;가 가장 크다.&lt;br /&gt;링크 장애가 발생하면 50초 가까이 통신이 끊기는 건 실무에서 치명적이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 이 문제를 해결하기 위해 나온 것이 &lt;b&gt;RSTP(Rapid Spanning Tree Protocol)&lt;/b&gt; 다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;마치며&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PVST의 핵심은 두 가지다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;VLAN마다 독립적인 STP 인스턴스&lt;/b&gt; &amp;rarr; 세밀한 제어 가능&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VLAN별 Root Bridge 분리&lt;/b&gt; &amp;rarr; 로드밸런싱으로 링크 낭비 제거&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실무에서 Cisco 장비만 쓰는 환경이라면 PVST는 기본 설정이다.&lt;br /&gt;다음 편에서는 수렴 시간 문제를 해결한 &lt;b&gt;RSTP&lt;/b&gt;를 다룬다.&lt;/p&gt;</description>
      <category>Network &amp;amp; Infra/STP</category>
      <author>Vilhelm</author>
      <guid isPermaLink="true">https://vilhelm.tistory.com/46</guid>
      <comments>https://vilhelm.tistory.com/46#entry46comment</comments>
      <pubDate>Tue, 19 May 2026 12:16:08 +0900</pubDate>
    </item>
    <item>
      <title>STP(Spanning Tree Protocol) 선출 원리</title>
      <link>https://vilhelm.tistory.com/43</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;들어가기 전에 &amp;mdash; 왜 포트를 막는가?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스위치를 여러 대 연결하다 보면 자연스럽게 &lt;b&gt;루프(Loop)&lt;/b&gt; 가 생긴다.&lt;br /&gt;루프가 생기면 브로드캐스트 프레임이 네트워크를 무한 순환하면서 대역폭을 모두 잡아먹는다. 이걸 &lt;b&gt;브로드캐스트 스톰&lt;/b&gt;이라고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;STP는 이 문제를 해결하기 위해 &lt;b&gt;특정 포트를 의도적으로 차단&lt;/b&gt;해서 논리적으로 루프 없는 트리 구조를 만든다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;STP 선출 3단계&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;STP는 아래 순서로 네트워크 구조를 결정한다.&lt;/p&gt;
&lt;pre id=&quot;code_1779010210441&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;1단계: Root Bridge 선출
2단계: Root Port 선출 (Root Bridge 제외한 나머지 스위치)
3단계: Designated Port 선출 &amp;rarr; 나머지는 Blocking&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1단계 &amp;mdash; Root Bridge 선출&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Root Bridge는 &lt;b&gt;네트워크의 기준점&lt;/b&gt;이 되는 스위치다.&lt;br /&gt;모든 경로 계산이 Root Bridge 기준으로 이루어진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;선출 기준&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1779064150252&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;1순위: Bridge ID가 낮은 스위치
       └── Bridge ID = Priority(2byte) + MAC Address(6byte)

2순위: Priority가 같으면 MAC Address가 낮은 스위치&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Priority 기본값은 32768&lt;/b&gt;이다.&lt;br /&gt;관리자가 Priority를 낮게 설정하면 해당 스위치가 Root Bridge가 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; 예시&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1104&quot; data-origin-height=&quot;419&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buOJMP/dJMcah5zsFj/99k7d90fRvBKitjoKU73d1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buOJMP/dJMcah5zsFj/99k7d90fRvBKitjoKU73d1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buOJMP/dJMcah5zsFj/99k7d90fRvBKitjoKU73d1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuOJMP%2FdJMcah5zsFj%2F99k7d90fRvBKitjoKU73d1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1104&quot; height=&quot;419&quot; data-origin-width=&quot;1104&quot; data-origin-height=&quot;419&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 72px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style10&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 21px;&quot;&gt;스위치&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 21px;&quot;&gt;Priority&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 21px;&quot;&gt;MAC Address&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 21px;&quot;&gt;Bridge ID&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 17px;&quot;&gt;SW1&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px;&quot;&gt;32768&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px;&quot;&gt;AA:AA:AA:AA:AA:01&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px;&quot;&gt;32768.AA:AA:...:01&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 17px;&quot;&gt;SW2&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px;&quot;&gt;32768&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px;&quot;&gt;AA:AA:AA:AA:AA:02&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px;&quot;&gt;32768.AA:AA:...:02&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 17px;&quot;&gt;SW3&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px;&quot;&gt;4096&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px;&quot;&gt;AA:AA:AA:AA:AA:03&lt;/td&gt;
&lt;td style=&quot;width: 25%; height: 17px;&quot;&gt;4096.AA:AA:...:03&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; &lt;b&gt;SW3이 Root Bridge&lt;/b&gt; (Priority가 가장 낮음)&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2단계 &amp;mdash; Root Port 선출&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Root Bridge가 아닌 나머지 스위치들은 각자 &lt;b&gt;Root Bridge로 가는 최적 경로의 포트&lt;/b&gt;를 Root Port로 선출한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; 선출 기준 (순서대로 적용)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1779064333595&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;1순위: Root Path Cost가 낮은 포트
2순위: 연결된 스위치의 Bridge ID가 낮은 포트
3순위: 연결된 포트의 Port ID가 낮은 포트&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Root Path Cost란?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Root Bridge까지 가는 데 드는 &lt;b&gt;누적 비용&lt;/b&gt;이다.&lt;br /&gt;링크 속도가 빠를수록 Cost가 낮다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style10&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;링크 속도&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;Cost&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;10 Mbps&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;100 Mbps&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;19&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;1 Gbps&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;10 Gbps&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;링크가 빠를수록 Cost가 낮고, Cost가 낮을수록 우선 선택된다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3단계 &amp;mdash; Designated Port 선출 &amp;amp; Blocking&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Root Port가 결정됐으면, 각 세그먼트(링크)마다 &lt;b&gt;Designated Port&lt;/b&gt; 하나를 선출한다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Root Bridge의 모든 포트 &amp;rarr; 자동으로 Designated Port&lt;/li&gt;
&lt;li&gt;나머지 링크 &amp;rarr; Root Path Cost가 낮은 쪽 포트가 Designated Port&lt;/li&gt;
&lt;li&gt;Designated Port도 Root Port도 아닌 포트 &amp;rarr; &lt;b&gt;Blocking (차단)&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;포트 상태 정리&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 68px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style10&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;포트 역할&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;상태&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;Root Port&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;Forwarding&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;Root Bridge로 가는 최적 경로&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;Designated Port&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;Forwarding&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;세그먼트의 대표 포트&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;Non-Designated Port&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;&lt;b&gt; Blocking &lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;루프 방지를 위해 차단&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;전체 흐름 요약&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1779078872175&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;1 스위치들이 BPDU(Bridge Protocol Data Unit)를 교환
2 Bridge ID 비교 &amp;rarr; Root Bridge 선출
3 각 스위치가 Root Path Cost 계산 &amp;rarr; Root Port 선출
4 각 세그먼트에서 Designated Port 선출
5 나머지 포트 Blocking &amp;rarr; 루프 제거 완료&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;b&gt;실습 확인 명령어 (Cisco)&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;pre id=&quot;code_1779078962864&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# STP 상태 확인
SW1# show spanning-tree

# 특정 VLAN STP 확인
SW1# show spanning-tree vlan 10

# Root Bridge 여부 확인
SW1# show spanning-tree | include Root&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;마치며&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;STP의 핵심은 &lt;b&gt;선출 &amp;rarr; 차단 &amp;rarr; 트리 구조 완성&lt;/b&gt;이다.&lt;br /&gt;Root Bridge를 누가 되느냐에 따라 트래픽 경로가 완전히 달라지기 때문에, 실무에서는 Priority를 직접 설정해서 원하는 스위치가 Root Bridge가 되도록 설계한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 편에서는 VLAN마다 별도의 STP 인스턴스를 운영하는 &lt;b&gt;PVST(Per-VLAN Spanning Tree)&lt;/b&gt; 를 다룬다.&lt;/p&gt;</description>
      <category>Network &amp;amp; Infra/STP</category>
      <author>Vilhelm</author>
      <guid isPermaLink="true">https://vilhelm.tistory.com/43</guid>
      <comments>https://vilhelm.tistory.com/43#entry43comment</comments>
      <pubDate>Sun, 17 May 2026 18:29:27 +0900</pubDate>
    </item>
    <item>
      <title>Cisco 라우터/스위치 패스워드 분실 시 복구 방법 (ROMMON)</title>
      <link>https://vilhelm.tistory.com/37</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Cisco 라우터나 스위치의 enable 패스워드를 분실했을 때, 장비를 공장 초기화하지 않고도 패스워드를 복구할 수 있다. 핵심은 &lt;b&gt;ROMMON 모드&lt;/b&gt;를 통해 NVRAM에 저장된 설정을 우회하는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;동작 원리 &amp;mdash; Configuration Register&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Cisco 장비는 부팅 시 &lt;b&gt;Configuration Register&lt;/b&gt; 값을 참조하여 어떤 방식으로 부팅할지 결정한다. 현재 값은 show version 명령어로 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;648&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/naknX/dJMcaiwu4EN/fzAbEexDNqm9X99C4qUPHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/naknX/dJMcaiwu4EN/fzAbEexDNqm9X99C4qUPHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/naknX/dJMcaiwu4EN/fzAbEexDNqm9X99C4qUPHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnaknX%2FdJMcaiwu4EN%2FfzAbEexDNqm9X99C4qUPHk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;630&quot; height=&quot;648&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;648&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1778502754582&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Router# show version
... (생략) ...
Configuration register is 0x2102&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;0x2102 vs 0x2142 &amp;mdash; 비트 비교&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Register 값 중 &lt;b&gt;하위 7번째 비트(bit 6)&lt;/b&gt;가 NVRAM 로드 여부를 결정한다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 51px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 19.5349%; text-align: center; height: 17px;&quot;&gt;Register&lt;/td&gt;
&lt;td style=&quot;width: 5.69768%; text-align: center; height: 17px;&quot;&gt;15&lt;/td&gt;
&lt;td style=&quot;width: 5.4651%; text-align: center; height: 17px;&quot;&gt;14&lt;/td&gt;
&lt;td style=&quot;width: 5.23256%; text-align: center; height: 17px;&quot;&gt;13&lt;/td&gt;
&lt;td style=&quot;width: 5.5814%; text-align: center; height: 17px;&quot;&gt;12&lt;/td&gt;
&lt;td style=&quot;width: 5.46511%; text-align: center; height: 17px;&quot;&gt;11&lt;/td&gt;
&lt;td style=&quot;width: 5.23256%; text-align: center; height: 17px;&quot;&gt;10&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;9&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;8&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;7&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;6&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;5&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;4&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;3&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;2&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 19.5349%; text-align: center; height: 17px;&quot;&gt;0x2102&lt;/td&gt;
&lt;td style=&quot;width: 5.69768%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 5.4651%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 5.23256%; text-align: center; height: 17px;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 5.5814%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 5.46511%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 5.23256%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;0&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 19.5349%; text-align: center; height: 17px;&quot;&gt;0x2142&lt;/td&gt;
&lt;td style=&quot;width: 5.69768%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 5.4651%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 5.23256%; text-align: center; height: 17px;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 5.5814%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 5.46511%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 5.23256%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f3c000;&quot;&gt;1&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 4.76744%; text-align: center; height: 17px;&quot;&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div&gt;bit 6 = 0 &amp;rarr; NVRAM(startup-config)을 정상적으로 불러옴 (0x2102)&lt;br /&gt;bit 6 = 1 &amp;rarr; NVRAM을 건너뛰고 부팅 (0x2142) &amp;rarr; 패스워드 없이 진입 가능&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;복구 절차&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f3c000; color: #000000;&quot;&gt;※ 콘솔 케이블이 연결되어 있어야 하며, 물리적으로 장비에 접근 가능한 상태여야 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333;&quot;&gt;1. 장비 재부팅&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특권 모드에서 reload 명령어를 입력한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. ROMMON 모드 진입&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;재부팅 직후 부팅 메시지가 뜨는 순간 Ctrl + Shift + Pause Break를 입력하면 ROMMON 프롬프트로 진입한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;621&quot; data-origin-height=&quot;329&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/daSyGK/dJMcai4ipXY/XbldySkfXPtsDRXPlQGeEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/daSyGK/dJMcai4ipXY/XbldySkfXPtsDRXPlQGeEk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/daSyGK/dJMcai4ipXY/XbldySkfXPtsDRXPlQGeEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdaSyGK%2FdJMcai4ipXY%2FXbldySkfXPtsDRXPlQGeEk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;621&quot; height=&quot;329&quot; data-origin-width=&quot;621&quot; data-origin-height=&quot;329&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. Configuration Register 변경&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;NVRAM을 우회하도록 Register 값을 변경한다.&lt;/p&gt;
&lt;pre id=&quot;code_1778503248903&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;rommon 1 &amp;gt; confreg 0x2142&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 장비 재시작&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;reset 명령어로 재부팅한다. 이번엔 NVRAM을 거치지 않고 Mini-IOS로 부팅된다.&lt;/p&gt;
&lt;pre id=&quot;code_1778503253842&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;rommon 2 &amp;gt; reset&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 기존 설정 불러오기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;NVRAM에 저장된 기존 설정(startup-config)을 running-config로 복사한다. 이 단계를 거쳐야 기존 설정을 유지하면서 패스워드만 변경할 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1778503444195&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Router# copy startup-config running-config&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f3c000; color: #000000;&quot;&gt; ※ 이 단계를 생략하면 기존 설정(IP 주소, 라우팅 프로토콜 등)이 모두 날아가므로 반드시 수행해야 한다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333;&quot;&gt;6. 패스워드 변경&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설정 모드로 진입해 새 패스워드를 설정한다.&lt;/p&gt;
&lt;pre id=&quot;code_1778503493657&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Router# configure terminal
Router(config)# enable secret NEW_PASSSWORD&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. Configuration Register 원상복구&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;show version으로 확인하면 아직 0x2142 상태다. 반드시 정상값으로 되돌려야 다음 부팅 시 설정을 정상적으로 불러온다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;270&quot; data-origin-height=&quot;35&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dG7NXD/dJMcagFvtgV/PPcwoNCYPah3jz9ufck0vK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dG7NXD/dJMcagFvtgV/PPcwoNCYPah3jz9ufck0vK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dG7NXD/dJMcagFvtgV/PPcwoNCYPah3jz9ufck0vK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdG7NXD%2FdJMcagFvtgV%2FPPcwoNCYPah3jz9ufck0vK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;270&quot; height=&quot;35&quot; data-origin-width=&quot;270&quot; data-origin-height=&quot;35&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1778503628556&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Router(config)# config-register 0x2102&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8. 설정 저장&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;변경 사항을 NVRAM에 저장한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;520&quot; data-origin-height=&quot;34&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bA8pEd/dJMcaipLbFn/pZ7U2ui402IWtXsUO6sLF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bA8pEd/dJMcaipLbFn/pZ7U2ui402IWtXsUO6sLF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bA8pEd/dJMcaipLbFn/pZ7U2ui402IWtXsUO6sLF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbA8pEd%2FdJMcaipLbFn%2FpZ7U2ui402IWtXsUO6sLF1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;520&quot; height=&quot;34&quot; data-origin-width=&quot;520&quot; data-origin-height=&quot;34&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1778503666883&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Router# write&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;본 문서는 &lt;b&gt;Classic IOS / IOS XE 기반 ISR 라우터 및 Catalyst 2960&amp;middot;3750 스위치&lt;/b&gt; 기준입니다. Catalyst 9000 시리즈나 SD-WAN 장비는 절차가 다를 수 있습니다.&quot;&lt;/p&gt;</description>
      <category>Cisco/Cisco Packet Tracer</category>
      <author>Vilhelm</author>
      <guid isPermaLink="true">https://vilhelm.tistory.com/37</guid>
      <comments>https://vilhelm.tistory.com/37#entry37comment</comments>
      <pubDate>Mon, 11 May 2026 21:48:30 +0900</pubDate>
    </item>
    <item>
      <title>패킷 트레이서에서 라우터 설정 중 멈췄을 때</title>
      <link>https://vilhelm.tistory.com/26</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;419&quot; data-origin-height=&quot;179&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cqNixu/dJMcagZyxNi/LKJAkgkWs7Yp1YRElVDKLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqNixu/dJMcagZyxNi/LKJAkgkWs7Yp1YRElVDKLK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqNixu/dJMcagZyxNi/LKJAkgkWs7Yp1YRElVDKLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqNixu%2FdJMcagZyxNi%2FLKJAkgkWs7Yp1YRElVDKLK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;419&quot; height=&quot;179&quot; data-origin-width=&quot;419&quot; data-origin-height=&quot;179&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유저 모드에서 명령어를 잘못 입력했을 때,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CLI가 대략 1분정도 멈추는 상황이 있을 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 도메인 서버에서 주소를 받아오려는 시도를 하는 데, 보통 도메인 서버가 없기 때문에 받아오지 못한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;CTRL+SHIFT+6&lt;/b&gt;을 입력하면 바로 빠져나올 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;혹은 &lt;b&gt;구성(Config)모드에서 no ip domain-lookup&lt;/b&gt;을 입력하면 더 이상 저 메시지가 출력되지 않는다.&lt;/p&gt;</description>
      <category>Cisco/Cisco Packet Tracer</category>
      <author>Vilhelm</author>
      <guid isPermaLink="true">https://vilhelm.tistory.com/26</guid>
      <comments>https://vilhelm.tistory.com/26#entry26comment</comments>
      <pubDate>Fri, 24 Apr 2026 15:44:29 +0900</pubDate>
    </item>
    <item>
      <title>네트워크 장비의 하드웨어 구성요소</title>
      <link>https://vilhelm.tistory.com/24</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;네트워크 장비도 결국 컴퓨터다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CPU가 있고, 메모리가 있고, 저장공간이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Cisco 라우터를 기준으로 핵심 구성요소 5가지를 정리하려고 한다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. Processor &amp;mdash; CPU (Central Processing Unit)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;장비의 두뇌다. 패킷 포워딩, 라우팅 테이블 계산, IOS 명령어 처리 등 모든 연산을 담당한다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. RAM (Random Access Memory)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;장비가 &lt;b&gt;실행 중에 사용하는 작업 메모리&lt;/b&gt;다. 휘발성이므로 전원이 꺼지면 내용이 사라진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저장되는 주요 데이터는 다음과 같다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Running-config&lt;/b&gt; (현재 동작 중인 설정)&lt;/li&gt;
&lt;li&gt;라우팅 테이블&lt;/li&gt;
&lt;li&gt;ARP 테이블&lt;/li&gt;
&lt;li&gt;패킷 버퍼&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. ROM (Read-Only Memory)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전원이 켜졌을 때 &lt;b&gt;가장 먼저 실행되는 코드&lt;/b&gt;가 저장된 비휘발성 메모리다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;POST&lt;/b&gt; (Power-On Self-Test): 하드웨어 이상 여부를 점검한다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Bootstrap&lt;/b&gt;: IOS를 Flash에서 찾아 RAM으로 올리는 부트 프로그램이다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ROMMON&lt;/b&gt; (ROM Monitor): IOS 없이도 접근 가능한 복구 모드다. 비밀번호 복구 시 사용한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4. Flash&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IOS 이미지 파일이 저장되는 &lt;b&gt;비휘발성 저장소&lt;/b&gt;다. 전원이 꺼져도 유지된다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;PC의 SSD&amp;middot;HDD에 해당하는 역할이다.&lt;/li&gt;
&lt;li&gt;IOS 업그레이드 시 새 이미지를 Flash에 올린다.&lt;/li&gt;
&lt;li&gt;Cisco IOS CLI에서 flash: 로 접근한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5. NVRAM (Non-Volatile RAM)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Startup-config가 저장되는 곳&lt;/b&gt;이다. RAM처럼 읽기&amp;middot;쓰기가 자유롭지만, 비휘발성이라 전원이 꺼져도 설정이 유지된다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;copy running-config startup-config 명령어로 RAM의 설정을 NVRAM에 저장한다.&lt;/li&gt;
&lt;li&gt;장비를 재부팅하면 NVRAM의 startup-config를 읽어 RAM에 올린다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;한눈에 정리&lt;/h4&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 126px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style14&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px; width: 15.814%;&quot;&gt;구성요소&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 14.7675%;&quot;&gt;휘발성&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 69.3023%;&quot;&gt;저장 내용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px; width: 15.814%;&quot;&gt;&lt;b&gt;Processor&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 14.7675%;&quot;&gt;&amp;mdash;&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 69.3023%;&quot;&gt;연산 처리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px; width: 15.814%;&quot;&gt;&lt;b&gt;RAM&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 14.7675%;&quot;&gt;휘발&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 69.3023%;&quot;&gt;Running-config, 라우팅 테이블&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px; width: 15.814%;&quot;&gt;&lt;b&gt;ROM&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 14.7675%;&quot;&gt;비휘발&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 69.3023%;&quot;&gt;POST, Bootstrap, ROMMON&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px; width: 15.814%;&quot;&gt;&lt;b&gt;Flash&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 14.7675%;&quot;&gt;비휘발&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 69.3023%;&quot;&gt;IOS 이미지&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px; width: 15.814%;&quot;&gt;&lt;b&gt;NVRAM&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 14.7675%;&quot;&gt;비휘발&lt;/td&gt;
&lt;td style=&quot;height: 21px; width: 69.3023%;&quot;&gt;Startup-config&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</description>
      <category>Network &amp;amp; Infra</category>
      <author>Vilhelm</author>
      <guid isPermaLink="true">https://vilhelm.tistory.com/24</guid>
      <comments>https://vilhelm.tistory.com/24#entry24comment</comments>
      <pubDate>Thu, 23 Apr 2026 13:35:05 +0900</pubDate>
    </item>
    <item>
      <title>주기억장치와 보조기억장치</title>
      <link>https://vilhelm.tistory.com/23</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;기억장치의 분류&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴퓨터의 기억장치는 크게 두 가지로 나뉜다.&lt;/p&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 63px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style14&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;b&gt; 구분 &lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;역할&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;예시&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;b&gt;주기억장치&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;CPU가 직접 접근하는 작업 공간&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;RAM, ROM&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;b&gt;보조기억장치&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;데이터를 영구 저장하는 공간&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;HDD, SSD, USB&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주기억장치는 속도가 빠르지만 용량이 작고, 보조기억장치는 느리지만 대용량 저장이 가능하다. CPU는 보조기억장치에 직접 접근하지 못하고, 데이터를 주기억장치로 올려서 처리한다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;RAM (Random Access Memory)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;임의 접근 메모리&lt;/b&gt;. 어느 주소든 동일한 속도로 접근할 수 있다는 뜻에서 Random Access라는 이름이 붙었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;핵심 특징은 두 가지다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;임의 접근(Random Access)&lt;/b&gt;: 저장 위치에 상관없이 접근 속도가 일정하다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;휘발성(Volatile)&lt;/b&gt;: 전원이 끊기면 데이터가 사라진다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RAM은 내부 동작 방식에 따라 SRAM과 DRAM으로 나뉜다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SRAM (Static RAM)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정적 램&lt;/b&gt;. 플립플롭(Flip-Flop) 회로로 데이터를 유지하기 때문에, 전원이 공급되는 동안 &lt;b&gt;리프레시 없이&lt;/b&gt; 데이터를 그대로 보존한다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;속도가 매우 빠르고 안정적이다.&lt;/li&gt;
&lt;li&gt;하지만 회로 구조가 복잡해 &lt;b&gt;단가가 높고 집적도가 낮다.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;대용량으로 만들기 어렵기 때문에 소용량 고속 메모리에 사용된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;주요 사용처&lt;/b&gt;&lt;/p&gt;
&lt;div&gt;용도설명
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Cache (캐시 메모리)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;CPU와 DRAM 사이의 속도 차이를 줄이기 위한 버퍼 역할. L1, L2, L3 캐시가 모두 SRAM이다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Buffer (버퍼)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;장치 간 속도 차이를 완충하는 임시 저장소&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DRAM (Dynamic RAM)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;동적 램&lt;/b&gt;. 캐패시터(Capacitor)에 전하를 충전하는 방식으로 데이터를 저장한다. 캐패시터는 시간이 지나면 전하가 방전되기 때문에 &lt;b&gt;주기적으로 리프레시(Refresh)&lt;/b&gt; 가 필요하다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;SRAM보다 느리지만 &lt;b&gt;집적도가 높고 단가가 낮다.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;대용량 구현이 가능해 우리가 흔히 말하는 &lt;b&gt;&quot;메인 메모리(주기억장치)&quot;&lt;/b&gt; 가 바로 DRAM이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DRAM은 기술 발전에 따라 여러 규격으로 나뉜다.&lt;/p&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style14&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt; 규격 &lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Full Name&lt;/td&gt;
&lt;td&gt;특징&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;RDRAM&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Rambus DRAM&lt;/td&gt;
&lt;td&gt;Rambus사가 개발한 고속 DRAM. 버스 폭이 좁은 대신 클럭이 매우 높다. 현재는 거의 사용되지 않는다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;SDRAM&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Synchronous DRAM&lt;/td&gt;
&lt;td&gt;CPU 버스 클럭과 &lt;b&gt;동기화&lt;/b&gt;되어 동작하는 DRAM. 이전 비동기 방식 대비 안정성과 속도가 향상됐다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;DDR SDRAM&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Double Data Rate SDRAM&lt;/td&gt;
&lt;td&gt;클럭의 상승 엣지(Rising Edge)와 하강 엣지(Falling Edge) &lt;b&gt;양쪽에서&lt;/b&gt; 데이터를 전송한다. 같은 클럭에서 SDRAM의 2배 대역폭을 낸다. 현재 DDR4, DDR5가 주류다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;ROM (Read-Only Memory)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;읽기 전용 메모리&lt;/b&gt;. 이름 그대로 데이터를 읽는 것만 가능하고, 일반적인 방법으로는 쓰기가 불가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;핵심 특징은 두 가지다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;읽기 전용(Read-Only)&lt;/b&gt;: 데이터 변경이 불가능하거나 매우 제한적이다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;비휘발성(Non-Volatile)&lt;/b&gt;: 전원이 꺼져도 데이터가 유지된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;펌웨어, BIOS처럼 &lt;b&gt;시스템이 부팅될 때 반드시 필요한 코드&lt;/b&gt;를 저장하는 데 사용된다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ROM도 기술 발전에 따라 여러 종류로 나뉜다.&lt;/p&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style14&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt; 규격 &lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Full Name&lt;/td&gt;
&lt;td&gt;설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;MROM&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Mask ROM&lt;/td&gt;
&lt;td&gt;제조 과정에서 데이터가 영구 기록된다. 생산 후 변경 불가.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;PROM&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Programmable ROM&lt;/td&gt;
&lt;td&gt;공장 출하 후 사용자가 &lt;b&gt;딱 한 번&lt;/b&gt; 데이터를 기록할 수 있다. 이후 변경 불가.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;EPROM&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Erasable Programmable ROM&lt;/td&gt;
&lt;td&gt;&lt;b&gt;자외선(UV)&lt;/b&gt; 을 쪼여 데이터를 지우고 재기록할 수 있다. 창문이 있는 IC 칩 모양이 특징이다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;EEPROM&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Electrically Erasable Programmable ROM&lt;/td&gt;
&lt;td&gt;&lt;b&gt;전기 신호&lt;/b&gt;로 데이터를 지우고 쓸 수 있다. 바이트 단위 접근이 가능하다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Flash Memory&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&amp;mdash;&lt;/td&gt;
&lt;td&gt;EEPROM의 발전형. 블록 단위로 삭제&amp;middot;기록한다. SSD, USB, SD카드의 핵심 소자다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;NVRAM&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Non-Volatile RAM&lt;/td&gt;
&lt;td&gt;RAM처럼 읽기&amp;middot;쓰기가 자유롭지만 비휘발성이다. Cisco 라우터에서 &lt;b&gt;startup-config를 저장&lt;/b&gt;하는 데 사용된다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</description>
      <category>IT Basics</category>
      <author>Vilhelm</author>
      <guid isPermaLink="true">https://vilhelm.tistory.com/23</guid>
      <comments>https://vilhelm.tistory.com/23#entry23comment</comments>
      <pubDate>Thu, 23 Apr 2026 11:57:47 +0900</pubDate>
    </item>
    <item>
      <title>Crossover 케이블과 Straight-through 케이블의 차이점</title>
      <link>https://vilhelm.tistory.com/21</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;케이블 종류가 왜 나뉘었나?&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;TX(Transmit), RX(Receive)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이더넷 케이블 안에는 8개의 선이 들어있다. 이 선들 중 데이터를 &lt;b&gt;보내는 선(TX)&lt;/b&gt; 과 &lt;b&gt;받는 선(RX)&lt;/b&gt; 이 구분되어 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;장비 두 대를 연결할 때, 한쪽의 TX가 반대쪽의 RX에 연결되어야 통신이 된다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1776855225401&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;장비 A          장비 B
 TX ──────────&amp;rarr;  RX
 RX &amp;larr;──────────  TX&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제는 &lt;b&gt;장비 종류에 따라 TX/RX 핀 배치가 다르다&lt;/b&gt;는 것이다. 이 차이를 케이블 배선으로 맞춰주기 위해 다이렉트와 크로스 두 종류가 존재한다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Straight-through&amp;nbsp;케이블&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;양쪽 끝의 핀 배열이 &lt;b&gt;동일&lt;/b&gt;하다. (T568B &amp;mdash; T568B)&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1776855291215&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;한쪽 끝     반대쪽 끝
 1 ──────── 1
 2 ──────── 2
 3 ──────── 3
 6 ──────── 6&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TX/RX가 &lt;b&gt;서로 반대인 장비&lt;/b&gt; 끼리 연결할 때 사용한다. 즉, 한쪽이 TX로 보내면 반대쪽은 자연스럽게 RX로 받는 구조다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Crossover 케이블&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;양쪽 끝의 핀 배열이 &lt;b&gt;엇갈려&lt;/b&gt; 있다. (T568A &amp;mdash; T568B)&lt;/p&gt;
&lt;pre id=&quot;code_1776855303538&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;한쪽 끝     반대쪽 끝
 1 ──────── 3
 2 ──────── 6
 3 ──────── 1
 6 ──────── 2&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;TX/RX 핀 배치가 &lt;/span&gt;&lt;b&gt;같은 장비&lt;/b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt; 끼리 연결할 때, 케이블 안에서 선을 꼬아 TX&amp;rarr;RX가 되도록 맞춰주는 방식이다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1280px-Vergleich_2von2_Crossoverkabel.jpg&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;1039&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cM0jcH/dJMcafM80xt/7bpTkKULf0Tqaq88V0TvI1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cM0jcH/dJMcafM80xt/7bpTkKULf0Tqaq88V0TvI1/img.jpg&quot; data-alt=&quot;크로스 케이블(출처: 위키미디어 퍼블릭 도메인 사진)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cM0jcH/dJMcafM80xt/7bpTkKULf0Tqaq88V0TvI1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcM0jcH%2FdJMcafM80xt%2F7bpTkKULf0Tqaq88V0TvI1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;430&quot; height=&quot;349&quot; data-filename=&quot;1280px-Vergleich_2von2_Crossoverkabel.jpg&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;1039&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;크로스 케이블(출처: 위키미디어 퍼블릭 도메인 사진)&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: ;&quot;&gt;
&lt;td style=&quot;width: 37.7907%;height: ;&quot;&gt;타입&lt;/td&gt;
&lt;td style=&quot;width: 35%;height: ;&quot;&gt;해당 장비&lt;/td&gt;
&lt;td style=&quot;width: 13.4884%;height: ;&quot;&gt;1,2번 핀&lt;/td&gt;
&lt;td style=&quot;width: 13.4884%;height: ;&quot;&gt;3,6번 핀&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: ;&quot;&gt;
&lt;td style=&quot;width: 37.7907%;height: ;&quot;&gt;&lt;b&gt;MDI&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(Medium Dependent Interface)&lt;/td&gt;
&lt;td style=&quot;width: 35%;height: ;&quot;&gt;PC, 라우터, 서버, 방화벽&lt;/td&gt;
&lt;td style=&quot;width: 13.4884%;height: ;&quot;&gt;TX (송신)&lt;/td&gt;
&lt;td style=&quot;width: 13.4884%;height: ;&quot;&gt;RX (수신)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: ;&quot;&gt;
&lt;td style=&quot;width: 37.7907%;height: ;&quot;&gt;&lt;b&gt;MDI-X&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(MDI Crossover)&lt;/td&gt;
&lt;td style=&quot;width: 35%;height: ;&quot;&gt;스위치, 허브&lt;/td&gt;
&lt;td style=&quot;width: 13.4884%;height: ;&quot;&gt;RX (수신)&lt;/td&gt;
&lt;td style=&quot;width: 13.4884%;height: ;&quot;&gt;TX (송신)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;MDI to MDI는 Cross-Over 케이블&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;MDI-X to MDI-X도 Cross-Over 케이블&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;MDI to MDI-X는 Straight-Through 케이블&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;현대 장비에선 사실상 구분이 없다&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요즘 스위치나 NIC는 대부분 &lt;b&gt;Auto-MDIX&lt;/b&gt; 기능을 지원한다. Auto-MDIX는 상대 장비의 TX/RX를 자동으로 감지해서 케이블 종류에 상관없이 연결을 맞춰준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Cisco 스위치는 2000년대 중반부터 Auto-MDIX를 기본 지원하고 있고, 현재 납품되는 거의 모든 엔터프라이즈 장비에 내장되어 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;그럼에도 구분을 배우는 이유&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;구형 장비 유지보수 현장에서 여전히 마주친다.&lt;/li&gt;
&lt;li&gt;자격증 시험(네트워크관리사, CCNA 등)에 단골로 출제된다.&lt;/li&gt;
&lt;li&gt;케이블 트러블슈팅 시 원인 파악의 기초가 된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Network &amp;amp; Infra</category>
      <author>Vilhelm</author>
      <guid isPermaLink="true">https://vilhelm.tistory.com/21</guid>
      <comments>https://vilhelm.tistory.com/21#entry21comment</comments>
      <pubDate>Wed, 22 Apr 2026 20:08:19 +0900</pubDate>
    </item>
    <item>
      <title>IP 주소 구조</title>
      <link>https://vilhelm.tistory.com/20</link>
      <description>&lt;div&gt;
&lt;div data-is-streaming=&quot;false&quot;&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;IP 주소란?&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IP 주소는 네트워크에 연결된 장비를 식별하는 &lt;b&gt;논리 주소&lt;/b&gt;다. 집 주소처럼, 데이터가 어디로 갈지 알 수 있게 한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IPv4 주소는 &lt;b&gt;32비트&lt;/b&gt;로 이루어져 있다. 이걸 사람이 읽기 쉽도록 8비트(1옥텟(octet)) 단위로 잘라 10진수로 표현한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;옥텟은 8개가 모여 있는 것을 의미한다. &lt;b&gt;Octopus&lt;/b&gt;도 문어 다리가 8개이기 때문에 &lt;b&gt;Oct-&lt;/b&gt;라는 접두사가 붙는다.&lt;/p&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1776853183142&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;11000000 . 10101000 . 00000001 . 00000001
  192    .   168    .     1    .     1

&amp;rarr; 192.168.1.1&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 옥텟은 0~255 사이의 값을 갖는다. (8비트 최대값 = 128+64+32+16+8+4+2+1 = &lt;b&gt;255&lt;/b&gt;)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최대값은 255이나 개수는 256개이다. (1~10은 열 개지만, 0~10은 열한 개인 원리)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;네트워크 부분 vs 호스트 부분&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IP 주소는 두 파트로 나뉜다.&lt;/p&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style2&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;파트&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;의미&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;네트워크 부분&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;어느 네트워크인지 (아파트 단지)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;호스트 부분&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;그 네트워크 안의 어떤 장비인지 (동&amp;middot;호수)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어디까지가 네트워크이고 어디서부터 호스트인지를 나타내는 것이 &lt;b&gt;서브넷 마스크&lt;/b&gt;다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1776853421641&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;IP 주소:      192.168.  1.  1
서브넷 마스크: 255.255.255.  0

&amp;rarr; 네트워크: 192.168.1.0
&amp;rarr; 호스트:   192.168.1.0~255&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서브넷 마스크에서 255(= 11111111)인 옥텟은 &lt;b&gt;네트워크 부분&lt;/b&gt;, 0(= 00000000)인 옥텟은 &lt;b&gt;호스트 부분&lt;/b&gt;이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;사이더 표기법 (CIDR)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서브넷 마스크를 매번 길게 쓰는 대신, &lt;b&gt;1의 개수&lt;/b&gt;만 /숫자 로 표기한다.&lt;/p&gt;
&lt;pre id=&quot;code_1776853501901&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;255.255.255.0 = 11111111.11111111.11111111.00000000
                &amp;rarr; 1이 24개 &amp;rarr; /24

예: 192.168.1.1/24&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 88px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;서브넷 마스크&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;CIDR&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;호스트 수&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;255.0.0.0&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;/8&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;16,777,214&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;255.255.0.0&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;/16&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;65,534&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;255.255.255.0&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;/24&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;254&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;255.255.255.128&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;/25&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px;&quot;&gt;126&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;호스트 수 공식: &lt;b&gt;2ⁿ - 2&lt;/b&gt; (n = 호스트 비트 수, -2는 네트워크/브로드캐스트 주소 제외)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어, /24는 네트워크 비트가 24개이므로 호스트 비트는 8개이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 2&lt;span&gt;⁸-2=254가 나온다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;/24는 네트워크 비트가 24개이므로 24개에 해당하는 비트까지는 주소가 같아야 같은 네트워크에 속한 IP이다.&lt;/p&gt;
&lt;pre id=&quot;code_1776854618783&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#예시
IP: 10.10.0.1
서브넷마스크: 255.0.0.0 (/8)

IP: 10.20.0.2
서브넷마스크: 255.0.0.0 (/8)

/8이므로 네트워크 부분은 첫 번째 옥텟까지 해당.
네트워크는 10.x.x.x
호스트는 10.0.0.0 ~ 10.255.255.255 까지 가능(16,777,214개)
두 IP는 같은 네트워크에 있으므로(주소가 같으므로) 직접 통신 가능.

#예시
IP: 10.10.0.1
서브넷마스크: 255.255.0.0 (/16)

IP: 10.20.0.2
서브넷마스크: 255.255.0.0 (/16)

/16이므로 네트워크 부분은 두 번째 옥텟까지 해당.
네트워크는 10.10.x.x 혹은 10.20.x.x
호스트는 10.10.0.0 ~ 10.10.255.255, 10.20.0.0 ~ 10.20.255.255 까지 가능(65,534개)
두 IP는 다른 네트워크에 있으므로(주소가 다르므로) 직접 통신 불가능.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;특수 주소&lt;/h4&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style2&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;주소&lt;/td&gt;
&lt;td&gt;의미&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;192.168.1.0&lt;/td&gt;
&lt;td&gt;네트워크 주소 (첫 번째) &amp;mdash; 장비에 할당 불가&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;192.168.1.255&lt;/td&gt;
&lt;td&gt;브로드캐스트 주소 (마지막) &amp;mdash; 장비에 할당 불가&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;127.0.0.1&lt;/td&gt;
&lt;td&gt;루프백 &amp;mdash; 자기 자신을 가리킴&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0.0.0.0&lt;/td&gt;
&lt;td&gt;모든 네트워크 (라우팅에서 사용)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div data-state=&quot;closed&quot;&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div data-state=&quot;closed&quot;&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div data-state=&quot;closed&quot;&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div data-state=&quot;closed&quot;&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>IT Basics</category>
      <author>Vilhelm</author>
      <guid isPermaLink="true">https://vilhelm.tistory.com/20</guid>
      <comments>https://vilhelm.tistory.com/20#entry20comment</comments>
      <pubDate>Wed, 22 Apr 2026 19:44:39 +0900</pubDate>
    </item>
    <item>
      <title>쉬운 2진수 읽는 방법</title>
      <link>https://vilhelm.tistory.com/19</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;2진수란?&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리가 평소 쓰는 숫자는 &lt;b&gt;10진수&lt;/b&gt;다. 0부터 9까지 10개의 숫자를 쓰고, 9를 넘으면 자리가 올라간다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2진수는 &lt;b&gt;0과 1만 사용&lt;/b&gt;한다. 1을 넘으면 바로 자리가 올라간다.&lt;/p&gt;
&lt;pre id=&quot;code_1776852114448&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;10진수:  0  1  2  3   4   5   6   7    8   9  10  11  ...
 2진수:  0  1 10 11 100 101 110 111 1000 ...&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2진수 &amp;rarr; 10진수 변환&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 자리에는 &lt;b&gt;자리값(weight)&lt;/b&gt; 이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 자리가 &lt;b&gt;1이면 자리값을 더하고, 0이면 더하지 않는다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예시: 1100 0000 &amp;rarr; ?&lt;/p&gt;
&lt;pre id=&quot;code_1776852150514&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;2의제곱:   2⁷  2⁶  2⁵  2⁴  2&amp;sup3;  2&amp;sup2;  2&amp;sup1;  2⁰
자리값:  128  64  32  16   8   4   2   1
비트  :    1   1   0   0   0   0   0   0

128 + 64 = 192&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자리값 오른쪽 끝부터 2⁰, 2&amp;sup1;, 2&amp;sup2;, &amp;hellip; 순서로 올라간다. &lt;span style=&quot;color: #ee2323;&quot;&gt;2⁰=1, 2&amp;sup1;=2, 2&amp;sup2;=4...&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예시: 1010 1000 &amp;rarr; ?&lt;/p&gt;
&lt;pre id=&quot;code_1776852175000&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;자리값:  128  64  32  16   8   4   2   1
비트  :    1   0   1   0   1   0   0   0

128 + 32 + 8 = 168&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;10진수 &amp;rarr; 2진수 변환&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반대로 10진수를 2진수로 바꾸려면, &lt;b&gt;2로 계속 나누면서 나머지를 아래에서 위로 읽는다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1776852348403&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;168 &amp;divide; 2 = 84  ... 나머지 0
 84 &amp;divide; 2 = 42  ... 나머지 0
 42 &amp;divide; 2 = 21  ... 나머지 0
 21 &amp;divide; 2 = 10  ... 나머지 1
 10 &amp;divide; 2 =  5  ... 나머지 0
  5 &amp;divide; 2 =  2  ... 나머지 1
  2 &amp;divide; 2 =  1  ... 나머지 0
  1 &amp;divide; 2 =  0  ... 나머지 1&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 168 = 1010 1000&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개인적으로 암산을 하는 편인데, 구하려는 10진수의 값에서 가장 가까운 2의 제곱수를 뺀다.&lt;/p&gt;
&lt;pre id=&quot;code_1776852719135&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;2의제곱:   2⁷  2⁶  2⁵  2⁴  2&amp;sup3;  2&amp;sup2;  2&amp;sup1;  2⁰
자리값:  128  64  32  16   8   4   2   1
비트  :    1   0   0   0   0   0   0   0&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;168(10진수)에서 128(2진수, 2&lt;span&gt;⁷&lt;/span&gt;)을 빼면 40&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1776852741563&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;자리값:  128  64  32  16   8   4   2   1
비트  :    1   0   1   0   0   0   0   0&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;40에서 32를 빼면 8&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1776852809225&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;자리값:  128  64  32  16   8   4   2   1
비트  :    1   0   1   0   1   0   0   0&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8은 뺄 필요가 없으므로 8자리에 1을 추가&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 1010 1000&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT Basics</category>
      <author>Vilhelm</author>
      <guid isPermaLink="true">https://vilhelm.tistory.com/19</guid>
      <comments>https://vilhelm.tistory.com/19#entry19comment</comments>
      <pubDate>Wed, 22 Apr 2026 19:18:49 +0900</pubDate>
    </item>
  </channel>
</rss>