반응형

- 라우터는 입력된 패킷 목적지 IP를 바탕으로 라우팅 테이블에 등록된 서브넷 정보와 일치하는 레코드 인터페이스와 게이트웨이 정보를 확인하여 패킷을 전달한다.

- 디폴트 라우트란 목적지 경로를 찾아내지 못한 네트워크가 있다면 거쳐가도록 설정된 경로이다.

- AS(Autonomous System, 자율시스템)은 하나의 관리 도메인에 속해 있는 라우터의 집합을 말한다. AS 내에 운영되는 라우팅 프로토콜은 IGP라 하며, RIP, OSFP 등이 존재한다. AS 간 라우팅 정보를 교환하기 위한 프로토콜은 EGP라고 하며, BGP가 있다.

# 정적 라우팅

- 관리자의 권한으로 특정 경로를 통해서만 패킷이 지날 수 있도록 설정. 보안이 중요한 경우 사용.

- 네트워크 변경사항 발생 시, 라우팅 테이블을 수동으로 수정해야 함. 네트워크 환경 변화에 능동적인 대처 어려움

- 라우팅 경로가 고정되어 있는 네트워크에 적용하면 라우터의 직접적인 처리 부하가 감소


- 거리 벡터 라우팅 : 일정한 시간마다 이웃 라우터와 경로정보를 교환, 최적경로를 설정하는 방식. 일정 시간마다 이웃한 라우터와 라우팅 테이블에 있는 모든 정보를 주고받는데, 이웃하고 있는 라우터 경로 값과 자신의 경로 값을 비교하여 더 적은 값으로 라우팅 테이블을 갱신

- 링크 상태 라우팅 : 라우팅 테이블을 구성하기 위해 다익스트라 알고리즘을 사용한다.

- OSPF(Open Shortest Path First), 개방 최단 경로 우선 : RIP와 동일한 인트라 도메인 라우팅 프로토콜. 링크-상태 라우팅 기반. 네트워크 변화가 있을 경우에만 전체 네트워크에 플러딩 과정 수행, 라우팅 정보를 신속하게 갱신하여 수렴 시간을 줄이고 트래픽 양도 줄임. 최적 경로 계산을 위해 다익스트라 알고리즘 사용.

- IS-IS 라우팅(Intermediate System) : 각 라우터가 네트워크 토폴로지 데이터베이스를 독립적으로 구성하는 것을 가능케 함. OSPF와 같은 링크 상태 라우팅 프로토콜. 링크상태 정보를 교환하여 전체 네트워크 토폴로지 계산. 

거리벡터 라우팅 링크상태 라우팅
인접한 이웃으로부터 망 정보 수집 모든 라우터로부터 망 정보 수집
이웃 라우터와의 거리 비용을 더해서 비용 계산 최단거리 알고리즘으로 모든 라우터에 대한 비용 직접 계산
주기적인 라우팅 정보 교환 링크 상태 변화시만 라우징 정보 교환
느린 수렴시간 빠른 수렴시간
모든 라우팅 테이블 값을 이웃에게 전달 자신에게 직접 연결된 망 정보만 전달
브로드캐스트 방식으로 이웃에게 라우팅 광고 멀티캐스트 방식으로 라우팅 광고

- CIDR(Classless Inter Domain Routing), 클래스 없는 주소 지정 : 기존 IP 주소 클래스 체계의 주소 고갈 문제를 해결하고자 나온 방식. 기존의 클래스 A/B/C 네트워크 주소 개념을 무시함. 인터넷 라우팅 테이블의 비대화를 막음. 인터넷을 여러 개의 어드레싱 도메인으로 나누어 라우팅 정보량을 줄임. EGP, IGRP, RIPv1은 오래되어 CIDR 미지원. BGP-4와 OSPF가 지원함

- 라우터 보안 설정

- SNMP Community String인 Private/Public 사용 금지. SNMP 권한은 Read-Only로 운영. 전송 암호화 기능을 제공하는 SNMP V3 이상사용. SNMP는 ACL을 적용해 서비스 제한
- 라우터에서 Directed Broadcast, ICMP Redirect 기능 제거
- Auto Loading 기능 제거
- 발신지 주소가 변조된 비정상패킷은 유입되는 해당 인터페이스에서 필터링
- Privileged EXEC 모드에서 Router#reload 명령을 통해 재부팅이 가능

