
IPv6
개요
- 128bit로 표현, 16비트로 나누어 8개로 구분
- 16진수로 표현
- 48비트 MAC 주소를 활용하여 IPv6 주소 생성
확장 헤더, IPSec
- IPv4에는 기본 헤더 존재, IPv6는 IPv4에 확장 헤더가 추가된 형태
- IPSec, IP 패킷의 보안 기능을 하는 프로토콜
- IPv4에는 IPSec 기능이 없고, IPv6에는 확장 헤더에서 자체 지원
IPv6 SLAAC
https://donghoson.tistory.com/entry/IPv6-%EC%A3%BC%EC%86%8C-%ED%95%A0%EB%8B%B9-%EB%B0%A9%EC%8B%9D
- IPv6의 가장 큰 특징
- 임의의 방법 또는 DHCP를 통한 IP 주소를 할당 받지 못할 경우, 본인이 임의로 생성한 IP 주소를 자체적으로 할당
- DHCPv6라는 것을 통해서도 유사하게 IP 주소 할당 가능
헤더 구조

표기
- 128비트를 16비트씩 8개의 필드로 나누어 콜론(:)으로 구분
- 주소 생략 가능
- 선행하는 0은 생략하여 표현 가능(중간에 끼인 0은 생략 불가)
- 연속된 0은 콜론으로 생략 가능
- 0abc:de0f:00gh:i00j:0000:0000:klmn:opqr
=> abc:de0f:gh:i00j::klmn:opqr
- Prefix
- IPv4의 서브넷 마스크
- 네트워크 식별을 위해 사용
글로벌 주소, 링크 로컬 주소, 로컬 주소
- 글로벌 주소
- 공인 IP 주소와 같음
- 주로 2001::/16, 2002::/16, 2003::/18, 3FFE/16 사용
- 다른 네트워크로 통신할 때 사용
- 링크 로컬 주소
- 로컬 주소
- 사설 네트워크 주소
- FC00::/7 대역 사용
- IPv4처럼 사용되기 위해서는 글로벌 주소와 링크 로컬 주소가 둘 다 필요함
IPv6 SLAAC(Stateless Address Auto Configuration)
개요
- 호스트가 자동으로 IPv6 주소를 구성하는 절차
과정
- 호스트가 네트워크 연결되면 라우터는 RA(Router Advertisement) 메시지를 주기적으로 브로드캐스트
- 수신된 RA를 기반, 호스트는 네트워크 프리픽스 정보 추출
- 자신의 MAC 주소(48비트)를 기반으로(MAC 주소 확장, 48bit to 64bit) 인터페이스 식별자(EUI-64) 생성
- 수신된 네트워크 프리픽스와 자신이 만든 식별자 결합, IPv6 주소 생성
- 생성된 주소의 중복여부 확인
- 중복되지 않았다면 자신의 인터페이스에 등록
+ 네트워크 & Server 디바이스는 DHCP를 통한 임의 IP 주소를 할당하지 않음(서버 동작 중지 가능성 때문)
Packet Tracer IPv6 시스템 구축


설정 코드
Router(config)# ipv6 unicast-routing
Router(config)# int (port)
Router(config)# ipv6 address fe80::1 link-local
Router(config)# ipv6 address 2001:abcd:1::1/64
Router(config)# no sh

- IPv6 Configuration 항목에서 Static에서 Automatic으로 항목 변경
- IPv6 주소가 잘 할당된 모습
- 만약 라우터의 CLI에서 IPv6 Configuration 설정 후, 해당 세팅을 라우터의 장기 기억 장치에 저장하고 싶다면?
- wr(NVRAM에 Write하는 명령어) 반드시 입력
장비 기본
라우터 스위치 구조
- RAM, IOS, FLASH, ROM, NVRAM, Active Running Config, Program, subset IOS 등으로 구성
- IOS(Internetwork Operating System)
- RAM은 휘발성이 특징, 전원이 꺼지면 이곳에 저장된 정보는 사라짐
- FLASH, ROM, 장기 저장 가능
- 테이블, 버퍼 내용은 Active running config에 저장
- Active running config의 내용
- Active running config 열람 명령어
- Active running config의 내용을 NVRAM으로 전달, 기록하는 명령어
- NVRAM에 기록된 내용 열람 명령어
- NVRAM에 저장된 내용을 지우는 명령어
- reload는 재부팅 명령어
- subset IOS(ROM의 내부에 존재)
- 메모리 카드가 없는 스위치 같은 장비에서 오류로 인해 운영체제 교체를 진행해야 할 때 사용
- rommon mode(= subset IOS mode)
- FLASH 메모리에 있어야 할 IOS가 없거나 손상된 상태라면(정상적 부팅 실패) ROM에 있는 subset IOS를 실행시켜 접속
라우터 스위치 명령어
- 라우터와 스위치의 명령어는 서로 같으므로 모든 명령어는 라우터 기준으로 설명
- 관리자 모드 접속 패스워드를 설정할 때, enable password 명령어보다 enable secret 명령어 사용이 보안성 면에서 더 좋음
- secret 명령어는 사전에 설정한 패스워드를 암호화하여 저장
- clock rate, 기기 간 동기화 속도 조절
라우터 포트 연결

