태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.
 

 
블로그 이미지
[www.netrain.co.kr]에서 네트워크/보안을 공부하시는 분들을 위해 서비스를 제공하는 블로그입니다 승진아빠
Follow silpir  on Twitter


EIGRP - Neighbor간 subnet이 다르면?

금주의 LAB | 2010.03.23 09:26 | Posted by 승진아빠

어제 저희 직원 중 한명이 몸이 좋지 않다고 병원에 갔는데, 병원에서 지금 당장 수술을 해야 한다고 하더랍니다. 그래서, 3시 20분에 병원에 가서 3시 40분에 수술을 하고 현재 입원중입니다. 모두가 저 때문입니다. 너무 가슴이 아프군요! 너무 일을 많이 시키는게 아닌데...... 하는 생각이 듭니다.

 

어제 수술을 했는데 너무 심해서 두 달 뒤에 다시 수술을 해야 한다는군요. 얼마나 많이 아플까요... 너무 오래동안 앉아서 일하느라 걸린 병입니다. 의사가 어떻게 이렇게 될 때 까지 참고 있었냐고 했답니다. 엄청나게 심해진 치질! 2년전부터 참아 왔는데, 견딜만 했었는데... 저 때문에 심해진겁니다. 일도 적당히 시켜야 겠어요.

 

치질이 얼마나 고통스러운지 걸려보지 않은 사람은 모른다고 하더군요. 그래서, 저도 모릅니다. 그래서, 안타깝습니다. 수술했던 의사는 그 고통을 알고 있을까요? 고통을 알고 있다면 더욱 조심스럽게 수술하기 위해 노력 했겠죠! 갑자기 그런 생각이 드는군요. '제가 엔지니어 생활을 하지 않았다면.....'하는 생각이요.

 

이론은 원리원칙에 의해 만들어지고, 책은 보편타당성에 의해 쓰여 집니다. 현실은요? 현실은 예기치 않은 사건의 연속으로 구성되어 있죠! 파란불에 길을 건넌다고 교통사고 안나는거 아니고, 회사에 충성한다고 진급하는거 아니죠! 제가 엔지니어를 하지 않았다면, '파란불에 횡단보도를 건너면 사고나지 않는다'고만 알고 있을 겁니다. 책에 그렇게 쓰여 있으니까요. 즉, 책읽고 많이 안다고 강의하고 있을 겁니다. 소히, [죽은 강의]라고 하죠!

 

제가 엔지니어 생활을 했었기 때문에 살아 숨쉬는 강의는 아니라 할지라도 '죽은 강의'는 하지 않을 수 있지 않았나 생각이 듭니다. 치질에 걸린 그 친구는 앞으로는 친구가 치질에 걸렸다면 웃지 않고, 친구의 고통과 안타까움이 먼저 생각날겁니다. 만일, '똥침'을 한다면요? ^^

 

여러분도 주위에서 네트워크 기초를 물어보면 자신이 몰랐던 시절을 생각하고, 친절하게 알려주세요. 몰라서 물어보는거 쉬운거 같지만, 용기 없는 사람은 절대 묻지 않습니다. 혼자 네이버에서 찾아보겠죠... 모르는걸 물어보는 사람은 반드시 성공합니다. 제가 확신합니다. ^^

 

자 서론이 길었습니다. 12시 넘으니 정신이 혼미해져서 그래요. 오늘 내용은 네트워크 입문하시는 분들께는 약간 어려운 내용일 수 있습니다. 이런게 있구나... 하면서 편하게 읽어주세요!

 

오늘은 EIGRP에서 Dircet Connect 되어 있는 두대의 Router에서 Subnet을 잘못 줬을 때, 무슨 일이 일어나는지 확인해 보도록 하겠습니다.

 

자 구성도는 다음과 같습니다.

 

 

■ R1

interface FastEthernet0/0
 ip address 12.12.12.1 255.255.255.0

interface FastEthernet1/0
 ip address 1.1.1.1 255.255.255.0

router eigrp 10
 network 1.0.0.0
 network 12.0.0.0
 no auto-summary

 

■ R2

interface FastEthernet0/0
 ip address 12.12.12.2 255.255.0.0

interface FastEthernet1/0
 ip address 2.2.2.2 255.255.255.0

router eigrp 10
 network 2.0.0.0
 network 12.0.0.0
 no auto-summary

 

Routing table을 한번 볼까요?

 

■ R1

Gateway of last resort is not set

     1.0.0.0/24 is subnetted, 1 subnets
C       1.1.1.0 is directly connected, FastEthernet1/0
     2.0.0.0/24 is subnetted, 1 subnets
D       2.2.2.0 [90/30720] via 12.12.12.2, 00:01:56, FastEthernet0/0
     12.0.0.0/24 is subnetted, 1 subnets
