Cisco Router Booting Process

  1. POST
  2. load image
  3. check config-register
  4. load startup-config or skip

링크

When you turn the router on, it runs through the following boot process.

The Power-On Self Test (POST) checks the router’s hardware. When the POST completes successfully, the System OK LED indicator comes on.
The router checks the configuration register to identify where to load the IOS image from. A setting of 0×2102 means that the router will use information in the startup-config file to locate the IOS image. If the startup-config file is missing or does not specify a location, it will check the following locations for the IOS image:

1. Flash (the default location)
2. TFTP server
3. ROM (used if no other source is found)

The router loads the configuration file into RAM (which configures the router). The router can load a configuration file from:

+ NVRAM (startup-configuration file)
+ TFTP server
If a configuration file is not found, the router starts in setup mode.

IPv6 Address Syntax

IPv6 주소 구문

내역 IPV4 IPV6(콜론-16진수)
Bit 수 32 bit 128 bit
경계 구분방법 8 bit(Octet)단위, 점으로 구분 16 bit(Block)단위, ;으로 구분
표기 진법 10진수(decimal) 16진수(hexa-decimal)
구조 명칭 Network address + Host address

다음은 이진 형식의 IPv6 주소의 예시 입니다.

0010000111011010000000001101001100000000000000000010111100111011
0000001010101010000000001111111111111110001010001001110001011010

128비트 주소가 16비트 경계를 따라 나뉘어집니다.

0010000111011010   0000000011010011   0000000000000000   0010111100111011
0000001010101010   0000000011111111   1111111000101000   1001110001011010

 

각 16비트 블록이 16진수로 변환되고 콜론으로 구분됩니다. 결과는 다음과 같습니다.

21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A

각 블록의 선행 16진수 0을 제거하고 표기할 수 있음

각 16비트 블록 내의 선행 0을 제거하여 IPv6 표시를 더 간단하게 만들 수 있습니다.

그러나 각 블록에 적어도 하나의 숫자는 있어야 합니다.

선행 0을 표시하지 않으면 주소 표시는 다음과 같이 됩니다.

21DA:D3:0:2F3B:2AA:FF:FE28:9C5A

1 개 이상의 블록 값이 연속해서 0일 경우 :: (이중콜론) 으로압축하여 표기할 수 있음

예를 들어 링크-로컬 주소 FE80:0:0:0:2AA:FF:FE9A:4CA2를 FE80::2AA:FF:FE9A:4CA2로 압축할 수 있습니다. 멀티캐스트 주소 FF02:0:0:0:0:0:0:2는 FF02::2로 압축할 수 있습니다.

0 압축을 사용하여 콜론-16진수 표기법으로 표시된 하나의 연속 16비트 블록 시리즈만 압축할 수 있습니다.

0 압축을 사용하여 16비트 블록의 일부를 포함할 수는 없습니다.

예를 들어 FF02:30:0:0:0:0:0:5를 FF02:3::5로 표시할 수 없습니다.

이중 콜론으로 표시된 0 비트 수를 확인하려면 압축된 주소의 블록 수를 계산하고 8에서 이 개수를 뺀 값에 16을 곱합니다.

예를 들어 주소 FF02::2에는 두 개의 블록(\”FF02\” 블록 및 \”2\” 블록)이 있습니다. 이중 콜론으로 표시된 0 비트 수는 96(96 = (8 – 2)×16)입니다.

0 압축은 지정된 주소에서 한 번만 사용할 수 있습니다. 그렇지 않으면 각 이중 콜론으로 표시된 0 비트 수를 확인할 수 없습니다.

Decrypt Type-7 password with Cisco IOS

http://www.ciscozine.com/2011/02/16/decrypt-type-7-password-with-cisco-ios/

There are many tools to decrypt Cisco type-7 password, based on Vigenere algorithm. But, what can we do if we can not use these software? The Cisco-IOS method might not be new to some, but those that don’t know about it will find it useful.

Suppose you would decrypt these string:

username cisco password 7 0718365B000A1016141D11050A2F6527273E
username fabio password 7 0110140558004B0224014600110C

To find the password, you can use the Cisco Key Chain:

Ciscozine(config)#key chain test
Ciscozine(config-keychain)#key 1
Ciscozine(config-keychain-key)#key-string 7 0718365B000A1016141D11050A2F6527273E
Ciscozine(config-keychain)#key 2
Ciscozine(config-keychain-key)#key-string 7 0110140558004B0224014600110C

The “show key chain” command displays the password configured in a key chain in cleartext even when the same password is stored as type-7 obfuscated password in the router configuration!

Ciscozine#show key chain
Key-chain test:
    key 1 -- text \"www.ciscozine.com\"
        accept lifetime (always valid) - (always valid) [valid now]
        send lifetime (always valid) - (always valid) [valid now]
    key 2 -- text \"crack-me-hihi\"
        accept lifetime (always valid) - (always valid) [valid now]
        send lifetime (always valid) - (always valid) [valid now]
Ciscozine#