- 기본 토폴로지
- 라우터에 HWIC-2T 모듈 추가
- 라우터와 라우터의 포트가 연결된 구간, WAN 구간

- 라우터와 라우터를 연결하는 회선의 시작부분(DCE)이 연결된 라우터에 clock rate 명령어 사용

Routing Protocol
Static, Dynamic
-
Static(수동 설정) - Static Routing Protocol
- 네트워크 엔지니어가 수동으로 경로 설정 (네트워크 상황 변화에 유동적 대처 불가능)
- Dynamic Routing에 비해 리소스를 적게 사용
- 설정 명령어
R1(config)# ip route 202.202.202.0 255.255.255.0 201.201.201.2
= R1(config)# ip route (목적지 IP) (서브넷 마스크) (도달하고자 하는 라우터 IP)
R2(config)# ip route 200.200.200.0 255.255.255.0 201.201.201.1
ip route 0.0.0.0 0.0.0.0 201.201.201.2
=> 목적지에 관계없이 201.201.201.2로 전송하라
-
라우터의 나가는 경로가 하나면 default static 사용 가능
-
라우팅 테이블 봤을 때, 일반적 정적 라우팅은 S / 디폴트 정적 라우팅은 *S
-
Dynamic(동적 설정) - Dynamic Routing Protocol
- Distance vector
- Link State
- EIGRP
- Distance venctor와 Link state의 방식이 합쳐진 형태
정적 라우팅 토폴로지






- PC0에서 Server로의 ping이 잘 동작하는 모습


정적 라우팅(경로의 이중화)
토폴로지

R1의 라우팅 테이블

R2의 라우팅 테이블

- R2 라우터는 7.0, 10.0, 11.0 주소를 사용하는 네트워크를 모르기에 세 경로에 대한 정적 라우팅 필요
R3의 라우팅 테이블

- 정적으로 라우팅 테이블이 잘 지정되었는가 확인하려면 라우팅 테이블에 모든 네트워크에 존재하는 IP 주소가 하나의 라우팅 테이블에 모두 표시되어 있는가 확인
Advanced Static Routing(Floating Static Routing)
- 정적 라우팅의 단점인 회선의 물리적 오류가 발생했을 경우 일어나는 단절 문제를 방지하기 위한 예비 경로 설정
ip route 203.230.XX.XX 255.255.255.XXX 203.230.XX.XX 100
- 평소에는 위의 경로가 아닌 다른 경로로 통신하다가 그 회선에 문제가 생기면 위의 경로로 통신하도록 설정하는 명령어
tracert
- tracert (목적지 IP)
- 목적지 IP를 향한 ICMP request 패킷에 대한 ICMP reply를 생성하는 라우터의 주소를 출력하는 명령어

- 처음 TTL을 1로 설정하여 ICMP 전송
- TTL이 0이 되면 ICMP Error를 출발지 기기로 전송
- 이때 해당 Error 메시지가 출발하는 라우터의 IP를 기준으로 tracert 리스트 작성
- 도착지 IP에 도달할 때까지 TTL 값을 1씩 늘려가며 tracert 과정 진행
- 1번 ICMP(TTL = 1) -> 2번 ICMP(TTL = 2) -> 3번 ICMP(TTL = 3)

- 과정 정리
- PC에서 R1 라우터로 TTL이 1인 ICMP 전송
- R1 도착, TTL = 0이 됨
- R1의 7.1 포트를 통해 PC로 ICMP Error 메시지 반환
- tracert 표에는 1번 시도의 마지막 지점이 203.230.7.1로 기록됨
- TTL이 2인 ICMP 전송 (PC -> R1)
- R1 도착, TTL = 1이 됨
- R1의 라우팅 테이블에 따라 11.2 경로로 R3 라우터로 전송(R1 -> R3)
- R3 도착, TTL = 0이 됨
- R3에서 라우팅 테이블에 따라 9.2 포트를 통해 PC로 ICMP Error 전달
- tracert 표에는 2번 시도의 마지막 지점이 203.230.9.2로 기록됨
- TTL이 3인 ICMP 전송(PC -> R1)
- R1 도착, TTL = 2가 됨
- R1의 라우팅 테이블에 따라 11.2 경로로 R3 라우터로 전송(R1 -> R3)
- R3 도착, TTL = 1이 됨
- R3에서 Server로 이동
- 최종적으로 Server에 도달하여 ICMP reply를 전달
- reply가 출발한 지점의 IP 주소를 마지막 시도에 기록
- 결론적으로 tracert는 라우팅 테이블에 따라 이동한 패킷에 대한 반환 패킷이 출발하는 라우터의 IP를 기록한 표
- 절대적으로 라우팅 테이블에 따라 구성됨