라우터의 패킷 전달 방식
라우터의 패킷 전달 3가지
- 라우터는 최적의 경로를 찾고, 패킷이 빠져나갈 출구 단자를 정한다. 이를 스위칭 이라고 한다.
- 라우터를 통해 패킷을 전달하는 세 가지 단계가 있다.
Proccess Switching
- 패킷별로 부하분산이 가능하다.
- 패킷이 인터페이스에 도착하면 라우터의 CPU가 패킷을 처리하고 전달할 위치를 결정한다.
- 매 패킷 하나 마다 라우팅 테이블을 참조해야하므로 Fast switching 보다 통신 속도가 10배 이상 느리다.
- 각 수신된 패킷은 라우터의 CPU에 의해 매 패킷마다 반복 처리 되므로 CPU 리소스가 많이 소비되어 성능 저하 등 이유로 이제는 사용하지 않는 스위칭 방식이다.
Fast Switching
- 목적지별 부하분산이 가능하다.
- 라우터의 CPU의 부하를 줄이기 위해 도입된 스위칭 모드이다.
- 첫번째 스위칭에서는 프로세스 스위칭을 사용하여 첫 번째 패킷이 처리되고, 라우터가 흐름에 대한 캐시 항목을 만든다.
- 동일한 흐름의 후속 패킷에 대해 라우터는 캐시 항목을 확인하고 추가 처리 없이 패킷을 전달한다.
- CPU 사용률이 감소하나, 캐시에 많은 메모리 양이 필요하므로 라우터 메모리 사용량에 영향을 준다.
ip route-cache => default 값이 enable.
CEF Switching (Cisco Express Forwarding)
- 출발지와 목적지를 모두 고려한 스위칭 방식이다.
- CPU 개입 없이 패킷을 전달하는데 사용되는 FIB(Forwarding Information Base) 및 Adjacency Table을 만들어 놓고, 패킷을 처리할때 이를 참조하여 패킷을 전달하는 방식으로 작동한다.
- 최소 CPU 및 메모리 리소스를 사용하므로 라우터 성능이 향상된다.
-Show ip cef => 라우터에게 cef가 활성화 되어 있는지 확인.
-ip load-sharing => 여러 경로 간에 트래픽 흐름의 균형을 유지하도록 CEF 부하분산을 구성할 수 있다.
-ip cef load-sharing algorithm => 트래픽 흐름의 경로를 결정하기 위해 CEF에서 사용하는 부하분산 알고리즘을 구성할 수 있다.
-ip cef accounting => CEF 전환 활동을 모니터링할 수 있도록 CEF 계정을 구성할 수 있다.
RIB (Routing Information Base)
- 라우터에서 학습한 모든 라우팅 정보를 저장하는 데이터베이스 이다.
- directly connected networks, static routing, dynamic routing과 같은 다양한 소스에서 테이블을 형성한다.
- 패킷이 라우터에 도착하면 RIB를 참조하여 패킷 전달을 위한 최적의 경로를 결정한다.
- RIB는 소프트웨어 데이터베이스이며 RIB의 내용은 패킷 전달에 직접 사용되지 않는다.
- 대신, RIB는 네트워크 토폴로지의 전체 보기를 제공하고 라우터가 지능적인 전달 결정을 내릴 수 있도록 한다.
- RIB는 새로운 라우팅 정보가 학습되거나 네트워크에서 변경 사항이 발생할 때 지속적으로 업데이트 된다.
FIB (Forwarding Information Base)
- FIB는 RIB를 기반으로 구축된 Hardware database이다.
- FIB에는 각 대상에 대한 최상의 경로만 포함되어 있으며 빠른 패킷 전달에 최적화 되어 있다.
- 패킷이 라우터에 도착하면 FIB를 참조하여 패킷 전달을 위한 최적의 Next-hop을 결정한다.
- RIB와 달리 FIB는 패킷 전달에 직접 사용되며 그 내용은 라우터의 하드웨어 메모리에 저장된다.
실습
- [static으로 summary 없이 routing]
# 공통 설정
en
conf tS
no ip domain lookup
line c 0
logg syn
exec-timeout 0
exit
int s1/0
no shut
encap fram
no fram inver
clock rate 64000
exit
hostname
# IP address & mapping
R1]
conf t
int l0
ip add 1.1.1.1 255.255.255.255
Exit
Int l1
Ip add 1.1.1.2 255.255.255.255
int s1/0.12 p
ip add 1.1.12.1 255.255.255.0
fram inter 102
exit
R2]
conf t
int l0
ip add 1.1.2.2 255.255.255.0
exit
int s1/0.12 p
ip add 1.1.12.2 255.255.255.0
fram inter 201
exit
int s1/0.23 p
ip add 1.1.23.2 255.255.255.0
fram inter 203
exit
int s1/0.32 p
ip add 1.1.32.2 255.255.255.0
fram inter 213
exit
R3]
conf t
int l0
ip add 1.1.3.3 255.255.255.0
exit
int s1/0.23 p
ip add 1.1.23.3 255.255.255.0
fram inter 302
exit
int s1/0.32 p
ip add 1.1.32.3 255.255.255.0
fram inter 312
exit
int s1/0.34 p
ip add 1.1.34.3 255.255.255.0
fram inter 304
exit
R4]
conf t
int l0
ip add 1.1.4.4 255.255.255.255
Exit
Int l1
Ip add 1.1.4.5 255.255.255.255
exit
int s1/0.34 p
ip add 1.1.34.4 255.255.255.0
fram inter 403
exit
# static routing
R1]
conf t
ip route 1.1.2.0 255.255.255.0 s1/0.12 1.1.12.2
ip route 1.1.3.0 255.255.255.0 s1/0.12 1.1.12.2
ip route 1.1.4.0 255.255.255.0 s1/0.12 1.1.12.2
ip route 1.1.23.0 255.255.255.0 s1/0.12 1.1.12.2
ip route 1.1.32.0 255.255.255.0 s1/0.12 1.1.12.2
ip route 1.1.34.0 255.255.255.0 s1/0.12 1.1.12.2
R2]
conf t
ip route 1.1.1.0 255.255.255.0 s1/0.12 1.1.12.1
ip route 1.1.3.0 255.255.255.0 s1/0.23 1.1.23.3
ip route 1.1.3.0 255.255.255.0 s1/0.32 1.1.32.3
ip route 1.1.4.0 255.255.255.0 s1/0.23 1.1.23.3
ip route 1.1.4.0 255.255.255.0 s1/0.32 1.1.32.3
ip route 1.1.34.0 255.255.255.0 s1/0.23 1.1.23.3
ip route 1.1.34.0 255.255.255.0 s1/0.32 1.1.32.3
R3]
conf t
ip route 1.1.4.0 255.255.255.0 s1/0.34 1.1.34.4
ip route 1.1.1.0 255.255.255.0 s1/0.23 1.1.23.2
ip route 1.1.2.0 255.255.255.0 s1/0.23 1.1.23.2
ip route 1.1.12.0 255.255.255.0 s1/0.23 1.1.23.2
ip route 1.1.1.0 255.255.255.0 s1/0.32 1.1.32.2
ip route 1.1.2.0 255.255.255.0 s1/0.32 1.1.32.2
ip route 1.1.12.0 255.255.255.0 s1/0.32 1.1.32.2
R4]
conf t
ip route 1.1.1.0 255.255.255.0 s1/0.34 1.1.34.3
ip route 1.1.2.0 255.255.255.0 s1/0.34 1.1.34.3
ip route 1.1.3.0 255.255.255.0 s1/0.34 1.1.34.3
ip route 1.1.12.0 255.255.255.0 s1/0.34 1.1.34.3
ip route 1.1.23.0 255.255.255.0 s1/0.34 1.1.34.3
# proccess 스위칭 설정
R1]
Conf t
Int lo0
No ip route-cache
R2]
Conf t
Int s1/0.23
No ip route-cache
Exit
Int s1/0.32
No ip route-cache
!
Deb ip packet
R1]
Ping 1.1.4.4 source lo0
Ping 1.1.4.4. source lo1
=>아웃바운드 나가는 출구 인터페이스에 캐시를 안쓰겠다고 선언을 해야한다. 프로세싱 스위칭의 로드밸런싱.
# fast 스위칭
Conf t
R2]
Int s1/0.23
Ip route-cache
Exit
Int s1/0.32
Ip route-cache
Exit
Deb ip packet
R1]
Ping 1.1.4.4 source lo0
Ping 1.1.4.4 source lo1
# CEF 스위칭 설정
R2]
Conf t
Ip cef
Int s1/0.23
Ip route-cache
Exit
Int s1/0.32
Ip route-cache
End
!deb ip packet
R1]
Ping 1.1.4.4 source lo0
Ping 1.1.4.5 source lo1
Ping 1.1.4.4 source lo1
Ping 1.1.4.5 source lo0
Debug로 확인이 되질 않는다. Ping을 보낸 후 r2에서 SHOW IP CACHE를 통해 확인할 수 있다.
3줄 요약
-
프로세스 스위칭은 패킷 별.
-
패스트 스위칭은 목적지 별.
-
CEF 스위칭은 출발지 별, 목적지 별.
댓글남기기