본문 바로가기

카테고리 없음

Loopback interface [루프백 인터페이스]

1. Loopback Interface는 interface Loopback0 라는 식으로 설정하구요..
ip address x.x.x.x x.x.x.x 라는 식으로 기존의 Interface 설정과 동일합니다.
하지만 이 녀석은 생성하는 그 순간부터 수동으로 Down을 시키지 않는한 항상
Up이 되어있기 때문에 이런 측면에서 사용하는 경우가 첫번째 경우입니다.

2. Loopback Interface를 사용하는 이유는 OSPF에서 자주 사용합니다.
일반적으로 OSPF는 BroadCast 구간 내에서는 DR과 BDR을 선출을 합니다.
기존의 IS-IS와는 달리 모든 네이버와 인접관계를 맺는 방식이 아니라 OSPF의 
BroadCast영역에서는 동일한 Area 영역에 있는 라우터들은 DR과 BDR 이라는 녀석하고만 Full Adjancency를 맺습니다..
그리고 나머지 라우터들을 DROther라는 Two-way 인접관계를 형성하구요..
따라서 네트워크 토플로지내에 변화가 생기면 전체에게 Flooding하는 형식이 아니라 224.0.0.6 이라는 Multicast 주소를 이용해서 DR과 BDR에게 알리고요..
이러한 토플로지의 변화를 감지한 DR과 BDR은 224.0.0.5라는 Multicast 주소를 이용해서 나머지 라우터들에게 이러한 정보를 전달해 줍니다..
그런데 문제는 누가 과연 DR과 BDR이 되는냐인데요...
기본적으로 OSPF BroadCast 영역에서는 크게 3가지 조건으로 DR/BDR을 선출합니다.

- 라우터의 우선순위가 높은것 ( 기본적으로 모든 라우터가 동일한 값을 갖죠.)
- 우선순위가 같다면 논리적 인터페이스 주소가 높은것
(바로 여기서 LoopBack 인터페이스를 사용합니다.)
- 논리적 인터페이스가 없다면 마지막으로 물리적 인터페이스 주소가 높은값

즉 OSPF에서 논리적 인터페이스가 존재한다면 항상 물리적 인터페이스보다 우선
하기 때문에 이런 경우에 Loopback 인터페이스를 사용합니다.

3. 마지막은 BGP의 IBGP(Interior) 에서 사용을 하죠...
BGP는 크게 EBGP와 IBGP로 구분을 하는데요... BGP는 다른 일반 라우팅 프로토콜과 달리 TCP Port 179번을 이용해서 네이버를 맺습니다.
TCP를 사용하기 때문에 EIGRP, OSPF, IS-IS와는 달리 Reliable 통신을 제공하므로 BGP내에서는 따로 오류를 제어하는 메커니즘이 필요없다는 거죠.. 왜냐면
TCP가 이런 모든일을 하기때문이죠.. 이런 이유 때문에 BGP는 인터넷 구간에서 사용하는 거구요...
하지만 BGP의 경우는 이런 TCP의 특성을 따라가기 때문에 다른 라우팅 프로토콜과는 달리 반드시 neighbor을 수동으로 지정을 해야 합니다.
왜냐면 TCP 또한 반드시 Connection 통신을 하기때문이죠...
문제는 EBGP에서는 그다지 문제가 되지 않지만 IBGP내에서 BGP간에 서로 Full Mesh를 이용해서 서로 네이버를 생성했을때 하나의 BGP Router가 주변의 2개의
BGP Router와 인접관계를 맺을때 각각의 인터페이스로 관계를 맺게 된다면 그 인터페이스가 죽게되면 그 라인쪽으로는 통신이 불가능하다는 겁니다.

하지만 BGP는 앞에서처럼 굳이 직접 연결되어 있지 않아도 Ping만 된다면 네이버를 맺을수 있기 때문에 neighbor생성시 Loopback 인터페이스를 이용해서 네이버를 맺는다면 Full Mesh가 되어 있는 상황에서는 Redundency를 제공합니다.

만약 A Router의 Loopback0 Interface가 1.1.1.1 라면 이렇게 한다는 거죠..
B Router의 Loopback0 Interface가 3.3.3.3 이라면요..

A_Router> router bgp 65000
neighbor 3.3.3.3 remote-as 65000
neighbor 3.3.3.3 update-source loopback0

B_Router> router bgp 65000
neighbor 1.1.1.1 remote-as 65000
neighbor 1.1.1.1 update-source loopback0

라는 식으로 설정을 합니다..

EBGP상에서도 Loopback 인터페이스를 사용할수 있지만 기본적으로 EBGP상에서는 TTL의 값이 1로 되어있기 때문에 IBGP처럼 설정하면 네이버를 맺지 못하죠..
따라서 neighbor 3.3.3.3 ebgp-multihop 3 이런식으로 설정을 하면 Loopback
인터페이스를 이용해서 네이버를 맺을수 있습니다.

A_Router> router bgp 65000
neighbor 3.3.3.3 remote-as 65000
neighbor 3.3.3.3 update-source loopback0
neighbor 3.3.3.3 ebpg-multihop 3 ---> TTL의 값을 3으로 하겠다...