[youtube http://www.youtube.com/watch?v=VaIvog5uNwE]

Remember: The Key Chain feature is used to add more security (key, lifetime, …) to RipV2, IGRP, EIGRP and DRP Server Agent, but could also be useful to decrypt type-7 password!

STP

위키백과의 Spanning Tree Protocol 설명

신장 트리 프로토콜

위키백과, 우리 모두의 백과사전.

신장 트리 프로토콜(영어spanning tree protocol, STP)은 래디아 펄먼(Radia Perlman)이 고안한 알고리즘에 기반한 OSI 2계층 프로토콜로 브리지 랜에서 루프 발생을 방지하기 위해 사용된다. 신장 트리 프로토콜은 IEEE 802.1D에서 정의되었으며 이름에서 알 수 있듯이 2계층 브리지(이더넷 스위치)를 통해 연결된 매시 네트워크내에서 신장 트리를 생성한다. 두 노드 사이에 활성된 경로가 두 개 이상 존재할 경우 브리지 루프가 발생할 수 있으며 브리지 루프는 몇 가지 문제를 야기시킨다. 첫째, 동일 MAC 주소(즉, 동일 호스트)가 여러 포트에서 보여 브리지에서 사용하는 MAC 주소 테이블(스위칭 포워딩 테이블)이 실패할 수 있다. 둘째, 브로드캐스트 스톰(broadcast storm)이 발생하여 브로드캐스트 패킷들이 스위치 사이를 무한히 돌게 된다. 브로드캐스트 스톰은 CPU 리소스와 대역폭을 극심히 소모시킨다. 신장 트리는 자동 백업을 지원하는 여분의 링크를 제공하면서 브리지 루프를 방지해 준다.

 

IEEE 802.1Q

위키백과 IEEE 802.1Q 설명

IEEE 802.1Q는 하나의 이더넷 네트워크에서 가상 랜(VLAN)을 지원하는 네트워크 표준이다. 이 표준은 이더넷 프레임을 위한 VLAN 태그 추가 시스템과 더불어, 이러한 프레임을 관리하는데 동반되는 브리지와 스위치에 쓰이는 절차들을 정의한다. 또, 이 표준은 IEEE 802.1p라는 QoS 우선 순위 스키마를 위한 예비를 포함하고 있으며 GARP를 정의한다.

이 표준은 IEEE 802 표준 위원회의 워킹 그룹인 IEEE 802.1이 개발한 것으로, 그 뒤로 IEEE 802.1akIEEE 802.1QatIEEE 802.1Qay를 포함한 개정판들을 활발하게 개발하고 있다.

프레임 포맷

\"Ethernet

 

802.1Q는 원래 프레임을 실제로 캡슐화(encapsulate)하지 않는다. 그 대신 이더넷 프레임에 대하여 출발지 MAC 주소와 원래 프레임의 이더타입/길이 필드들 사이에 32비트 필드를 추가하여 최소 및 최대 프레임 크기를 64 및 1,518 바이트 (옥텟)에서 64 및 1,522 바이트 (802.1Q가 존재하면 42 옥텟을 최소로 적용, 802.1Q가 없으면 46 옥텟을 최소로 적용. IEEE 802.3-2005 Clause 3.5 참조.)로 확장한다. TPID (태그 프로토콜 식별자, tag protocol identifier)를 위해 두 개의 바이트가 사용되며 다른 2바이트는 TCI(태그 제어 정보, tag control information)를 위해 쓰인다. TCI 필드는 더 나아가 PCP, DEI, VID로 분리된다.[1]

16 비트 3 비트 1 비트 12 비트
TPID TCI
PCP DEI VID
  • TPID: IEEE 802.1Q 태그 프레임으로서 프레임을 식별하기 위해 0x8100의 값으로 설정된 16비트 필드. 이 필드는 태그되지 않은 프레임에서 이더타입/길이 필드와 동일한 위치에 있으므로, 태그되지 않은 프레임과 일반 프레임을 구별하는데 사용할 수 있다.
  • TCI
    • PCP(Priority Code Point): IEEE 802.1p 우선 순위를 가리키는 3비트 필드. 프레임의 우선 순위를 가리킨다. 값은 0(최고 작용)부터 7(가장 높음)까지이다. 1은 가장 낮은 우선 순위를 가리킨다.
    • DEI(Drop Eligible Indicator): 1비트 필드.(이전에는 CFI[note 1][2]) PCP와는 별도로, 또는 결합해서 쓰이며 트래픽이 혼잡해질 때 제거되기 적합한 프레임들을 가리키는데 사용된다.[3]
    • VID(VLAN Identifier): VLAN이 어느 프레임에 속하는지를 결정하는 12비트 필드. 0x000, 0xFFF의 값이 예비로 보존된다. 다른 모든 값들은 VLAN 식별자들로 사용될 수 있으며 최대 4,094개의 VLAN까지 허용한다. 예비값 0x000은 프레임이 어떠한 VLAN에도 속하지 않음을 나타낸다. 이 경우 802.1Q는 우선 순위만 지정하고 이를 우선 순위 태그(priority tag)로 참조한다. 브리지에서는 VLAN 1 (기본 VLAN ID)이 관리 VLAN을 위해 예비로 자주 보존되며, 이는 업체에 따라 다르다.

Cisco Router Useful Command

## [ 라우터 명령어 집합 ]
“`
Router> enable (사용자모드에서 관리자모드로 전환하기)
“`

### [현재 사용하고 있는 구성파일 보기-RAM]
“`
Router# show running-config 또는 write terminal
“`

### [NVRAM에 저장된 구성파일 보기]
“`
Router# show startup-config
“`

### [현재 구성을 NVRAM에 저장하기]
“`
Router# write memory 또는
copy running-config startup config
“`

### [ 플래시 메모리 정보보기 ]
“`
Router# show flash
“`

### [ 라우터의 현재정보 보기 ]
“`
Router# show version
“`

### [ 인터페이스 정보보기 ]
“`
Router# show interface
“`

### [ 이더넷 인터페이스 0번 보기 ]
“`
Router# show interface ethernet 0
“`

### [ 라우터 CPU 사용률 보기 ]
“`
Router# show processes cpu
“`

### [ 라우터 메모리 상태 보기 ]
“`
Router# show memory
“`

### [ 구성모드로 들어가기 ]
“`
Router# configure terminal
Router(config)# CTRL + P -> 명령어 히스토리 단축키
“`

### [ 라우터의 이름과 enable secret , enable password 설정하기 ]
“`
Router(config)# hostname CISCO-2500
CISCO-2500(config)# enable secret cisco
CISCO-2500(config)# enable password seoul
CISCO-2500(config)# exit
CISCO-2500# exit
CISCO-2500> enable
Password: secret 암호가 설정되어있으면 secret를 넣는다. 암호는 대소문자 구분합니다.
CISCO-2500# show running-config (현재 설정된 구성정보보기)
secret 암호와 패스워드 암호가 보인다.
“`

### [ 텔넷 접속 패스워드 설정하기 ]
“`
CISCO-2500> enable
Router#> configure terminal
Router(config)# line vty 0 4
Router(config-line)#login ( 라인구성모드 )
Router(config-line)#password korea
Router(config-line)# exit
Router(config)#
“`

### [ 인터페이스 구성모드 들어가서 이더넷에 IP주소 할당하기 ]
“`
Router# configure terminal
Router(config)# interface ethernet 0
Router(config-if)# no shutdown ( 인터페이스 살리기 )
Router(config-if)#ip address 211.23.156.30 255.255.255.224
Router(config-if)# exit
Router(config)# exit
“`

### [ 시리얼 인터페이스 설정하기 ]
“`
Router# configure terminal ( 구성모드로 들어가기 )
Router(config)# interface serial 0
Router(config-if)# no shutdown
Router(config-if)# ip address 10.123.51.41 255.255.255.252
Router(config-if)# exit
Router(config)# exit
Router# show running-config ( 현재 구성설정보기 )
ethernet 0 에 할당된 IP 주소를 확인한다. 텔넷에 할당된 암호를 확인한다.
Router# show interface ( 현재 인터페이스 보기 )
이더넷0가 up 으로 설정되어 있는지 확인한다.
“`

### [ 라우팅 프로토콜 설정하기 ]
“`
Router> enable
Router# config terminal
Router(config)# router igrp 100
Router(conifg-router)# network 211.23.156.0
Router(conifg-router)# network 10.0.0.0
Router(conifg-router)# Ctrl+Z(exit) ( 프리빌리지모드로 나가기)
Router# show running-config ( 구성파일 보기 )
“`

### [RAM의 구성파일을 NVRAM에 저장하기]
“`
Router# copy running-config startup-config
“`

### [ 플래시 메모리 내용보기 ]
“`
Router# show flash
“`

### [IOS 이미지 파일을 TFTP 서버로 백업하기]
“`
Router# copy flash tftp
“`

### [ TFTP서버에서 플래시메모리 IOS 파일 복원하기 ]
“`
Router# copy tftp flash
“`

### [ 라우터의 구성파일 백업하기 ]
“`
Router# copy startup-config tftp
“`

### [라우터의 구성파일 복원하기]
“`
Router# copy tftp startup-config
“`

### [ 라우팅 테이블 보기 ]
“`
Router# show ip route
“`

### [ 스태틱 라우팅 구현하기 ]
“`
Router# configure terminal
Router(config)# ip route 210.162.65.0 255.255.255.0 203.155.10.2 1
Router(config)# exit
Router# show ip route
“`

### [ 디폴트 라우팅 설정하기 ]
“`
Router>enable
Router# configure terminal
Router(config)# interface ethernet 0
Router(config-if)# ip address 211.23.123.1 255.255.255.0
Router(config-if)# exit
Router(config)# interface serial 0
Router(config-if)# ip address 61.105.112.41 255.255.255.252
Router(config-if)# exit
Router(config)# ip route 0.0.0.0 0.0.0.0 61.105.112.42
Router(config)# exit
Router# write
“`