- Ingress 필터링 : standard 혹은  extended access-list를 활용, 라우터 내부로 유입되는 패킷의 소스 IP나 목적지 포트 등을 체크하여 필터링. 공통적으로 필터링할 소스 IP는 인터넷 상에서 사용하지 않는 대역, 출발지 주소에 내부망 IP 주소를 가지고 있는 패킷(IP 스푸핑 예방 가능)

- Null Routing 활용 필터링 : 블랙홀 필터링 기법. 특정 IP/IP 대역에 널이라는 가상 쓰레기 인터페이스를 보내 패킷이 통신되지 않도록 함

- Unicast RFP 활용 필터링 : 인터페이스를 통해 들어오는 패킷 소스 IP가 들어온 인터페이스로 다시 나가는지 라우팅 테이블 체크. 1.1.1.1이라는 소스 IP를 달고 들어오는 패킷이, 목적지로 라우팅 될 때 같은 인터페이스를 통해 나가는지 확인하여 필터링 여부 결정. 하나하나 IP/IP대역을 지정하지 않아도 비정상 트래픽 필터링 가능(효율적). serial 인터페이스에 설정하면 소스 IP를 위조하는 형태 패킷 필터링 가능(ingress). 이더넷에 설정하면 내부에서 위조해 나가는 패킷 필터링 가능(egress).

- Extended Access List

access-list   ACL-No    [permit/deny]    [protocol]    source ip add    source net mask    destination ip add     dest net mask   [eq|gt ...]    port   [established]                         
ACL-No : ACL 관리 번호로 100~199 사이

 

반응형
반응형

# ICMP(Internet Control Message Protocol)

- 문제를 해결하는 기능과 전달할 수 없는 패킷에 대한 에러정보를 알리기 위해 사용

- ICMP 오류 보고 메시지 : 라우터/호스트에서 IP 패킷 전달에 문제 발생시 사용

목적지 도달 불가 메시지(Destination Unreachable Msg) : 패킷이 중도에 폐기될 때
시간 초과 메시지(Time Exceeded Msg) : 패킷이 목적지에 전달되기 전에 시간 초과로 폐기될 때
파라미터 문제 메시지(Parameter Problem Msg) : 패킷 헤더 부분에 문제가 발생한 경우
근원지 억제 메시지(Source Quench) : 호스트에게 IP 데이터그램이 라우터 집중현상으로 손실되고 있음을 알릴 때(패킷 흐름을 위해 사용)
재지정 메시지(Redirection Msg) : 동일 네트워크의 다른 라우터로 라우팅하는 것이 효율적이라 판단되면, 라우팅 경로를 변경하도록 사용

- ICMP 쿼리 메시지 : 네트워크 상황 파악을 위해 사용. 기본적으로 ICMP 오류 메시지와 동일한 포맷을 사용하지만 메시지 의존 필드를 식별자와 순서 번호 필드로 나누어 사용

에코 요청과 응답 메시지(Echo Request&Reply) : 두 호스트 사이에 통신이 가능한지 검사할 때
타임스탬프 요청과 응답 메시지(Timestamp Request&Reply) : 패킷 전송시간 측정 메시지
주소 마스크 요청과 응답 메시지(Address Mask Request&Reply) : 호스트가 서브넷 마스크 값을 얻을 때
라우터 요청과 광고 메시지(Router Solicitation and Advertisemetn) : 호스트가 네트워크 정보를 알고 싶을 때

- 2 바이트 체크섬 요소는 ICMP 패킷이 변조/수정 없이 도착되었음을 보장한다. 체크섬은 RFC 792에서 정의된 알고리즘을 사용하여 패킷의 ICMP 영역에서만 계산된다. 값이 계산될 때 체크섬 필드는 0으로 설정된다.

- ICMP 오류메시지가 생성되지 않을 때

특별한 주소를 가진 데이터그램
멀티캐스트 주소를 가진 데이터그램
ICMP 오류 메시지를 전달하는 데이터그램
처음 단편이 아닌 단편화된 데이터그램

# ARP(Address Resolution Protocol), 주소 결정 프로토콜

- IP 주소를 물리적 네트워크 주소(MAC)으로 대응시키기 위해 사용되는 프로토콜

# IGMP(Internet Group Management Protocol)

- IP 멀티캐스트를 실현하기 위한 통신 규약

- RFC 1112에 규정되어 있음