C       12.12.12.0 is directly connected, FastEthernet0/0

 

■ R2

Gateway of last resort is not set

     1.0.0.0/24 is subnetted, 1 subnets
D       1.1.1.0 [90/30720] via 12.12.12.1, 00:02:23, FastEthernet0/0
     2.0.0.0/24 is subnetted, 1 subnets
C       2.2.2.0 is directly connected, FastEthernet1/0
     12.0.0.0/16 is subnetted, 1 subnets
C       12.12.0.0 is directly connected, FastEthernet0/0

 

흠... R1은 '12.12.12.1/24', R2는 '12.12.12.2/16' 서로간에 Subnet mask가 다른데도 Neighbor를 맺고 Route 정보도 잘 전달하는군요. 왜 그럴까요?

 

Routing Protocol 종류가 많죠? RIP, IGRP, EIGRP, OSPF, ISIS, BGP 등... 이러한 Routing Protocol 중 둘 사이에 Subnet이 다르면 Neighbor 관계를 맺지 않는 Routing Protocol은 OSPF 밖에 없습니다. RIP, IGRP, EIGRP과 같은 Distance-Vector Routing Protocol은 다음의 조건만 만족하면 Route 정보를 update 합니다.

 

조건 1 : [R1 Interface의 IP address] < [R2 Interface의 Network]
조건 2 : [R2 Interface의 IP address] < [R1 Interface의 Network]

※ OSPF는 Hello Packet에 Subnet 정보를 전달하여 서로 다르면 Neighbor를 맺지 않습니다.

 

자세한 이론은 오늘의 이론을 통하여 설명하기로 합니다. 토요일은 'LAB으로 배우는 Network' 시간이니까요...^^ 그럼, 위의 조건을 만족하는지 볼까요?

 

조건 1 : 12.12.12.1 < 12.12.0.0/16
조건 2 : 12.12.12.2 < 12.12.12.0/24

 

만족하는군요. 그래서, 아무문제 없이 Route 정보를 전달할 수 있는 겁니다. 잉? 그럼 이게 끝인가요? 설마요. 이걸로 끝이면 메일링 서비스 거부 당합니다. ^^

 

아무 문제없던 Network에 한놈이 다음과 같이 새롭게 연결되었습니다.

 

 

 

■ R1

interface FastEthernet2/0
 ip address 13.13.13.1 255.255.255.0

router eigrp 10
 network 13.0.0.0

 

■ R2

interface FastEthernet2/0
 ip address 23.23.23.2 255.255.255.0

router eigrp 10
 network 23.0.0.0

 

■ R3

interface FastEthernet0/0
 ip address 13.13.13.3 255.255.255.0

interface FastEthernet1/0
 ip address 23.23.23.3 255.255.255.0

router eigrp 10
 network 12.0.0.0
 network 23.0.0.0
 no auto-summary

 

Routing table을 한번 볼까요?

 

■ R1

Gateway of last resort is not set

     1.0.0.0/24 is subnetted, 1 subnets
C       1.1.1.0 is directly connected, FastEthernet1/0
     2.0.0.0/24 is subnetted, 1 subnets
D       2.2.2.0 [90/30720] via 12.12.12.2, 00:00:46, FastEthernet0/0
     23.0.0.0/24 is subnetted, 1 subnets
D       23.23.23.0 [90/30720] via 13.13.13.3, 00:00:46, FastEthernet2/0
                   [90/30720] via 12.12.12.2, 00:00:46, FastEthernet0/0
     12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
D       12.12.0.0/16 [90/33280] via 13.13.13.3, 00:00:46, FastEthernet2/0
C       12.12.12.0/24 is directly connected, FastEthernet0/0
     13.0.0.0/24 is subnetted, 1 subnets
C       13.13.13.0 is directly connected, FastEthernet2/0

 

■ R2

Gateway of last resort is not set

     1.0.0.0/24 is subnetted, 1 subnets
D       1.1.1.0 [90/30720] via 12.12.12.1, 00:01:04, FastEthernet0/0
     2.0.0.0/24 is subnetted, 1 subnets
C       2.2.2.0 is directly connected, FastEthernet1/0
     23.0.0.0/24 is subnetted, 1 subnets
C       23.23.23.0 is directly connected, FastEthernet2/0
     12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C       12.12.0.0/16 is directly connected, FastEthernet0/0
D       12.12.12.0/24 [90/33280] via 23.23.23.3, 00:01:04, FastEthernet2/0
     13.0.0.0/24 is subnetted, 1 subnets
D       13.13.13.0 [90/30720] via 23.23.23.3, 00:01:05, FastEthernet2/0
                   [90/30720] via 12.12.12.1, 00:01:05, FastEthernet0/0

 

■ R3

     1.0.0.0/24 is subnetted, 1 subnets
