이번에는 EBGP에서의 NEXT_HOP Attribute를 확인해 보기로 하자.

1. EBGP로 Update 할 때는 Neighbor와 TCP session을 맺고 있는 Interface의 IP address를 NEXT_HOP Attribute의 값으로 설정하여 전달한다.

  다음 Topology를 통해서 EBGP의 NEXT_HOP Attribute가 어떻게 전달되는지 확인해 보자.

  • EBGP 연결 현황
R1 1.1.1.1 R2 2.2.2.2
R1 20.20.20.1 R3 20.20.20.2
R5 20.20.20.3 R3 20.20.20.2

  위 상황에서 R1과 R5에서 ‘4.4.4.4/32’ Network의 next-hop 정보를 보면 다음과 같다.

R1#show ip bgp 4.4.4.4
BGP routing table entry for 4.4.4.4/32, version 2
Paths: (2 available, best #2, table Default-IP-Routing-Table)
  Advertised to update-groups:
        1
  2
    2.2.2.2 from 2.2.2.2 (2.2.2.2)
      Origin IGP, localpref 100, valid, external
  2
    20.20.20.2 from 20.20.20.2 (3.3.3.3)
      Origin IGP, localpref 100, valid, external, best
R5#show ip bgp 4.4.4.4
BGP routing table entry for 4.4.4.4/32, version 3
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Flag: 0x820
  Not advertised to any peer
  2
    20.20.20.2 from 20.20.20.2 (3.3.3.3)
      Origin IGP, localpref 100, valid, external, best

  EBGP로 Update를 전달할 때는 자신의 IP address로 NEXT_HOP Attribute 값을 변경하여 전달하는데, IP address를 확인해 보면 Neighbor와 session을 맺고 있는 Interface의 IP address인 것을 확인할 수 있다.

2. EBGP로 Update를 전달할 때, next-hop과 Neighbor IP address가 동일 Network에 존재하면 NEXT_HOP_Attribute 값을 변경하지 않고 그대로 전달한다.

  먼저 ‘5.5.5.5/32’ Network이 next-hop 정보를 R3에서 확인해 보자.

R3#show ip bgp 5.5.5.5
BGP routing table entry for 5.5.5.5/32, version 6
Paths: (1 available, best #1, table Default-IP-Routing-Table)
  Advertised to update-groups:
        1    2
  3
    20.20.20.3 from 20.20.20.3 (5.5.5.5)
      Origin IGP, metric 0, localpref 100, valid, external, best

  R3는 ‘5.5.5.5’32’ Network에 대해 next-hop을 ‘20.20.20.3’으로 알고 있다. 그런데, Update를 전달해야 하는 Neighbor의 IP address가 ‘20.20.20.1’(R1)이다. 그러면, R3는 ‘20.20.20.3’과 ‘20.20.20.1’이 동일 Network에 존재하는지 확인한다.

R3#show ip route 20.20.20.1
Routing entry for 20.20.20.0/24
  Known via "connected", distance 0, metric 0 (connected, via interface)
  Routing Descriptor Blocks:
  * directly connected, via FastEthernet0/0
      Route metric is 0, traffic share count is 1

R3#show ip route 20.20.20.2
Routing entry for 20.20.20.0/24
  Known via "connected", distance 0, metric 0 (connected, via interface)
  Routing Descriptor Blocks:
  * directly connected, via FastEthernet0/0
      Route metric is 0, traffic share count is 1

  둘 다 ‘20.20.20.0/24’ 내에 존재하기 때문에 R3는 NEXT_HOP Attribute 값을 변경하지 않고 그대로 전달하는 것이다.

  이렇게 NEXT_HOP Attribute를 변경하지 않고 전달하면 R1은 ‘5.5.5.5/32’로 Packet을 전달할 때, R3를 거치지 않고 바로 R1에게 전달함으로써 Traffic의 우회를 막을 수 있다.

  NEXT_HOP Attribute의 기본 동작원리 외에 ‘next-hop-self’ 명령어가 궁금하신 분이 많으실텐데, 이 부분은 다음 시간에 확인해 보기로 하자.

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.