- IP 멀티캐스트 그룹에서 호스트 멤버를 관리하는 프로토콜로 사용. 그룹 탈퇴, 추가, 삭제 등을 동적으로 수행하기 위한 프로토콜

# TCP(Transmission Control Protocol), 전송제어 프로토콜

- 신뢰할 수 있는 연결 지향의 전달 서비스. 3-way 핸드쉐이킹.

- 데이터는 세그먼트 단위로 전송. 모든 세그먼트에 순번을 지정하여 신뢰성 확보

- 각 세그먼트를 전달받은 호스트는 반드시 ACK를 정해진 시간 안에 리턴해야. ACK가 없으면 데이터는 다시 전송된다.

- TCP 프로토콜의 타이머

RTT(Round Trip Time) 패킷이 송신 측에서 전송되어 수신 측에 전달되었다가, 다시 송신 측에 도달하기까지의 시간
RTO(Retransmission TimeOut) 재전송을 위한 타임아웃. ACK를 제대로 받지 못하면 일정 시간 후 재전송함. 동적으로 변함
Fast Retransmission 특정 데이터 세그먼트에 대해 타임아웃 되기 전에 그 세그먼트를 재전송해달라는 ACK 3개가 연속 수신되면 타임아웃을 기다리지 않고, 해당 세그먼트를 즉시 재전송.

- 플래그 비트

URG 긴급 세그먼트에 우선순위가 높은 데이터 존재
ACK 승인 세그먼트가 승인 포함. 승인번호 필드값은 세그먼트 목적지가 다음에 보내야 할 순서 번호를 의미
PSH 밀어넣기 세그먼트를 받는 즉시 애플리케이션으로 송신하란 의미
RST 초기화 송신 장비에 문제가 발생했으니 연결을 초기화하란 의미
SYN 동기화 순서 번호를 동기화 하고 연결 수립을 요청. 순서 번호 필드는 세그먼트를 송신하는 장비의 ISN
FIN 종료 세그먼트 송신 장비가 연결 종료를 요청

- 3way 핸드셰이킹 과정에서 SYN 세그먼트, SYN+ACK 세그먼트는 데이터 전달은 없지만 하나의 순서 번호 소비. ACK 세그먼트는 데이터를 전달하지 않는 경우 순서 번호를 소비하지 않는다.

- 혼잡 제어 알고리즘

혼잡 회피(Avoidance) 조심스럽게 혼잡 윈도우 크기를 확대시킬 필요가 있을 때. 중복된 확인 메시지를 통해 네트워크 혼잡이 감지되거나 수신 확인 타이머가 만료된 경우 복구 절차의 일부분으로 요구
충돌 감지(Detection) 충돌이 일어나면 cwnd가 줄어들며, slow start threshold 값도 반으로 줄어듦
느린 시작(Slow Start) 송신자 측에서 cwnd를 사용하여, 연결 초기에는 1로 설정하고 수신자 측으로부터 ACK를 받기 전까지는 한 개의 패킷만 송신이 가능한 상태. 이후 전송한 패킷에 대해 ACK를 받으면 cwnd 값을 2로 증가시킨다. 링크 전송속도가 포화될 때까지 cwnd 값이 기하급수적으로 증가하며, 재전송 발생시 cwnd 값을 다시 2로 조정하여 혼잡 회피 알고리즘을 수행한다. 송신자 측에서 네트워크 상태에 따라 흐름 제어 가능

- TCP/IP 소켓 프로그래밍

1. socket() : TCP 소켓 생성
2. bind() : 소켓에 포트번호 부여
3. listen() : 클라이언트 접속 대기
4. 클라이언트 접속 시 accept() 호출 : 클라이언트 연결에 대한 새로운 소켓 생성
5. send() & recv() : 서버 소켓-새 클라이언트 소켓 간 데이터 송수신
6. close() : 연결 종료

# UDP(User Datagram Protocol), 사용자 데이터그램 프로토콜 

- 여러 개의 프로세스로부터 전송되는 사용자 데이터그램 처리를 위해 다중화 기법(Multiplexing) 사용. 다수의 프로세스로부터 메시지를 받아들여 각 프로세스마다 할당받은 포트번호를 UDP 헤더에 붙여 IP 계층으로 전달.

* 역다중화 : 수신한 데이터그램의 오류를 검사하여 오류가 없으면 UDP 헤더의 수신자측 포트번호 필드 값을 통해 적절한 상위 프로세스로 메시지 전달

반응형

+ Recent posts