Basic IOS Configuration(1)
1. IOS란 무엇인가?
- IOS는 운영 체제이다.
- Cisco 장치의 하드웨어 자원을 관리한다.
- 다양한 Network service 제공
- 사용자 인터페이스 제공
IOS는 Cisco사가 생산하고 있는 라우터나 스위치등의 장비에 Embedded 소프트웨어 형태의 운영체제 플렛폼이며 하드웨어의 자원 관리와 사용자와 응용 프로그램들을 위한 인터페이스를 서비스한다. 또한 운영 체제들이 수행하는 일반적인 기능 외에도 아래와 같은 다양한 네트워크 서비스들을 제공한다.
• 네트워크 프로토콜들의 선택하고 그 기능을 활용하게 하는 특징
• 네트워크에 Telnet, TFTP, DHCP, NAT(Network Address Translation), VPN(VirtualPrivate Network), Firewall, IDS(Intruder detection System)와 같은 서비스를 제공
• 네트워크 장치들 사이에 고속으로 트래픽을 전송하기 위한 연결 능력
• 네트워크의 불법적인 사용을 방지하고, 네트워크 자원에 대한 접근을 제한하는 보안 능력
• 네트워크의 성장에 따라 필요로 하는 능력이나 인터페이스를 추가함으로써 확장성 제공
• 네트워크화된 자원들에 접근을 보장하기 위한 신뢰성 제공 Cisco IOS는 기본적으로 콘솔 연결을 기본으로 하는 Command Line Interface를 사용자에게 제공한다. 이 명령어 인터페이스는 CLI (Command Line Interface)라고 하며, 콘솔, 모뎀, Telnet Session을 통해 접근이 가능하다. Cisco에서 제공하는 운영 체제는 크게 두 가지 형태가 있는데 저-성능 스위치들과 대부분의 라우터에서 사용하는 IOS기반의 운영 체제와 고-성능 스위치에서 사용하는 Set기반 운영 체제가 있다. 하지만 현재의 대부분의 장비들은 IOS 기반으로 만들어지는 추세이다.
2.IOS Device의 하드웨어 구성요소
– CPU : 중앙처리장치로 운영체제와 응용 프로그램들을 실행하고 각종 주변 장치들을 제어하는 역할을 한다 .
– RAM : Random Access Memory 각종 소프트웨어나 데이터 구조들을 담고 있는 실제적인 작업 영역이다. RAM
에서 기동되는 가장 기초적인 소프트웨어가 Cisco IOS Image와 Programs, Buffer, Tables, Active
Configuration File들이다.
– ROM : Read-only Memory로 IOS Devcei가 부팅 시에 필요로 하는 기능들을 제공하고, 시스템을 유지 보수하기
위한 microcode들이 들어있다. Microcode란 소프트웨어가 하드웨어 형태(ASIC)형태로 있는 것을 말한다.
– Bootflash :일부 고성능 IOS device들은 부팅 시에 제공되는 기본적인 소프트웨어의 사이즈가 커서 ROM속에 모든 필요 기능들을 넣지 못하는 경우가 있다. 때문에 POST 루틴이나 Bootstrap등과 같은 기능들은 Bootflash라
는 곳에 보관하여 쉽게 갱신할 수 있도록 한다.
– Flash Memory : IOS image를 저장하고 있는 곳으로 일반 PC의 HDD나 FDD와 비교 할 수 있다. 대부분의 IOS는 Flash에 Image형태로 있다가 필요에 따라 RAM에 로드 되어 기동된다.
– NVRAM :NVRAM은 Non-volatile RAM의 약자로 별도로 연결된 배터리에 의해 전원 공급을 유지 한다. 주로 IOS
Device의 Configuration을 저장하는 용도로 사용한다.
– Configuration register : 이 값은 NVRAM에 저장되며, IOS Device가 어떻게 부팅을 할 것인가를 제어하기 위해 사용한다.
– Interfaces :라우터나 스위치가 물리적으로 연결하기 위한 어댑터들을 말한다. Ethernet, Fast Ethernet, Gigabit
Ethernet, 10 Gigabit Ethernet, Asynchronous Serial, Synchronous Serial, HSSI, Token-Ring, FDDI, ATM,
Console과 Auxiliary Port와 같은 Line, 내부적으로 정의해서 사용하는 Loopback, Tunnel, Null 등이 있다.
– Backplane :하드웨어 구성 요소들이 연결된 system Bus 를 의미한다. 고성능 장비 일수록 분산되고 구조화된
backplane이 제공되며 처리 능력 또한 높다.
– Switch Fabric : 각각의 네트워크의 종류에 따라 NPU가 만든 프레임들을 각각의 다른 NPU에게 병목 없이 빠르게 전달해 주는 기능을 담당한다. Switch Engine이라고도 하며 Co-Processor 수준으로 볼 수 있다.
3.IOS Device의 소프트웨어 구성 요소
라우터와 스위치의 Software의 기본 구성 요소는 다음과 같은 것들이 있다.
- BootRom
Boot ROM은 하드웨어 ROM이나 Bootflash 속에 포함 되어 있으며 시스템 부팅시에 필요한 소프트웨어를
ASIC형태로 ROM이나 Bootflash속에 저장하고 있는 소프트웨어를 말한다. PC로 이야기 하면 AMD와 같은 회사가 만드는 BIOS와 같은 개념이다. Boot ROM을 구성하는 4가지 핵심 마이크로코드(microcode)의 구성 요소는 다음과 같다.
•Bootstrap Code: 라우터나 스위치에서 부팅 시에 초기화 작업을 수행하는데 있어서 라우터나 스위치의 부팅 방법을 결정하기 위한 기능을 제공한다. NVRAM에 저장된 Configuration register값을 참조하여 어떻게 IOS를 로딩 할 것인지를 결정한다.
•Power-on self test code: 라우터나 스위치에 전원이 연결되면 라우터나 스위치에 장착된 하드웨어 구성 요소들을 알아내고, 그것들의 기능성을 검사하여 이상 유무를 알려 준다.
•ROM Monitor: 가장 저-수준의 운영체제로 일반적으로 공장에서 생산하는 단계에서 시스템 검사용으로 사용하거나, 최악의 경우에는 IOS 로딩 문제와 같은 상황에 대해 문제 해결을 위한 용도로 사용한다. 라우터 시작 시 콘솔에서 CTRL-Break를 누르면 이 모드로 진입 할 수 있다. 이 모드에서는 라우터에 따라서 ‘>’ 나 ‘rommon>’ 등의 프롬프트를 제공한다.
•Mini IOS:이것은 IOS의 subnet이다. 이 Mini IOS는 Flash Memory에 새로운 소프트웨어 이미지를 로드하기 위하여 사용되거나, 기본적인 유지보수와 관련된 작업을 수행할 수 있다. 때때로 이 IOS의 subnet은 RXBOOT code나 bootloader라고 불리우기도 하며 ‘Router(boot)>’와 같은 프롬프트를 나타낸다. Configuration Register값을 0x2101으로 설정하거나, FULL IOS가 손상되었을 때, 또는 라우터 부팅시에 콘솔에서 CTRL-Break key를 누르면 이모드로 진입 할 수있다.고성능 라우터나 스위치인 경우 초기 부팅시 필요한 기능의 용량이 커서 ROM안에 그러한 기능들을 모두 설정 할수 없는 경우, 그리고 자주 그 내용을 갱신할 필요가 있을 경우에는 Bootflash라는 저장 공간에 저장하기도 한다.
- IOS(Internetworking Operating System)
IOS는 일반적으로 라우터 내부의 Flash Memory에 이미지 형태로 저장되어 있다가 부팅 시 메모리에 로드되어 실행된다.
- Applications
IOS와 함께 여러 가지 부가 기능들을 제공하는 소프트웨어를 말한다. 보통은 이러한 기능들을 IOS Feature라고도 호칭하며 그 안에는 상당히 많은 내용의 기능들이 소개되어 있어서 라우터나 스위치들의 고유 기능 외에 네트워크에서 필요한 IP 서비스와 보안과 같은 고급 기능들이 소개되어 있다. 예를 들어 Firewall, DHCP, Proxy Server, VPN을 위한 Encryption등의 기능들이 그것이다.
4. IOS Device로의 접근 방식
시스코의 라우터나 스위치 장치에 연결하여 초기 구성을 설정하는 방법은 4가지 정도가 있다.
• Console연결이나 Telnet연결을 통한 명령어 입력
• Console연결이나 Telnet연결을 통한 메뉴방식
• Web Interface
• TFTP 서버를 이용한 Configuration
• Auxiliary Port를 이용한 Dial-up 연결 등
이 중에서 가장 기본이 되는 것이 Console 연결을 통한 명령어 입력방식이다.
5. IOS Device에 Console 연결하기
IOS Device에 접근하기 위한 가장 일반적인 방법이 Console 연결을 통한 명령어 입력방식이며, IOS Device를 구성하기 위한 Console접속을 위해서는 다음과 같은 구성 요소들을 준비해야 한다.
• COM Port(Serial Port, RS-232C Port)를 가진 컴퓨터: 대부분의 PC에는 내장 되어 있으나 일부 PC에서는 USB만 지원하는 경우가 있어 연결에 어려움이 있을 수 있다. 이런 경우에는 USB에 연결이 가능한 serial cable변환
기를 장착 할 수 있다.
• Terminal Emulation Software: VT-100, TTY와 같은 Terminal을 지원하는 프로그램으로 Windows에서 제공하는 하이퍼터미널이나 새롬 데이터맨-프로, SecureCRT등과 같은 프로그램을 준비 한다.
•DB-9/25 to RJ-45 Adapter: RJ-45 UTP Cable을 RS-232C에서 사용하는 9 Pin이나 25 Pin 연결로 바꾸어 주는 아답터로 내부적으로 Straight Connection(Labeled TERMINAL, female DTE Adapter)과 Rolled Connection(Labeled MODEM, mail DCE Adapter) 등 두 가지가 있는데 우리는 주로 Straight Connection(Labeled TERMINAL, female DTE Adapter) 준비한다.
•RJ-45 to RJ-45 Rollover Cable:UTP Straight나 Crossover와 비교되는 특수한 연결로 유독 Cisco 장비에서만 볼 수 있는 연결 방식이다.
6. Access Router를 이용한 장비 연결
기본적으로 IOS Device들은 최초 구성 시에 Console로 연결하여 구성 작업을 진행한다.하지만 다수의 여러 장비를 구성해야 하는 CCIE Lab 환경에서는 각 장비마다 console cable을 별도로 연결하면서 진행하는 실습에 따르는 불편함이 많을 것이다. Access Router는 이러한 불편함을 덜어주기 위해 사용자가 특정 장비(access router)에만
접근하면 다른 나머지 장비들의 console에 모두 연결이 가능한 구성을 가능하게 한다. Dl 장비를 사용함에 있어서 실습 중에 잦은 console 연결의 이동과 그에 따른 고장 가능성을 줄여 줄 수 있으며 하나의 point에서 다수의 장비를 관리 할 수 있는 장점을 갖게 된다. 위 access router장비는 최대 16개의 line을 제공하는 장비이다. 즉 최대 16대의 IOS Device에 Console을 연결하여 관리가 가능하다는 의미이다.
7. Reverse Telnet 구성 요령
● Access Server의 Ethernet Interface에 Telnet 접근이 가능한 IP 주소를 설정한다.
● Telnet command에 Port 2000+N으로 port 번호를 명시한다. N은 Access server의 Line number이다.
Access Router는 자신의 line에 연결된 각 장치들을 연결하기 위한 Reverse telnet 구성을 필요로 한다. 원래 reverse telnet은 Access Router의 line에 연결된 Mode들의 초기화 명령을 처리하기 위해 필요했던 구성 이였다.
Reverse telnet은 장치 내부에서만 사용하며 TCP port 2000을 사용하도록 예약되어 있으며, 각 line 에 연결된 장치마다 2000 + line number 형식으로 telnet용 tcp port number를 할당하면 된다. Access router에 연결된 장치에 접근하는 방식은 다음과 같다.
1.Access router에 tcp port 23로 telnet 접속 후 다시 연결된 장비로 reverse telnet으로 접근한다.
2.Access router를 통해 직접 원하는 장비에 연결한다. 이런 경우에는 23번 포트를 사용하지 않고 위 그림처럼 Reverse telnet용으로 사용하는 port number를 직접 이용하여 접근한다.