D       1.1.1.0 [90/30720] via 13.13.13.1, 00:01:20, FastEthernet0/0
     2.0.0.0/24 is subnetted, 1 subnets
D       2.2.2.0 [90/30720] via 23.23.23.2, 00:01:20, FastEthernet1/0
     23.0.0.0/24 is subnetted, 1 subnets
C       23.23.23.0 is directly connected, FastEthernet1/0
     12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
D       12.12.0.0/16 [90/30720] via 23.23.23.2, 00:06:09, FastEthernet1/0
D       12.12.12.0/24 [90/30720] via 13.13.13.1, 00:01:20, FastEthernet0/0
     13.0.0.0/24 is subnetted, 1 subnets
C       13.13.13.0 is directly connected, FastEthernet0/0

 

처음에는 이상없어 보입니다... 그러다 조금 기다리시면 R1과 R2에 다음과 같은 메세지가 주기적으로 올라옵니다.

 

■ R1

%DUAL-5-NBRCHANGE: IP-EIGRP(0) 10: Neighbor 12.12.12.2 (FastEthernet0/0) is down: Interface Goodbye received

%DUAL-5-NBRCHANGE: IP-EIGRP(0) 10: Neighbor 12.12.12.2 (FastEthernet0/0) is up: new adjacency

 

■ R2

%DUAL-5-NBRCHANGE: IP-EIGRP(0) 10: Neighbor 12.12.12.1 (FastEthernet0/0) is down: retry limit exceeded

%DUAL-5-NBRCHANGE: IP-EIGRP(0) 10: Neighbor 12.12.12.1 (FastEthernet0/0) is up: new adjacency

 

흠... Neighbor관계를 끊었다 다시 맺었다를 반복하는군요.
그러면, Routing table 정보은 어떻게 변해 있을까요?

 

■ R1

Gateway of last resort is not set

     1.0.0.0/24 is subnetted, 1 subnets
C       1.1.1.0 is directly connected, FastEthernet1/0
     2.0.0.0/24 is subnetted, 1 subnets
D       2.2.2.0 [90/33280] via 13.13.13.3, 00:01:41, FastEthernet2/0
     23.0.0.0/24 is subnetted, 1 subnets
D       23.23.23.0 [90/30720] via 13.13.13.3, 00:01:41, FastEthernet2/0
     12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
D       12.12.0.0/16 [90/33280] via 13.13.13.3, 00:02:59, FastEthernet2/0
C       12.12.12.0/24 is directly connected, FastEthernet0/0
     13.0.0.0/24 is subnetted, 1 subnets
C       13.13.13.0 is directly connected, FastEthernet2/0

 

R1에는 12.12.12.2를 Next-hop으로 보는 정보가 다 사라졌군요.

 

■ R2

Gateway of last resort is not set

     1.0.0.0/24 is subnetted, 1 subnets
D       1.1.1.0 [90/33280] via 23.23.23.3, 00:04:49, FastEthernet2/0
     2.0.0.0/24 is subnetted, 1 subnets
C       2.2.2.0 is directly connected, FastEthernet1/0
     23.0.0.0/24 is subnetted, 1 subnets
C       23.23.23.0 is directly connected, FastEthernet2/0
     12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C       12.12.0.0/16 is directly connected, FastEthernet0/0
D       12.12.12.0/24 [90/33280] via 23.23.23.3, 00:06:06, FastEthernet2/0
     13.0.0.0/24 is subnetted, 1 subnets
D       13.13.13.0 [90/30720] via 23.23.23.3, 00:04:49, FastEthernet2/0

 

R2 역시 12.12.12.1을 Next-hop으로 보는 정보가 다 사라졌군요.

왜 이런 현상이 일어나는 걸까요? 우리가 좋아하는 Debug를 한번 걸어봐야 겠군요.

 

■ R1 (debug eigrp packet)

EIGRP: Sending UPDATE on FastEthernet0/0 nbr 12.12.12.2
EIGRP: Received UPDATE on FastEthernet0/0 nbr 12.12.12.2
EIGRP: Sending UPDATE on FastEthernet0/0 nbr 12.12.12.2, retry 1, RTO 3000
EIGRP: Received UPDATE on FastEthernet0/0 nbr 12.12.12.2
EIGRP: Sending UPDATE on FastEthernet0/0 nbr 12.12.12.2, retry 2, RTO 4000
EIGRP: Received UPDATE on FastEthernet0/0 nbr 12.12.12.2
EIGRP: Sending UPDATE on FastEthernet0/0 nbr 12.12.12.2, retry 3, RTO 5000
EIGRP: Received UPDATE on FastEthernet0/0 nbr 12.12.12.2
................
EIGRP: Sending UPDATE on FastEthernet0/0 nbr 12.12.12.2, retry 16, RTO 5000

%DUAL-5-NBRCHANGE: IP-EIGRP(0) 10: Neighbor 12.12.12.2 (FastEthernet0/0) is down: Interface Goodbye received

 

