시스코 IOS
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
시스코 IOS는 시스코 시스템즈의 네트워크 장비에서 사용되는 네트워크 운영 체제로, 1980년대에 개발되어 라우터의 CPU 처리 능력과 메모리 제약에 맞춰 설계되었다. 초기에는 라우터에 주로 사용되었지만, 이후 스위치에도 적용되었다. IOS는 모놀리식 아키텍처를 기반으로 하며, 명령 줄 인터페이스(CLI)를 통해 장치를 제어하고 구성한다. IOS는 기능 세트와 라이선스 모델을 통해 다양한 기능을 제공하며, 버전 관리를 통해 업데이트된다. IOS XR은 고가용성을 위해 개발되었으며, IOS XE는 IOS의 후속 운영 체제로 네트워크 장비의 기능 확장을 포함한다.
더 읽어볼만한 페이지
- 네트워크 운영체제 - OpenWrt
OpenWrt는 무선 라우터와 같은 임베디드 장치용 리눅스 기반 자유 소프트웨어 펌웨어로, opkg 패키지 관리 시스템을 통한 기능 확장과 사용자 정의가 가능하며 LEDE 포크 프로젝트와의 재통합을 거쳐 발전해왔다. - 네트워크 운영체제 - 넷웨어
넷웨어는 노벨이 개발한 네트워크 운영 체제로, 파일 공유 중심으로 설계되어 1980년대 중반부터 1990년대 중반까지 LAN 환경에서 높은 성능으로 시장을 선도했으나, 윈도우 NT 서버의 부상과 시장 변화에 대응하지 못해 쇠퇴했다. - 시스템 소프트웨어 - 유틸리티 소프트웨어
유틸리티 소프트웨어는 컴퓨터의 운영 체제, 하드웨어, 응용 소프트웨어를 관리하고 성능을 향상시키거나 특정 작업을 수행하는 프로그램으로, 시스템 관리, 파일 관리, 데이터 복구, 보안 등의 기능을 제공하며 백업 소프트웨어, 바이러스 백신 등이 대표적이다. - 시스템 소프트웨어 - 가상 사설 서버
가상 사설 서버(VPS)는 공유 웹 호스팅과 전용 호스팅의 중간 단계 서비스로, 가상화 기술을 기반으로 슈퍼유저 수준의 접근 권한, 높은 운용 자유도와 향상된 보안성을 제공하지만, 환경 유지 관리 필요성, 상대적으로 높은 비용, 회선 공유 문제 등의 단점도 가진다. - 인터넷 프로토콜 기반 네트워크 소프트웨어 - 슈퍼 서버
슈퍼 서버는 TCP 래퍼를 통해 접근 권한을 확인하고 필요에 따라 다른 서버 프로그램을 시작하여 메모리 사용량 감소 및 시스템 관리 효율성을 높이지만, 높은 연결 요청 빈도에서는 성능 저하를 유발할 수 있으며, inetd, launchd, systemd, ucspi-tcp, xinetd 등이 대표적인 구현체이다. - 인터넷 프로토콜 기반 네트워크 소프트웨어 - 유즈넷
유즈넷은 1979년 구상된 분산 네트워크 기반 토론 시스템으로, 인터넷 커뮤니티의 효시로서 중요한 프로젝트의 시작에 기여했으나, 스팸 문제와 소셜 미디어 등장 등으로 쇠퇴하여 2024년 구글 그룹스가 지원을 중단하며 정보 접근성에 변화가 생겼다.
시스코 IOS - [IT 관련 정보]에 관한 문서 | |
---|---|
기본 정보 | |
개발사 | 시스코 시스템즈 |
소스 모델 | 클로즈드 소스 |
UI | 명령 줄 인터페이스 |
개발 상태 | 지원 중 |
지원 플랫폼 | 대부분의 시스코 라우터와 시스코 스위치 |
후속 제품 | 시스코 IOS XE |
릴리스 정보 | |
최신 릴리스 버전 | 15.9(3)M10 |
최신 릴리스 날짜 | 2024년 8월 8일 |
기타 | |
웹사이트 | 시스코 IOS |
2. 역사
IOS는 스탠퍼드 대학교의 윌리엄 예거가 작성한 코드를 기반으로 만들어졌으며,[3][4][5] 1980년대에 256kB 메모리와 낮은 CPU 처리 능력을 가진 라우터를 위해 개발되었다. 모듈식 확장을 통해 증가하는 하드웨어 기능과 새로운 네트워킹 프로토콜에 적응해 왔다.[6] 시스코 시스템즈의 주력 제품군은 라우터였으며, 초기 시스코 스위치는 IOS를 실행하지 않았다.[7]
2. 1. 초기 개발
스탠퍼드 대학교의 윌리엄 예거가 작성한 코드를 기반으로 만들어졌으며,[3][4][5] 1980년대에 256kB 메모리와 낮은 CPU 처리 능력을 가진 라우터를 위해 개발되었다. IOS가 개발되었을 때, 시스코 시스템즈의 주력 제품군은 라우터였다. 시스코는 최초의 이더넷 스위치 발명자인 칼파나 등 네트워크 스위치에 주력하는 여러 신생 기업을 인수했으며, 그 결과 초기 시스코 스위치는 IOS를 실행하지 않았다. IOS 이전에 시스코 카탈리스트 시리즈는 CatOS를 실행했다.[7]2. 2. 모듈식 확장
IOS 네트워크 운영 체제는 스탠퍼드 대학교의 윌리엄 예거가 작성한 코드를 기반으로 만들어졌으며,[3][4][5] 1980년대에 256kB 메모리와 낮은 CPU 처리 능력을 가진 라우터를 위해 개발되었다. 모듈식 확장을 통해 IOS는 증가하는 하드웨어 기능과 새로운 네트워킹 프로토콜에 적응해 왔다.[6]3. 아키텍처
시스코 IOS는 "모놀리식" 아키텍처를 가지고 있다. 여기서 "모놀리식"은 시스템 전체가 하나의 이미지로 동작하고 모든 프로세스가 동일한 메모리 공간을 공유하는 것을 의미한다. 따라서 프로세스 간 메모리 보호가 없어 IOS 코드 내 버그가 다른 프로세스의 데이터를 파괴할 수 있다.[6]
초창기 IOS는 ''run to completion'' 스케줄러를 가지고 있어 커널이 동작 중인 프로세스를 선점하지 않았다. 다른 프로세스가 동작 기회를 얻으려면 실행 중인 프로세스가 커널을 호출해야 했다.
CRS-1 등 매우 높은 가동성이 필요한 시스코 제품의 경우 이러한 제한은 허용하기 어려웠다. 또한 주니퍼 네트웍스의 JUNOS와 같은 경쟁 라우터 OS는 이러한 제한이 없도록 설계되었다. 이에 시스코는 모듈성, 프로세스 간 메모리 보호, 스레드의 가벼움, 인터럽트 스케줄링, 실패한 프로세스의 독립적 재시작 기능을 제공하는 새로운 Cisco IOS인 IOS XR을 개발했다. IOS XR은 QNX의 마이크로 커널을 사용하며, 기존 IOS 코드 대부분은 새로운 커널에서 제공하는 기능을 활용하기 위해 다시 작성되었다.
마이크로 커널 아키텍처는 커널에서 동작하는 것이 꼭 필요하지 않은 모든 프로세스를 커널에서 제거하고 애플리케이션 프로세스와 유사한 프로세스로 실행한다. 이를 통해 IOS XR은 새로운 라우터 플랫폼에서 높은 가동성을 달성할 수 있다. IOS와 IOS XR은 기능과 디자인 면에서는 관련이 있지만, 코드 베이스는 크게 다르다. 2005년 시스코는 Cisco 12000 시리즈에 IOS XR을 도입하고, 마이크로 커널 아키텍처를 CRS-1에서 시스코의 널리 배포된 코어 라우터로 확장했다.
2006년, 시스코는 QNX 마이크로 커널 환경을 보다 전통적인 IOS 환경으로 확장하는 IOS Software Modularity를 발표했지만, 여전히 고객이 요구하는 소프트웨어 업그레이드 기능을 제공한다. 이는 Catalyst 6500에서 사용할 수 있다.
인터페이스 디스크립터 블록(Interface Descriptor Block, IDB)은 IP 주소, 인터페이스 상태, 패킷 통계와 같은 네트워킹 데이터를 담고 있는 시스코 IOS 내부 데이터 구조의 일부이다. 시스코 IOS 소프트웨어는 특정 시스코 스위치 또는 라우터의 각 하드웨어 인터페이스와 각 서브 인터페이스에 대해 하나의 IDB를 유지한다. 시스템에 존재하는 IDB의 수는 시스코 하드웨어 플랫폼 유형에 따라 다르다.
스위치의 물리적 및 논리적 인터페이스는 확장 또는 약식 포트 설명 이름으로 참조된다. 슬롯, 모듈 및 인터페이스 번호와 결합되어 해당 인터페이스에 대한 고유한 참조를 생성한다. 아래는 인터페이스 식별자 표이다.
확장된 식별자 | 약식 식별자 |
---|---|
TwoHundredGigabitEthernet | TH |
HundredGigabitEthernet | Hu |
FortyGigabitEthernet | Fo |
TwentyFiveGigE | Twe |
TenGigabitEthernet | Te |
FiveGigabitEthernet | Fi |
TwoGigabitEthernet | Tw |
GigabitEthernet | Gi |
FastEthernet | Fa |
포트 채널 | Po |
AppGigabitEthernet | Ap |
3. 1. 모놀리식 커널
시스코 IOS는 1980년대 라우터와 스위치의 제한된 하드웨어 자원으로 인해 모놀리식 아키텍처를 채택했다. 이는 모든 프로세스가 CPU 처리 시간을 절약하기 위해 하드웨어에 직접 접근할 수 있음을 의미한다.[6] 프로세스 간 메모리 보호는 없으며, IOS는 실행 완료 스케줄러를 가지고 있어 커널이 실행 중인 프로세스를 선점하지 않는다. 대신 프로세스는 다른 프로세스가 실행될 기회를 얻기 전에 커널 호출을 해야 한다.[6]IOS는 각 프로세스를 단일 스레드로 간주하고 우선순위 값을 할당한다. 높은 우선순위 프로세스가 대기 중인 낮은 우선순위 프로세스보다 CPU에서 먼저 실행되지만, 높은 우선순위 프로세스가 실행 중인 낮은 우선순위 프로세스를 중단할 수는 없다.[6]
시스코 IOS 모놀리식 커널은 서로 다른 프로세스의 데이터에 대한 메모리 보호를 구현하지 않는다. 전체 물리적 메모리는 하나의 가상 주소 공간에 매핑된다. 시스코 IOS 커널은 메모리 페이징이나 스와핑을 수행하지 않는다. 따라서 주소 지정 가능한 메모리는 운영 체제가 설치된 네트워크 장치의 물리적 메모리로 제한된다. 그러나 IOS는 중복된 가상 메모리 내용을 동일한 물리적 메모리에 별칭을 지정하는 것을 지원한다. 이러한 아키텍처는 시스템 성능을 보장하고 운영 체제의 운영 오버헤드를 최소화하기 위해 시스코에서 구현되었다.[6]
3. 2. 장점과 단점
시스코 IOS는 모놀리식 커널을 사용하여 시스템 성능 보장 및 운영 오버헤드를 최소화한다.[6] 이를 위해 메모리 보호를 구현하지 않고, 전체 물리적 메모리를 하나의 가상 주소 공간에 매핑한다. 메모리 페이징이나 스와핑은 수행하지 않으며, 주소 지정 가능 메모리는 물리적 메모리로 제한된다. 단, 중복된 가상 메모리 내용을 동일 물리 메모리에 별칭 지정하는 것은 지원한다.[6]이러한 아키텍처는 운영 체제 복잡성 증가, 데이터 손상 가능성, 한 프로세스로 인한 전체 시스템 불안정 및 크래시 유발 가능성 등의 단점을 가진다. 크래시 발생 시 운영 체제는 자동 재부팅되며, 저장된 구성이 다시 로드된다.[6]
3. 3. 라우팅 및 전달
모든 버전의 시스코 IOS에서 라우팅과 패킷 전달(LAN 스위칭)은 별개의 기능이다. 라우팅 등의 프로토콜은 시스코 IOS의 프로세스로 동작하며 라우팅 정보 기반(RIB)에 기여한다.[6] RIB는 라우터의 전달 기능이 사용하는 최종 IP 전달 테이블(FIB, Forwarding Information Base)을 만들기 위해 처리된다.[6] 소프트웨어만으로 전달 기능을 갖는 라우터(예: Cisco 7200)에서 액세스 제어 목록에 의한 필터링과 전달을 포함한 대부분의 트래픽은 Cisco Express Forwarding(CEF) 또는 dCEF(분산 CEF)에 의해 인터럽트 레벨에서 수행된다.[6] 이것은 IOS가 패킷을 전달하기 위해 프로세스 컨텍스트 스위치를 사용할 필요가 없도록 한다. OSPF나 BGP과 같은 라우팅 기능은 프로세스 레벨에서 동작한다.[6] Cisco 12000 시리즈와 같은 하드웨어 기반 전달을 수행하는 라우터의 경우 IOS는 소프트웨어로 FIB를 만들고 실제 패킷을 전달하는 기능을 실행하는 하드웨어(ASIC, 네트워크 프로세서 등)에 로드한다.[6]3. 4. 인터페이스 디스크립터 블록 (IDB)
인터페이스 디스크립터 블록(Interface Descriptor Block, IDB)은 IP 주소, 인터페이스 상태, 패킷 통계와 같은 네트워킹 데이터를 담고 있는 시스코 IOS 내부 데이터 구조의 일부이다. 시스코 IOS 소프트웨어는 특정 시스코 스위치 또는 라우터의 각 하드웨어 인터페이스와 각 서브 인터페이스에 대해 하나의 IDB를 유지한다. 시스템에 존재하는 IDB의 수는 시스코 하드웨어 플랫폼 유형에 따라 다르다.스위치의 물리적 및 논리적 인터페이스는 확장 또는 약식 포트 설명 이름으로 참조된다. 슬롯, 모듈 및 인터페이스 번호와 결합되어 해당 인터페이스에 대한 고유한 참조를 생성한다.
확장된 식별자 | 약식 식별자 |
---|---|
TwoHundredGigabitEthernet | TH |
HundredGigabitEthernet | Hu |
FortyGigabitEthernet | Fo |
TwentyFiveGigE | Twe |
TenGigabitEthernet | Te |
FiveGigabitEthernet | Fi |
TwoGigabitEthernet | Tw |
GigabitEthernet | Gi |
FastEthernet | Fa |
포트 채널 | Po |
AppGigabitEthernet | Ap |
4. 명령 줄 인터페이스 (CLI)
시스코 IOS 명령 줄 인터페이스(CLI)는 라우팅, 스위칭, 인터넷 네트워킹 및 통신 기능을 제공하며, 멀티태스킹 운영 체제(OS)와 통합되어 있다. 타사 네트워크 제품도 Cisco IOS를 모방하여 동일한 명령을 실행할 수 있는 경우가 많다.[8]
4. 1. 명령어 구조
시스코 IOS 명령 줄 인터페이스(CLI)는 고정된 여러 단어로 이루어진 일련의 명령어를 제공한다. 사용 가능한 명령어는 현재 사용자의 "모드"와 권한 수준에 따라 결정된다. "전역 구성 모드"는 시스템 구성을 변경하는 명령어를 제공하며, "인터페이스 구성 모드"는 특정 인터페이스의 구성을 변경하는 명령어를 제공한다.[8] 모든 명령어는 0부터 15까지의 ''권한 레벨''이 할당되며, 필요한 권한을 가진 사용자만 접근할 수 있다.[8] CLI를 통해 각 권한 레벨에 사용할 수 있는 명령어를 정의할 수 있다.사용 가능한 명령 모드는 다음과 같다:[8]
- 사용자 EXEC 모드
- 권한 EXEC 모드
- 전역 구성 모드
- ROM 모니터 모드
- 설정 모드
그리고 100개 이상의 구성 모드와 하위 모드가 있다.[8]
4. 2. 모드
시스코 IOS 명령 줄 인터페이스(CLI)는 사용자 "모드"와 권한 수준에 따라 사용 가능한 명령어가 결정된다. "전역 구성 모드"는 시스템 구성을 변경하는 명령어를 제공하며, "인터페이스 구성 모드"는 특정 인터페이스의 구성을 변경하는 명령어를 제공한다. 모든 명령어는 0부터 15까지의 ''권한 레벨''이 할당되며, 필요한 권한을 가진 사용자만 접근할 수 있다. CLI를 통해 각 권한 레벨에 사용할 수 있는 명령어를 정의할 수 있다.[8]사용 가능한 명령 모드는 다음과 같다:[8]
- 사용자 EXEC 모드
- 권한 EXEC 모드
- 전역 구성 모드
- ROM 모니터 모드
- 설정 모드
그리고 100개 이상의 구성 모드와 하위 모드가 있다.
4. 3. 권한 레벨
모든 명령어에는 0부터 15까지의 권한 레벨이 할당되며, 사용자는 필요한 권한을 가져야 해당 명령어에 접근할 수 있다.[8] CLI를 통해 각 권한 레벨에서 사용할 수 있는 명령어를 정의할 수 있다.[8]4. 4. Tcl 인터프리터
대부분의 IOS 빌드에는 Tcl 인터프리터가 포함되어 있다.[8] 내장 이벤트 관리자 기능을 사용하여 인터프리터를 스크립팅하여 인터페이스 오류 또는 주기적 타이머와 같은 네트워킹 환경 내의 이벤트에 반응할 수 있다.5. 패키지 및 기능 세트
IOS는 특정 시스코 네트워크 장치에 맞게 컴파일된 고유한 파일 형태로 제공된다. 각 IOS 이미지에는 해당 장치에서 사용 가능한 명령줄 인터페이스(CLI) 명령과 기능을 결정하는 기능 세트가 포함되어 있다. 다른 기능 세트로 업그레이드하려면 새 IOS 이미지를 설치하고 IOS 운영 체제를 다시 로드해야 한다. 시스코 장치에서 실행 중인 IOS 버전 및 기능 세트는 `show version` 명령으로 확인할 수 있다.[6]
IOS를 실행하는 대부분의 시스코 제품에는 하나 이상의 "기능 세트" 또는 "패키지"가 있으며, 시스코 라우터에는 보통 8개, 시스코 네트워크 스위치에는 5개의 패키지가 있다. 예를 들어, Catalyst 스위치에 사용되는 시스코 IOS 릴리스는 "표준" 버전(기본 IP 라우팅만 제공), "향상된" 버전(IPv4 라우팅 지원), "고급 IP 서비스" 버전(향상된 기능과 IPv6 지원)으로 제공된다.[11]
IOS 이미지는 소프트웨어 버그 수정으로 업데이트할 수 없다. IOS 취약점을 패치하려면 전체 운영 체제가 포함된 바이너리 파일을 로드해야 한다.[10]
5. 1. 기능 세트
시스코 IOS는 특정 시스코 네트워크 장치에 맞게 만들어진 파일 형태로 제공되며, 각 IOS 이미지에는 해당 장치에서 사용 가능한 명령줄 인터페이스(CLI) 명령과 기능을 결정하는 기능 세트가 포함되어 있다.[6] 다른 기능 세트로 업그레이드하려면 새 IOS 이미지를 설치하고 운영 체제를 다시 로드해야 한다.[6] ''show version'' 명령을 사용하여 시스코 장치에서 실행 중인 IOS 버전 및 기능 세트를 확인할 수 있다.[6]대부분의 시스코 제품에는 하나 이상의 "기능 세트" 또는 "패키지"가 있다. 일반적으로 시스코 라우터에는 8개, 시스코 네트워크 스위치에는 5개의 패키지가 있다. 예를 들어, Catalyst 스위치에서 사용되는 시스코 IOS 릴리스는 "표준" 버전(기본 IP 라우팅만 제공), "향상된" 버전(IPv4 라우팅 지원), "고급 IP 서비스" 버전(향상된 기능과 IPv6 지원)으로 제공된다.[11]
1900, 2900 및 3900 시리즈 ISR 라우터부터 시스코는 IOS 라이선스 모델을 변경했다. 기능 세트를 확장하고 운영 체제를 다시 로드할 필요성을 줄이기 위해, 장치에서 사용 가능한 모든 기능을 포함하는 유니버설 IOS 이미지를 도입하고, 고객이 추가 소프트웨어 라이선스를 구매하여 특정 기능을 잠금 해제할 수 있도록 했다.[9] 특정 기능에 필요한 기능 세트는 [http://tools.cisco.com/ITDIT/CFN/jsp/index.jsp 시스코 기능 네비게이터]를 사용하여 확인할 수 있다. 라우터는 IP Base가 설치된 상태로 제공되며, 추가 기능 팩 라이선스를 추가하여 장치의 기능 세트를 확장할 수 있다.
각 패키지는 다음과 같은 서비스 카테고리에 해당한다.
- IP 데이터
- 통합 음성 및 데이터
- 보안 및 가상 사설망
사용 가능한 기능 팩은 다음과 같다.
- '''Data''': BFD, IP SLA, IPX, L2TPv3, Mobile IP, MPLS, SCTP와 같은 기능을 추가한다.
- '''Security''': VPN, 방화벽, IP SLA, NAC와 같은 기능을 추가한다.
- '''Unified Comms''': CallManager Express, Gatekeeper, H.323, IP SLA, MGCP, SIP, VoIP, CUBE(SBC)와 같은 기능을 추가한다.
IOS 이미지는 소프트웨어 버그 수정으로 업데이트할 수 없다. IOS의 취약점을 패치하려면 전체 운영 체제가 포함된 바이너리 파일을 로드해야 한다.[10]
5. 2. 라이선스 모델 (1900, 2900, 3900 시리즈 ISR 라우터)
1900, 2900 및 3900 시리즈 ISR 라우터부터 시스코는 IOS의 라이선스 모델을 수정했다.[9] 기능 세트를 확장하고 네트워크 운영 체제를 다시 로드할 필요성을 줄이기 위해 시스코는 장치에 사용할 수 있는 모든 기능을 포함하는 유니버설 IOS 이미지를 도입했으며, 고객은 추가 소프트웨어 라이선스를 구매하여 특정 기능을 잠금 해제할 수 있다.[9] 특정 기능에 필요한 정확한 기능 세트는 [http://tools.cisco.com/ITDIT/CFN/jsp/index.jsp 시스코 기능 네비게이터]를 사용하여 확인할 수 있다. 라우터는 IP Base가 설치되어 제공되며, 추가 기능 팩 라이선스를 볼트온(bolt-on) 추가 기능으로 설치하여 장치의 기능 세트를 확장할 수 있다. 사용 가능한 기능 팩은 다음과 같다.- '''Data'''는 BFD, IP SLA, IPX, L2TPv3, Mobile IP, MPLS, SCTP와 같은 기능을 추가한다.
- '''Security'''는 VPN, 방화벽, IP SLA, NAC와 같은 기능을 추가한다.
- '''Unified Comms'''는 CallManager Express, Gatekeeper, H.323, IP SLA, MGCP, SIP, VoIP, CUBE(SBC)와 같은 기능을 추가한다.
6. 버전 관리
시스코 IOS의 버전은 ''a.b(c.d)e'' 형식으로 표현되며, 3개의 숫자와 몇 개의 문자로 구성된다. 여기서 a는 메이저 버전, b는 마이너 버전, c는 릴리스 번호, d는 중간 빌드 번호(일반적으로 생략), e는 소프트웨어 릴리스 트레인을 나타낸다.
'버전 표기 형식', '릴리스 유형', '트레인' 등 하위 섹션에서 버전 관리에 대한 전반적인 내용이 상세하게 다루어지고 있으므로, 이 섹션에서는 중복을 피하기 위해 버전 관리 체계에 대한 간략한 개요만 제시한다.
6. 1. 버전 표기 형식
시스코 IOS는 세 개의 숫자와 몇 글자를 사용하여 버전을 표시하며, 일반적인 형식은 ''a.b(c.d)e''이다. 여기서 각 요소는 다음과 같은 의미를 가진다.- ''a'': 메이저 버전 번호.
- ''b'': 마이너 버전 번호.
- ''c'': 릴리스 번호. 동일한 ''a.b'' 트레인 내에서 새로운 릴리스가 출시될 때마다 1부터 시작하여 증가한다. 여기서 "트레인"은 특정 플랫폼 및 기능 집합에 시스코 소프트웨어를 제공하기 위한 방식을 의미한다.
- ''d'' (일반 릴리스에서는 생략): 중간 빌드 번호.
- ''e'' (0~2개의 문자): 소프트웨어 릴리스 트레인 식별자.
- (없음): 주 회선(mainline)을 나타낸다.
- ''T'': 기술(Technology)용.
- ''E'': 엔터프라이즈(Enterprise)용.
- ''S'': 서비스 제공업체(Service Provider)용.
- ''XA'', ''XB'' 등: 특수 기능 트레인.
예를 들어, 12.3(1)은 버전 12.3의 첫 번째 메인 라인 릴리스이다. 12.3(2)는 다음 릴리스이며, 이후에도 같은 방식으로 릴리스 번호가 증가한다. 12.3(1)T는 T 트레인의 첫 번째 릴리스이며, 12.3(2)T는 그 다음 릴리스이다.
리빌드(Rebuild)특정 IOS 버전의 단일 문제 또는 취약점을 수정하기 위해 컴파일된다. 예를 들어, 12.1(8)E14는 12.1(8)E의 14번째 리빌드를 의미한다. 리빌드는 결함을 신속하게 수리하고, 장치에서 중요한 인프라를 실행하여 변경 및 위험을 최소화하려는 고객의 요구를 충족시키기 위해 제작된다.
중간 릴리스(Interim Release)일반적으로 매주 생성되며, 현재 개발 노력의 롤업(roll-up)을 형성한다. 시스코 권고 웹사이트는 관련 문제를 해결하기 위해 둘 이상의 중간 버전을 나열할 수 있다.
유지 보수 릴리스(Maintenance Release)향상 및 버그 수정 사항이 포함되어 있으며, 엄격하게 테스트된 릴리스이다. 시스코는 가능한 경우 중간 및 리빌드 릴리스보다 유지 보수 릴리스로 업그레이드하는 것을 권장한다.
6. 2. 릴리스 유형
'''리빌드'''는 특정 IOS 버전의 단일 문제 또는 취약점을 해결하기 위해 컴파일된다. 예를 들어 12.1(8)E14는 12.1(8)E의 14번째 리빌드를 의미한다. 리빌드는 결함을 신속하게 수리하거나, 장치에서 중요한 인프라를 실행할 수 있으므로 변경 및 위험을 최소화하려는 고객의 요구를 충족시키기 위해 이후의 메이저 버전으로 업그레이드하지 않으려는 고객을 만족시키기 위해 제작된다.[1]'''중간 릴리스'''는 일반적으로 매주 생성되며 현재 개발 노력의 롤업을 형성한다. 시스코 권고 웹사이트는 관련 문제를 해결하기 위해 둘 이상의 중간 버전을 나열할 수 있다(이 이유는 일반 대중에게 알려져 있지 않음).[1]
'''유지 보수 릴리스'''는 향상 및 버그 수정 사항이 포함되어 있으며, 엄격하게 테스트된 릴리스이다. 시스코는 중간 및 리빌드 릴리스보다 가능한 경우 유지 보수 릴리스로 업그레이드하는 것을 권장한다.[1]
6. 3. 트레인 (Trains)
시스코 IOS는 3개의 숫자와 몇 글자를 사용하여 버전을 표시하며, 일반적인 형식은 ''a.b(c.d)e''이다. 각 부분의 의미는 다음과 같다.항목 | 설명 | |
---|---|---|
a | 메이저 버전 번호 | |
b | 마이너 버전 번호 | |
c | 릴리스 번호. 동일한 a.b 트레인 내에서 새 릴리스가 출시될 때마다 1부터 시작하여 증가한다. | |
d | 중간 빌드 번호 (일반 릴리스에서는 생략) | |
e | 소프트웨어 릴리스 트레인 식별자 | * 없음: 주 회선(mainline) |
"트레인"은 특정 플랫폼 및 기능 집합에 시스코 소프트웨어를 제공하기 위한 "차량"을 의미한다.[11]
리빌드(Rebuild)는 특정 IOS 버전의 단일 문제 또는 취약점을 수정하기 위해 컴파일된다. 예를 들어, 12.1(8)E14는 12.1(8)E의 14번째 리빌드이다. 리빌드는 결함을 신속하게 수리하고, 장비에서 중요한 인프라를 실행하여 변경 및 위험을 최소화하려는 고객의 요구를 충족시키기 위해 제작된다.
중간 릴리스(Interim Release)는 일반적으로 매주 생성되며 현재 개발 노력의 결과를 보여준다. 시스코 권고 웹사이트는 관련 문제를 해결하기 위해 둘 이상의 중간 버전을 나열할 수 있다.
유지 보수 릴리스(Maintenance Release)는 기능 향상 및 버그 수정 사항이 포함되어 있으며, 엄격하게 테스트된 릴리스이다. 시스코는 가능한 경우 중간 및 리빌드 릴리스보다 유지 보수 릴리스로 업그레이드하는 것을 권장한다.
6. 3. 1. 12.4 이전
시스코 IOS 15 릴리스 이전에는 여러 개의 '트레인'으로 릴리스가 분할되었으며, 각 트레인은 서로 다른 기능 세트를 포함했다. 트레인은 시스코가 목표로 하는 특정 시장 또는 고객 그룹에 대략적으로 매핑된다.[11]- '''메인라인''' 트레인은 회사가 제공할 수 있는 가장 안정적인 릴리스를 목표로 하며, 수명 기간 동안 기능 세트가 확장되지 않는다. 업데이트는 제품의 버그를 해결하기 위해서만 릴리스된다. 이전 기술 트레인이 현재 메인라인 트레인의 소스가 된다. 예를 들어 12.1T 트레인은 12.2 메인라인의 기반이 된다. 따라서 특정 메인라인 릴리스에서 사용 가능한 기능을 확인하려면 이전 T 트레인 릴리스를 살펴봐야 한다.[12]
- '''T''' – 기술 트레인은 수명 동안 새로운 기능과 버그 수정 사항을 얻으므로 메인라인보다 불안정할 수 있다. (시스코 IOS 릴리스 12.0 이전 릴리스에서는 '''P''' 트레인이 기술 트레인 역할을 했다.) 시스코는 특정 T 트레인의 새로운 IOS 기능을 구현해야 할 긴급한 상황이 아니라면 프로덕션 환경에서 T 트레인의 사용을 권장하지 않는다.[12]
- '''S''' – 서비스 제공업체 트레인은 회사의 핵심 라우터 제품에서만 실행되며 서비스 제공업체 고객을 위해 맞춤화되었다.[12]
- '''E''' – 엔터프라이즈 트레인은 엔터프라이즈 환경에서 구현하도록 맞춤화되었다.[12]
- '''B''' – 광대역 트레인은 인터넷 기반 광대역 기능을 지원한다.[12]
- '''X*''' (XA, XB 등) – 특수 릴리스 트레인은 특정 버그를 수정하거나 새로운 기능을 제공하기 위해 설계된 일회성 릴리스를 포함한다. 이는 결국 위 트레인 중 하나와 병합된다.[12]
특정 요구 사항에 맞게 설계된 다른 트레인도 때때로 있었다. 예를 들어 12.0AA 트레인에는 시스코의 AS5800 제품에 필요한 새로운 코드가 포함되어 있었다.
시스코 IOS는 3개의 숫자와 몇 개의 문자를 사용하여 ''a.b(c.d)e'' 형식으로 버전이 지정된다.
- ''a''는 메이저 버전 번호이다.
- ''b''는 마이너 버전 번호이다.
- ''c''는 릴리스 번호이다. 같은 a.b 조합 내에서 새로운 릴리스가 있을 때 증가한다.
- ''d'' (일반적인 릴리스에서는 생략)는 임시 빌드 번호이다.
- ''e'' (0 - 2개의 문자)는 릴리스된 트레인의 식별자이다. 없음 (아래의 메인 라인을 명시), ''T'' (기술용), ''E'' (기업용), ''S'' (서비스 프로바이더용), ''XA'' (임시 기능용), ''XB'' (다른 임시 기능용) 등.
예를 들어, 릴리스 12.3(1)은 버전 12.3의 첫 번째 시스코 IOS 메인 라인 릴리스이다. 12.3(2)는 다음 릴리스이며, 이하 동일하다. 12.3(1)T는 T 트레인의 첫 번째 릴리스이며, 12.3(2)T는 그 다음이며, 이하 동일하다. 임시 빌드는 다음 릴리스의 후보이며, 다음 릴리스를 사용할 수 있기 전에 버그를 수정하는 더 빠른 방법으로, 시스코의 지원을 통해 빈번하게 사용할 수 있게 된다. 예를 들어, 12.3(1.2)T는 릴리스 12.3(1)T에 해당하는 두 번째 임시 빌드이다.
'''리빌드''' - 종종 주어진 IOS 버전의 단일 문제 또는 취약점을 해결하기 위해 리빌드가 만들어진다. 예를 들어, 12.1(8)E14는 12.1(8)E의 14번째 리빌드이다. 리빌드는 신속하게 결함을 수리하기 위해, 그리고 중요한 인프라를 운영하고 변화와 위험을 최소화하기 위해 메이저 버전 업그레이드를 원하지 않는 고객을 위해 제공된다.
'''임시 릴리스''' - 주 단위로 생성되며, 현재 개발의 성과로 구성된다. 시스코의 보고 웹사이트에서는 관련 문제를 수정하기 위해 여러 임시 릴리스가 나열될 수 있다 (이 이유는 일반적으로 알려져 있지 않다).
'''유지 관리 릴리스''' - 성능 향상과 버그 수정을 포함하는 엄격하게 수정된 릴리스이다. 시스코는 리빌드 및 임시 릴리스 위에 있는 가능한 모든 유지 관리 릴리스로 업데이트할 것을 권장한다.
6. 3. 2. 15.0 이후
시스코 IOS 릴리스 15부터는 '''M/T''' 트레인이라는 단일 트레인만 존재한다. 이 트레인은 확장 유지 관리 릴리스와 표준 유지 관리 릴리스를 모두 포함한다. '''M''' 릴리스는 확장 유지 관리 릴리스이며, 시스코는 44개월 동안 버그 수정을 제공한다. '''T''' 릴리스는 표준 유지 관리 릴리스이며, 시스코는 18개월 동안만 버그 수정을 제공한다.7. 보안 및 취약점
Cisco IOS에는 Unix 시스템에서 흔히 볼 수 있는, 커널에 비해 권한이 제한된 사용자 프로세스로 프로세스를 실행하는 방식과 같은 보안 기능이 없다. 이는 사소한 버그로 인해 발생하는 버퍼 오버플로우 등이 곧바로 Unix에서 말하는 "root 권한에 의한 임의 코드 실행"에 해당하는 위험한 보안 허점으로 이어진다는 것을 의미한다.
IOS가 장치에서 단계적으로 폐지됨에 따라 IOS-XE는 업데이트된 기본값을 포함하여 많은 개선 사항을 채택했다. 일부 사용 사례에서는 이제 단방향 해시로 비밀을 저장할 수 있다.
7. 1. 암호 보안
IOS는 특정 용도를 위해 평문 암호를 알아야 하기 때문에, 기본적으로 CLI에 입력된 암호는 "Type 7" 암호문으로 약하게 암호화된다. 예를 들어 `Router(config)#username jdoe password 7 ''0832585B1910010713181F''`와 같다. 이는 라우터 설정을 볼 때 "어깨 너머 엿보기" 공격을 방지하기 위해 설계되었지만 안전하지 않다. 1995년부터 사용 가능한 "getpass" 또는 최신 변종인 "ios7crypt"[13]라는 소프트웨어를 사용하여 쉽게 해독할 수 있다. 그러나 "key chain" 명령을 사용하고 Type 7 암호를 키로 입력한 다음 "show key" 명령을 실행하면 라우터에서 암호를 해독할 수 있다. 위 예시는 "stupidpass"로 해독된다.[14]하지만 이 프로그램은 'Type 5' 암호나 `enable secret` 명령으로 설정된 암호는 해독하지 않으며, 이는 솔트된 MD5 해시를 사용한다.[15]
Type 7 암호는 CLI 상에서 `Router(config)#username jdoe password 7 ''0832585B1910010713181F''`와 같이 표현되며, 1995년 이후 사용 가능한 "getpass"라는 소프트웨어를 사용하여 쉽게 해독 가능하다. (위의 예는 "stupidpass"로 해독된다.) 이는 오래되었지만, 현재도 이러한 약한 해시가 사용되고 있다. getpass는 Type 5 패스워드와 `enable secret` 명령으로 설정된 MD5로 처리된 패스워드는 해독할 수 없다.
7. 2. AAA 보안 모델
시스코는 모든 시스코 IOS 장치에 인증, 권한 부여 및 회계(AAA) 보안 모델을 구현할 것을 권장한다.[16] AAA는 로컬, RADIUS, TACACS+ 데이터베이스를 사용할 수 있다.[16]7. 3. 취약점
2005년 7월 블랙 햇 브리핑 컨퍼런스에서 당시 IBM 인터넷 보안 시스템에서 근무하던 마이클 린은 IOS의 취약점에 대한 정보를 발표했다.[17] 시스코는 이미 패치를 발행했지만, 결함 공개를 요청하지 않았다.[18] 시스코는 소송을 제기했지만, 추가 공개를 막기 위한 금지 명령이 내려진 후 합의했다.[19]IOS는 특정 용도(예: CHAP 인증)를 위해 평문 암호를 알아야 하기 때문에, 기본적으로 CLI에 입력된 암호는 "Type 7" 암호문으로 약하게 암호화된다. 예를 들어 "
Router(config)#username jdoe password 7 ''0832585B1910010713181F''
"와 같다. 이는 라우터 설정을 볼 때 "어깨 너머 엿보기" 공격을 방지하기 위해 설계되었지만 안전하지 않다. 1995년부터 사용 가능한 "getpass" 또는 최신 변종인 "ios7crypt"[13]라는 소프트웨어를 사용하여 쉽게 해독할 수 있다. 그러나 "key chain" 명령을 사용하고 Type 7 암호를 키로 입력한 다음 "show key" 명령을 실행하면 라우터에서 암호를 해독할 수 있다. 위 예시는 "stupidpass"로 해독된다.[14] 하지만 이 프로그램은 'Type 5' 암호나 `enable secret` 명령으로 설정된 암호는 해독하지 않으며, 이는 솔트된 MD5 해시를 사용한다.[15]Cisco IOS에는 Unix 시스템에서 흔히 볼 수 있는 커널에 비해 권한이 제한된 사용자 프로세스로 프로세스를 실행하는 방식과 같은 보안 기능이 없다. 이는 사소한 버그로 인해 발생하는 버퍼 오버플로우 등이 곧바로 Unix에서 말하는 "root 권한에 의한 임의 코드 실행"에 해당하는 위험한 보안 허점으로 이어진다는 것을 의미한다.
시스코는 모든 Cisco IOS 장비가 인증 (authentication), 인가 (authorization), 계정 (accounting)에 의한 보안 모델 (AAA)을 구현하도록 권장하고 있다. AAA는 로컬, RADIUS 및 TACACS+ 데이터베이스를 사용할 수 있다.[16]
8. IOS XR
시스코 CRS-1과 같이 고가용성을 요구하는 시스코 제품의 경우, 모놀리식 커널의 한계는 용납될 수 없었다. 게다가 주니퍼 네트웍스의 주노스 OS(Junos OS)와 같이 IOS보다 10~20년 후에 등장한 경쟁 라우터 운영 체제는 이러한 제약이 없도록 설계되었다.[20] 시스코는 모듈성, 프로세스 간 메모리 보호, 경량 스레드, 선점형 스케줄링(Preemption (computing)), 실패한 프로세스를 독립적으로 재시작하는 기능, 서비스 제공업체 네트워크에서 사용할 수 있는 대규모 확장을 제공하는 완전히 새로운 운영 체제 개발로 대응하였다.
IOS XR 개발 초기에는 실시간 운영 체제 마이크로커널(QNX)을 사용했으며, IOS 소스 코드의 상당 부분이 커널이 제공하는 기능을 활용하도록 다시 작성되었다. 2005년 시스코는 시스코 12000 시리즈 네트워크 라우터에 시스코 IOS XR 네트워크 운영 체제를 도입하여 CRS-1 라우터에서 널리 배포된 코어 라우터로 마이크로커널 아키텍처를 확장했다. 시스코 IOS XR의 릴리스 6.x부터 QNX는 리눅스로 대체되었다.
8. 1. 개발 배경
시스코 IOS는 스탠퍼드 대학교의 윌리엄 예거가 작성한 코드를 기반으로 만들어졌으며,[3][4][5] 1980년대에 256kB 메모리와 낮은 CPU 처리 능력을 가진 라우터를 위해 개발되었다. 모듈식 확장을 통해 IOS는 증가하는 하드웨어 기능과 새로운 네트워킹 프로토콜에 적응해 왔다.[6] IOS가 개발되었을 당시 시스코 시스템즈의 주력 제품군은 라우터였다.시스코 IOS는 1980년대 라우터와 스위치의 제한된 하드웨어 자원 때문에 모놀리식 아키텍처를 가지고 있다. 이는 모든 프로세스가 CPU 처리 시간을 절약하기 위해 하드웨어에 직접 접근할 수 있음을 의미한다. 프로세스 간 메모리 보호는 없으며, IOS는 실행 완료 스케줄러를 가지고 있는데, 이는 커널이 실행 중인 프로세스를 선점하지 않는다는 것을 의미한다.[6]
IOS 아키텍처의 단점은 운영 체제의 복잡성을 증가시키고, 한 프로세스가 다른 프로세스의 데이터를 덮어쓰면서 데이터 손상이 발생할 수 있으며, 한 프로세스가 전체 운영 체제를 불안정하게 만들거나 소프트웨어에 의한 크래시를 유발할 수 있다는 것이다.[6]
시스코 CRS-1과 같이 고가용성을 요구하는 시스코 제품의 경우, 모놀리식 커널의 한계는 용납될 수 없었다. 게다가 주니퍼 네트웍스의 주노스 OS(Junos OS)와 같이 IOS보다 10~20년 후에 등장한 경쟁 라우터 운영 체제는 이러한 제약이 없도록 설계되었다.[20] 시스코는 모듈성, 프로세스 간 메모리 보호, 경량 스레드, 선점형 스케줄링(Preemption (computing)), 실패한 프로세스를 독립적으로 재시작하는 기능 등을 제공하는 완전히 새로운 운영 체제(IOS XR)를 개발하는 것으로 대응했다.
8. 2. 특징
시스코 IOS는 1980년대 라우터와 스위치의 제한된 하드웨어 자원 때문에 모놀리식 아키텍처를 가지고 있다. 이는 모든 프로세스가 CPU 처리 시간을 절약하기 위해 하드웨어에 직접 접근할 수 있음을 의미한다. 프로세스 간의 메모리 보호는 없으며, IOS는 실행 완료 스케줄러를 가지고 있는데, 이는 커널이 실행 중인 프로세스를 선점하지 않는다는 것을 의미한다.[6]시스코 IOS 모놀리식 커널은 서로 다른 프로세스의 데이터에 대한 메모리 보호를 구현하지 않는다. 전체 물리적 메모리는 하나의 가상 주소 공간에 매핑된다. 시스코 IOS 커널은 메모리 페이징이나 스와핑을 수행하지 않는다.[6]
IOS 아키텍처의 단점은 운영 체제의 복잡성을 증가시키고, 한 프로세스가 다른 프로세스의 데이터를 덮어쓰면서 데이터 손상이 발생할 수 있으며, 한 프로세스가 전체 운영 체제를 불안정하게 만들거나 소프트웨어에 의한 크래시를 유발할 수 있다는 것이다. IOS 크래시가 발생하면 운영 체제가 자동으로 재부팅되고 저장된 구성이 다시 로드된다.[6]
고가용성을 요구하는 시스코 제품의 경우, 모놀리식 커널의 한계는 용납될 수 없었다. 시스코는 모듈성, 프로세스 간 메모리 보호, 경량 스레드, 선점형 스케줄링(Preemption (computing)), 실패한 프로세스를 독립적으로 재시작하는 기능, 대규모 확장을 제공하는 새로운 운영 체제를 개발했다. IOS XR 개발 초기에는 실시간 운영 체제 마이크로커널(QNX)을 사용했으며, 2005년 시스코는 시스코 12000 시리즈 네트워크 라우터에 시스코 IOS XR 네트워크 운영 체제를 도입했다. 시스코 IOS XR의 릴리스 6.x부터 QNX는 Linux로 대체되었다.
8. 3. IOS Software Modularity
시스코는 모놀리식 IOS를 모듈식 IOS로 수정하려는 초기 작업을 진행했다. 이는 소프트웨어 업그레이드 기능을 유지하면서 마이크로커널 아키텍처를 IOS 환경으로 확장하는 것이었다. 이러한 시도는 Catalyst 6500에서만 테스트되었고, 제한적인 노출만 이루어졌으며, 요구 사항이 너무 높고 플랫폼 작동을 상당히 저해했기 때문에 빠르게 중단되었다.[20]9. IOS XE
IOS XR과 함께, 라우터 및 스위치에 탑재되는 IOS의 후속 네트워크 운영 체제(OS)이다. 네트워크 장비의 기능 확장을 포함한다.
10. 참고 문헌
참조
[1]
웹사이트
Networking Software (IOS & NX-OS)
https://www.cisco.co[...]
2022-11-01
[2]
웹사이트
Cisco Internetworking Operating Systems (IOS)
https://www.cisco.co[...]
Cisco
2022-10-25
[3]
웹사이트
Inside the Engineering Quad Stanford University School of Engineering
https://engineering.[...]
2022-05-17
[4]
웹사이트
The top network inventors of all time
https://www.computer[...]
2007-07-03
[5]
웹사이트
Router man
https://www.networkw[...]
2006-03-27
[6]
서적
IP Routing on Cisco IOS, IOS XE, and IOS XR: An Essential Guide to Understanding and Implementing IP Routing Protocols
Cisco Press
[7]
서적
Network Warrior: Everything You Need to Know That Wasn't on the CCNA Exam
O'Reilly Media
[8]
웹사이트
Configuration Fundamentals Configuration Guide, Cisco IOS Release 15M&T
https://www.cisco.co[...]
Cisco
2022-05-14
[9]
서적
IP Routing on Cisco IOS, IOS XE, and IOS XR: An Essential Guide to Understanding and Implementing IP Routing Protocols
Cisco Press
[10]
서적
IP Routing on Cisco IOS, IOS XE, and IOS XR: An Essential Guide to Understanding and Implementing IP Routing Protocols
Cisco Press
[11]
간행물
Cisco IOS and NX-OS Software Reference Guide
http://www.cisco.com[...]
2013-06-18
[12]
간행물
Understanding Cisco IOS Naming Conventions
https://www.cisco.co[...]
2016-10-10
[13]
웹사이트
ios7crypt
https://github.com/m[...]
2012-09-19
[14]
웹사이트
Cisco password decryption
https://insecure.org[...]
2024-04-10
[15]
웹사이트
Cisco IOS Password Encryption Facts
https://www.cisco.co[...]
2017-09-12
[16]
웹사이트
Cisco 500-052 Test
https://www.mrcerts.[...]
2017-02-21
[17]
잡지
Router Flaw Is a Ticking Bomb
http://archive.wired[...]
2014-08-09
[18]
잡지
Cisco Security Hole a Whopper
http://archive.wired[...]
2014-08-09
[19]
뉴스
Statement on Federal District Court Injunction (Black Hat Presentation)
https://web.archive.[...]
Cisco Systems
2013-06-18
[20]
웹사이트
Junos OS | Juniper Networks US
https://www.juniper.[...]
2024-04-10
[21]
웹사이트
Cross-Platform Release Notes for Cisco IOS Release 15.9(3)M
https://www.cisco.co[...]
2019-07-31
[22]
웹사이트
Cisco IOS XR ソフトウェア
https://www.cisco.co[...]
[23]
웹사이트
Cisco IOS XE
https://www.cisco.co[...]
[24]
웹인용
Networking Software (IOS & NX-OS)
https://www.cisco.co[...]
2022-11-01
관련 사건 타임라인
( 최근 20개의 뉴스만 표기 됩니다. )
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com