RFC 4271 ORIGIN Attribute 정의

ORIGIN is a well-known mandatory attribute. The ORIGIN attribute is generated by the speaker that originates the associated routing information. Its value SHOULD NOT be changed by any other speaker.

  ORIGIN Attribute는 BGP가 동작하는 모든 장비가 인지할 수 있는 Well-known attribute이다. 그리고, Well-known attribute 중에서도 모든 Update Packet에 반드시 포함되어 있는 mandatory attribute이다.

  그럼, ORIGIN Attribute는 무엇인가? ORIGIN Attribute는 해당 Network 정보가 어떻게 BGP Database에 들어왔는지를 의미한다. BGP Database에 Network이 등록될 수 있는 방법은 4가지 방법이 있다.

방법 1 : Routing Table의 IGP Network를 ‘network’ 명령어로 Database에 등록

  IGP는 장비에서 ‘Direct Connect’로 인지하고 있는 Network만을 ‘network’ 명령어로 Database에 등록할 수 있지만, BGP는 Routing Table에 IGP로 학습한 모든 Network을 Database에 등록할 수 있다.

C 10.10.10.0/24 is directly connected, FastEthernet0/0

network 10.10.10.0 mask 255.255.255.0

S 20.20.20.0/24 [1/0] via 10.10.45.5, FastEthernet0/0

network 20.20.20.0 mask 255.255.255.0

O 30.30.30.0/24 [110/20] via 10.10.45.5, FastEthernet0/0

network 30.30.30.0 mask 255.255.255.0

D 40.40.40.0/24 [90/42335] via 10.10.45.5, FastEthernet0/0

network 40.40.40.0 mask 255.255.255.0

  이 경우 IGP의 Network 정보를 가져왔기 때문에, BGP database에 다음과 같이 Origin Attribute가 ‘IGP’로 표시된다.

Router#show ip bgp 10.10.10.0
BGP routing table entry for 10.10.10.0/24, version 2
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  Refresh Epoch 1
  Local
    10.10.45.5 (metric 26) from 0.0.0.0 (3.3.3.3)
      Origin IGP, metric 0, localpref 100, weight 32768, valid, sourced, local, best
      rx pathid: 0, tx pathid: 0x0

방법 2 : EGP Network 정보를 BGP Database에 등록

  현재는 사라지고 없지만, BGP의 전신인 EGP라는 Routing Protocol이 있었다. EGP에서 BGP로 전환되는 시점에 두개의 Routing Protocol이 공존하고 있었을 것이다. 그리고, 당연히 뒤에 나온 BGP는 EGP와 호환이 되도록 개발되었을 것이다.(지금은 호환되지 않는다.)

  이 때, EGP Routing Protocol로부터 받아서 BGP Database에 등록이 되면 ORIGIN Attribute가 ‘EGP’라고 표시된다. 그리고, 현재는 BGP와 EGP의 Update 정보가 많이 달라져서 호환이 안되는데, 이런 경우 한 장비에서 EGP와 BGP를 동시에 구동시킨 후 EGP로 받은 정보를 BGP에서 ‘network’ 명령어로 Database에 EGP Network를 등록할 수 있다. 이 경우에도 ORIGIN Attribute는 ‘EGP’로 표시된다.

  물론, EGP는 더이상 존재하지 않기 때문에 여러분들은 크게 신경쓰지 않아도 된다.

방법 3 : EGP나 IGP 정보를 ‘redistribute’ 명령어를 사용하여 BGP Database에 등록

  ‘network’ 명령어는 등록하고자 하는 Network을 명확하게 선별하는 반면, ‘redistribute’ 명령어는 가져오기 위한 Network을 선별하는 것이 아니라 Routing Protocol을 선별하게 된다. 그래서, 완전하지 않은 정보라고 해서 ORIGIN Attribute가 ‘INCOMPLETE’로 표시된다.

Router#show ip bgp 10.10.13.0                               
BGP routing table entry for 10.10.13.0/24, version 29
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  Refresh Epoch 1
  Local
    0.0.0.0 from 0.0.0.0 (3.3.3.3)
      Origin incomplete, metric 0, localpref 100, weight 32768, valid, sourced, best
      rx pathid: 0, tx pathid: 0x0

방법 4 : ‘aggregate-address’ 명령어를 사용하여 Summary Network를 BGP Database에 등록

  BGP는 ‘aggregate-address’ 명령어를 사용하여 자신의 Database에서 Summary된 Network를 생성할 수 있다. 이 경우, Summary Network의 ORIGIN Attribute는 ‘IGP’로 표시된다.

Router#show ip bgp 10.10.0.0
BGP routing table entry for 10.10.0.0/16, version 37
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  Refresh Epoch 1
  Local, (aggregated by 10 3.3.3.3)
    0.0.0.0 from 0.0.0.0 (3.3.3.3)
      Origin IGP, localpref 100, weight 32768, valid, aggregated, local, atomic-aggregate, best
      rx pathid: 0, tx pathid: 0x0

 ORIGIN Code

  그리고, BGP가 Bestpath를 선출할 때 ORIGIN Attribute를 비교하는 단계가 있는데 이 때, 비교를 하기 위해서는 ORIGIN Attribute에 비교할 수 있는 Value가 필요하다. 그것이 ‘ORIGIN Code’이다.

ORIGIN Code 설 명
0 IGP – Network Layer Reachability Information is interior to the originating AS
1 EGP – Network Layer Reachability Information learned via the EGP protocol
2 INCOMPLETE – Network Layer Reachability Information learned by some other means

  그리고, ORIGIN Code를 비교하는 경우 Code 값이 낮은 정보를 우선한다. 그래서, 우선순위는 ‘IGP’ > ‘EGP’ > ‘IMCOMPLETE’ 순이 된다.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.