■ R2 (debug eigrp packet)

EIGRP: Sending UPDATE on FastEthernet0/0 nbr 12.12.12.1
EIGRP: Sending UPDATE on FastEthernet0/0 nbr 12.12.12.1, retry 1, RTO 3000
EIGRP: Sending UPDATE on FastEthernet0/0 nbr 12.12.12.1, retry 2, RTO 4000
EIGRP: Sending UPDATE on FastEthernet0/0 nbr 12.12.12.1, retry 3, RTO 5000
................
EIGRP: Sending UPDATE on FastEthernet0/0 nbr 12.12.12.1, retry 16, RTO 5000

%DUAL-5-NBRCHANGE: IP-EIGRP(0) 10: Neighbor 12.12.12.1 (FastEthernet0/0) is down: Interface Goodbye received

 

R1과 R2가 둘다 UPDATE Packet을 보내는데, 상대방이 잘 받았다는 ACK가 오지 않으니까 16번을 다시 던지는군요. 근데, 16번 다시 시도를 했는데 응답이 없으니, Neighbor 관계를 끊어 버리네요. 왜 그럴까요?

그 이유는 다음과 같은 특성때문에 그럽니다.

 

1. Routing Protocol 최우선순위 - 'Longest Match'
2. EIGRP의 UPDATE Packet - Unicast로 전송
3. EIGRP는 받은 UPDATE Packet의 Source IP address가 Neighbor IP address가 아니면 무시함
4. EIGRP는 UPDATE를 던지고 ACK를 받지 못하면 16번 Retry를 실시하고 Neighbor를 끊음

 

자, 다시 아까전의 Routing table을 한번 보세요.

 

R2의 Nighbor가 누구일까요? 바로 '12.12.12.1' 일겁니다.

 

R2# show ip eigrp nei
IP-EIGRP neighbors for process 10
H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
0   12.12.12.1              Fa0/0             13 00:00:56    1  5000  1  0
1   23.23.23.3              Fa2/0             10 00:31:45  246  1476  0  11

 

그러면, UPDATE Packet을 던지기 위해 12.12.12.1에게 전송을 하겠군요.
그럼, Routing table을 한번 확인 해 보시죠!

 

R2# show ip route

Gateway of last resort is not set

     1.0.0.0/24 is subnetted, 1 subnets
D       1.1.1.0 [90/33280] via 23.23.23.3, 00:26:43, FastEthernet2/0
     2.0.0.0/24 is subnetted, 1 subnets
C       2.2.2.0 is directly connected, FastEthernet1/0
     23.0.0.0/24 is subnetted, 1 subnets
C       23.23.23.0 is directly connected, FastEthernet2/0
     12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C       12.12.0.0/16 is directly connected, FastEthernet0/0
D       12.12.12.0/24 [90/33280] via 23.23.23.3, 00:28:01, FastEthernet2/0
     13.0.0.0/24 is subnetted, 1 subnets
D       13.13.13.0 [90/30720] via 23.23.23.3, 00:26:44, FastEthernet2/0

 

'12.12.12.0/24'가 '23.23.23.3'으로 잡혀 있군요. 그럼 Fa2/0으로 UPDATE Packet을 전송하겠군요. 자신의 Interface는 16bit이니 24bit인 찾아가겠죠! 이해가 안가시면 기존 메일링에서 Longest match 부분을 확인하세요.

 

자, 다음이 문제입니다. '12.12.12.1'에게 UPDATE Packet을 전송하기 위해 Fa2/0 Interface로 Packet을 전송하게 되면, Router는 Outgoing interface의 IP address가 Default로 Source IP address가 되기 때문에 Source IP address가 '23.23.23.2'로 날아가게 될겁니다.

 

그런데, R1이 그 정보를 받으면 '23.23.23.2'는 자신의 Neighbor IP address가 아니기 때문에 UPDATE 정보를 무시하겠죠? 그러니, 무슨 ACK를 보내겠습니까..... R2는 R1이 무시하는줄도 모르고 16번 Retry 하닥 Neighbor를 끊게 되는거랍니니다.

 

휴~ 오늘은 양이 많군요. 그럼 여기서 2가지 문제를 드릴테니 한번 생각해 보세요.

 

1. 왜 Neighbor는 다시 맺는걸까요?
2. 왜 23.23.23.3이 Best가 되었을까요?

 

오늘은 네트워크 입문 단계이신 분들에게는 조금 까다로운 문제였죠? 월~수에 진행하는 오늘의 이론을 잘 따라오시면 이런건 아무것도 아니랍니다. 겨우 이런게 CCIE Ended에 나와요... 알면 아무것도 아니죠. 오늘 하루도 수고하셨습니다. 감사합니다.

 

티스토리 툴바