LAB2에서는 Dynamic protorol 중 하나인 RIP(Routing Information Protocol)를 살펴 보도록 하겠다.
■ Introduce RIP
- Hop-Count를 Metric으로 사용한다.
- Metric의 개념을 설명하자면 각각의 라우팅 프로토콜마다 경로에 대한 점수를 계산하게 되는데, 이 값을 Metric이라 하고, 라우팅시에 먼저 AD 값이 낮은 값을 참조 하고 AD값이 같으면 Metric값을 참조하게 된다.
- Hop-Count는 라우터의 개수를 센다고 생각하면 싶다.
- 최대 Hop-Count는 15이다. 즉, Hop-count가 16가 넘어가면 Unreachable
- 최대 여섯개의 경로에 대해 로드 밸런싱을 할 수 있다. (기본적으로 4개)
- 자신의 라이팅 테이블을 이웃에게 전송하며, 업데이트는 30초 단위로 보내진다.
- Split-Horizon : 라우팅 테이블에 대한 업데이트를 수신한 인터페이스로는 다시 업데이트를 내보내지 않는 것으로 Looping을 방지 하기 위한 기법이다.
- 즉, 위의 그림에서 Split-Horizon을 설명하자면 R2와 R1이 RIP 돌고 있을때 R1은 172.16.1.0/30 네트워크를 R2로 광고할 것이고, R1은 Fa0/0을 통해 업데이트를 수신하고 이에 대한 정보를 Fa0/0으로 광고하지 않는 것이다.
■ RIPv1 and RIPv2 비교
RIP v1 | RIP v2 |
Classful routing protocol | Classless routing protocol |
VLSM 지원 안함 | VLSM 지원 |
No authentication support | Plain text or MD5 인증 지원 |
Broadcasts를 사용하여 광고 | Multicasts를 사용하여 광고 |
- 간단하게 정의하면 10.0.0.0 /24 의 네트워크를 광고할때
- RIP v1 은 10.0.0.0 /8 으로 광고한다. Classful Routing Protocol 이기 때문에 Class A 처럼 광고한다.
- RIP v2 는 이를 지원하기 때문에 제대로 광고한다.
- RIP v1은 인증방법을 지원하지 않는다.
- RIP v2는 plain text(평문) 이나 MD5 인증을 지원한다.
■ LAB2의 Topology 소개
- LAB 1과의 차이는 Loopback 인터페이스가 추가된 것이다.
- Loopback Interface
- 이는 가상의 인터페이스로 절대 down되지 않는다.
- 연결상태를 확인하기 매우 편하다.
- 어려운 IP가 아닌 아주 쉬운 IP를 이용할 수 있다.
- 차후에 구성 후 Loopback을 사용하여 Test를 할 것이다.
- 여기서 눈여겨 봐야할 것은 Rip v1는 Classful 라우팅 프로토콜이지만 위의 Topology는 Classless 네트워크로 구성되었다. 그래서 RIPv1 과 RIPv2를 혼합하여 구성할 것이다.
- 또한 RIP v2 구간에는 Authentication을 추가하여 구성할 것이다.
- 결론적으로 위와 같은 LAB을 구성할 것이며, 이에 대한 PKT 파일은 아래에 첨부한다.
■ RIP configuration 구문
명령어 | 설명 |
Router(config)# router rip | RIP 라우팅 시작 |
Router(config-router)# network ip-address | RIP를 통해 광고할 네트워크 설정 |
Router(config-router)# version 2 | RIP v2 활성화 |
Router(config-router)# no auto-summary | RIP v2에서 classless로 네트워크 광고를 가능하게 함 |
Router(config-if)# ip rip send version {1 | 2} | 인터페이스를 통해 보낼 RIP 버전 설정 |
Router(config-if)# ip rip receive version {1 | 2} | 인터페이스를 통해 받을 RIP 버전 설정 |
Router(config-if)# ip rip authentication mode {text | md5} | RIP v2에서 사용할 인증방식 설정 (RIP v1은 불가) |
Router(config)# key chain name | 사용할 key chain 이름 설정 |
Router(config-keychain)# key number | 인증에 사용할 key |
Router(config-keychain-key)# key-string string | 인증에 사용할 key의 비밀번호 설정 |
- Key Chain은 번역하면 열쇠 고리라는 뜻이다. 즉, 열쇠를 담고 있다는 뜻인데, 라우터간에 key chain 은 달라도 상관이 없다.
- 이해가 어렵다면 아래와 같이 생각하면 쉽다.
- key chain - 열쇠고리
- key - 열쇠
- key-string 자물쇠
- 자물쇠를 열기 위해서는 무엇이 같아야 할까? 열쇠와 자물쇠가 같아야 열 수 있다.
- 열쇠고리는 어떤걸 사용하던 상관이 없는 것이다.
■ Configure RIPv1
자 이제 구성을 시작 해 보겠습니다.
R1으로 가서 자신과 연결된 인터페이스를 광고하겠습니다.
sh ip route 를 사용하면 자신과 연결된 인터페이스를 확인할 수 있다.
R1(config)#router rip
R1(config-router)#network 1.1.1.1
R1(config-router)#network 172.16.1.0
R1(config-router)#network 172.16.2.0
R1(config-router)#network 192.168.1.0
R1(config-router)#
자 설정을 했으니 이제 확인해 보자. 먼저 running-config를 확인해봅시다.
!
router rip
network 1.0.0.0
network 172.16.0.0
network 192.168.1.0
!
보면 설정한 네트워크 주소와 다른것을 알 수 있습니다.
앞에서 말했듯이 RIP v1은 classful routing protocol 이기 때문에 classless로 입력하여도 클래스에 맞게 알아서 바꿔버립니다.
그럼 다음 routing table을 확인해 보겠습니다.
R1#sh ip rou
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
Gateway of last resort is not set
1.0.0.0/32 is subnetted, 1 subnets
C 1.1.1.1 is directly connected, Loopback0
172.16.0.0/30 is subnetted, 2 subnets
C 172.16.1.0 is directly connected, Serial0/0.1
C 172.16.2.0 is directly connected, Serial0/0.2
192.168.1.0/30 is subnetted, 1 subnets
C 192.168.1.0 is directly connected, FastEthernet0/0
R1#
Routing table도 이제 볼 줄 아셔야 합니다. 아무런 경로도 올라와 있지 않은 것을 알 수 있습니다.
R1 라우터 혼자만 RIP를 돌리고 있으니 당연한겁니다.
자 그럼 R2로 넘어가보겠습니다.
R2(config)#router rip
R2(config-router)#network 2.0.0.0
R2(config-router)#network 10.0.0.0
R2(config-router)#network 192.168.1.0
R2(config-router)#
어차피 classless하게 입력해도 classful하게 들어가기 때문에 Classful하게 입력하겠습니다.
BB1(config-router)#router rip
BB1(config-router)#network 3.0.0.0
BB1(config-router)#network 10.0.0.0
BB1(config-router)#network 172.16.0.0
BB1(config-router)#
BB2(config)#router rip
BB2(config-router)#network 4.0.0.0
BB2(config-router)#network 10.0.0.0
BB2(config-router)#network 172.16.0.0
BB2(config-router)#
BB1과 BB2에도 알맞게 설정해 줍니다.
자 그럼 다시 R1으로 돌아가 보겠습니다.
R1#sh ip route
<생략>
1.0.0.0/32 is subnetted, 1 subnets
C 1.1.1.1 is directly connected, Loopback0
R 2.0.0.0/8 [120/1] via 192.168.1.2, 00:00:22, FastEthernet0/0
R 3.0.0.0/8 [120/1] via 172.16.1.2, 00:00:05, Serial0/0.1
R 4.0.0.0/8 [120/1] via 172.16.2.2, 00:00:20, Serial0/0.2
R 10.0.0.0/8 [120/1] via 192.168.1.2, 00:00:22, FastEthernet0/0
[120/1] via 172.16.1.2, 00:00:05, Serial0/0.1
[120/1] via 172.16.2.2, 00:00:20, Serial0/0.2
172.16.0.0/30 is subnetted, 2 subnets
C 172.16.1.0 is directly connected, Serial0/0.1
C 172.16.2.0 is directly connected, Serial0/0.2
192.168.1.0/30 is subnetted, 1 subnets
C 192.168.1.0 is directly connected, FastEthernet0/0
R1#
표시된 부분에 집중을 해 보시길 바랍니다.
RIP로 돌아가는 10.0.0.0 부분을 보면 세가지 경로가 있는 것을 볼 수 있습니다.
R2의 랜 네트워크 구간은 10.1.2.X이고 Backbone 라우터 구간은 10.1.1.X 인데, 위의 라우팅 테이블을 보면 뭔가 잘못 된 구성임을 짐작할 수 있습니다.
그럼 이제 테스트를 해봅시다.
R1#ping 1.1.1.1
R1#ping 2.2.2.2
R1#ping 3.3.3.3
R1#ping 4.4.4.4
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 47/59/63 ms
R1#
각 루프백으로 ping을 사용해 보면 모두 정상적으로 동작하는 것처럼 보입니다.
이제 좀 더 디테일 한 부분으로 ping을 날려보겠습니다.
R1#ping 10.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds:
U!!.!
Success rate is 60 percent (3/5), round-trip min/avg/max = 32/78/78 ms
R1#ping 10.1.2.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.2.2, timeout is 2 seconds:
U!U.!
Success rate is 40 percent (2/5), round-trip min/avg/max = 32/87/62 ms
R1#
개판입니다.
참고로 !은 success, .은 not respond, U는 Unreachable이다.
■ Configure RIPv2
자 위에서 잘못 된 부분을 고쳐보겠습니다.
###R1
router rip
version 2
no auto-summary
###BB1
router rip
version 2
no auto-summary
##BB2
router rip
version 2
no auto-summary
1.0.0.0/32 is subnetted, 1 subnets
C 1.1.1.1 is directly connected, Loopback0
R 2.0.0.0/8 [120/1] via 192.168.1.2, 00:01:02, FastEthernet0/0
3.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
R 3.0.0.0/8 [120/1] via 172.16.1.2, 00:01:02, Serial0/0.1
R 3.3.3.3/32 [120/1] via 172.16.1.2, 00:00:07, Serial0/0.1
4.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
R 4.0.0.0/8 [120/1] via 172.16.2.2, 00:00:58, Serial0/0.2
R 4.4.4.4/32 [120/1] via 172.16.2.2, 00:00:02, Serial0/0.2
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
R 10.0.0.0/8 [120/1] via 192.168.1.2, 00:01:02, FastEthernet0/0
[120/1] via 172.16.1.2, 00:01:02, Serial0/0.1
[120/1] via 172.16.2.2, 00:00:58, Serial0/0.2
R 10.1.1.0/30 [120/1] via 172.16.1.2, 00:00:07, Serial0/0.1
[120/1] via 172.16.2.2, 00:00:02, Serial0/0.2
172.16.0.0/30 is subnetted, 2 subnets
C 172.16.1.0 is directly connected, Serial0/0.1
C 172.16.2.0 is directly connected, Serial0/0.2
192.168.1.0/30 is subnetted, 1 subnets
C 192.168.1.0 is directly connected, FastEthernet0/0
R1#
10.1.1.0 에 대한 부분이 라우팅 테이블에 추가된 것을 볼 수 있습니다.
자 그럼 다시 확인을 해보겠습니다.
R1#ping 10.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 46/78/125 ms
R1#ping 10.1.2.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.2.2, timeout is 2 seconds:
UU!.U
Success rate is 20 percent (1/5), round-trip min/avg/max = 3/190/63 ms
R1#
10.1.1.1 로 가는 라우팅 경로는 이제 잘 동작하는 것을 볼 수 있지만
10.1.2.2 로 가는 라우팅 경로는 아직 제대로 잘 동작하지 않는 것을 볼 수 있습니다.
그럼 이제 R1으로 가는 경로를 아래와 같이 Static 으로 잡아주겠습니다.
R1(config)#ip route 10.1.2.0 255.255.255.0 192.168.1.2
S 10.1.2.0/24 [1/0] via 192.168.1.2
sh ip route로 확인을 하면 라우팅 테이블에 위와 같이 경로가 추가된 것을 알 수 있습니다.
그러고 이제 마지막 회심의 PING!!!!!!!
R1#ping 10.1.2.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.2.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/25/32 ms
R1#
원래는 중간에 ip rip send version 1 / ip rip send version 1 이라는 명령어가 있지만
Packet Tracer 5.3에서는 동작하지 않았습니다.
ip rip send version 1
ip rip receive version 1
이 두 명령어를 RIPv2로 설정할시에 R1의 interface fa0/0 에서 설정하면 되는 것이 었습니다.
그렇게 되면 R1에서 R2로 가는 업데이트와 R2에서 오는 업데이트를 RIP v1 방식으로 교환하게 되는 것이었습니다.
이러한 명령어가 있다는 것을 알아두면 될 것 같습니다.
■ Add authentication support for RIPv2
RIP v2 구간에 인증을 넣어보도록 하겠습니다.
먼저 R1으로 가서 아래와 같이 설정합니다.........................
패킷 트레이서에서 key chain 이 먹지 않습니다...............................................설명으로 대체 하겠습니다...............
패킷 트레이서에서는 RIP에 대한 인증이 지원하지 않나 봅니다.
R1(config)# key chain KEYCHAIN1
R1(config-keychain)# key 1
R1(config-keychain-key)# key-string CISCO
KEYCHAIN1 이라는 열쇠고리를 생성합니다.
그리고 1 이라는 열쇠를 생성하고
이에 대한 비밀번호를 CISCO 라고 설정하였습니다.
R1(config-subif)# int s0/0.1
R1(config-subif)# ip rip authentication mode md5
R1(config-subif)# ip rip authentication key-chain KEYCHAIN1
R1(config-subif)# int s0/0.2
R1(config-subif)# ip rip authentication mode md5
R1(config-subif)# ip rip authentication key-chain KEYCHAIN1
R1(config-subif)# end
이제 인터페이스로 가서 이에 대한 인증을 설정하는 것입니다.
인증 mode에는 text 와 md5 가 있는데, md5로 암호화 하는 방식으로 하도록 하겠습니다.
이러한 암호화가 어떤 효과가 있는지는 나중에 wireshark로 직접 패킷을 잡아서 확인해 보도록 하겠습니다.
R1# copy run star
저장을 필수입니다~
###BB1
key chain KEYCHAIN1
key 1
key-string CISCO
key chain KEYCHAIN2
key 1
key-string CISCO
int s0/0.1
ip rip authentication mode md5
ip rip authentication key-chain KEYCHAIN2
int s0/0.2
ip rip authentication mode md5
ip rip authentication key-chain KEYCHAIN1
wr
BB1에서도 같은 방식으로 하나
s0/0.1 인터페이스에는 KEYCHAIN2,
s0/0.2 인터페이스에는 KEYCHAIN1
으로 인증을 하겠습니다.
앞에서 말했듯이 key와 key-string만 같으면 key chain은 달라도 상관이 없다는 것을 보여주기 위한 것입니다.
##BB2
key chain KEYCHAIN1
key 1
key-string CISCO
key chain KEYCHAIN2
key 1
key-string CISCO
int s0/0.1
ip rip authentication mode md5
ip rip authentication key-chain KEYCHAIN2
int s0/0.2
ip rip authentication mode md5
ip rip authentication key-chain KEYCHAIN1
wr
BB1과 똑같이 설정하고, 저장하도록 하겠습니다.
wr은 간단한 저장 명령어 입니다.
시험에서는 wr이 동작하지 않는 다는 소문도 있으니 참고 하시기 바랍니다.
인증 전까지의 파일을 올려 드리겠습니다.