아스카 라멘, 맛이 달라서 봤더니 전에 먹었던 메뉴가 없어지고 이것만 남았다. 그래도 맛있어서 밥 추가해서 먹음
- 라우팅 개요
- 기본 개념
- 패킷을 전송하기 위해 송신자측에서 목적지까지의 경로를 정하고, 정해진 경로를 따라 패킷을 전달하는 일련의 과정
- 정적 라우팅
- 네트워크 변화에 대한 자동 인지 불가
- 변경이 적을 때 유리
- 운영 요원이 라우팅 작업
- 단일 경로에 적합
- 동적 라우팅
- 라우팅 프로토콜
- 큰 네트워크에서 패킷을 효율적으로 전달하기 위해 라우팅 테이블은 동적으로 갱신돼야 함
- 네트워크 정보를 생성, 교환, 제어하는 프로토콜을 총칭
- RIP, IGRP, OSPF, EIGRP 등
- AS — 하나의 관리 도메인에 속해 있는 라우터의 집합. 인터넷은 AS의 집합
- IGP — AS 내에서 운영되는 라우팅 프로토콜
- EGP — AS 간 라우팅 정보를 교환하기 위한 프로토콜
- 라우티드 프로토콜 — TCP/IP, IPX, AppleTalk
- 유니캐스트 라우팅
- 라우팅 알고리즘
- 거리 벡터 라우팅(DV)
- 개요
- 인접한 이웃들의 기초 정보를 이용하여 작성된 자신의 최소 비용 트리를 생성
- 라우터는 자신의 모든 이웃에게 자신이 가지고 있는 인터넷에 대한 정보가 불완전하더라도 자신이 알고 있는 네트워크 정보를 끊임없이 알려줌
- 거리 벡터 — 목적지까지의 최소 비용만을 제공함
- 링크-상태 라우팅
- 링크 상태 데이터베이스
- 각 노드는 각 링크의 상태를 알아야 하기 때문에 네트워크의 완전한 맵을 필요로 함
- 링크의 상태 집합 — 링크 상태 데이터베이스(LSDB) — 플러딩을 통해 생성
- 경로 벡터 라우팅(PV)
- 스패닝 트리
- 소스부터 모든 목적지까지의 경로는 스패닝 트리에 의해 결정
- 스패닝 트리 고유의 규칙을 적용하여 작성
- 유니캐스트 라우팅 프로토콜
- RIP(라우팅 정보 프로토콜)
- 개요
- 거리 벡터 알고리즘을 사용하며 라우팅 테이블에 AS 내의 다양한 네트워크에 도착하는 방법과 거리를 홉수로 저장
- 한계가 있지만 설정하기 쉽고 간단해서 널리 사용
- IPv4 — 버전 1, 버전 2
- IPv6 — RPng
- 버전마다 메시지 포맷이 조금씩 다름
- 홉 카운트(홉수)
- 홉수 — 네트워크 수 의미. 비용 정의
- RIP에서 경로의 최대 비용은 15
- 16은 무한대(연결 없음)
- AS는 15홉 이내의 반지름을 갖게 됨
- 포워딩 테이블
- 3개의 열을 갖는 테이블
- 1열 — 목적지 네트워크 주소
- 2열 — 패킷이 전송되어야 할 다음 라우터의 주소
- 3열 — 목적지 네트워크에 도달하기 위해 홉수로 표현된 비용
- RIP 구현
- RIP 메시지는 UDP 사용
- RIP-1, RIP-2 — UDP 520
- RIPng — UDP 521
- 3계층으로 간주되지만 애플리케이션처럼 메시지 전송
- RIP-1
- 거리 벡터 알고리즘
- Bellman-Ford 프로토콜
- 거리 벡터 값은 홉수
- RIP-2 — CIDR 등의 기능 지원
- RIPng — IPv6와의 호환
- 문제점
- 느린 수렴
- 거리 벡터 알고리즘은 모든 라우터가 모든 라우팅 정보를 정기적으로 공유하도록 설계됨
- 모든 라우터가 같은 정보를 갖게 되기까지 오랜 수렴 시간이 들며, 특히 토폴로지 변화가 전파되는 데 많은 시간이 걸림
- 라우팅 루프 — 네트워크에 변화가 생겼을 때 즉시 라우팅 경로에 반영하지 못하므로 특정 경로에 루프가 생길 수 있음
- 무한 세기(counting to infinity) — 도착할 수 없게 된 네트워크를 도착할 수 있다고 착각한 라우터가 엉뚱한 RIP 메시지를 생성하여 라우터 사이에서 계속 주고받는 것
- 작은 무한값
- 느린 수렴 문제를 줄이기 위해 무한값으로 작은 값 사용
- 홉수가 15까지만 사용 가능하므로 네트워크 규모에 제한을 받음
- 매트릭을 홉수로 제한함에 따라 회선속도 등의 정보를 라우팅에 반영할 수 없음 → 최적의 경로를 항상 선택할 수는 없음
- 해결 방안
- Triggered update — 홉수가 변경되었을 때 이를 즉시 통보함으로써 복구 시간 감소
- Hold down — 매트릭이 무한대인 경로에 대해서는 일정 시간 동안 경로를 갱신하지 않고 전체 네트워크의 경로가 새로 갱신될 때까지 기다림
- Split horizon — A에서 B를 거쳐 C로 전송할 때 B와 C 사이에 장애가 발생한다면 A와 B 사이에 루프가 발생할 수 있음 → A가 B에게 보낸 정보는 다시 A에게 보내지 않음
- Route Poisoning — 회선의 고장을 감지하는 즉시 해당 경로의 매트릭을 16으로 지정하여 전체 네트워크에 방송함으로써 도달 불가능을 신속하게 알림
- RIPv2
- RIPv1의 예약 필드를 사용하여 기능 대폭 확장
- 서브넷마스크 식별, 경로 정보 인증, AS 구별, 브로드캐스트와 멀티캐스트 전송 등
- 최대 홉수 15
- CIDR과 VLSM 지원
- RIPv1에서는 브로드캐스팅만 이용 ↔ 브로드캐스팅, 멀티캐스팅 지원
- 멀티캐스팅 → 일반 호스트의 불필요한 패킷 프로세싱 감소
- 메시지마다 인증 가능
- RIPv1과 동일한 메시지 포맷 사용
- IGRP(Interior Gateway Routing Protocol)
- 개요
- 하나의 매트릭 값만을 사용하는 대신 다섯 가지의 네트워크 파라미터를 이용하여 거리 벡터 계산 → 네트워크 상황에 맞게 알고리즘 변형 가능
- IGRP 매트릭 계산 요소
- 대역폭 — 회선 속도. 1200bps ~ 10Gbps
- 지연 — 회선을 사용하여 전송하는 데 걸리는 시간. 매체 지연 시간 포함. 1/106초 단위로 1 ~ 224
- 신뢰도 — 라우터가 동적으로 측정. 1 ~ 255까지 설정 가능
- 부하 — 1 ~ 255. 255는 100% 이용되는 것을 의미
- MTU — 회선이 처리할 수 있는 최대 프레임 크기
- EIGRP(Enhanced Interior Gateway Routing Protocol)
- 개요
- CIDR, VLSM 등의 기술을 지원하지 못하는 IGRP 확장
- 더 복잡한 거리 벡터 프로토콜
- OSPF와 같은 링크 상태 라우팅 프로토콜에 더 가까운 특성
- 특징
- 수렴 속도가 빠르며, 부분적인 갱신을 지원하기 때문에 적은 대역폭 필요
- VLSM을 지원하며, DUAL을 이용하여 네트워크 구성의 변화가 생겼을 때 패킷 손실 없이 재라우팅 가능
- DUAL — 전체적인 경로 계산에서 루프-방지 기능을 제공하는 EIGRP의 수렴 알고리즘
- OSPF(Open Shortest Path First)
- 개요
- 인트라 도메인 라우팅 프로토콜
- 링크 상태 라우팅 프로토콜 기반
- 개방형 프로토콜 — 사양 공개
- 네트워크에 변화가 생겼을 경우에만 전체 네트워크에 플러딩 과정을 수행함으로써 라우팅 정보를 신속하게 갱신하여 수렴 시간과 라우팅 트래픽의 양을 줄임
- 최적 경로 계산을 위해 다익스트라 알고리즘 이용
- 보안을 위해 인증 지원
- 클래스 단위, 서브넷 단위, CIDR 지원
- 매우 큰 AS에서 OSPF를 사용할 때 라우터 그룹으로 묶어 계층 토폴로지를 만들 수 있음
- 거리 벡터 라우팅 프로토콜
- 인접한 이웃으로부터 망 정보 수집
- 이웃 라우터와의 거리 비용을 더해서 비용 계산
- 모든 라우팅 테이블 값을 이웃에게 전달
- 브로드캐스트 방식으로 이웃에게 라우팅 광고
- 링크 상태 라우팅 프로토콜
- 모든 라우터로부터 망 정보 수집
- 최단 거리 알고리즘으로 모든 라우터에 대한 비용을 직접 계산
- 자신에게 직접 연결된 망 정보만 전달
- 멀티캐스트 방식으로 라우팅 광고
- OSPF의 계층 구조
- 연결된 라우터와 네트워크를 영역(Area)으로 묶고, 영역은 논리적 백본을 사용하여 연결
- 영역은 큰 AS 내에 있는 작은 AS와 비슷하게 행동 → 영역 내에서 지역적인 제어 가능
- 라우터의 브로드캐스팅은 영역 내로 제한되어 있어 영역 외부로 라우팅 정보 패킷이 전달되지 않음
- 영역 간의 정보 전달은 영역 경계 라우터를 통해 수행
- BGP4(Border Gateway Protocol version 4)
- 현재 인터넷에서 사용하고 있는 유일한 인터 도메인 라우팅 프로토콜
- 경로 벡터 알고리즘 기반
- 인터넷에서 네트워크 접근성에 대한 정보를 제공하기에 알맞음
- AS 번호를 매트릭으로 사용
- 라우터 보안
- 라우터 개요
- 동일한 전송 프로토콜을 사용하는 분리된 네트워크를 연결하는 장치
- 네트워크 계층 간을 서로 연결
- 가장 효율적인 경로 선택
- 라우터 모드
- 라우터 모드 종류
- 유저 모드 — 주로 테스트. 현재 상태 확인. 제한된 명령어
- Privileged 모드 — 모든 명령어. configuration file 조정 가능
- 구성(Configuration) 모드 — 라우터의 패스워드를 모르거나 라우터의 이미지 파일(IOS)에 문제가 생긴 경우 복구를 위해 사용하는 모드. ROMMON 모드
- Setup 모드 — 라우터를 구매해서 처음 전원을 켰거나 구성 파일이 없는 경우에 라우터가 부팅하면서 자동으로 들어가는 모드
- TFTP 서버에 의한 라우터 구성 —다른 곳에서 만들어 놓은 라우터 구성 파일을 TFTP 서버에 저장해 두었다가 라우터로 다운로드
- 모드 변경 방법
- 사용자 모드에서 특권 모드 — router>enable
- 특권 모드에서 사용자 모드 — router#disable
- config 모드로 — router#configure terminal 또는 conf t
- config 모드에서 빠져나올 때 — router(config)#CTRL+Z 또는 exit
- Configuration — R1(config)# — Global Configuration 모드. 다른 모드로 들어가기 위해 설정(구성?) 모드를 거쳐야 함
- interface — R1(config—if)# — 특정 인터페이스에 해당하는 명령어 실행
- Subinterface — R1(config-subif)# — 서브 인터페이스
- Controller — R1(config-controller)# — 컨트롤 모드 설정
- Line — R1(config-line)#
- Router — R1(config—router)#
- 기본 라우터 명령어 정리
- hostname 변경 — hostname {호스트명}
- write memory — 현재 RAM에 있는 구성 파일을 NVRAM에 저장
- NVRAM — 배터리 예비 전원을 가짐 DRAM
- 배너 설정 — banner motd #
- 시간 설정 — ntp server {시간 서버 IP}
- 세팅값을 NVRAM에 저장해서 리부팅 시에 적용(write memory와 같음) — copy running-config startup-config
- interface ip address 변경
- router(config)#interface serial 0
- router(config-if)#no ip address — 기존 ip address 삭제
- router(config-if)#ip address {ip adress} {net mask}
- telnet으로 접근 가능하게 설정
- router(config)#interface ethernet0
- router(config-if)#ip address {ip adress} {net mask}
- router(config-if)#no shutdown — 죽어있는 인터페이스를 살리기 위해 shutdown 명령을 취소해야 함
- Telnet session 활성화
- router(config)#line v 0 4 — 0~4번 텔넷이 동시에 가능
- router(config-line)#login
- router(config-line)#password {패스워드}
- 라우터 암호 설정
- 콘솔 패스워드 설정
- 로그인 후 enable을 실행하여 Privileged EXEC 모드 진입
- conf t를 실행하여 Global Configuration 모드 진입 후 콘솔을 지정하여 암호 재설정
- 터미널 패스워드 설정 — 원격 관리를 위해 로그인에 필요한 암호를 Terminal password 또는 Virtual password라고 함
- Enable 패스워드 및 Enable Secret 패스워드 설정
- 암호 평문 저장 or 암호화 저장(type 5(MD5))
- 같이 존재하는 경우 secret 값만 확인
- 평문 저장 암호는 service password-encryption 실행 시 암호화 수행 — type 7(역함수 존재) 방식 암호화
- 라우터 자체 보안 서정
- 기본 접근 통제
- 암호 설정을 통한 접근 통제 — 사용자마다 계정 및 패스워드 설정 후 원격에서 텔넷을 이용하여 라우터에 접속할 때 계정 및 패스워드를 이용하여 로그인하도록
- IP 주소 필터링 — Router(config-line)#access-class 10 in
- 사용자별 권한 수준 지정 — 시스코 라우터는 0~15
- 불필요한 프로토콜과 서비스 제거
- udp-small-serers — TCP/UDP Small Service 차단
- pad — X25 프로토콜에서 사용
- finger
- 액세스 리스트
- Standard 액세스 리스트
- access-list ACL-NO {permit | deny} {source [source-wildcard]} | any}
- 패킷의 소스 IP 만으로 패킷을 허용하거나 차단
- ACL-NO — ACL 관리 번호(1~99, IP standard access-list)
- soure [source-wildcard]} | any
- 특정 ip를 지정할 경우 host 명시
- ip 대역을 지정할 경우 host를 명시하지 않고 wildcard 마스크를 명시
- wildcard 마스크 — 서브넷 마스크 비트를 반전시킨 것과 동일
- 모든 주소를 의미할 때는 any 사용
- Extend 액세스 리스트
- access-list ACL-NO {permit | deny} [protocol] s_ip_addr s_net_mask d_ip_addr d_net_mask [eq | gt…] port [established]
- 패킷의 소스 IP 뿐만 아니라 목적지 IP, 포트, 프로토콜 등을 이용하여 차단 가능
- eq | gt… — 패킷 내 포트 번호와 비교 연산 정의
- show ip access-list — 라우터에 설정된 IP 접근 목록
- show ip interface — 해당 인터페이스에 어떤 접근 목록이 적용되었는지
- show running-confg — 접근 목록을 보여주고, 접근 목록이 적용된 인터페이스를 보여줌
- 액세스 리스트를 인터페이스에 적용
- ip access-group access-list-number {in | out}
- out이 디폴트
- 액세스 리스트 규칙 4가지
- 액세스 리스트는 윗줄부터 하나씩 차례로 수행
- 액세스 리스트 맨 마지막 줄에 permit any를 넣지 않을 경우, 명시되지 않은 주소는 모두 deny
- 액세스 리스트의 새로운 줄은 맨 마지막에 추가되어, 선택적 추가/제거 불가능
- 인터페이스에 대한 액세스 리스트의 정의가 되어 있지 않은 경우(access-group에 대한 명령이 없는 경우), permit any
- 라우터를 이용한 네트워크 보안 설정
- 라우터를 이용한 네트워크 보안 설정 이해
- ingress 필터링 설정
- 라우터 내부의 사내 네트워크로 유입되는 패킷의 소스 ip나 목적지 포트 등을 체크하여 필터링
- 외부에서 내부로 유입되는 IP 주소가 내부의 IP 주소라면 악용된다고 판단
- 외부로부터 유입되는 주소 중 예약된 IP 주소가 있다면 차단 권장
- egress 필터링 설정 — 내부에서 라우터 외부러 나가는 패킷의 소스 ip를 체크하여 필터링
- Null routing
- 블랙홀 필터링
- 특정 ip 또는 ip 대역에 대해 Null이라는 가상의 쓰레기 인터페이스로 보내도록 하여 패킷 통신을 막음
- no ip inreachables — 에러 메시지를 발송하지 않도록
- Unicast RPF
- 들어온 인터페이스로 다시 나가는지 확인
- reverse path 존재 여부
- 소스 라우트 원리와 기능
- 패킷을 수신 IP 주소에 전송할 때 경로를 지정해서 패킷을 전송하는 방법
- IP 패킷에 경유하는 경로 정보를 설정해 두고 그 경로상에 있는 라우터가 정보에 따라 수신자측에 패킷을 보내는 방법
- 루즈 소스 라우팅, 스트릭트 소스 라우팅
- 라우팅 프로토콜 보안
- Static 라우팅 — 가장 안전. 라우팅 프로토콜을 사용하지 않기에 공격자가 임의로 라우팅 정보를 변경하거나 조작 불가능
- Dynamic 라우팅: 라우팅 프로토콜에 인증 기능을 적용. 라우팅 패스워드 설정
- 정적 라우팅 설정 형식
- ip route network [mask] {address | interface} [distance]
- distance 안 써도 됨 — 디폴트 적용
- 라우터 리소스 점검
- show
- controllers s0 — 인터페이스의 DTE 혹은 DCE 상태
- history — 디폴트로 지난 10번의 입력된 명령
- interface s0 — 인터페이스 시리얼 0의 통계
- run(running config) — 현재 라우터상에 구동 중인 환경설정을 보여줌
- start(startup-config) — NVRAM 내에 저장된 백업환경 설정
- terminal — 환경설정된 history size
- version — 라우터 시스템 정보(IOS 버전, 부팅 시간, 메모리 종류/크기, H/W 구성 정보)
- Default route — 송신지에서 수신지를 알지 못하거나, 모든 경로를 저장하기에 라우팅 테이블의 공간이 충분하지 않아 해당 패킷에 대한 정보가 없는 경우 디폴트 라우트로 전송