1. 왜 BDR이 필요하고, Multi-Access 망에서는 왜 Subnet이 반드시 같아야 Neighbor가 되는가?
  2. DR/BDR을 선출하는 기준은 무엇이고, 언제 DR/BDR이 변경되는가?
  3. DR/BDR이 존재하는 Multi-Access 구조에서 Update는 어떠한 과정으로 전달되는가?

DR/BDR 선출 과정

Step 1. Hello Packet 전송

  Interface에 OSPF Routing Protocol이 설정되고, Interface를 ‘no shudown’ 명령어로 활성화하면 OSPF Routing Protocol은 Hello Packet을 Interface로 전송한다.

Step 2. Dead Interval 안에 Hello Packet을 받았는가?

  최초의 Hello Packet을 전송한 후 Dead Interval 동안 타 장비의 Hello Packet을 기다리다 Hello Packet을 받지 못하면, Multi-Access 네트워크에 자신밖에 없다는 것을 인지하고 라우터는 스스로 DR이 된다. 이 때는 LSA Type 2를 생성하지 않는다.

Step 3. 이미 DR/BDR이 선출되었는가?

  다른 Neighbor에게 Hello Packet을 받은 경우, 해당 Packet에 DR/BDR의 정보가 설정되어 있는지를 확인한다. 이미 DR/BDR이 선출되어 있는 경우, 라우터는 DROTHERS가 되어 DR/BDR과 Adjacency Neighbor 관계를 수립하며 DBD 정보를 교환하게 된다.

  DR은 선출되었는데, BDR이 선출되어 있지 않은 경우 라우터는 바로 BDR이 된다. 그리고, DR은 Neighbor가 생성되자 마자 LSA Type 2를 생성하여 Area 전체로 Flooding한다.

Step 4. Wait Time(Dead Interval과 값이 동일함) 동안 Hello Packet 수집

  DR/BDR이 모두 선출되어 있지 않은 경우 또 다른 라우터가 존재할 수 있기 때문에, Wait Time 동안 기다리며 Hello Packet을 수집한다. Wait Time은 별도로 설정하는 명령어가 없으며 Dead Interval을 수정하면 동일 값으로 자동 변경된다.

  Wait Time 동안 수집한 Hello Packet 정보를 기반으로 ‘DR/BDR 선출기준’에 의해 각각의 라우터가 DR/BDR을 선출하게 된다.


DR/BDR 선출 기준

Step1. 최초 Hello Packet 받음 & Step2. Wait Time 동안 Hello Packet 수집

  각각의 라우터는 최초 Hello Packet을 받은 시점부터 Wait Time 동안 Hello Packet을 수집한다. 중간에 다른 Hello Packet을 받았다고 해서 Wait Time을 연장하지는 않는다. 그리고, 가장 먼저 Wait Time이 종료되는 라우터가 DR/BDR을 선출하여 Hello Packet에 DR/BDR 정보를 설정하여 다른 장비에 보내주면, 다른 장비는 해당 장비가 보내준 정보를 기반으로 DR/BDR을 선출하게 되는 것이다.

Step3. 각 Hello Packet의 Priority Value 비교

  Wait Time 동안 수집된 Hello Packet에 설정된 Priority 값을 비교하여 가장 높은 Priority 값을 가진 라우터가 DR이 되고, 두번째 높은 Priority 값을 가진 라우터가 BDR이 된다. 그리고, 다른 장비는 모두 DROTHERS가 된다.

Step4. 각 Hello Packet의 Router ID Value 비교

  라우터의 Priority 값이 동일한 경우 Hello Packet을 전송한 라우터들의 Router ID를 비교하여 가장 높은 Router ID 값을 가진 라우터가 DR이 되고, 두번째 높은 Router ID 값을 가진 라우터가 BDR이 된다. 그리고, 다른 장비는 모두 DROTHERS가 된다.

  Router ID가 동일하면 Neighbor가 되지 못하기 때문에, Router ID는 모두 유일한 값이 가진다. 그러므로 Router ID 값까지 비교하게 되면 더이상 비교하지 않아도 DR/BDR은 선출된다. 그래서, Router ID를 DR/BDR을 뽑기 위한 ‘Tie-Breaker’라고 부른다.


DR/BDR은 언제 변경되는가?

  DR/BDR은 ‘Non-Preemptive’라고 한다. 일반적으로 한번 선출되면 기능을 빼앗기지 않는 경우를 ‘non-preemptive’라고 하고, 더 우수한 장비가 있을 경우 기능을 우수한 장비에게 건네주는 경우를 ‘preemptive’라고 한다. 하지만, 이는 잘못된 해석이다.

  ‘Preemptive’의 뜻은 ‘선점’이라는 의미이다. 즉, ‘Non-Preemptive’의 정확한 의미는 “누군가가 선점하고 있으면 넌 서비스 할 수 없어!”이다. 즉, 타 장비가 들어와 이미 서비스를 제공하는 장비의 기능을 빼앗아 가지 못하게 하는 기능을 지칭한다.

  그래서, DR/BDR 기능을 이미 선점하고 있는 장비가 있으면, 다른 장비는 DR이나 BDR이 되지 못하고 DROTHERS가 된다. 그런 상태에서 DR이 다운되거나 ‘clear ip ospf process’로 OSPF Process를 내렸다 올리면 DR 기능을 선점한 장비가 사라졌기 때문에 BDR이 DR이 될 수 있다. 이 때, Priority 값이나 Router ID와 상관없이 무조건 BDR이 DR로 선출된다.

  그리고, BDR이 다운되거나 BDR이 DR이 되면, BDR 기능을 선점한 장비가 사라졌기 때문에 DROTHERS 간에 Priority 값과 Router ID를 비교하여 BDR을 선출하게 되는 것이다.

  ‘빼앗기지 않는 것’과 ‘빼앗지 않는 것’ 별로 차이가 없어 보인다. 하지만, 다음과 같은 경우라면 이것이 얼마나 다른 이야기인지 이해할 수 있을 것이다.

  아래와 같이 동일 네트워크 내에서 스위치간에 연결이 끊겨서 DR/BDR이 각각 2개씩 선출되었다고 가정해보자.

  이 상태에서 스위치간에 회선이 연결되면 어떻게 되겠는가? ‘Non-Preemptive’가 빼았기지 않는 것이라면 DR/BDR이 2개가 존재하는 Multi-Access가 될 것이다. 그런데, 실제로는 그렇지 않다. 두 스위치간에 회선을 연결하면 서로가 DR/BDR을 선점하기 위하여 경쟁하다 다음과 같은 구조가 된다.

  작은 용어 하나를 잘못 이해하면 기술 자체를 제대로 이해하지 못하게 될 수도 있으니 용어의 정확한 의미를 이해하면서 학습하여아 한다.

——— DR/BDR의 구조(3)에서 계속 ———

1 COMMENT

Comments are closed.