태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.
 

 
블로그 이미지
[www.netrain.co.kr]에서 네트워크/보안을 공부하시는 분들을 위해 서비스를 제공하는 블로그입니다 승진아빠
Follow silpir  on Twitter


 
 

OSI 7 Layer : 'Layer 6'와 'Layer 7'의 역할

네트워크 기초 | 2010.03.31 01:00 | Posted by 승진아빠

'Layer 6'는 'Presentation Layer'라고 하죠. 이 Layer에서 하는 일을 통신 Application간에 Data를 전달하기 위한 Format을 결정하게 됩니다. 무슨 말이냐구요? 다음 그림을 보시죠!

HTTP로 접근할때 Server는 다음의 정보를 전달합니다.
- Web Server : Apache 2.2.6
- OS system : Unix 기반
- Data Format : x-shockwave-flash 방식
그러므로, x-shockwave-flash를 구동시킬 수 있는 application을 이용하라는 말이죠. 


즉, 내가 던진 데이터를 Format이 어떤 형식이니 그 형식을 니가 알아서 읽을 수 있도록 하라는 말입니다. 이렇게 상호간에 Data를 전송하면 상대방이 그 Data를 읽을 수 있도록 정보를 전달하여야 합니다. 그 부분을 Presentation에서 수행을 하는 것입니다.

Data의 Format을 결정하고, Data를 Format에 맞도록 변환시키는 작업을 수행하는 것이죠. 그 Format이 압축되어 있거나 암호화 되어 있을 수 있겠죠? 그래서 Presentation Layer에서 압축과 암호화를 한다고 이야기 하는 것이랍니다. 물론 Data 영역에 대해서요. ^^

요즘 P2P 사이트에서 검열에 걸리지 않도록 하기 위해서 '소녀시대.mp3' 파일명을 '소녀시대.m'으로 변경해 놓는 경우가 많이 있습니다. 그런데, 이 파일을 윈도우 OS는 이해하지 못하는데 MP3를 구동시킬 수 있는 application으로 실행을 하면 잘 읽어 오는 것을 확인하실 수 있으셨을 겁니다. 왜 그런가요?

그것은 File은 저장이 되면서 자신이 무슨 Format으로 되어 있는지 File Header 부분에 기록이 되어 있기 때문에 그렇습니다. 하지만, 이 Format은 Presentation Layer라고 하지는 않습니다. 실제로 File이 저장되어 있는 Format과 전송할 때의 Format은 다르기 때문이죠. 우리가 OSI 7 Layer를 나눈 것은 두 시스템간에 통신을 하기 위한 단계를 나눈 것이잖아요. ^^

FTP로 전송을 할 때는 FTP 프로그램이 인식할 수 있는 Format으로 전달하여야 하고, HTTP로 전송을 할 때는 Web-Browser가 인식할 수 있는 Format으로 전달하여야 하지 않겠습니까? 이것이 바로 Presentation Layer의 핵심 역할이라고 보시면 됩니다.

그럼 Application Layer의 역할은 무엇일까요? 간단하게 생각하시면 됩니다. 우리가 통신을 위해 실행하는 모든 프로그램이 Application Layer에 속합니다. Explorer를 실행했는데 홈페이지를 'null'로 했어요. 그럼 아무하고도 통신 안하겠죠? 그 놈은 Application Layer가 아닙니다. 그런데, 제가 URL에 www.netrain.co.kr 이라고 쳤습니다. 그 순간 Explorer 는 저희 Web-Server와 통신을 하면서 Application Layer가 되는 것이죠.

FTP는 Application인가요? TELNET은요? PING은요? 다 Application Layer입니다. TCP의 특정 Port나 ICMP를 사용하는 Application이랍니다. ^^

휴~ OSI 7 Layer 겨우 다 정리를 했군요. 다음주 부터는 TCP/IP를 나가게 될텐데... 머리가 더 아프실지 몰라요. 특시 TCP 이놈이 만만하지 않죠? 다음주 부터 하나씩 배워보도록 하겠습니다.

'네트워크 기초' 카테고리의 다른 글

ARP의 이해  (0) 2010.04.06
TCP/IP 프로토콜 개요  (0) 2010.04.04
OSI 7 Layer : 'Layer 6'와 'Layer 7'의 역할  (0) 2010.03.31
OSI 7 Layer : 'Layer 5'의 역할  (0) 2010.03.30
OSI 7 Layer : 'Layer 4'의 역할  (0) 2010.03.29
Subnet을 쉽게 하는 방법  (0) 2010.03.29

OSI 7 Layer : 'Layer 5'의 역할

네트워크 기초 | 2010.03.30 02:30 | Posted by 승진아빠

오늘 갑작스럽게 수강생분의 CCNA 주말강의 요구가 있으셔서 번개에 콩볶듯 과정을 만들었습니다. 장비대여업체는 한달 기준으로 대여해 주기 때문에 6주간 한 분이 수업들으시면 거짓말 안하고 마이너스입니다. ^^
그래도, 저희에게 배우고 싶어하시는 분이시라면 과정을 진행해야죠! 강사가 없어서, 다른 과정이 열려서 안된다면 몰라도 할 수 있다면 해야하지 않겠습니까? 원래 토요일 과정이였는데 KT 교육때문에 사라졌었죠! 그래서, KT 교육때문에 일요일에 진행해도 괜잖겠냐고 여쭈어 보니까, Cool하게 OK 하셨다고 하시더군요.

혹시라도 [4월 11일 ~ 5월 16일]까지 6주간 일요일에 수업을 들으실 분이 계시면 교육센터로 문의주세요.
환급과정으로 신청하시면
158,750원 밖에 안되거든요. ^^

영업멘트는 이정도로 해 두고 진도를 나가도록 하겠습니다.

오늘은 Layer 5, 즉 Session Layer에 대해 학습을 해보도록 하겠습니다. 장비와 장비간에 TCP session을 맺어 잘 사용하고 있는데 Session Layer가 왜 필요할까요?

TCP를 사용하는 Application도 동작방식에 따라 차이가 있습니다. 예를 들어 FTP, Telnet 같은 Protocol은 일정한 시간안에 Traffic이 발생하면 Session을 끊지 않고 유지하는 반면, HTTP와 같은 Protocol은 상대방이 원하는 정보를 다 던지고 나면 Session을 끊어버립니다.

다음 그림을 보시면 Session을 종료할 때 사용하는 FIN packet이 전달되는 것을 확인하실 수 있습니다.



만약에 Naver가 모든 session을 유지해야 한다고 생각해 보세요. 동시에 접속하는 사용자를 100만이라고 하면, 30분동안 session을 잡고 있을 경우 수천만 session도 더 될겁니다. 엄청난 메모리를 가지고 있는 슈퍼컴퓨터가 있어야 처리가 가능하겠군요.

그래서, HTTP와 같은 Protocol은 Session을 유지하고 않고 Session을 끊어버리는데, 우리는 HTTP와 같이 Session을 유지하지 않는 Protocol을 'Stateless Protocol'이라고 부릅니다. 이 상황에서 여러분은 의문을 가지셔야 합니다.

'HTTP가 Session을 끊는다면 왜 10분이 지나도 내가 Login한 상태가 유지되는가? 라는 점입니다.

궁금하지 않으시다구요? 그럼, Session Layer에 관심 없으신 겁니다. HTTP는 사용자에 대한 정보를 관리하기 Application Header 정보에 'Session-ID'를 전달합니다. 비록 Session은 끊겼지만, 해당 Session-ID를 보고 해당 Traffic이 누구의 것인지를 구별해 내는 것이죠.

 

[Session-ID 궁금하신분은 클릭해서 자세한 정보를 보세요]

누가 구별합니까? HTTP protocol을 사용하는 Web-server Application이 구분을 하죠. 즉, TCP session은 두대의 Device간에 연결성을 확인하기 위한 것이라면, Session Layer는 Applicatino간에 User를 확인하기 위한 Session을 관리하는 Layer 입니다.

여자친구와 헤어지고 나서 여자 친구가 모르는 사람처럼 대합니까? 그 분의 Session에서 벗어난겁니다. 여러분이 가지고 있던 Session-ID를 잃어버렸거나, 여자친구가 당신의 Session-ID를 지웠거나 둘중에 하나입니다. 후자일 가능성이 더 크죠.

Session Layer에 대해 좀 정리가 되셨나요? 우리나라 책에 제대로 설명된 책이 없는거 같더군요.
오늘 수업은 여기까지 하도록 하겠습니다.

'네트워크 기초' 카테고리의 다른 글

TCP/IP 프로토콜 개요  (0) 2010.04.04
OSI 7 Layer : 'Layer 6'와 'Layer 7'의 역할  (0) 2010.03.31
OSI 7 Layer : 'Layer 5'의 역할  (0) 2010.03.30
OSI 7 Layer : 'Layer 4'의 역할  (0) 2010.03.29
Subnet을 쉽게 하는 방법  (0) 2010.03.29
Subnet의 원리  (1) 2010.03.29

show interface serial 0/0 너무 어려워요!

네트워크 심화 | 2010.03.29 16:15 | Posted by 승진아빠

오늘 날씨도 별로 좋지 않군요. 요즘 저희 직원들이 제 메일링에서 오타찾기 놀이를 하고 있어요. 늦게까지 공부를 시켜서 그렇지 저는 절대 갈구지 않는데... 직원들이 절 갈구네요. ^^

오늘은 컨설팅 사무실에 가지 않았습니다. 오늘 새로운 목표 한가지가 생겼거든요!

다름이 아니라 책을 한권 쓰려고요. 메일링 모아서 쓸꺼냐구요? 아니요. '실습으로 배우는 네트워크'라는 제목으로 실습을 먼저 하고 결과를 확인한 후, 왜 그런지 설명하는 식의 좀 색다른 책을 써보려고 합니다. 1년이 걸릴지 2년이 걸릴지 아무도 모르지만 먼가 새로운 것에 도전한다는 것 자체가 기분을 설레게 하잖아요. ^^

작년에 삼성 멀티캠퍼스에서 '실습으로 배우는 네트워크'라는 과정교재를 만들어 달라는 요청이 있었지만 시간이 없다는 핑계로 손도 안대고 있었습니다. 그런데, 오늘 아침에 퇴근(출근 아니에요 ^^)을 하는데 그런 생각이 들더군요.

'Network을 사람들이 어려워 하는 이유는 눈에 보이지 않기 때문이 아닐까? 그럼 눈에 보이도록 만들어 주면 조금 더 쉽게 이해하지 않을까? 눈으로 확인할 수 있는 책을 한번 써보자!'

전 뭐든지 결정하면 바로 추진하는 스타일입니다. 책 내용의 전체 구도를 잡는데 시간이 많이 소요될 것 같아 컨설팅 사무실에 가지 않고 학원으로 출근했습니다. ^^ 기대하지는 마시고요, 책 나오면 절판되지 않게 시립/구립 도서관에 가서 책을 신청해 주세요. 그럼, 몇권이라도 팔 수 있겠지요.

그리고, 최근에 보내주신 의견을 보면 다음과 같은 요청이 있었습니다.

 

1. 카페를 만들어 달라는 요구 : 원하는 정보를 얻고자 할 때, Search 기능을 사용하기 어렵다.

   → 카페는 있습니다. 홍보용으로 만들고 방치해 두고 있습니다. 활성화 시켜보도록 노력할께요.

       (저도 오타 수정 등 메일을 수정하고 싶은데 불가능해서 고심중에 있습니다)

2. 커뮤니케이션을 위한 창구를 열어달라는 요구 : 의견란으로는 질문 등 의견교환이 어렵다.

   → 카페를 열면 자연히 해결되겠지요. 제가 카페를 운영해 본적이 없어서 걱정입니다.

       (이중 작업도 조금은 부담이고, 저희 홈페이지 비활성화의 원인이 될까도 걱정입니다)

3. 동영상 강의에 대한 요구 : 동영상 강의는 언제쯤 시작할 것인가에 대한 질문입니다.

   → 생각보다 사업이 잘되지 않아 2가지 핵심문제를 가지고 있습니다.

       첫째, 생각보다 사업이 잘 되지 않아 동영상 강의를 위한 시스템이 없습니다.(Hosting 등)

       둘째, 4월말에 컨설팅이 끝나봐야 먼가를 좀 시작해 볼 수 있을 것 같습니다.

 

어려분이 보내주신 소중한 의견을 하나도 빠짐없이 체크하고 있습니다. 제 오타를 찾아주시는 것 까지도 저에게는 너무 감사하게 생각하고 있습니다. 보다 더 발전하는 넷트레인이 되도록 노력하겠습니다.

 

어제 표가 다 그림이라 좀 지저분했죠?

오늘은 FastEthernet과 다른 부분만 설명을 드리고, 세세한 내용은 [오늘의 학습]중에 직접 확인시켜드리며 진행을 하도록 하겠습니다. ^^

 

Serial0/0 is up, line protocol is up
 Hardware is M4T
 Internet address is 192.168.12.1/24
 MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec,
    reliability 255/255, txload 1/255, rxload 1/255
 Encapsulation HDLC, crc 16, loopback not set
 Keepalive set (10 sec)
 Last input 00:00:05, output 00:00:08, output hang never
 Last clearing of "show interface" counters never
 Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
 Queueing strategy: weighted fair
 Output queue: 0/1000/64/0 (size/max total/threshold/drops)
    Conversations  0/1/256 (active/max active/max total)
    Reserved Conversations 0/0 (allocated/max allocated)
    Available Bandwidth 1158 kilobits/sec
 5 minute input rate 0 bits/sec, 0 packets/sec
 5 minute output rate 0 bits/sec, 0 packets/sec
    9 packets input, 1050 bytes, 0 no buffer
    Received 9 broadcasts, 0 runts, 0 giants, 0 throttles
    0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
    14 packets output, 1464 bytes, 0 underruns
    0 output errors, 0 collisions, 4 interface resets
    0 output buffer failures, 0 output buffers swapped out
    5 carrier transitions     DCD=up  DSR=up  DTR=up  RTS=up  CTS=up

 

■ Serail 0/0 is up/down/administraviely down

 

   ○ up : CSU/DSU로부터 Carrier를 받은 경우 ('DCD=up'으로 표시됨)

   ○ down : Hardware 불량으로 CSU/DSU로 부터 Carrier을 받지 못한 경우 (DCD=down으로 표시됨) 

   ○ administratively down : shutdown 명령어를 통하여 관리자가 interface를 disable 한 경우  

 

■ line protocol is up/down

 

   ○ up : Keepalive 신호를 정상적으로 받은 경우

   ○ down

       - 상대방으로 부터 Keepalive를 3번 받지 못한 경우

       - 상호간 Layer 2 통신 Protocol이 다른 경우

       - 상호간 속도를 동기화 하지 못한 경우

       - 장비 Port 불량으로 DCE/DTC cable을 잘못 인식하는 경우

 

■  Queueing strategy: weighted fair
    Output queue: 0/1000/64/0 (size/max total/threshold/drops)
       Conversations  0/1/256 (active/max active/max total)
       Reserved Conversations 0/0 (allocated/max allocated)
       Available Bandwidth 1158 kilobits/sec

   ※ Weighted Fair Queue로 동작하는 경우 Dispaly 되는 정보

 

   ○ Output queue

       - size : 현재 queue에 있는 packet의 수

       - max : queue 안에 들어갈 수 있는 최대 packet의 수 (설정값 이상 queue에 들어갈 수 없음)

       - threshold : queue 안에 들어갈 수 있는 총 packet의 수

          (나중에 들어온 packet의 우선순위가 높은 경우, 64개이상 queue에 들어갈 수 있음) 

       - dorps : queue가 부족하여 drop된 packet의 수

   ○ Conversations

       - active : 현재 통신중인 flow의 수

       - max active : 현재까지 동시 사용 최대 flow의 수

       - max total : 동시에 사용 가능한 최대 flow의 수

   ○ Reserved Conversations

       - allocated : 현재 RSVP를 이용한 서비스에 대한 flow의 수

       - max allocated : RSVP를 이용한 서비스에 대한 동시에 사용가능한 최대 flow의 수

   ○ Available Bandwidth : ('Bandwidth' * 0.75)- '예약된 Bandwidth'   

       ex) 현재 예약된 bandwidth는 없음 - 1.544Mbps * 0.75 - 0 = 1.158Mbps


오늘은 밑에 있는 내용에 대해 학습해 보도록 하겠습니다. Router와 Switch가 조금 다르죠?

Router를 기준으로 설명드립니다.

FastEthernet0/0 is up, line protocol is up

Hardware is AmdFE, address is cc00.10ec.0000 (bia cc00.10ec.0000)

Internet address is 192.168.1.1/24

MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,

reliability 255/255, txload 1/255, rxload 1/255

Encapsulation ARPA, loopback not set

Keepalive set (10 sec)

Full-duplex, 100Mb/s, 100BaseTX/FX

ARP type: ARPA, ARP Timeout 04:00:00

Last input never, output 00:00:06, output hang never

Last clearing of "show interface" counters never

Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0

Queueing strategy: fifo

Output queue: 0/40 (size/max)

5 minute input rate 0 bits/sec, 0 packets/sec

5 minute output rate 0 bits/sec, 0 packets/sec

  0 packets input, 0 bytes

  Received 0 broadcasts, 0 runts, 0 giants, 0 throttles

  0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored

  0 watchdog

  0 input packets with dribble condition detected

  4 packets output, 1038 bytes, 0 underruns

  0 output errors, 0 collisions, 1 interface resets

  0 babbles, 0 late collision, 0 deferred

  0 lost carrier, 0 no carrier

  0 output buffer failures, 0 output buffers swapped out

자세한 내용은 차차 하나씩 알아보기로 하고, 오늘은 개념위주로 설명드리도록 하겠습니다. 그래도, 엔지니어라면 [show] 명령어를 통해 나온 정보는 읽을 수 있어야 하잖아요.

CISCO 사이트가서 찾아보면 뭐가 먼지 어렵게 써 있죠? 그래서, 조금 쉽게 정리를 해보려고 합니다. 아시는 분들도 그냥 정리한다는 차원에서 봐주세요. 제가 지금까지 내용을 다 아시는 분들은 공인강사들을 포함해서도 거의 만나뵙지 못했거든요.

자! 시작해 보도록 하시죠.

■ FastEthernet0/0 is up/down/administratively down 

up

정상적인 범위의 전압으로 전기신호가 Port로 유입되는 경우

down

Port, Cable 등 Hardware 문제로 전기신호를 전달받지 못하였거나, Line protocol이 err-disabled 상태인 경우

administratively down

관리자에 의해 Interface를 shutdown 한 경우

disabled

Keepalive interval 내에 5000개 이상의 Error를 받은 경우

(Keepalive interval : Default로 10초임)

■ line protocol is up/down 

up

상대방이 보내는 전기신호를 Frame으로 변경 가능한 경우

down

상대방이 보내는 전기신호의 의미를 파악하지 못하는 경우

- 속도가 동기화되지 않은 경우

- 상호간 통신 protocol이 다른 경우

- 상대방으로부터 Keepalive를 3번 받지 못한 경우

   (단, 자신이 no keepalive 명령어를 실행한 경우는 제외)

down (err-disabled)

스위치에 설정한 정책과 비교하여 비 정상적인 Frame이 유입되거나, 정상적인 범위를 벗어난 전압의 전기신호가 Port로 유입되는 경우

○ ErrDisable Reason

udld, bpduguard, security-violatio, channel-misconfig, pagp-flap, dtp-flap, link-flap, l2ptguard, psecure-violation, gbic-invalid, dhcp-rate-limit, mac-limit, unicast-flood, arp-inspection 등

■ Hardware is AmdFE, address is cc00.10ec.0000 (bia cc00.10ec.0000)

    Internet address is 192.168.1.1/24 

Hardware

Hardware의 Type (MCI Ethernet, SCI, cBus Ethernet 등)

address

LAN 상에서 FastEthernet이 사용하는 MAC address

(mac-address 명령어를 통하여 변경 가능함)

bia

FastEthernet의 Real Physical MAC address (ROM에 저장)

Internet address

Interface의 IP address

■ MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec, reliability 255/255, txload 1/255, rxload 1/255 

MTU

Interface로 보낼 수 있는 최대 Packet size

10/100/1000 Mbps = Default 1500bytes

10Gbps : = Default

(mtu 명령어를 통하여 변경 가능함)

BW

Router가 알고 있는 Interface의 속도로 Routing Protocol이나 QoS 등 Bandwidth 기반의 기술을 적용할 때 사용됨

※ 실제 속도가 다를 수 있음

(bandwidth 명령어를 통하여 변경 가능함)

DLY

Interface의 전송지연시간(Delay)으로 속도마다 정의되어 있음

10Mbps : 1000 microsecond

100Mbps : 100 microsecond

1Gbps : 10 microsecond

(delay 명령어를 통하여 변경 가능하나, 단위시간이 다름)

ex) 'delay 100'으로 설정하는 경우 ‘1000‘으로 표시됨

reliability

전송의 정확도를 5분 지수평균으로 나타내며 100%를 255로 변환하여 표현

(load-interval 명령어를 통하여 평균시간을 변경 가능함)

txload/rxload

Tx/Rx 사용율을 5분 지수평균으로 나타내며 100%를 255로 변환하여 표현

(load-interval 명령어를 통하여 평균시간을 변경 가능함)

■ Encapsulation ARPA, loopback not set 

Encapsulation

Interface의 Encapsulation 타입을 표시함

Default로 ARPA로 되어 있으며 시스코 장비는 SNAP로 구성변경이 불가능함 (SNAP로 Tx는 불가능하나 SNAP로 Rx는 가능함)

※ VLAN 구성시 Dot1q나 ISL Type으로 변경 가능함

loopback

Tx로 전송한 bit를 자신의 Rx로 받는 것을 의미함

(Default는 disable되어 있으나 loopback 명령어로 enable할 수 있음)

■ Keepalive set (10 sec)

   Full-duplex, 100Mb/s, 100BaseTX/FX 

Keepalive

상대방에게 자신이 살아있음을 알리기 위해 주기적으로 보내는 신호로 Default interval은 10초로 되어 있으며, Keepalive를 3회 받지 못했을 때 상대방이 Down이라고 인식하고 line protocol을 down 상태로 만듬

(keepalive 명령어를 통해 기능을 disable 하거나 Default interval을 변경할 수 있음)

Half/Full-Duplex

Interface의 통신방식을 의미함

10/100/1000 Mbps

Interface의 실제 속도를 의미함

BaseTX/FX

Interface의 Port Type을 의미함

■ Last input never, output 00:00:06, output hang never

   Last clearing of "show interface" counters never 

Last input

output

output hang

input : 마지막으로 Frame을 받은 후 흘러간 시간정보

output : 마지막으로 Frame을 보낸 후 흘러간 시간정보

output hang : 해당 인터페이스를 통하여 Frame 전송시, 시간이 너무 많이 걸려 인터페이스를 리셋한 후에 경과된 시간정보

(24시간이 경과하면 일자/시간이 표시되며, 일자/시간으로도 표시할 수 없으면 별표(*)가 표시됨)

※ Process-switched 하는 경우만 시간정보가 초기화됨

    Fast-switcded 하는 경우는 초기화 되지 않음

Last clearing of

"show interface"

counters

clear counters 명령어를 통하여 count 정보를 Reset한 후 경과된 시간정보 (clear counters 명령어를 한번도 실행하지 않은 경우 never로 표시됨)

■ ARP type: ARPA, ARP Timeout 04:00:00 

ARP type

ARP packet의 encapsulation 타입으로 Default는 ARPA임

(arp snap를 이용하여 802.3으로 변경 가능함)

ARP Timeout

ARP table에 등록되어 있는 시간으로 Default로 4시간임

(arp timeout을 통하여 변경 가능함)

■ Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0

   Queueing strategy: fifo

   Output queue: 0/40 (size/max) 

Input queue

size : 현재 Input queue에 들어 있는 Packet의 수

max : Input queue안에 들어 갈 수 있는 최대 Packet의 수

(hold-queue 명령어로 최대 4096까지 변경 가능함)

drops : Input queue가 부족하여 폐기된 Packet의 누적수

flushes : CPU가 process 처리를 하지 못하여 미처리된 packet의 누적수

Total output drops : Output queue가 부족하여 폐기된 Packet의 누적수

Queueing strategy

Interface에 적용된 Queueing 방식 (FIFO, WFQ 등)

Output queue

size : 현재

max : Output queue의 수

(hold-queue 명령어로 최대 4096까지 변경 가능함)

■ 5 minute input rate 0 bits/sec, 0 packets/sec

   5 minute output rate 0 bits/sec, 0 packets/sec

     0 packets input, 0 bytes

     Received 0 broadcasts, 0 runts, 0 giants, 0 throttles

     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored

     0 watchdog

     0 input packets with dribble condition detected

     4 packets output, 1038 bytes, 0 underruns

     0 output errors, 0 collisions, 1 interface resets

     0 babbles, 0 late collision, 0 deferred

     0 lost carrier, 0 no carrier

     0 output buffer failures, 0 output buffers swapped out 

5 minute

input/output rate

bits/sec 5분간 평균 사용속도 (bps)

packets/sec 5분간 평균 초당 처리 Packet 수 (pps)

Default load-interval로 5분간 평균값을 display함

(load-interval 명령어를 통하여 기준 시간을 변경할 수 있음)

packets input/output

input : Interface로 수신된 packet의 총용량

output : Interface로 송신된 packet의 총용량

(송/수신 packet중 error packet의 용량은 합쳐지지 않음)

broadcast

수신된 broadcast와 multicast packet의 총 수

runts

수신된 64byte보다 작은 Frame의 총 수 (폐기됨)

giants

수신된 1518byte보다 큰 Frame의 총 수 (폐기됨)

throttles

상대방으로 Frame 전송속도를 감소시키라는 정보를 받은 총 횟수

input/output error

input error : 수신된 모든 error packet의 총 수

output error : 송신된 모든 error packet의 총 수

CRC

CRC 값에 이상이 있는 packet의 총 수로 collision이 발생하거나 noise가 발생하는 경우 등 수가 증가함

frame

CRC에 이상이 있는 packet 중 byte 단위로 끝나지 않는 frame의 총 수

overrun

수신된 packet이 너무 많아 System buffer가 처리를 못하고 폐기시킨 packet의 충 수 (장비로 유입되었으나 처리하지 못함)

ignored

수신된 packet이 너무 많아 interface buffer가 처리를 못하고 폐기시킨 packet의 총 수 (장비로 유입되지 못하고 폐기됨)

watchdog

2048byte 보다 더 큰 packet을 수신하였을 때, Interface를 초기화한 총 횟수

collisions

collision이 발생하여 packet을 재전송한 총 횟수

장비에 따라 1회 재전송되었는지, 2회이상 재전송되었는지를 표시하는 경우도 있음

single collisions, multiple collisions

interface reset

수초동안 queue의 packet을 전송하지 못하는 경우 interface를 주기적으로 reset하는 총 횟수

babbles

1518byte보다 큰 Frame을 전송하는 경우 하나의 Frame이 점유할 수 있는 최대 회선 사용시간을 초과하는 총 횟수

late collisions

Preamble 8byte를 전송한 후에 collision을 감지한 경우의 총 횟수 (Preamble : 실제 Frame을 전송하기 전에 Frame의 시작이 어디서 부터인지 알리기 위해 전달하는 신호)

deferred

Packet을 전송하려 하나 수신되는 Frame이 있어서 제대로 전송하지 못하는 총 횟수

lost carrier

Cable 등이 불량이어서 Packet을 전송 중에 일부가 유실된 총 횟수

no carrier

Cable 등이 불량이서 Packet이 전송 중에 사라지는 총 횟수

output buffer failures

Interface buffer가 부족하여 System buffer를 사용하려 하나 System buffer도 부족하여 폐기된 Packet의 총 수

output buffers swapped out

Buffer의 값을 반환하지 못하여 새로운 값으로 swap하지 못한 총 횟수

FLSM과 VLSM의 차이점 (2)

네트워크 심화 | 2010.03.29 16:08 | Posted by 승진아빠

날씨가 많이 쌀쌀해 졌습니다. 내일 하루는 날씨가 좀 포근해 진다고 하니 야간작업이 있어도 하루정도 미루고, 소주한잔 하세요. 술을 못드신다고요? 안되셨지만, 술 드실 수 있는 분들을 위해 야간작업을 대신 뛰어주세요. ^^

 

오늘은 개인적으로 무지하게 큰 일이 발생해서 술 생각이 많이 나는군요. 오늘 제 PC 상태가 좋지 못해서 OS를 새로 깔았는데, 강의가 있어서 직원한테 부탁을 했습니다. 그런데, 지금까지 모아놓은 자료가 싹~ 날아가 버렸습니다. Backup을 해 놓지 않았냐구요?  파티션이 나누어져 있어서 'C' 드라이브를 'E' 드라이브에 백업을 해 뒀죠! 그런데, 'C'만 포멧하고 설치하라는 말을 하지 않은겁니다. ^^

 

어쨌든 이미 날아간 데이터를 어찌 하겠습니까? 지나간 일은 반성은 하되 후회는 하지 말아야지요. 없어졌으면 다시 모으면 되지 않겠습니까! 저는 2가지는 하지 않으려고 노력하면서 살고 있습니다.

 

1. 엎지러진 물을 담으려고 시간을 낭비하지 말자. 그 시간에 차라리 깨끗이 청소를 하자.
2. 앞으로 생길 일에 대해 걱정하지 말자. 걱정할 시간에 1초라도 더 대비를 하자.

 

즉, 후회와 걱정은 하지 않으려고 노력합니다. 반성과 준비를 해야죠.

 

아까와 같은 상황에서 왜 그랬냐고, 왜 물어보지 않고 마음대로 작업을 했냐고... 화를 낸다면 웃긴 일이겠죠. 저희 직원 입장에서는 하라고 해서 한거고, 그렇게 하는 것이 저의 의도라고 판단했을 겁니다. 만일, 스스로 판단하고 행동할 수 있는 능력을 키워주지 않는다면, 오랜 시간이 지난후에는 제가 더 힘들어 질겁니다.

 

오늘은 어제와 마찬가지로 FLSM과 VLSM에 대해서 추가적으로 배워보도록 하겠습니다.

 

먼저, FLSM부터 마저 정리를 하기로 하시죠. FLSM은 Subnet mask 정보를 전달할 수 없다고 했습니다. 그래서, 동일한 Major Network을 가지고 subneting을 하려면 반드시 동일한 Subnet으로 구성을 해야 했죠! 그러면 다른 Major Network을 가진 Network은 어떻게 보낼까요?

 

확인을 위해 어제와 같은 상황에서 R2에 Network 하나를 추가합니다. 다음과 같이요.

 

R2(config)# int fa1/0
R2(config-if)# ip add 172.16.1.1 255.255.255.0
R2(config-if)# router rip
R2(config-router)# network 172.16.0.0

 

 

노란 부분이 새로 추가한 '172.16.1.0/24' Network 입니다. Routing table을 한번 볼까요?

 

■ R1

 

Gateway of last resort is not set

R    172.16.0.0/16 [120/1] via 10.12.12.2, 00:00:02, FastEthernet0/0
     10.0.0.0/24 is subnetted, 2 subnets
C       10.12.12.0 is directly connected, FastEthernet0/0
C       10.1.1.0 is directly connected, FastEthernet1/0

 

■ R2

 

Gateway of last resort is not set

     172.16.0.0/24 is subnetted, 1 subnets
C       172.16.1.0 is directly connected, FastEthernet1/0

     10.0.0.0/24 is subnetted, 2 subnets
C       10.12.12.0 is directly connected, FastEthernet0/0
R       10.1.1.0 [120/1] via 10.12.12.1, 00:00:08, FastEthernet0/0

 

흠.. R2의 '172.16.1.0/24'가 R1에서는 '172.16.0.0/16'로 보이는군요. 이럴때 엔지니어들은 궁금해 하기 시작합니다. R2가 보낼때 172.16.0.0/16으로 보내는건지 아니면 R1이 받으면서 172.16.0.0/16으로 변경하는지요. 그래서, Debug를 걸어 봅니다. 궁금하지 않으시다구요? 그래도 계속 읽어주세요.

 

■ R1 (debug ip rip)

 

RIP: received v1 update from 10.12.12.2 on FastEthernet0/0
     172.16.0.0 in 1 hops

 

■ R2 (debug ip rip)

 

RIP: sending v1 update to 255.255.255.255 via FastEthernet0/0 (10.12.12.2)
RIP: build update entries
     network 172.16.0.0 metric 1

 

그렇군요. 보낼 때 '172.16.0.0/16'으로 보내는군요. 왜 그럴까요? 이것도 마찬가지로 Subnet mask 정보를 전달할 수 없기 때문에 그렇습니다. 만일, '172.16.1.0'만 보낸다면 받는 놈이 24bit인지, 25bit인지, 26bit인지 알수가 없겠죠? 그래서, 보내려는 Interface의 Network 정보와 보내려는 Network 정보가 서로간에 Major Network이 다른 경우 그냥 Major Network을 전송합니다.

 

'172.16.1.0/24'는 B Class로 16bit가 Major mask 잖아요. 그래서 '172.16.0.0/16'으로 전송을 하게 됩니다. 이제 FLSM에 대해 이해가 좀 가시나요?

 

그럼 VLSM은 어떻게 될까요? 자 RIPv1은 FLSM Routing Protocol이고 RIPv2는 VLSM Routing Protocol이죠? R1과 R2를 version 2로 바꾸어 보도록 하시죠.

 

■ R1&R2

 

router rip
   version 2
   no auto-summary ← (이놈은 'Distance Vector'의 특징이라 나중에 설명드립니다)

 

자! RIPv2로 바꾸었습니다. 다시 Routing table을 보도록 하시죠!

 

■ R1

 

Gateway of last resort is not set

     172.16.0.0/24 is subnetted, 1 subnets
R       172.16.1.0 [120/1] via 10.12.12.2, 00:00:25, FastEthernet0/0

     10.0.0.0/24 is subnetted, 2 subnets
C       10.12.12.0 is directly connected, FastEthernet0/0
C       10.1.1.0 is directly connected, FastEthernet1/0

 

■ R2

 

Gateway of last resort is not set

     172.16.0.0/24 is subnetted, 1 subnets
C       172.16.1.0 is directly connected, FastEthernet1/0
     10.0.0.0/24 is subnetted, 2 subnets
C       10.12.12.0 is directly connected, FastEthernet0/0
R       10.1.1.0 [120/1] via 10.12.12.1, 00:00:08, FastEthernet0/0

 

휴~ 다 제대로 나오는군요. 어떻게 이렇게 나올 수가 있을까요? Debug를 걸면 쉽게 확인할 수 있습니다. 한번 걸어보도록 하시죠!

 

■ R1 (debug ip rip)

 

RIP: received v2 update from 10.12.12.2 on FastEthernet0/0
     172.16.1.0/24 via 0.0.0.0 in 1 hops

 

■ R2 (debug ip rip)

 

RIP: sending v2 update to 224.0.0.9 via FastEthernet0/0 (10.12.12.2)
RIP: build update entries
     172.16.1.0/24 via 0.0.0.0, metric 1, tag 0

 

Version 1하고 무엇이 달라졌나요? 그렇습니다. 이제는 '/24'라고 Subnet mask 정보를 함께 전송을 하네요.

이렇게 되면 어떤 Subnet이나 사용이 가능하겠죠? Subnet mask 정보를 전달하니 Network의 Size를 마음대로 만들어도 제대로 된 정보를 전송가능할 겁니다. (RIP을 배우실 때, Data를 Capture해서 까보도록 하시죠)

 

즉, Network을 23bit로 설정하였든, 24bit로 설정하였든.. R1과 R2가 서로 잘못된 정보로 세팅되는 일을 없을 것이라는 이야기죠! 이런 경우는 필요한 Host 수만큼 유연하게 Network Size를 설계할 수 있겠군요. 그래서, 이것을 VLSM(Variable-Length Subnet Masking)이라고 부르는 겁니다.

 

VLSM : 직역하면 '가변적인 길이의 Subnet mask를 사용할 수 있다'는 뜻이고, 의역하면 '필요한 Host 수에 맞는 Network의 Size로 구성할 수 있다'는 정도의 뜻이 되겠네요.

 

어떻습니까? FLSM하고 VLSM하고의 차이가 좀 이해가 되시나요? 우리도 고정된 사고방식을 버리고, 상황상황에 맞게 변하는 유연한 사고방식을 가지면 세상이 좀 더 살기좋아 지지 않을까 하는 생각을 해봅니다. Network에는 항상 철학이 담겨져 있잖아요! ^^

FLSM과 VLSM의 차이점 (1)

네트워크 심화 | 2010.03.29 16:07 | Posted by 승진아빠

요즘 왜 네전따의 스폰서를 하려 하는지 이해가 됩니다. 단순히 잘못된 이메일을 찾는다고 글을 올렸을 뿐인데 하루 사이에 메일링을 20여분이 신청을 해 주셨네요. 네전따는 예전의 잘나가던 다른 카페처럼 사라지지 말고 지속적으로 네트워크 분야 발전을 위해 살아남았으면 좋겠습니다.

 

다 기억하시죠? IT 최고의 커뮤니티였던 BPAN을 시작으로 프리챌의 NRC, 진강훈씨의 4networker.. 한 시대를 풍미했던 네트워크 커뮤니티였죠. 네전따가 변질되어 간다는 소문도 들리지만, 어찌 되었건 엔지니어간 정보를 공유하고, NI 산업을 활성화시키기 위한 역할은 누군가 해야 하는 것이니까요... 제가 그 역할을 하지 못하면서 누구를 평가하겠습니까? 지속적으로 네전따가 활성화되기를 바랄 뿐입니다.

 

어찌되었건 저희는 돈이 없어서 스폰서는 못합니다. ^^ 정말 잘 강의한다고 소문나면 네전따에서 먼저 '스폰서 맺고 싶습니다!' 하지 않을까요? 오늘도 말이 안되는 소리로 메일링을 시작합니다.

 

자, FLSM과 VLSM을 학습하기 전에 'CIDR'이라는 말이 있는데 이건 먼가요? 많은 사람들이 'CIDR'을 다음과 같이 알고 있습니다.

 

※ CIDR (Classless Inter Domain Routing) = Supernet을 지원하는 것

 

맞나요? 혹시 여러분도 이렇게 알고 계신가요? RFC1519에서 CIDR을 정의하였고 거기 내용을 요약하면 이렇게 써 있습니다.

 

'대부분의 회사는 'C class' 1개로는 부족하고 'B Class' 1개를 할당하기에는 너무 작은 수의 직원을 가지고 있다. 그래서, 우리는 이 두 문제를 해결하기 위하여 CIDR을 만들었으며, CIDR은 회사에서 필요한 수만큼 Network Size를 할당하는 것을 원칙으로 한다.'

'그러기 위해 IP address를 할당하는 방법을 두가지로 고려하였는데, Class 별로 제한된 범위를 보다 큰 범위로 합치는 것(Supernet)과 더 작게 분산시키는 것(Subnet)을 적용하여야 한다.

 

즉, 'CIDR = Supernet + Subnet' 입니다. 그런데, Routing Protocol의 특징을 보면 어떤 놈은  CIDR을 지원하고 어떤 놈은 지원하지 않는다.. 라고 나오죠? 여러분 잘 생각해 보세요. 세상의 어떤 Routing Protocol도 Subnet을 지원하지 않는 Routing Protocol은 없습니다. 하지만, Supernet을 지원하지 않는 Routing Protocol은 있죠! CIDR을 지원한다고 하면 Supernet과 Subnet을 모두 지원해야 하기 때문에 Subnet만 지원하는 Routing Protocol은 CIDR을 지원하지 않는다고 하는 겁니다.

 

그러니, 많은 분들이 RFC를 읽어보지 않고.... '아~ CIDR은 Supernet이구나!' 오해를 하는거죠. 절대로 엔지니어라면 눈으로 확인하지 않은 것을 마치 사실인거처럼 이야기하시면 안됩니다. 누구한테 들었다... 내가 알기로는 그렇다... 이렇게 이야기 하셔야죠!

 

공부를 하실 때는 책을 3번 정도 읽으시고 Packet을 Capture해서 RFC 내용으로 공부해 보세요. 생각하지 못했던 사실을 발견하실거고, 이해가 가지 않았던 이론들이 왜 그래야만 하는지 이해가 더 쉽게 되실겁니다. 그리고나서 미친사람처럼 옆 사람 아무나 잡고 그 사실을 논리 정연하게 설명하세요. 그러면, 완벽하게 자신의 지식이 될 겁니다. ^^

 

아무리 많이 알아도 그것을 설명할 수 없다면 세상은 여러분을 지식인으로 인정하지 않을 겁니다.

 

어쨌든 좋습니다. CIDR은 알았어요. 헉! 'Subnet'과 'Supernet'이 뭐냐구요? 조금만 참으세요. 월~수에 진행되는 [네트워크 기초] 시간에 설명을 드릴 겁니다. 잘 모르시겠으면 다음주 [네트워크 기초] 자료를 읽고 다음주 목요일에 이 글을 다시 읽어주세요. 오늘은 [네트워크 심화] 시간이니까요.

 

자, 오늘은 FLSM에 대해서 간단히 살펴 보도록 하시죠!

 

FLSM(Fixed-Length Subnet Masking)을 직역하면 '고정된 길이의 Subnet mask를 사용하는 것'이라는 군요. 즉, Subneting을 할 수는 있는데 mask가 고정되어야 한다고 합니다. 왜 그럴까요?

 

다음의 경우를 한번 보도록 하시죠!

 

Configuration은 다음과 같습니다.

 

■ R1

 

interface FastEthernet0/0
 ip address 10.12.12.1 255.255.255.0

interface FastEthernet1/0
 ip address 10.1.1.1 255.255.255.0

interface FastEthernet2/0
 ip address 10.11.11.1 255.255.0.0

router rip
 network 10.0.0.0

 

■ R2

 

interface FastEthernet0/0
 ip address 10.12.12.2 255.255.255.0

router rip
 network 10.0.0.0

 

각각의 Routing table을 볼까요?

 

■ R1

 

Gateway of last resort is not set

     10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
C       10.11.0.0/16 is directly connected, FastEthernet2/0
C       10.12.12.0/24 is directly connected, FastEthernet0/0
C       10.1.1.0/24 is directly connected, FastEthernet1/0

 

■ R2

 

Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 2 subnets
C       10.12.12.0 is directly connected, FastEthernet0/0
R       10.1.1.0 [120/1] via 10.12.12.1, 00:00:07, FastEthernet0/0

 

헉! R1의 10.11.11.0/16은 어디로 갔나요?

 

R1에서 Debug를 걸어보도록 하겠습니다.

 

■ R1 (debug ip rip)

 

RIP: sending v1 update to 255.255.255.255 via FastEthernet2/0 (10.11.11.1)
RIP: build update entries - suppressing null update

 

RIP: sending v1 update to 255.255.255.255 via FastEthernet1/0 (10.1.1.1)
RIP: build update entries
subnet 10.12.12.0 metric 1

 

RIP: sending v1 update to 255.255.255.255 via FastEthernet0/0 (10.12.12.1)
RIP: build update entries
subnet 10.1.1.0 metric 1

 

흠... Fa0/0으로는 '10.1.1.0'만 보내고, Fa1/0으로는 '10.12.12.0'만 보내고, Fa2/0으로는 아무 정보도 보내지 않는군요. 더구나, Subnet 정보는 있지도 않군요. 그렇습니다. 특정 Routing Protocol은 Network 정보를 전달할 때, subnet 정보를 전달하지 않습니다. RIPv1과 같은 Routing Protocol의 경우입니다. 이러한 Routing Protocol을 FLSM Routing Protocol이라고 합니다. 후에 Routing Protocol을 공부하실 때 Packet 구조 까지 자세하게 들어가 보도록 하시고, 오늘은 이정도에서 다음으로 넘어가시죠!

 

그런데, 이 Subnet 정보를 전달하지 못하는 것 때문에 문제가 발생합니다.

 

자! 이번에는 동일한 구조에서 다음과 같이 구성을 바꾸었다고 생각해 보죠.

 

■ R1

 

R1(config)#int fa0/0
R1(config-if)#ip add 10.12.12.1 255.255.0.0

 

Fa0/0의 Network을 16bit로 변경하였습니다. 한번 Routing table을 볼까요?

 

■ R1

 

Gateway of last resort is not set

     10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
C       10.11.0.0/16 is directly connected, FastEthernet2/0
C       10.12.0.0/16 is directly connected, FastEthernet0/0
C       10.1.1.0/24 is directly connected, FastEthernet1/0

 

■ R2

 

Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 2 subnets
R       10.11.0.0 [120/1] via 10.12.12.1, 00:00:00, FastEthernet0/0
C       10.12.12.0 is directly connected, FastEthernet0/0

 

흠... R1에서는 '10.11.0.0/16'인데 R2에서는 '10.11.0.0/24'이네요? 왜 이런 현상이 이러나는 것일까요? 자, 설명을 드릴테니 잘 이해하셔야 합니다.

 

R1은 다음과 같은 Process를 거칩니다.

 

1. 내가 보려내는 Network 정보와 내가 정보를 내보내려는 Interface의 Major Network이 같은가를 비교합니다. 지금 저희 환경은 모든 Network의 Major Network이 '10.0.0.0/8' Network으로 같습니다. 그럼 1번은 같은 Network이군요.

 

내보려는 Network 정보 : 10.1.1.0/24, 10.11.0.0/16
내보려는 Interface의 Network : 10.12.0.0/16

 

2. 두개의 Network의 Major Network이 같을 경우 subnet이 길이가 같은지를 비교합니다.

 

10.1.1.0 = 24bit
10.11.0.0 = 16bit
10.12.0.0 = 16bit

10.11.0.0은 10.12.0.0과 16bit로 같지만 10.1.1.0은 24bit로 정보가 다르군요.

Subnet의 길이가 같으면 Update 정보를 전달하고, 다르면 정보를 보내지 않고 Drop 시킵니다. 왜요? R2가 하는 짓을 보면 쉽게 이해가 됩니다. 결국 R1은 Subnet mask 정보는 전달할 수 없으니까 '10.11.0.0'이라는 정보만 전달합니다.

 

R2는 정보를 받았을때, 자신이 받은 Network 정보와 정보를 받은 Interface의 Major Network이 같은가를 비교합니다. '10.0.0.0/8'로 같군요. 같으면 정보를 받은 Interface의 Subnet mask를 적용시킵니다. 왜요? 다르면 상대방이 보내주지 않았을 테니까요!

 

즉, 자신이 받은 10.11.0.0 정보에 10.12.12.0/24의 Subnet을 적용시켜 위의 그림처럼 10.11.0.0/24를 만들어 버리게 되는 것이지요. Subnet 정보를 전달 할 수 없으니까 별짓을 다하죠? 이게 FLSM하고 무슨 연관이 있을까요?

 

자 생각을 해보세요. 우리가 Subnet을 나누는데 어디는 24bit 어디는 25bit... 이렇게 다르게 구성하면 RIP이나 IGRP 같은 Routing Protocol은 어떻게 처리하겠습니까? 같은 Subnet mask를 가진 놈만 Network 정보를 전달하니까 제대로 정보가 전달되지 않겠죠? 다음과 같이요!

 

 

그래서, 모든 정보를 보낼 수 있게 하려면 Subnet의 길이를 같게 설정하여야 하는 겁니다. 그래서 고정된 길의의 Subnet Mask를 사용(FLSM)해야 하는 것이랍니다.

 

내일은 FLSM에서 Major Network이 다를 때, 동작방식을 조금만 더 살펴보고 VLSM을 배우도록 하겠습니다.

 

많은 사람들이 묻습니다. 어떻게 그렇게 많이 아세요? 대답은 한결 같습니다.

전 강사니까요. 강사라는 직업이 뭘 하는건가요? 책 한권이 나왔다고 그 책을 모든 사람이 다 읽어 볼 필요는 없습니다. 강사는 그 책을 먼저 읽고 이해한 다음 시간이 없어서 책을 정독할 수 없으신 분들을 위해 이런 내용이 있더라고요... 설명해 주는 사람에 불가하죠! 즉, 책 읽는게 제 직업입니다.

 

전문가는 여러분과 함께 일을 하시는 차장님이나 부장님이 전문가 이시고요. ^^ 그럼 좋은 하루 되시기 바랍니다. 감사합니다.

왜 '0.0.0.0/0'이 Default-route인가?

네트워크 심화 | 2010.03.29 16:05 | Posted by 승진아빠

많은 분들이 힘내라고 격려의 메세지를 '의견보내기'란을 통해 전달해 주시고 있습니다. 감사합니다. 오늘 한분이 이런 의견을 보내주셨어요. 메일링만 읽어도 업무에서 알아야 할 네트워크 정보는 다 알 수 있을것 같다고요.
메일링서비스에 대한 칭찬 감사드립니다. 그런데, 조금 아이러니하더군요. ^^

저희야 메일링을 통해 교육센터를 홍보하고 있지만, 저희가 불경기인 네트워크 교육시장을 더욱 망가트리는게 아닌가 하는 생각이요. 솔직히 저희는 아직 수강생을 3분 이상 모시고 강의해본적이 없습니다... 10분 모시고 강의하는 날이 오면 파티 한번 할 계획입니다. ^^

아! Voice CCIE 스터디 진행방법을 질문해 주시는 분들이 계시는데, 다음과 같이 진행할 예정입니다.
1. 일일 학습분량을 정해서 각자 공부

2. 매일 '저녁 10:30 ~ 11:00' 30분간 당일 공부한 분량을 제가 강의함

   (어차피 전 강사니까 강의하는게 목적이겠죠)

3. 강의 종료 후, 각자가 공부한 내용을 가지고 집단 토론

   (제가 이론을 잘못 이해했을 수도 있으니까요)

3개월은 이론을 준비하고, 3개월은 LAB을 준비할 생각입니다. 관심있으신 분들은 연락주세요.

그리고, Cisco가 미쳐가고 있습니다. CCIE 공인교육과정으로 'CCIE 360'이라는 프로그램이 있어요. Part1, Part2로 나누어져 있고 두 과정을 합치면 750만원입니다. 그 과정을 들은 사람에게는 CCIE Ended를 면제해 준다고 하는군요. Network를 공부하려는 사람들을 아주 봉으로 알고 있습니다.... 주니퍼 강의로 바꿔야 하나... 쩝!

오늘은 'Default-route'에 대해 학습한다고 했죠!

예전에 Default-route가 없던 시절... 상호간에 통신을 하려면 Router가 모든 Remote Network에 대한 정보를 알고 있어야 통신이 가능했을 겁니다.

처음에야 가능했게지만, Network의 수가 점점 많아지면서 예전의 성능낮은 Router는 무지하게 힘들어했겠죠?

보통 학원에서 '3개월 네트워크/보안 마스터 과정', '6개월 네트워크/보안 전문가 과정'... 이런게 많은데 참 웃기죠! CCNA를 한번 예로 들어볼까요? 대학에서 2학점 과정을 들으면 휴강이나 시험빼고 약 15주 30시간 정도를 배웁니다. 그런데, CCNA는 며칠간 30시간이 넘는 강의로 전부를 배우게 됩니다. 수강생 분들이 이해를 할 수 있을까요?
만일, 그걸 이해 했다면 하루평균 4시간 정도(5일 20학점) 수업듣는 대학과정은 'ALL A+' 받았을 겁니다.

그런데, 몇개월동안 CCNA, CCNP 과정 합쳐 놓고 쉬지도 않고 진행하는 과정이 무슨 의미가 있을까요? 아마, 두번째 과정부터는 강사 따로, 수강생 따로 놀겁니다. 한번에 받아들일 수 있는 지식의 양이 조금씩 오버되다가 머리가 Hang이 걸리는거죠. 그리고, 무엇보다 핵심은 강사가 전문가가 아닌데, 전문가를 양성한답니다. ^^ 전문가는 배워서 되는 것이 아니라, 남들이 인정할 때 되는거 아닌가요? ^^

Router도 자신이 처리 불가능한 정보를 가지고 있으면 제대로 동작을 못하고 Hang이 걸립니다. 16M 메모리 장비에 BGP를 돌리면 다운되는 경우가 종종 있죠. 그럼, Network 수는 증가하는데 Router는 어떻게 소화해야 할까요?

Router는 Packet을 Routing하기 위해 어떤 절차를 거치나요? Packet의 Destination IP address를 확인하고, Routing table에서 Destination으로 가는 Best-Path를 찾게 되죠. 그런데, 잘 생각해 보세요.

다음과 같은 경우 Router는 무엇을 비교할까요?

- Routing table :  C   192.168.1.0/24 is directly connected, FastEthernet 0/0
- Destination IP address : 192.168.1.5


32bit를 다 비교할까요? 아니죠! Network 부분만 비교하고 Routing 할겁니다. '192.168.1'로 시작하면 fa0/0으로 보내면 되니까요. Host 부분은 볼 필요가 없다는 이야기입니다.

그럼 다음과 같은 경우 Router는 무엇을 비교할까요?

- Routing table :  S   172.16.0.0/16 is directly connected, FastEthernet 0/1
- Destination IP address : 172.16.1.5


Network 부분인 16bit을 비교해서 '172.16'으로 시작하면 fa0/1로 보낼겁니다.

그럼 다음과 같은 경우 Router는 무엇을 비교할까요?

- Routing table :  S   10.0.0.0/8 is directly connected, FastEthernet 0/2
- Destination IP address : 10.10.1.5


당연히 Network 부분인 8bit를 비교해서 '10'으로 시작하면 fa0/2로 보낼겁니다.

그럼 마지막이군요. 다음과 같으면요?

- Routing table :  S   0.0.0.0/0 is directly connected, FastEthernet 0/0
- Destination IP address : 192.168.1.5

Network 부분이 0bit군요. 아무것도 비교하지 않고 모든 Packet을 fa0/3으로 전송하겠군요.
그래서, 'Default-route'(기본 경로)라고 부르기 시작한겁니다. 쉽죠?

다음주에는 네트워크 심화 때, 무엇을 학습할까요? 내일은 '금주의 LAB'으로 만나뵙도록 하겠습니다.

Loopback interface의 필요성

네트워크 심화 | 2010.03.29 16:04 | Posted by 승진아빠

안녕하세요. 이경태입니다.

어제 저희 직원들하고 S저축은행 컨설팅 현황분석 자료 만드니라 날밤을 세워서 방금 회식하고 들어왔습니다. 한 3일동안 2-3시간 자면서 고생을 좀 했더니 가만히 있어도 눈이 꾸벅꾸벅하네요. ^^

 

전 아무리 피곤해도 아무리 졸려도 사람이 좋아 술을 마십니다. 상대방이 만취해서 기억을 못하면 어떻습니까.... 지금 이순간은 같이 술을 먹는 사람이 서로에게 가장 필요한 사람이라는 것, 그것이 중요하지 않겠습니까?

 

만취해도 집에는 찾아갈 수 있는 귀속본능! 그것이 신이 나에게 내려준 유일한 축복이니까요............. (가끔 귀속본능의 능력을 앗아가기도 합니다.)

 

한 일주일 되었나요?

술에 취해 비틀거리는데 누군가가 물어보더군요. "당신 뭐야?" 순간, 무지하게 갈등했습니다. '흠.... 나는 누구일까?' 사춘기 이후로는 한번도 생각해 보지 않았던 질문입니다. 그래서, 대답을 했죠. "저는 이경태라고 하는데요." 그런데 갑자기 화를 내는군요.

 

"세상에 이경태가 너밖에 없어? 나 놀리는거지?" 주먹이 날아옵니다.

사람은 어떠한 상황에서도 맞으면 잘못을 뉘우쳐야합니다. 설사 잘못을 하지 않았어도 맞을 때는 뉘우쳐야 살아 남습니다. 그래서 우리는 이렇게 종교에 기대듯이 울면서 소리칩니다.

 

"잘못했어요. 잘못했어요. 용서해주세요!"

 

휴~ 용서를 받았습니다.... 하지만 신은 나에게 똑같은 시련을 주시는군요.

 

"당신이 뭐라고? 다시 말해봐!" T.T

 

회사 면접 볼 때도 자신있게 했던 자기소개... 경력 10여년만에 목숨이 위태합니다.

짤막하게 날 표현해야 해요. 그렇지 않으면 전 술먹고 죽은... 부검도 하지 않는 불쌍한 죽음이 될겁니다.

마음속으로 눈물이 쭉쭉 흘러내립니다.... '도대체 어쩌라구?'

 

그 때, 때리던 놈 중에 한놈이 저에게 질문을 합니다.... "너 혹시, 영등포 고등학교 이경태?"

 

머리를 스치는 생각! 살았구나! 난 고딩때 맞고만 다녀서 미움산적이 없어! 난 살았어....!!!!!!

그렇습니다. 살았습니다. 아무도 기억하지 못하는 이경태 였다면 절대 살아남을 수 없었을 겁니다. 인간승리죠!

고등학교 때, 노는 애들과 한번 친해져 보겠다고 배운 당구... 사랑받기 위해서는 잘쳐야 했고, 잘치기 위해서는 사랑하는 어머니의 돈이 많이 필요했었죠! 고딩이 당구 300을 치기 위해 조금씩 가져간 어머니의 돈지갑... 그게 저를 살렸습니다. 어머니의 은혜는 하늘과 같죠! 

 

여러분은 다음 질문에 뭐라고 대답 하시겠습니까? "너 누구냐?" 라는 질문......................

 

Router가 걸어가고 있었습니다. 그런데, 동네 양아치 NMS와 MRTG가 묻습니다....

'너 뭐냐?' 돈을 뜯기 위한 전형적인 수법이죠!

Router가 대답합니다. '저는 192.168.1.1이면서, 192.168.2.1이고, 192.168.3.1이 되기도 합니다.'

 

Router는 이미 어딘가로 끌려서서 이지메 당하고 있을겁니다. 영원히 우리 곁에 오지 못할지도 모릅니다.

 

실컷 맞은 Router가 겨우 집에 가서 생각에 생각을 하다가 결심을 합니다. 그래! 난 192.168.1.1이야.. 어디서 무엇을 하든지 자신을 대표할 수 있는 표현 192.168.1.1를 이야기 합니다. 그리고, 서시히 이름이 알려지기 지작합니다..... 이제는 192.168.1.1가 그를 대표할 수 있습니다. 192.168.1.1은 그의 자존심이고, 192,168.1.1이 바로 그였습니다. 그가 죽기 전에는 192.168.1.1도 절대로 죽지 않을 것입니다........... 우리는 이것을 Loopback 이라고 이야기 합니다.

 

본래 Loopback은 자신의 서비스를 점검하는 용도로 사용해 왔습니다. 127.0.0.0/8로요... 그런데, 외부에서도 체크 가능한 Loopback address를 만들면, 관리하기가 편하겠다는 생각이 들었습니다. 그래서, 실제로 존재하지 않는 논리적인 Interface를 만들어 사용하는 Loopback address를 만들었죠! 그럼, 무슨 용도로 쓰일까요? OSPF에서 Router-id로 사용하라고 만들었을까요? BGP에서 update-source로 사용하라고 loopback을 만들었을까요? Loopback은 관리 목적상 만들었습니다.

 

^^ 아! 이런 이야기를 하려고 술 마시는 이야기를 했구나....

아니요, 솔직히 어제 밤셈해서 진짜로 지금 술먹고 들어왔어요. 파도타기가 Broadcast로 보이고, 사람이 Hop count로 세어지는게 이바닥 삶 아니겠습니까? ^^

 

Router는 자신이 발생시킨 Packet에 대해서 Outgoing interface의 IP address를 Srource IP address로 설정해서 보냅니다. 만약, Router가 다음과 같이 Interface가 3개 있다고 가정하죠.

FastEthernet 0/0 = 192,168.1.1

FastEthernet 0/1 = 192.168.2.1

Serial 0/0 = 192.168.3.1

그런데, Syslog Server로 가는 Best-Path 경로에 대하여 Outgoing Interface가 FastEthernet 0/0이에요. 이 경우, Router에 어떤 문제가 생기면 Source IP address로 192,168.1.1을 설정하여 Syslog Server에게 전송을 할겁니다. 근데 만약에 FastEthernet 0/0이 down되었습니다. 그러면, 2등 경로를 찾을것이고 2등 경로가 FastEthernet 0/1이라면 그 다음부터는 192.168.2.1을 Source IP address로 Syslog Server에게 전송할 겁니다.

 

관리자는 192.168.1.1과 192.168.2.1은 같은 Router라는 것을 알고 있어야 겠네요. 참 힘들꺼에요.

 

그런데 다음과 같은 규칙이 있으면 얼만 좋을까요?

 

IP address가 '10.0'으로 시작하면 본사, '10.1'로 시작하면 지역본부 1, '10.2'로 시작하면 지역본부 2.....

그리고 '10.1.1'로 시작하면 지역본부 1의 'ㄱ'으로 시작하는 지사, '10.1.2'로 시작하면 지역본부 1의 'ㄴ'으로 시작하는 지사...... IP만 봐도 무슨 Router인줄 알겠죠? 그리고, 그 IP address가 down되어서 Source IP address가 바뀌지 않았으면 좋겠어요. 그래서, 우리는 loopback interface를 만들었습니다. 가상의 Interface이기 때문에 Router 자체에 문제가 발생하지 않는한 절대 down되지 않습니다. 그리고, Syslog Server나 NTP Server에게 Packet을 보낼때 Source IP address로 loopback address를 사용하면 Source IP address가 변함없으니 관리하는데 무지하게 쉬워지겠죠!

 

많은 분들이 질문을 합니다. 'Loopback이 먼가요?' Loopback은 Router를 관리하기 위해 만든 Interface이고, Router를 대표하는 interface입니다. OSPF는 loopback을 Router-id 정하는데 사용했고, BGP는 update-source로 사용했습니다.

 

사람이 술을 먹으면 말이 많아진다는데 전 글이 길어졌군요.

 

전 보통 사람입니다. 음주가무를 즐기는 사람이죠! ^^ 술한잔 하고 왔어도 노력하는 모습 이쁘게 봐주시고요, 내일 Defualt-route로 만나뵙도록 하겠습니다. 감사합니다.

Static route 알고 쓰시나요? (2)

네트워크 심화 | 2010.03.29 16:02 | Posted by 승진아빠

Static route가 쉽지 않죠? 쉬우시다고요? 그럼 여러분은 전문가 대열에 한발 다가서 계신겁니다.
세상에 어려운 이론은 없습니다. 새로운 이론이 나왔을 때, 너무 어렵고 복잡하면 아무리 좋은 기술이라도 표준으로 채택되기 어렵거든요. 원리원칙을 기억하세요. 나머지는 그 안에서 파생된 잔기술일 뿐입니다. Static route의 개념을 이해하시면, Routing Protocol에서 어렵다고 하는 BGP를 공부하실 때나 MPLS를 공부하실 때 많은 도움이 되실겁니다.

그럼 오늘 내용을 시작해 볼까요. 어제는 메일링을 구성도 없이 보내드려 글을 읽는데 좀 힘드셨죠? 오늘은 구성도도 함께 넣었습니다. 어제와 동일한 그림이니 어제 글도 함께 점검해 보세요.


오늘도 마찬가지로 Routing Protocol을 구성하지 않은 상태의 Routing table부터 점검해 보도록 하겠습니다.

■ Internet_Router의 Routing table

Internet_Router# show ip route

   10.0.0.0/24 is subnetted, 1 subnets
C       10.1.1.0 is directly connected, FastEthernet0/0
C   192.168.1.0/24 is directly connected, Serial1/0

■ Inter_Router의 Routing table

Inter_Router# show ip route

   172.16.0.0/24 is subnetted, 1 subnets
C       172.16.1.0 is directly connected, FastEthernet1/0
   10.0.0.0/24 is subnetted, 1 subnets
C       10.1.1.0 is directly connected, FastEthernet0/0

당연히 어제하고 똑같겠죠. ^^
자, 이제 Static Routing Protocol을 구성해 보도록 하겠습니다.

■ Internet_Router 설정

  - ip route 0.0.0.0 0.0.0.0 192.168.1.1 (ISP Router의 Serial0/0 IP address)
  - ip route 172.16.1.0 255.255.255.0 10.1.1.2 (Inter_Router의 FastEthernet0/0 IP address)


■ Inter_Router 설정

  - ip route 0.0.0.0 0.0.0.0 10.1.1.2 (Internet_Router의 FastEthernet1/0 IP address)

이번에는 Next-hop address로 Static route를 설정하였군요. 다시한번 Routing table을 볼까요?

■ Internet_Router

    172.16.0.0/24 is subnetted, 1 subnets
S       172.16.1.0 [1/0] via 10.1.1.2
    10.0.0.0/24 is subnetted, 1 subnets
C       10.1.1.0 is directly connected, FastEthernet0/0
C    192.168.1.0/24 is directly connected, Serial1/0
S*   0.0.0.0/0 [1/0] via 192.168.1.1

■ Inter_Router

    172.16.0.0/24 is subnetted, 1 subnets
C       172.16.1.0 is directly connected, FastEthernet1/0
    10.0.0.0/24 is subnetted, 1 subnets
C       10.1.1.0 is directly connected, FastEthernet0/0
S*   0.0.0.0/0 [1/0] via 10.1.1.1

이제 상호간 통신이 될 수 있는 상태가 되었네요. 이제 Ping을 실행해 볼까요?

Internet_Router#ping 172.16.1.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 32/43/76 ms

오늘도 성공했습니다......... 그런데, 무엇이 문제일까요? Routing table을 잘 보세요.
[S       172.16.1.0 [1/0] via 10.1.1.2]
무엇이 없나요? Outgoing interface 정보가 보이지를 않습니다. Router는 기계거든요. 그래서 반드시 Packet을 어디로 내보내야 하는지를 알아야 합니다. 그런데, '172.16.1.0 /24' Network은 10.1.1.2로 보내라고만 되어 있네요. 이런 경우 Router는 10.1.1.2로 보내기 위한 경로를 탐색하기 위해 Routing table을 다시한번 lookup합니다.
[C       10.1.1.0 is directly connected, FastEthernet0/0]
아! 10.1.1.2로 가려면 FastEthernet0/0으로 보내면 되는군요.

자, Router가 하는 일을 다시한번 점검해 보기로 하시죠.
1. Destination에 대한 정보를 읽는다 : 172.16.1.1
2. Routing table에서 Destination으로 가는 경로를 탐색한다 : 172.16.1.0 /24 → 10.1.1.2
3. Outgoing Interface로 전송을 준비한다 : 헉! Outgoing interface 정보가 없네! 10.1.1.2는 어디에 있는거야?
4. Next-hop에 대한 정보를 Routing table에서 찾는다 : 10.1.1.0 /24 → FastEthernet0/0 드디어 찾았군요.
5. Frame으로 만들어 전송한다

무슨 일이 일어났나요? Packet 하나를 보내기 위해 Routing table을 두번 탐색했습니다. 이것을 [Recusive lookup]이라고 부릅니다. BGP에서 발생하는 현상 중 하나죠.

※ CEF 스위칭 기능에 의해 해결되기는 했지만, 그것은 CEF에 대해 공부할 때 말씀드리도록 하겠습니다.

그럼, 어제와 오늘 학습내용을 정리하면 Static route를 만들 때, Outgoing interface로 설정하는 것과 Next-hop으로 설정하는거 둘 다 문제가 있다는 이야기군요. 그럼 어떻게 설정해야 하나요?

당연히 둘다 주셔서 완전한 Routing table을 만들어 주시면 됩니다.

■ Internet_Router 설정의 예

  - ip route 172.16.1.0 255.255.255.0 FastEthernet0/0 10.1.1.2

■ Internet_Router의 Routing table

    172.16.0.0/24 is subnetted, 1 subnets
S       172.16.1.0 [1/0] via 10.1.1.2, FastEthernet0/0
    10.0.0.0/24 is subnetted, 1 subnets
C       10.1.1.0 is directly connected, FastEthernet0/0
C    192.168.1.0/24 is directly connected, Serial1/0
S*   0.0.0.0/0 [1/0] via 192.168.1.1

결과가 어떤가요? dircetly connected라고 나오지 않으니 ARP를 보내지 않을 것이고, 뒤에 Outgoing Interface 정보까지 있으니 Recusive lookup 같은 현상도 일어나지 않겠죠?

Static route 알고 쓰시나요? 이제는 '예'라고 하셨으면 좋겠네요.
내일은 LAB 문제를 드릴겁니다. 한번 풀어보세요. ^^

Static route 알고 쓰시나요? (1)

네트워크 심화 | 2010.03.29 16:01 | Posted by 승진아빠

오늘은 네트워크 기초단계를 어느정도 이해한다는 가정하여 약간은 수준 높은 부분을 공부해 보기로 하겠습니다.

네트워크 심화학습이기 때문에 그렇습니다. 너무 쉬운 부분만 하면 조금 실력 있는 분들이 지루해 하시거든요. ^^

오늘은 그 어려운 'static route' 입니다. 한국어로는 고정되었다고 해서 '정적경로'라고 합니다.
'static route'는 너무 쉽다고요? 그럼 다음의 경우를 한번 살펴보기로 하시죠.

두개의 Router가 다음과 같이 연결되어 있습니다. 아직 Routing Protocol을 구동시키지 않은 상태죠.

Routing table을 한번 볼까요?

■ Internet_Router의 Routing table

Internet_Router# show ip route

    10.0.0.0/24 is subnetted, 1 subnets
C       10.1.1.0 is directly connected, FastEthernet0/0
C    192.168.1.0/24 is directly connected, Serial1/0

■ Inter_Router의 Routing table

Inter_Router# show ip route

    172.16.0.0/24 is subnetted, 1 subnets
C       172.16.1.0 is directly connected, FastEthernet1/0
    10.0.0.0/24 is subnetted, 1 subnets
C       10.1.1.0 is directly connected, FastEthernet0/0

자, 이제 Static Routing Protocol을 구성해 보도록 하겠습니다.

■ Internet_Router 설정
   - ip route 0.0.0.0 0.0.0.0 serial 1/0
   - ip route 172.16.1.0 255.255.255.0 fastEthernet 0/0

■ Inter_Router 설정
   - ip route 0.0.0.0 0.0.0.0 fastEthernet 0/0

다시한번 Routing table을 볼까요?

■ Internet_Router 설정

Internet_Router# show ip route

    172.16.0.0/24 is subnetted, 1 subnets
S       172.16.1.0 is directly connected, FastEthernet0/0
    10.0.0.0/24 is subnetted, 1 subnets
C       10.1.1.0 is directly connected, FastEthernet0/0
C    192.168.1.0/24 is directly connected, Serial1/0
S*   0.0.0.0/0 is directly connected, Serial1/0

■ Inter_Router 설정

Inter_Router# show ip route

    172.16.0.0/24 is subnetted, 1 subnets
C       172.16.1.0 is directly connected, FastEthernet1/0
    10.0.0.0/24 is subnetted, 1 subnets
C       10.1.1.0 is directly connected, FastEthernet0/0
S*   0.0.0.0/0 is directly connected, FastEthernet0/0

이제 상호간 통신이 될 수 있는 상태가 되었네요. 이제 Ping을 실행해 볼까요?

Internet_Router#ping 172.16.1.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 32/43/76 ms

성공했습니다......... 이게 다냐구요? 이게 다면 네트워크 기초겠지, 심화겠습니까! ^^
자 Routing table에 어떻게 나오나요? 잘 보세요. Internet_Router에서 자세히 보면
[S       172.16.1.0 is directly connected, FastEthernet0/0]
directly connected 라고 나오는걸 확인하실 수 있습니다. 왜 그럴까요? State route를 설정할때 Outgoing Interface를 설정했기 때문입니다. 멍청한 Router는 해당되는 Interface에 해당 Network이 바로 연결되어 있는지 오해를 하는거죠! 즉, Internet_Router는 172.16.1.1로 Packet을 전달하기 위하여 'fastEthernet 0/0'으로 ARP을 보내게 됩니다. 그 ARP는 건너편 Network인 172.16.1.1에 도달할까요? 당연히 도달하지 못하죠...

그럼 왜 Ping이 성공하는거죠?

그것은 Router는 기본으로 fastEthernet interface에 Proxy-arp 기능이 동작하고 있어서 자신이 알고 있는 Network 정보에 대해서 대신 ARP에 응답을 하도록 되어 있습니다. 그럼, 그 기능을 disable하면 문제가 발생하겠군요. 한번 해보도록 하시죠.

Inter_Router(config)# int fa0/0
Inter_Router(config-if)# no ip proxy-arp

이제 다시 Ping을 쳐 볼까요?

Internet_Router#ping 172.16.1.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 28/64/132 ms

헉! 성공하네요. 그건 ARP table이 지워지지 않았기 때문입니다.

Internet_Router#show arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  10.1.1.2               30   cc05.0a54.0000  ARPA   FastEthernet0/0
Internet  10.1.1.1                -   cc04.0a54.0000  ARPA   FastEthernet0/0
Internet  172.16.1.1            17   cc05.0a54.0000  ARPA   FastEthernet0/0

ARP table을 지우고 Ping을 다시 한번 시도해보기로 하시죠.

Internet_Router#clear arp
Internet_Router#ping 172.16.1.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
Internet_Router#


Ping이 안되는것을 확인하실 수 있습니다. 요즘 보안 문제때문에 Proxy-arp을 disable하는 회사가 많이 있습니다. 그런 경우에는 outgoing interface로 static route를 주면 전달이 되지 않습니다.

내일은 Static route 설정시 next-hop을 주면 무슨 문제가 발생하는지 확인해 보도록 하겠습니다.

OSI 7 Layer : 'Layer 4'의 역할

네트워크 기초 | 2010.03.29 09:40 | Posted by 승진아빠

날씨가 많이 풀렸습니다. 드디어 봄이 오는가 보네요. 봄이 오면 온풍기를 안돌려도 되니 전기세가 줄어들겠지요. 수강생도 없는 학원이 무슨 전기세가 50만원이나 나와요. ^^

오늘은 OSI 7 Layer에서 Layer 4의 역할에 대해 학습해 보도록 하겠습니다. 자세한 내용은 TCP/UDP에서 하기로 하고요, 오늘은 원리를 중심으로 간략하게 설명해 드릴께요. 많은 분들이 TCP session과 Session Layer를 굉장히 헷갈려 하시더라구요. 오늘과 내일 메일링을 잘 읽으시면 아무것도 아니라는 것을 아시게 될겁니다.

'Layer 1 ~ Layer 3'에 대해 학습을 하셨는데 잘 보시면 이들은 목적지까지 Data가 제대로 도착했는지 관심이 없습니다. 당연히 Data를 전송했으면 제대로 도착했는지, 상대방이 나랑 통신할 준비가 되었는지 점검을 해야 할겁니다. 상대방이 나랑 서비스할 준비도 안되었는데 Data를 계속 보낸다면 엄청난 자원 낭비가 발생하겠죠? 그 역할을 Layer 4가 수행합니다.

■ Layer 4의 역할

   1. 상호간 Data 전달이 가능한지 확인하는 기능

   2. 상호간 통신 준비가 되었는지 확인하는 기능

   3. 상호간 이상없이 Data가 전송되었는지 확인하는 기능

   4. 상호간 통신속도를 조절하는 기능

 이것들이 뭐냐구요? 들어보시면 별거 아니랍니다. 하나씩 살펴보도록 하시죠!

1. 상호간 Data 전달이 가능한지 확인하는 기능

Layer 4에서는 Device와 Device간에 VC(Virtual Circuit)이라는 것을 만들어 Data 전송을 관리합니다. 대표적인 예가 TCP의 3-way Handshaking을 통한 TCP session이 있습니다. 그런데, 잘 보시면 이놈의 Session이란게 별게 아니라 SYN을 던지고 ACK를 받는게 전부랍니다. ACK를 받게 되면 Session table에 등록을 해서 관리를 하는거죠.

SYN을 보냈는데 ACK를 받았다는 의미는 무엇인가요? SYN이 상대방에 잘 도착했고, 상대방이 보낸 ACK가 잘 도착했다는 뜻이죠. 즉, 상호간에 통신이 가능하다는 것을 의미합니다. ^^

2. 상호간 통신 준비가 되었는지 확인하는 기능

통신용 프로그램은 실행과 동시에 Layer 4로부터 Service 제공을 위한 Port를 할당 받습니다. Port를 할당받지 못하면 error 메세지와 함께 프로그램이 실행이 되지를 않죠. 즉, ALFTP를 server로 돌리게 되면 ALFTP 프로그램은 Layer 4에게 21번 Port를 할당해 달라고 요청을 하게됩니다. 그런데 이미 다른 프로그램이 21번 Port를 할당 받아서 사용중이라면 error 메세지를 던져주죠!

물론 21번 Port를 아무에게도 할당하지 않았다면 21번 Port를 할당해주고, TCP 21번 Port를 Listening 상태로 만듭니다. 그 후에는 Destination Port가 TCP 21번이면 ALFTP 프로그램한테 던져주면 되겠군요. ^^

이때, 상호간 세션을 맺기 전까지는 어플리케이션으로 Data를 전달하지 않습니다. 단순히 서비스 Port가 오픈되어 있는지만 확인하는 것이죠! 즉, 상호간 통신 준비가 되었는지 확인하는 겁니다. 그 역할을 Layer 4가 수행합니다.

3. 상호간 이상없이 Data가 전송되었는지 확인하는 기능

내가 보낸 Data가 상대방에게 제대로 전송되었는지 확인할 필요가 있습니다. 중간에 Data가 유실되었을 수도 있고, 여러 개의 전송경로가 있는 경우에는 나중에 보낸 Data가 상대방에게 먼저 도착할 수도 있거든요. 그럼, 어떻게 이러한 것들을 확인할 수 있을까요? 그렇습니다. Data를 보낼때 번호를 부여해서 보내면 되겠군요. 우리는 이것을 Sequence Number라고 합니다.

보낸 쪽에서 1,2,3,4 번호를 부여해서 전송을 하고, 받는 쪽에서 1,3,4가 들어오면 2번을 받지 못했으니 다시 보내달라고 요청을 하면 2번을 다시 재전송함으로써 정확하게 Data가 전송될 수 있도록 하는 것이죠! 보다 자세한 내용은 TCP를 학습할 때 하도록 하겠습니다. 중요한 것은 상호간에 이상없이 Data가 전송되었는지 확인하고 이상이 있을 경우 다시 재전송하는 일련의 작업들을 Layer 4에서 수행한다는 것입니다. 이것을 'Error-control'이라고 이야기 하죠!

4. 상호간 통신속도를 조절하는 기능

통신경로상에 트래픽이 폭주해서 Data 유실이 많다면 어떤 문제가 발생할까요? 계속 재전송을 요청할 것이고, 재전송을 계속 하면 트래픽 폭주는 가중될 겁니다. 즉, [트래픽 폭주 → 데이터유실 → 데이터 재전송 → 트래픽 폭주] 식으로 악순환이 반복되겠죠! 그럼 어떻게 해야 이 문제가 해결될까요? 트래픽이 폭주되지 않도록 만들면 되겠네요.. 그렇죠?

Layer 4는 데이터유실이 발생하면 한번에 전송할 수 있는 양을 줄이게 됩니다. 무슨 말이냐구요? Sequence number가 있기 때문에 굳이 Data를 한 개 보낼때마다 잘 받았다는 Ack를 받을 필요는 없거든요. 그래서, buffer size만큼의 Data를 한꺼번에 다 전송하고 Ack를 기다리는 방식을 사용합니다.

그러면, buffer size가 10Kbyte일 때와 20Kbyte일 때.. 어느것이 더 빨리 전송을 하게 될까요? 당연히 20Kbyte를 한꺼번에 전송할 때 전송속도가 빨라지게 될겁니다. 그걸 거꾸로 이용하자는 이야기입니다. 데이터유실이 발생하면 재전송을 하게 될테고, 재전송 요청을 할 때, buffer size를 줄이는 거죠!

그렇게 하면 Ack를 자주 기다려야 하니, 전송속도가 느려지겠죠! 즉 [트래픽 폭주 → 데이터유실 → 데이터 재전송 → 전송속도 다운 → 트래픽 다운 → 데이터유실 방지] 식으로 바뀌는거랍니다. 우리는 이것을 'Flow control'이라고 표현하죠. 이 부분도 많이 어렵기 때문에 천천히 알아보도록 하겠습니다.

많은 분들이 Layer 4 기능에 대해 어려워 하십니다. 하지만, Layer 4도 사람이 만들었기 때문에 사람의 상식을 벗어나지 않는다는 점을 명심해 주세요.

오늘 수업은 여기까지 하도록 하겠습니다. 감사합니다.

'네트워크 기초' 카테고리의 다른 글

OSI 7 Layer : 'Layer 6'와 'Layer 7'의 역할  (0) 2010.03.31
OSI 7 Layer : 'Layer 5'의 역할  (0) 2010.03.30
OSI 7 Layer : 'Layer 4'의 역할  (0) 2010.03.29
Subnet을 쉽게 하는 방법  (0) 2010.03.29
Subnet의 원리  (1) 2010.03.29
Network address & Broadcast address  (1) 2010.03.29

Subnet을 쉽게 하는 방법

네트워크 기초 | 2010.03.29 09:36 | Posted by 승진아빠

자 오늘은 Subnet과 관련된 문제를 3개만 풀어보도록 하시죠! 앞으로 3주동안은 '오늘의 학습'과는 별개로 매일 한문제씩 풀게 되실겁니다. 잘 따라오셔야 해요. ^^

 

1. 192.168.1.0/24 Network으로 5개의 Network을 구성하려고 한다. 각각 인원은 10. 20. 30. 40. 50명이다. 어떻게 나누어야 하는가?

 

먼저 5개의 Network이 필요하답니다. 그럼, '2^s ≥ 5'이어야 하겠군요. '2^3 = 8'이니 s는 3bit가 됩니다. 그럼 이제 Network을 한번 만들어 볼까요?

 

※ Network bit = Major Network bit + Subnet bit = 24 + 3 = 27bit 군요!

 

27bit는 몇개의 IP address로 구성되어 있나요? Host bit가 '32 - 27 =' 5bit이니 하나의 Network이 IP address를 2^5 = 32개씩 가지고 있겠군요. 그럼, IP address 32개마다 Network이 생성되겠군요. 다음과 같이요

 

192.168.1.0/27
192.168.1.32/27
192.168.1.64/27
192.168.1.96/27
192.168.1.128/27
192.168.1.160/27
192.168.1.192/27
192.168.1.224/27

 

그런데, 실제로 Host의 IP address로 사용할 수 있는 IP address는 각각의 Network 마다 Network address와 Broadcast address를 제외하여야 하니 '32 - 2 =' 30개겠군요. 그럼, Network address는 위에 구했고, Broadcast address를 구해야 하는데, 어떻게 구하면 될까요?

 

192.168.1.0/27, 192.168.1.32/27, 192.168.1.64/27 관계를 한번 보시죠!

 

192.168.1.000 00000  [192.168.1.0] - Network address
192.168.1.000 00001  [192.168.1.1]
192.168.1.000 00010  [192.168.1.2]
192.168.1.000 00011  [192.168.1.3]
192.168.1.000 00100  [192.168.1.4]
...................
192.168.1.000 11110  [192.168.1.30]
192.168.1.000 11111  [192.168.1.31] - Broadcast address

192.168.1.001 00000  [192.168.1.32] - Network address
192.168.1.001 00001  [192.168.1.33]
192.168.1.001 00010  [192.168.1.34]
192.168.1.001 00011  [192.168.1.35]
192.168.1.001 00100  [192.168.1.36]
...................
192.168.1.001 11110  [192.168.1.62]
192.168.1.001 11111  [192.168.1.63] - Broadcast address

192.168.1.010 00000  [192.168.1.64] - Network address

 

즉, 'Broadcast address + 1' = '다음 Network address'군요.

그럼, 거꾸로 생각하면 '다음 Network address - 1' = 'Broadcast address'가 되겠군요.

다음과 같이 되겠네요


192.168.1.0
192.168.1.32 - 1 = 192.168.1.31 : 192.168.1.0/27의 Broadcast addrees
192.168.1.64 - 1 = 192.168.1.63 : 192.168.1.32/27의 Broadcast addrees
192.168.1.96 - 1 = 192.168.1.95 : 192.168.1.64/27의 Broadcast addrees
192.168.1.128 - 1 = 192.168.1.127 : 192.168.1.96/27의 Broadcast addrees
192.168.1.160 - 1 = 192.168.1.159 : 192.168.1.128/27의 Broadcast addrees
192.168.1.192 - 1 = 192.168.1.192 : 192.168.1.160/27의 Broadcast addrees
192.168.1.224 - 1 = 192.168.1.223 : 192.168.1.192/27의 Broadcast addrees
마지막 IP Address = 192.168.1.255 : 192.168.1.224/27의 Broadcast addrees

 

이제 Broadcast address와 Network address를 구했으니 그 사이값이 Host의 IP address로 사용할 수 있는 값이겠군요. 그런데, 한가지 문제가 있습니다. 27bit Network은 최대 인원이 30명까지 사용할 수 있는 Network인데 40명인 곳도 있군요. 어떻게 해야 할까요?

 

잘 생각해보시면 's = 3'으로 했을 때 5개가 아니라 8개의 Network이 생성되었죠. 40명인 곳에 Network을 2개를 주면 어떻게 될까요? 다음과 같이요!

 

192.168.1.0/27 + 192.168.1.32/27 = 192.168.1.0/26 = 40명 사용
192.168.1.64/27 = 30명 사용
192.168.1.96/27 = 20명 사용
192.168.1.128/27 = 10명 사용

 

1번문제는 해결되었군요.

 

왜 192.168.1.0/27 + 192.168.1.32/27 = 192.168.1.0/26 이냐구요? 어제 그림 기억 안나세요? 다시 그려드리죠!

 

 

위의 그림처럼 하위 Subnet을 상위 Subnet으로 합칠 수가 있네요.

 

11000000.10101000.00000001.00000000/27 = 192.168.1.0/27
11000000.10101000.00000001.00100000/27 = 192.168.1.32/27

 

잘 보시면 '11000000.10101000.00000001.00/26'으로 시작하는 Network을 다 가지고 있죠? 그래서 합칠 수 있는겁니다.

 


2. 다음 중 IP address가 아닌 것은?

A. 10.1.1.0/16
B. 10.1.255.255/8
C. 192.168.1.192/28
D. 192.168.1.140/27

 

어떻게 계산할까요? 일단 A과 B는 쉽죠? Host 부분을 bit로 전환 후 전부 '0' or '1'이 아니므로 IP address인 것을 쉽게 알 수 있습니다.

 

A : Host 부분 = '00000001.00000000' → IP address임
B : Host 부분 = '00000001.11111111.11111111' → IP address임
C : Host 부문 = '000000' → Network address임
D : Host 부문 = '100' → IP address임

 

C와 D 조금 쉽게 계산하는 방법이 없을까요? 당연히 있죠. C를 먼저 볼까요?

 

192.168.1.192/28... Network 부분이 28bit이니 Host는 4bit겠군요. 그리고, 4 bit라면 '2^4' = 16개의 IP address 마다 Network을 나눈 것이겠군요. 그럼, 다음과 같이 Network address가 구현될겁니다.

 

192.168.1.0/28
192.168.1.16/28
192.168.1.32/28
192.168.1.48/28
192.168.1.64/28
192.168.1.80/28
...
192.168.1.224/28
192.168.1.240/28

 

잘 보시면 16개 마다 Network을 나누었고 '0'부터 시작했으니, Network address는 16의 배수겠군요. 즉, 마지막 8bit의 값을 16으로 나누면 나머지 없이 정확히 나누어 떨어지겠군요.

 

예를 들어, 문제의 192.168.1.192는 192 / 16 = 12 (나머지 '0')이 되므로 Network address 겠군요.

Broadcast는요? 당연히 나머지가 'IP address - 1'개면 Broadcast 주소가 되겠네요!

 

ex) 10.1.64.223/29는 IP address 인가?

Host 부분이 3bit 이니 8개 IP address 마다 Network을 나누었군요.

223 / 8 = 27 (나머지 '7') → 나머지가 8보다 1작으니 Broadcast address겠군요.

 

1번과 2번.. 이해가 되시나요? 이해가 되셨으면 3번을 풀어보시고, 이해가 되지 않으셨으면 이해가 되실 때까지 1, 2번을 풀어보세요!


3. 다음 중 10.1.2.213/27에 속하는 것을 모두 고르시오.

A. 10.1.2.184
B. 10.1.2.221
C. 10.1.2.229
D. 10.1.2.231
E. 10.1.2.216

 

일단, Network부터 구해야겠네요. 10.1.2.123/27의 Network은 Host 부분이 5bit군요. 5bit면 32개 IP address마다 Network을 나누었네요.

 

213 / 32 = 6 (나머지 '21')....'32 * 6 = 192'

즉, '10.1.2.192/26' 안에 포함되어 있겠군요. 그리고, '32 * 7 = 224'이므로 다음 Network은 10.1.2.224/27 겠군요. 그럼 10.1.2.192/26 Network의 Broadcast address는 '10.1.2.224 - 1 = 10,1.2.223'이겠군요.

 

다 끝났습니다. IP address로 사용할 수 있는 것은 [10.1.2.193 ~ 10.1.2.222]!!!

답은 B, E입니다.

'네트워크 기초' 카테고리의 다른 글

OSI 7 Layer : 'Layer 5'의 역할  (0) 2010.03.30
OSI 7 Layer : 'Layer 4'의 역할  (0) 2010.03.29
Subnet을 쉽게 하는 방법  (0) 2010.03.29
Subnet의 원리  (1) 2010.03.29
Network address & Broadcast address  (1) 2010.03.29
IPv4 Class 체계  (0) 2010.03.29

Subnet의 원리

네트워크 기초 | 2010.03.29 09:34 | Posted by 승진아빠

오늘 한분이 R&S CCIE를 신청해 주셨습니다. 단순히 LAB을 외워서 시험보는 수준으로는 공부하지 않으시겠다는 의지가 무척 강하시더군요. 요즘 시험이 바뀌었다고 시험을 연기하시는 분들이 많으신데 제대로 알고 시험보면 어떤 문제가 나와도 풀 수 있는거 아니냐는 생각! 너무 마음에 들었습니다. 3시간 안팎의 첫 만남이였지만 Network의 밝은 미래를 보는것 같았습니다. 그래서, 오늘 기분이 너무 좋군요. ^^

 

제가 미팅 때는 시간이 너무 빨리 흘러가서 미쳐 말씀드리지 못했는데, 저희 메일링 회원 150분들 앞에서 약속 드리겠습니다. 시험 자체만을 위해 공부하지 않으신다면 하늘이 두 쪽 나도 합격시켜드리겠습니다. ^^

 

12시가 훌쩍 지나버렸군요. 오늘은 피곤해도 기분좋게 메일링을 쓰겠군요...

 

안녕하세요. 이경태입니다. 오늘은 많은 분들이 어렵다고 느끼시는 Subnet에 대해서 학습해 보도록 하겠습니다. 'Subnet' 무슨 뜻인가요? 'Subnet = Sub + Net'이죠! 우리는 커다란 범주 내의 작은 범주를 표현할 때,  'sub'라는 접두사를 붙입니다. 그럼 Subnet은 무엇인지는 잘 모르겠지만, 커다란 Network에 속하는 작은 Network이라는 뜻이겠군요.

 

그럼 논리적으로 다음과 같이 되겠네요.

 

 

그런데, 우리가 IP address를 보면 32bit로 되어 있습니다. 그리고 1bit로 표현할 수 있는 것은 '0', '1'밖에 없습니다. 2진수와 같다고 할 수 있습니다. 자 여기서 전에 배웠던 Class 주소체계를 한번 그림으로 그려 볼까요?

 

 

물론 A class에서 '0' Network과 '127' Network이 제외되기는 하지만, 전체적으로 개념도는 위의 그림과 같습니다. 각 class를 bit로 적으면 어떻게 될까요? 다음과 같겠죠!

 

 

위의 그림과 표를 보시면 bit가 하나 더 사용될 때마다 Size가 반으로 줄어드는 것을 확인하실 수 있으실 겁니다. 2진수라 당연한거죠! 이 원리를 이해하셨다면 Subnet은 60% 가량 이해하신 겁니다. 오늘 학습은 수월해 지겠군요.

 

Subnet은 단순히 컴퓨터를 속이는 겁니다. 어제 말씀 드렸듯이 A class의 Network 부분은 8bit, B class의 Network 부분은 16bit, C class의 Network은 24bit라고 하는건 사람들이 편의상 구분을 했을 뿐입니다. 기계는 당연히 IP address와 Mask를 AND 연산해서 결과값으로 Network을 만들어 냅니다. Subnet은 단순히 이것을 이용해 보자는 겁니다.

 

A class인 '10.0.0.0/8'을 한번 볼까요?

 

※ 참고 - bit 자리수는 다음을 기준으로 설명드립니다. (표준을 써야죠..^^)

 

 

이 상태라면 10.0.0.0/8 Network mask는 24~31번 bit가 '1'이겠군요! 십진수로 쓰면 '255.0.0.0'로 표기될테고요.
그럼, 만약 Mask의 23번 bit를 '1'로 만들면 어떻게 될까요? 22번 bit까지 '1'로 만들면요? 아마 다음 그림처럼 Mask를 1bit 증가 할때마다 Network의 Size는 반이 되고, Network의 수는 2의 자승씩 증가할 것입니다.

 

 

결국 Mask 정보만 바꾸면 된다는 이야기군요. 8bit mask를 9bit로 바꾸면 2개가 되고 10bit로 바꾸면 4개가 되네요. 그런데 그림을 보시면 알겠지만, 8bit안에 9bit 2개가 모두 포함되고 10bit 4개도 모두 포함되는군요. 눈치를 채셨나요?

 

A class는 8bit, B class는 16bit, C class는 24bit라고 하는것은 'Major Network'이라고 합니다. 그리고, Major Network을 반씩, 반의 반씩, 반의 반의 반씩.... 분할해서 작게 나눈 Network을 'Subnet'이라고 하는 겁니다. 별거 없죠?

 

■ IP address 재정립
 
   - [IP address 32bit] = [Network bit] + [Host bit]
   - [Network bit] = [Major Network bit] + [Subnet bit]
   - Subnet의 개수 : 2^s (s = Subnet bit)
   - Subnet_mask = Subnet을 하기 위한 Mask

 

※ 많은 책에 [Subnet의 개수 = 2^s - 2]라고 적혀 있는데, 이것은 향후 Command를 설명하는 부분에서 'ip subnet-zero'를 설명드릴 때 말씀 드리기로 하겠습니다.

 

자! Network의 숫자가 많아졌군요. ^^ 헉! 그런데, 한가지 문제가 발생했습니다. Network 개수를 늘리기 위해 subnet bit를 많이 사용했더니, Host bit가 작아졌습니다. '10.0.0.0/8' Network에서는 Host bit가 24bit이기 때문에 '2^24 - 2'개의 IP address를 사용할 수 있었는데, Subnet_mask를 16 bit로 만들었더니 총 IP address의 수가 [256개 Network * (2^16 - 2)개로 줄었군요.

 

왜냐하면, 나눈 Network에도 Network address(Host 부분이 모두 '0'인 IP address)와 Broadcast address(Host 부분이 모두 '1'인 IP address)가 있을테니까 Network마다 2개의 IP address를 사용할 수 없잖아요. 안타깝지만 버리셔야 합니다. IPv6에서는 이런일 없을꺼에요.

 

오늘 하루 Subnet 개념이 좀 잡히셨나요? 오늘은 개념만 잡으시면 성공하신겁니다. 앞으로 Routing 설명할 때 지겹도록 설명할꺼에요. 내일은 Subnet과 관련된 문제를 좀 풀면서 쉽게 풀어 나가는 방법에 대해 학습해 보도록 하겠습니다. ^^

'네트워크 기초' 카테고리의 다른 글

OSI 7 Layer : 'Layer 4'의 역할  (0) 2010.03.29
Subnet을 쉽게 하는 방법  (0) 2010.03.29
Subnet의 원리  (1) 2010.03.29
Network address & Broadcast address  (1) 2010.03.29
IPv4 Class 체계  (0) 2010.03.29
IPv4 주소체계  (0) 2010.03.29

Network address & Broadcast address

네트워크 기초 | 2010.03.29 09:32 | Posted by 승진아빠

이번주 [네트워크 기초]는 IPv4에 대해 조금 더 학습해 보도록 하겠습니다. 그리고, [네트워크 심화]에서는 우리가 가장 많이 사용하는 명령어 중 하나인 [show interface] 명령어에 의해 Display 되는 결과에 대해 알아보도록 하겠습니다. 뭐가 주절주절 나오는데 먼지 잘 모르시는게 많으시죠? ^^

그리고, LAB 시간에는 Passive-interface라는 명령어를 실행했을 때, RIP에서 결과와 OSPF/EIGRP에서의 결과가 서로 다르죠? 그냥 암기하시는 분들이 많은데, 서로 결과는 달라고 동작하는 방식은 동일합니다. 암기하지 마세요! 금요일에 LAB을 통해서 알아보도록 하겠습니다.

그럼, 시작해 볼까요?

'Network'이 뭐였죠? 'IP address'의 집합이었죠! 그리고, Size에 따라 A class(8bit), B class(16bit), C class(24bit)로 구분 했었습니다. 여기서 여러분이 꼭 아셔야 하는건 사람이 A class, B class, C class로 구분했을 뿐이지 Router나 PC와 같은 기계는 Mask 정보를 가지고 Network 부분과 Host 부분을 구분한다는 것입니다. 배우신적 있죠?

■ IPv4 class
  - A class : 1 ~ 126
  - B class : 128 ~ 191
  - C class : 192 ~ 223
  ※ 0 = Default-route, 127 = Loopback

① IP address : 192.168.1.5
② Subnet mask : 255.255.255.0
① AND ②
→ Network : 192.168.1.0/24 (24 = Subnet mask에서 '1'의 갯수 = Network bit의 수)

이런 경우, IP address 몇개를 묶어서 만든 Network 일까요?

[11000000.10101000.00000001].[00000000] = 192.168.1.0
[11000000.10101000.00000001].[00000001] = 192.168.1.1
[11000000.10101000.00000001].[00000010] = 192.168.1.2
[11000000.10101000.00000001].[00000011] = 192.168.1.3
.....
[11000000.10101000.00000001].[11111110] = 192.168.1.254
[11000000.10101000.00000001].[11111111] = 192.168.1.255

까지 합친거군요. 256개의 address가 포함되는 것을 알 수 있습니다. 2진수로 계산해봐도 8bit가 사용되니 2^8 = 256개가 되죠. 그럼 B class는 16bit가 Network 부분이니 Host 부분은 16bit(32bit - 16bit)가 될테고, 2^16 = 65535개의 IP address가 포함되어 있겠군요.

그런데, 우리는 Network을 표기할 때, 192.168.1.0/24 라고 Host 부분을 전부 '0'으로 채워서 표기를 합니다. 10.0.0.0/8 처럼요. 그래서, 사람들이 약속을 합니다. Host 부분이 전부 '0'으로 채워져 있으면 Network을 대표하는 address라는 의미를 부여하자고요. 그래서, IP address로 사용할 수 없도록 만듭니다. IPv6에서는 이런 짓을 멍청한 짓이라 생각하게 되죠. '0'으로 채우지 않고 관리하면 되잖아요. 192.168.1/24 이렇게요. 그러면, '192.168.1.0'도 IP address로 사용할 수 있지 않겠습니까! 한번 볼까요?

■ IPv4 IP address 설정

Router(config)# int fa0/0
Router(config-if)# ip add 192.168.1.0 255.255.255.0
Bad mask /24 for address 192.168.1.0
Router(config-if)#

안되는군요.

■ IPv6 IP address 설정

Router(config)#int fa0/0
Router(config-if)#ipv6 address 2003:1111::0000/112  (host 부분을 모두 '0'으로 설정)
Router#ping ipv6 2003:1111::0000

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2003:1111::, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 0/2/4 ms

잘되죠? 즉, IPv6에서는 Network address라고 사용못하는 IP address 따위는 없습니다. 잘못된 것은 고쳐야지요! ^^ 다음에 또 하나의 주소를 IP address로 사용하지 못하도록 만들었습니다. 바로 Host bit를 모두 '1'로 설정한 IP address를 Broadcast address라고 약속하고 IP address로 사용하지 못하도록 만들었습니다.

※ Broadcast address : Destination IP address와 동일한 Network 상의 모든 장비가 받아봐야 하는 주소

예를 들어, 192.168.2.255/24로 Ping을 치면 192.168.2.0/24 내의 모든 장비가 응답을 합니다. 다음과 같은 경우 어떻게 되나 볼까요?



R2에서 192.168.1.0/24에 Broadcast를 보내볼까요?

R2# ping 192.168.1.255

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.255, timeout is 2 seconds:

Reply to request 0 from 192.168.1.2, 128 ms
Reply to request 1 from 192.168.1.2, 64 ms
Reply to request 2 from 192.168.1.2, 68 ms
Reply to request 3 from 192.168.1.2, 76 ms
Reply to request 4 from 192.168.1.2, 56 ms

잘 가는군요. 그럼, 192.168.2.0/24로 Broadcast를 보내볼까요?

R2# ping 192.168.2.255

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.2.255, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)

안나가는군요. 왜 그럴까요? 제가 Default-route 설명드릴 때, Router는 '192,168.1'만 보고 Routing 한다고 말씀 드렸었죠? 그런데 192,168.2.255는 Routing이 되지 않네요? 제가 거짓말한건가요...-_-+;; Router는 default로 Broadcast IP address를 Routing 하지 않도록 설정되어 있습니다. 설정을 바꾸고 다시한번 시도를 해보도록 하겠습니다.

R1(config)# int fa1/0
R1(config-if)# ip directed-broadcast

R2#ping 192.168.2.255

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.2.255, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 52/101/148 ms

잘 나가는군요. 이 Broadcast를 이용해서 불필요한 트래픽을 유도하는 등 보안상 문제 발생이 가능하기 때문에, 아까와 같이 Broadcast는 Routing을 되지 않도록 만들어 놓았습니다. 그럼, 오늘날 Broadcast 역할에 대해 생각해보세요.

1. 다른 Network으로 넘어갈 수 없다.
2. 모든 장비는 다 받아봐야 한다.

그럼, 특정 IP address를 Broadcast address로 정하면 다음과 같이 구성해도 되겠네요?


오늘 Network 환경에서는 모든 Network에 동일 Broadcast IP address를 가지고 있어도 아무런 문제가 없겠군요. 그래서, Multicast가 '224.0.0.1'이라는 주소를 만들었습니다. Router가 Routing 하지 못하도록 TTL이라는 것을 이용해서 제한을 걸고 모든 장비가 다 받도록 정의했습니다. 잘했죠? 이제 더이상 Broadcast address는 의미가 없겠군요.

그래서 IPv6는 Broadcast가 없습니다. Multicast address 'FF02::1'이 모든 Broadcast address를 대신합니다. 나중에 나온 주소체계니 불필요한건 없애고 필요한건 추가했겠죠. ^^

자 정리를 하면 다음과 같습니다.

우리는 192.168.1.0/24 에서 24는 Network 부분의 bit 수를 나타냅니다. 그러면 IP address는 전체 32bit로 되어 있고, [Network] + [Host]로 되어 있으니, Host bit는 32bit(전체) - 24bit(Network bit) = 8bit가 되겠군요. 그리고, 8bit로 표현할 수 있는 IP address 수는 2^8 = 256개가 됩니다. 즉, 2^H (H = Host bit의 수)가 되겠군요.

그런데 여기서 우리는 Network 마다 사용할 수 없는 IP address를 정의했습니다.
바로 Network address와 Broadcast address 입니다.

Network address : Host bit가 모두 '0'으로 설정된 address
Broadcast address : Host bit가 모두 '1'로 설정된 address

그래서, 우리가 IP address로 사용할 수 있는 IP는 '2^H - 2'개 됩니다 24bit Network의 경우는 254개가 되고 , 16bit Network의 경우는 65534개 되겠군요.

이해가 가시나요? 처음 Network을 접하시는 분들께는 그리 쉽지 않은 부분이니 천천히 다시한번 읽어보시고 이해가 안되시는 부분은 의견란을 통해 질문을 해주세요.

'네트워크 기초' 카테고리의 다른 글

Subnet을 쉽게 하는 방법  (0) 2010.03.29
Subnet의 원리  (1) 2010.03.29
Network address & Broadcast address  (1) 2010.03.29
IPv4 Class 체계  (0) 2010.03.29
IPv4 주소체계  (0) 2010.03.29
OSI 7 Layer : 'Layer 3'의 역할  (0) 2010.03.29

IPv4 Class 체계

네트워크 기초 | 2010.03.29 09:30 | Posted by 승진아빠

자~ 오늘은 내일까지 컨설팅 중간보고 자료를 만들어야 해서 사적인 이야기를 생략하고 바로 학습내용으로 들어가도록 하겠습니다. 바로 IPv4에서 클래스에 대한 이야기죠!

 

우리는 어제 IP address가 Network 부분과 Host 부분으로 구분되어 있다는 것을 확인했습니다. 그리고, Router는 Network 부분만을 관리한다는 사실도 알게 되었지요. 그럼, 이제 몇십억개나 되는 IP address를 회사, 대학, 기관 등에 할당하는 일만 남았군요.

 

똑같이 주면 공산주의고, 있는자에게 혜택을 덜주면 사회주의고, 있는 놈이 더 가져가면 민주주의죠! 우리는 민주주의 사회에 살고 있습니다. 그래서, 있는 놈 더 줘야 해요. 더 안주면 없는 놈꺼 뺐어가거든요. 있는 놈 더 주고 현재 가지고 있는거라도 지킵시다! -_-+;;

 

우리는 공평이라는 명목하에 불공평한 세상에 살고 있습니다. IP address도 마찬가지 입니다.

 

직원이 많은 회사는 IP address를 많이 줘야 하고, 직원이 적은 회사는 IP address를 적게 줘야 할겁니다. 공평한가요? 제 생각에는 똑같이 주고, IP address가 많이 필요한 회사에서 IP address가 남는 회사에게 필요한 만큼 돈주고 사면 될꺼 같은데요. ^^

 

다시 돌아와서 IP address 주소체계를 만든 사람이 Network의 Size를 3등분 하였습니다. IP address는 32bit를 8bit 단위로 나누어서 읽으니, Network도 그 기준으로 8bit Network, 16bit Network, 24bit Network 이렇게 나누었습니다. 그리고, 큰 회사한테는 8bit Network을 할당해 주고, 중간 Size 회사는 16bit Network을 할당해 주고, 작은 Size 회사는 24bit Network을 할당하기로 합니다.

 

※ IP address 할당의 예
- 큰 회사에게 [10.X.X.X] 할당 : '10'으로 시작하는 IP는 너 다가져라!
- 중간급 회사에게 [172.16.X.X] 할당 : '172.16'으로 시작하는 IP 다 가져라!
- 작은 회사에게 [192.168.1.X] 할당 : '192.168.1'로 시작하는 IP 다 가져라!

그리고, 큰 회사를 A급으로 봤는지 A Class라고 만들었습니다. 다음은 B Class, 다음은 C Class라고 이름 붙였습니다. 그럼, 다음과 같이 되겠군요.

A Class : [NNNNNNNN].[HHHHHHHH.HHHHHHHH.HHHHHHHH] 8bit Network
B Class : [NNNNNNNN.NNNNNNNN].[HHHHHHHH.HHHHHHHH] 16bit Network
C Class : [NNNNNNNN.NNNNNNNN.NNNNNNNN].[HHHHHHHH] 24bit Network

 

휴~ 정리가 되었습니다..... 헉! 이런 생각 못한게 있군요.

11.0.0.0/8 Network을 K사에게 할당했는데, 11.1.0.0/16 Network을 P사에게 할당한겁니다. 11.0.0.0/8 안에 11.1.0.0/16도 포함되어 있거든요. 집팔아 먹고 전세 계약한 꼴입니다. 이러면 사기꾼 되죠...

 

그럼 A, B, C Class 별로 범위를 결정해야 겠군요. 그런데 이번에도 안타깝게도 있는 놈이 더 가져갑니다.


어이업게도 A Class를 전체 32bit 중에서 맨 앞의 bit가 '0'으로 시작하는 범위를 할당한겁니다. 2진수잖아요.
0XXXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX을 주면 반을 준거죠. 이래서, 서민들이 살겠습니까?

 

헉! 중산층이 또 나머지 반을 가져가는군요. 이제는 '1'로 시작하는 IP만 존재할텐데, 그중에 반인 '10'으로 시작하는 놈을 가져갑니다. 10XXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX... 절망입니다.


그런데, 왠 일입니까? '11' 시작하는 Network을 주겠답니다. 전체의 1/4을 서민에게 주겠다는군요. 이제 좀 숨쉴만 합니다....

 

아~ 역시 기대가 컸나 봅니다. Multicast라는 서비스를 해야 한다고, 서민보고 세금을 더 내랍니다. 그래서, 서민은 힘없이 반을 떼어 줍니다. '110'으로 시작하는 Network을 남기고 '111'을 떼어 줬습니다. 죽을만큼 힘든데 이제는 서민에게 공평을 이야기 합니다. Multicast라는 신사업에 자원을 전부 쓰지 않겠습니다.

 

A Class : 0XXXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
B Class : 10XXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
C Class : 110XXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX

 

이렇게 줬으니 Multicast한테는 '1110' 주고 '1111'은 국가위기를 대비하여 예비용으로 남겨두겠답니다.

D Class : 1110XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
E Class : 1111XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX

 

이것들을 10진수로 바꿔보면 다음과 같습니다.


A Class : 0 ~ 127 Network
B Class : 128 ~ 191 Network
C Class : 192 ~ 223 Network
D Class : 224 ~ 239 Network
E Class : 240 ~ 255 Network

 

누가 봐도 공평하지 않죠? 서민들이 모여 촛불시위를 합니다. 그러자, 심기가 불편한 국가는 A Class와 조용히 타협을 합니다. 너희들도 세금을 내고 생색 좀 내라.... 그래서 어렵게 어렵게 타협에 성공을 거둡니다.

 

'0' Network과 '127' Network을 서민을 위해 내어 줍니다. 그래도, 이게 어딥니까? 그리고, 이 Network을 모든 국민이 사용할 수 있도록 합니다. 그나마 IP address 세상이 인간세상보다 낫군요.

 

그럼, Network 입장에서 이 두개의 Network을 어디에 사용할까요?
Default route는 이미 지난주 금요일에 학습하셨죠? '0' Network은 '0.0.0.0/0', 즉 Default route용으로 사용을 하게 됩니다. 그리고, '127'Network은 자기 자신을 점검하기 위한 Loopback address or Local_host address 대역으로 사용을 합니다. 왜 이놈이 필요할까요?

과거... 통신장비가 너무 비쌌던 시절, 돈없고 불쌍한 네트워크 프로그래머가 있었습니다. 네트워크 프로그램을 짜면 뭐합니까.. 돈이 없어 Network를 구성하지 못하는데요. 그래서, 기발한 생각을 해 냅니다. 가상의 Interface를 만들고, IP address를 할당한 후에 해당 IP address로 접근하면, 내부 프로세스 상에서 외부로 Traffic을 보내지 않고 자신에게 다시 돌아오는 방법을 생각해 낸거죠. 그리고, 다시 돌아온다고 해서 loopback이라고 이름을 지었습니다. 멋있죠? ^^

 

즉, 자신의 PC상에 TCP/IP 프로토콜만 제대로 올라가면 살아나는 가상의 Interface를 만들고, 자신의 네트워크 프로그램을 테스트하게 된거죠!

 

'http://127.0.0.1' 처럼요. ^^

 

조금 이해가 가셨나요? 목요일과 금요일은 네트워크 심화 부분이고, 다음주에 이 IP address에 대해 조금 더 깊이 알아가 보도록 하겠습니다.
그리고, IP address에 대해서 요약된 자료를 보시려면 저희 홈페이지 무료세미나 자료실을 참조하세요.

 

[자료실 바로가기]

'네트워크 기초' 카테고리의 다른 글

Subnet의 원리  (1) 2010.03.29
Network address & Broadcast address  (1) 2010.03.29
IPv4 Class 체계  (0) 2010.03.29
IPv4 주소체계  (0) 2010.03.29
OSI 7 Layer : 'Layer 3'의 역할  (0) 2010.03.29
Switch는 왜 Collision 이 발생하지 않는가?  (0) 2010.03.29

IPv4 주소체계

네트워크 기초 | 2010.03.29 09:29 | Posted by 승진아빠

'피로는 더 큰 피로로 극복한다'고 예전 신입시절 HR 본부장님의 말씀이 생각납니다. 지금은 형님으로 부르는 분으로 회계를 담당하셨는데 항상 쉬지 않고 일을 하셨던 일중독 이셨던 분이셨죠. 지금도 어디에선가 숫자와 싸움을 하고 계실겁니다. 제가 신입일 때, ERP 개발자였거든요. ^^

 

제가 '안피곤하세요?' 질문하면 '어제보다 나은 오늘이 되려면 어제보다 조금 더 노력해야 하지 않겠냐?'하고 반문하시곤 하셨죠. 개인적으로는 그 생각에 동의하지 않습니다. 오늘보다 편한 내일을 위해 노력하는거 아닌가요? ^^ 여튼, 상사로서는 무지하게 나쁜 습관, 노력하는 습관이 있으신 분이셨죠.

 

그 분과 얼마전에 통화를 했는데 뜬금없이 질문을 하시더군요. "힘드냐?" 라고요. 그래서 "예, 생각보다 힘드네요!"라고 대답을 했습니다. 그랬더니, "젊을 때 놀아라. 내가 열심히 살았던 시간이 너무 덧없구나!"라고 하시면서 일하느라 친구도 가족도 모두 멀어져 버렸다고 하시더군요. 뭐라고 할말이 없어 그냥 제 생각을 이야기했습니다.

 

"제가 보기에 형님은 목적없이 그냥 열심히 사셔서 그래요. 왜, 무엇을 위해 열심히 사는지에 대한 목표의식없이 그냥 그 일을 나아니면 못할거 같아서, 내가 못하면 회사가 안돌아 갈거 같아서 그냥 단순히 열심히만 살아서 덧없이 느끼시는 걸겁니다. 전 CCIE가 되고 싶어서, 대기업 한번 가보고 싶어서, 국내 최고 강사라는 박병석 강사님 한번 이겨보고 싶어서, 제대로된 학원 한번 만들어 보고 싶어서 노력했고 노력하고 있습니다. 그리고, 형님처럼 열심히 살면 무엇이든 다 할 수 있을거 같아서 형님처럼 살았는데 실망입니다." 라고요.

 

형님이 웃으시더군요. 넌 성공할꺼다! 라고 말하시면서요.

 

목표는 참 중요한거 같습니다. 제가 가야 하는 길의 최종 목표가 제 인생의 최종 종착지겠죠! 세상의 모든 것은 시작과 끝이 있습니다. 무엇을 할 것인가 갈등하는 것이 시작이고, 드디어 해냈다가 끝이죠. 그렇습니다. Packet도 왜 보내야 하는지가 시작이고 Destination에 도착하는 것이 끝입니다. 처음 주소를 잘못 설정하면 잘못된 목적지에 도착합니다. 그냥 무작정 가다가는 제자리만 열심히 빙빙돌다(Looping) 체력(TTL)이 떨어져 쓰러져 버릴지도 모릅니다. TTL이 뭐냐구요? 나중에 설명해 드릴께요. ^^

 

우리는 목적지로 가기 위해서는 목적지가 어딘지 알아야 하고, 중간 중간 작은 목표를 달성해 나가야 할겁니다. Packet도 목적지가 있어야 할 것이고, 중간중간에 있는 Router에게 전달전달 되어야 최종 목적지까지 도착을 할 겁니다. TCP/IP는 목적지로 전달하는 방법으로 IP주소를 사용했습니다.

 

그렇다면, 우리는 이 IP주소에 대해 알아야 네트워크를 이해할 수 있겠군요! 한번 정리해 보기로 하시죠!

IP address를 처음 설계한 사람이 IP address의 크기를 32bit로 만들었습니다. 그리고, 사람들이 읽기 쉽게 8bit씩 나누어 10진수로 변환해서 읽기 시작했습니다.

'11000000101010000000001000000001'을 [11000000].[10101000].[00000010].[00000001]로 나누고 10진수인 '192.168.2.1'로 바꿔서 읽는거죠. 자~ 그런데, 중간에 Router가 IP address를 다음과 같이 IP address 하나하나를 관리한다면 어떻게 될까요?

 

 

휴~ IP address가 몇개 없을때는 가능하겠지만, IP address가 많아지면 table size가 기하급수적으로 늘어 Router가 허덕허덕 하겠는데요? 뭐 좋은 방법이 없을까요? 그렇습니다. 집합으로 관리하면 되겠네요. 우체부 아저씨들도 편지를 나눌 때, 서울시면 서울시로 부산이면 부산으로 세부주소를 보지 않고 지역별로 구분하잖아요.

 

예전에 체력장을 할 때, '전 다음에 뭘 해야 하나요?'라고 선생님께 여쭈어 보면 선생님은 제 이름을 묻지 않으셨습니다. '몇 반?' '3반인데요', '100m 달리기로 가' 그 선생님은 Router셨던겁니다. 중간에 기합받다가 Drop되는 친구들도 있었죠.

 

'3반'처럼 IP address도 집합으로 관리를 하게 되는데 그것을 우리는 [Network address]이라고 부릅니다. 그리고, 3반 시험장으로 가면 그 때는 번호를 불렀죠! '21번, 22번 다음 뛰어'... 21번 22번처럼 하나의 개개인을 대표할 수 있는 번호를 우리는 IP address에서 [Host address]라고 부릅니다. 그렇게 해서 IP address는 [Network address]와 [Host address] 두개 Part로 나누어 지게 됩니다. 체력장을 예로 들면 [3반].[22번] 구분되는거죠.

 

그럼, 위의 그림도 다음과 같이 바뀔겁니다.

휴~ 훨씬 깔끔하군요.

 

그럼, 어디서 어디까지가 Network 영역 일까요? 그것을 결정하는 것이 Mask라고 하는 놈입니다.
우리는 IP address를 설정할 때, 다음과 같이 설정하죠!

 

■ 설정의 예

IP address : 192.168.1.5
Subnet mask : 255.255.255.0
Default-gateway : 192.168.1.1

 

이때, 192.168.1.5와 255.255.255.0을 모두 2진수로 바꿔어서 각각 같은 자리끼리 AND 연산을 수행합니다.
■ AND 연산의 특징은 다음과 같습니다.
    - 1 AND 1 = 1
    - 0 AND 1 = 0
   ※ 1과 AND 연산을 하면 자기 자신이 나오는군요..

    - 1 AND 0 = 0
    - 0 AND 0 = 0
   ※ 0과 AND 연산을 하면 다 '0'이 되는군요.. ^^

 

그럼 다음과 같이 되겠군요.

 

11000000.10101000.00000001.00000101 = IP address
11111111.11111111.11111111.00000000 = Subnet mask
-----------------------------------
11000000.10101000.00000001.00000000 = Network address

 

즉, 192.168.1.0 이 Network address가 되는군요. 그리고 Subnet mask에서 '1'의 개수는 192.168.1.5라는 IP address에서 Network 영역을 나타내게 됩니다. '1'의 개수가 24개니까 앞에서 24개 bit가 Network이 되는 것이고, 나머지 8bit가 Host 부분이 되는것이죠. [11000000.10101000.00000001].[00000101]

 

그런데, 다음을 보시죠.

 

IP address = 10.0.0.1
Subnet mask = 255.255.255.0
Network이 어떻게 되나요? '10.0.0.0'이군요.

 

IP address 10.0.0.1
Subnet mask = 255.255.0.0
Network이 어떻게 되나요? 역시 '10.0.0.0'

 

분명히 Subnet mask가 다른데도 불구하고 Network이 똑같습니다. 이것을 구분하기 위해 Netowkr의 길이를 표시하여 줍니다.

 

IP address = 10.0.0.1
Subnet mask = 255.255.255.0
Network = '10.0.0.0/24' : 24는 Subnet mask의 '1'의 개수

 

IP address 10.0.0.1
Subnet mask = 255.255.0.0
Network = '10.0.0.0/16' : 16는 Subnet mask의 '1'의 개수

 

말로는 설명하다 글로 IPv4 체계를 설명하려니 힘드네요. 궁금하신점 있으시면 편하게 메일주세요.
오늘 수업을 여기까지 진행을 하고 내일은 IPv4 클래스에 대해 학습하도록 하겠습니다. ^^

'네트워크 기초' 카테고리의 다른 글

Network address & Broadcast address  (1) 2010.03.29
IPv4 Class 체계  (0) 2010.03.29
IPv4 주소체계  (0) 2010.03.29
OSI 7 Layer : 'Layer 3'의 역할  (0) 2010.03.29
Switch는 왜 Collision 이 발생하지 않는가?  (0) 2010.03.29
CSMA/CD는 왜 필요한가?  (1) 2010.03.29

OSI 7 Layer : 'Layer 3'의 역할

네트워크 기초 | 2010.03.29 09:27 | Posted by 승진아빠

평균 6시간 정도 잠을 자는 제가 메일링때문에 하루 3시간을 못잡니다. 그래서, 요즘 차를 타면 꾸벅꾸벌 졸아요. 오늘은 아들 승진이(40개월)와 2개월만에 외출을 했습니다. 승진이가 묻더군요. "아빠는 왜 집에 안들어와?" 그래서, 대답했지요. "아빠는 안들어 가는게 아니라... 늦게 들어오고, 일찍 나가기 때문에 승진이가 못보는거야!"라고요. 그랬더니, 승진이가 이렇게 대답을 하더군요.

"아~ 그렇구나! 그래서 아빠를 못봤구나! 근데 잘 생각해봐, 내가 못보면 안들어 오는거랑 같잖아!"

오늘도 30분밖에 놀아주지 못했습니다. 일이 너무 많아서 오늘도 새벽 4시에 들어갔다 내일 아침 7시에 나와야 하거든요. 좋은 아빠가 되려고 노력하는데 힘드네요. 사업잘되면 승진이와 여행이라도 다녀와야겠습니다. ^^

오늘은 Layer 3의 역할에 대해서 살펴보도록 하겠습니다. Layer 3는 'Network Layer'이라고 불리고 있습니다. 흠... Network을 관리한다는 말인가 뭔가...? 쉽게 생각하시면 됩니다. Network을 찾는 Layer라고요. 서로 멀리 떨어져 있는 Network간에 통신을 하기 위해서는 서로가 어디에 있는지 알아야 할 겁니다. 당연하겠죠.

비둘기를 통해서 전보를 전달하던 시절... 비둘기는 두 사람이 어디에 있는지 알아야 서로의 메시지를 전달해 주겠죠. 그 때, 한사람이 출장을 갔다면 제대로 전달을 할 수 없을겁니다. 아니면, 나이 든 비둘기라 치메에 걸려 기억이 오락가락 한다면 역시 전달할 수 없을겁니다. 하지만, 일단 비둘기는 날아 갈겁니다. 그리고, 비둘기를 보낸 사람은 잘 도착했겠지.... 생각하겠죠.

PC도 마찬가지입니다. Destination IP address를 채워서 Layer 3 장비에게 Packet을 전달합니다. 그리고, 잘 도착했겠지... 생각을 하겠죠.

 

그 다음 Layer 3 장비는 Packet을 받아서 Destination IP address로 가는 정보에 대해서 자신이 알고 있는지 모르고 있는지 확인합니다. 앗! 있군요.... 그럼 그쪽으로 Packet을 보내게 되는 겁니다. 없으면요? Packet을 Drop 시켜 버립니다. (치메에 걸린 비둘기가 자기 다리에 묶여 있는 전보의 의미를 까먹으면 입으로 쪼아서 없애 벌리지도 모릅니다.)

제가 어릴적 시골에서 살 때, 오락실을 가기 위해 논길을 1시간 걸어서 문막읍으로 갔었습니다. 왜 그랬을까요? 제 생각에 그 길이 가장 빠른 길이였거든요. 그런데, 옆 집 친구는 항상 차가 다니는 큰길로 돌아서 갔습니다. 결과는 어땠을까요? 평소에는 제가 빨랐지만, 눈이나 비가 오면 그 친구가 훨신 빨랐습니다. 우리는 이 작은 사건이 Network Layer의 핵심이 된다는것에 놀라지 않을 수 없습니다...

Layer 3는 Destination IP address에 대한 경로를 알아야 하는 역할도 있지만, 경로가 여러개인 경우 최적의 경로를 선택하는 역할도 수행해야 합니다. (이제 비둘기로는 통신하기 어렵겠군요. 비둘기는 자신이 가던 방향으로만 갈 테니까요. 비둘기가 아무리 똑똑해도 '새대가리'잖아요.) 그런데, 오락을 하기 위해 친구와 제가 생각이 달라서 다른 길로 갔듯이 Layer 3 장비도 Best-Path를 선택하는 기술에 따라 선택기준이 달라지게 됩니다. 하지만, 자기 입장에서는 최적의 경로라고 생각하겠죠. 우리는 Best-Path를 찾는 Protocol을 Routing Protocol이라고 합니다. 지겹도록 공부하시게 될겁니다. ^^

아까 이야기로 돌아와서 만일, 제가 '아! 눈이나 비가 오면 큰길이 빠르구나!'라는 것을 깨닫고, 날씨나 환경에 따라 다른 길을 선택했다면 어떨까요? 그것이 최선이겠죠! 그래서, 요즘 TE(Traffic Engineering)라는 기술이 많이 나오고 있습니다.. 그게 뭐냐구요? 최적의 경로로 통신을 하다 그 경로의 조건 및 상태에 따라 다른 경로로 Traffic을 전송하는 기술입니다.

예를 들면, 다음과 같은 경우 어디로 보내는게 좋을까요?


(1)이 더 빠르겠죠. 즉, 평소에는 (2)로 보내다가 위와 같은 상태가 되면 (1)로 전송하는 기술이 TE입니다.
모든 기술은 상식을 벗어나지 않습니다. ^^

다시한번 정리를 하면 다음과 같군요.
Layer 1 : 전송을 담당
Layer 2 : MAC - Device와 Device 간에 전송 Protocol을 결정, Error Detection (추후에 설명)
Layer 3 : 목적지까지 가는 경로를 학습하고, Best-Path를 결정

Layer 3는 할말이 무지하게 많죠? 이번주와 다음주는 Layer 3를 알기 위한 기본내용을 학습하고, 자세한 내용은 천천히 공부하기로 하시죠. 오늘의 이론은 여기까지 하겠습니다. 점점 더 어려워지니 이해가 안가시면 바로 연락주세요. ^^

'네트워크 기초' 카테고리의 다른 글

IPv4 Class 체계  (0) 2010.03.29
IPv4 주소체계  (0) 2010.03.29
OSI 7 Layer : 'Layer 3'의 역할  (0) 2010.03.29
Switch는 왜 Collision 이 발생하지 않는가?  (0) 2010.03.29
CSMA/CD는 왜 필요한가?  (1) 2010.03.29
Layer 1 장비 - Hub의 동작원리  (1) 2010.03.29

Switch는 왜 Collision 이 발생하지 않는가?

네트워크 기초 | 2010.03.29 09:25 | Posted by 승진아빠

배움과나눔 조선용 강사님, 현재 시스코에 계시는 최수영 강사님과 CCIE를 준비하면서 의견을 교환하던 시절이 생각나는군요. 자료도 없고, 학원도 없고.... 유일하게 공부할 수 있는 곳은 과목당 수백만원씩 하는 공인교육센터 뿐이였지요. 학원비가 없어서 회사를 그만두고 퇴직금 받아서 CCIE PreLAB까지 준비하고, 장비도 구할 수 없어서 해외사이트에서 합격했다는 사람한테 메일보내서 장비 팔 생각없냐고 물어본 다음 일본가서 장비를 가져왔었습니다. 그때 쓴 돈을 SNET XXX차장님은 아직까지 못갚고 카드빚에 허덕이고 계시죠. ^^

너무 고생을 했기에 후배들에게는 그런 상황을 만들지 말자고 다짐을 했었지요. 그런데, 요즘 조금은 안타까운 생각이 듭니다. 덤프가 돌고, 많은 학원들이 생겨나면서 자꾸만 준비없이 자격증만을 목표로 쉽게 취득하시려는 분들이 많아지고 있는거 같습니다. 주위를 둘러보면 필기시험 생겼다고, 신 LAB이 나왔다고, Troubleshooting LAB이 생겼다고 시험을 연기하시더군요. 세상의 어떠한 시험도 더 쉬워지는 시험은 없습니다. 어차피 봐야 할 시험이라면 강하게 밀고나가세요.

오늘은 Switch에 대해서 한번 살펴보도록 하겠습니다. Switch의 동작원리에 대한 깊은 이야기는 천천히 하시기로 하고요, 오늘은 Switch가 Collision을 막는다고 하는데, 어떻게 그럴수가 있는지만 점검해 보겠습니다.

Switch도 Hub와 마찬가지로 내부적으로 Tx-Rx가 Cross되어 있습니다. 그래서, Host들과 연결할 떄, Straight Cable로 연결하면 되는 것이죠. 자~ 그럼 Hub와 Switch의 차이는 무엇일까요? 그 차이는 크게 3가지 입니다.

1. Switch는 L2 장비이고, Hub는 L1 장비죠.

너무 단순하다고요? 과연 그럴까요. Cable 상에 '0','1' 신호가 전달되면 Hub는 본래의 신호로 전송하는 역할만을 수행합니다. 즉, 전송만 담당하는 L1 장비인가죠. 하지만, Switch는 입력된 bit 신호를 조합해서 데이터로 만들어 L2 Header를 읽습니다. L2 Header 안에는 Switch가 가장 관심있어 하는 Source MAC address와 Destination MAC address가 있습니다. L2 Header를 인식하는 장비이기 때문에 우리는 L2 장비라고 이야기를 하는거죠.

Switch는 Source MAC address를 가지고 MAC address table을 만들고, Destinatino MAC address를 보고 MAC address table에 존재하는 MAC address인가를 확인합니다. 해당 MAC address가 Port1에 연결되어 있으면 그쪽으로만 Frame을 전달하기 위한거죠. 물론 MAC address table에서 못찾으면 유입된 Port를 제외하고 나머지 Port로 Flooding을 하게 됩니다. 지가 모른다고 Frame을 없애버리면 둘이 통신할 수 없잖아요. 착하죠? 나중에 배우시겠지만, Router는 Destinatino에 대한 경로를 모르면 Drop시키거든요. Router에 비해 Switch가 착하군요. ^^

Switch가 Source MAC address를 가지고 MAC address table을 만든는 것을 Learning(학습)한다고 하고요, MAC address table을 보고 목적지가 있는 Port로만 전송하는 것을 우리는 Forwarding(전달) 한다고 합니다. Hub는 모든 Port로 전달하지만, Switch는 목적지 Port로만 전달하고 나머지 Port로는 전달을 하지 않죠? 그것을 Filtering(차단)한다고 합니다. 별거 없죠? Learning, Forwarding, Filtering을 Switch의 3대 기능이라고 이야기를 하죠. 가끔 flooding까지 합쳐서 4대 기능이라고 하는 책도 있는데 flooding은 Hub도 수행하죠!

2. Switch는 커다란 Buffer를 가지고 있습니다.

Buffer로 뭐하게요? 자 어제 그림 생각나시나요? 동시에 Traffic을 보낼 때 충돌이 일어났잖아요. 다음과 같이요.

 



그런데, 다음과 같이 하면 어떻게 될까요?




충돌이 발생하는걸 피할 수 있겠죠? Switch는 PC1이 보내던 Frame을 다 전송하기 전까지 PC2가 보낸 Frame을 PC3쪽으로 전달하지 않습니다. 그럼, Hub처럼 한놈만 보내는게 아니라, 여럿이 한꺼번에 전송해도 큰 문제 없겠네요. 그래서, Rx로 traffic이 들어온다고 해서 Tx을 disable하는 기능 따위는 필요가 없습니다. 결국 송신과 수신이 한꺼번에 일어나겠군요. 우리는 그것을 Full-duplex라고 이야기 합니다.

3. Switch는 한개의 Port가 Collision domain을 나눕니다.

흠... 무슨 말일까요? JAM signal은 L2 Header 정보가 없습니다. 즉, L2 장비 입장에서는 전달할 가치를 느낄 수 없겠죠. Switch는 L2 정보가 없는 signal은 다른 Port로 전송하지 않습니다. 예를 들어 속도를 Nego하는 signal 같은 것들이요. JAM도 하나의 signal에 지나지 않기 때문에 다른 Port로 전달하지 않으니 한개의 Port가 한개의 Collision domain을 가지게 되는 것입니다.

Collision domain이란 Collision 발생시 전달되는 JAM신호를 받을 수 있는 범위니까요. ^^

이해가 좀 되시나요? 네트워크 기초 부분은 다음주 월요일에 계속 진행될 것이고요, 목요일하고 금요일은 네트워크 심화편을 진행합니다. 그럼, 내일 뵙겠습니다.... 눈이 많이 오네요! 감기 조심하세요.

 

 

■ 오늘의 낙서

어제 새벽 1시에 들어가는데 술한잔 하자는 전화가 와서 새벽 4시까지 술을 마셨습니다. 아침에 일어나기 참 힘들더군요. 그런데, 전화가 왔습니다. 강사님! 메일링 회원수가 갑자기 늘었어요. (사장님이라는 호칭에는 왠지 권위감이 느껴져 강사라고 하라고 합니다) 정신이 번쩍 들더군요.

 

알고보니, 제가 신입일 때 매일 무지 저를 괴롭히시던 분이 은퇴하셔서 저를 도울 방법을 찾아다니고 계셨던 것이였습니다. 여러분도 지금 자신을 괴롭히는 상사가 있어서 괴로우시다 하더라도 최선을 다 해서 모시세요. ^^ 당신을 좋아하는 변태일지도 모르니까요!

'네트워크 기초' 카테고리의 다른 글

IPv4 주소체계  (0) 2010.03.29
OSI 7 Layer : 'Layer 3'의 역할  (0) 2010.03.29
Switch는 왜 Collision 이 발생하지 않는가?  (0) 2010.03.29
CSMA/CD는 왜 필요한가?  (1) 2010.03.29
Layer 1 장비 - Hub의 동작원리  (1) 2010.03.29
OSI 7 Layer : 'Layer 2'의 역활  (0) 2010.03.29

CSMA/CD는 왜 필요한가?

네트워크 기초 | 2010.03.29 09:23 | Posted by 승진아빠

예전에 TP에서 12주 연강을 한적이 있습니다. 그 당시, TP 기록이라고 했었는데 정말 서 있을 힘도 없었습니다. 그 때, 한 수강생 분이 저에게 그러시더군요. "LAB 하실 때는 앉아계셔도 되요..." 라고요.

하지만, 앉을 수가 없었습니다. 강사의 투철한 사명감때문이냐고요? 그럴리가요... 죽겠는데 무슨 사명감입니까? 수강하시는 분 중에 2주차 강의때 수업을 들으셨던 분이 계셨습니다. 그 분이 2주차 수업끝날 때 저에게 그러셨거든요. 다른 강사님들은 다 앉아서 쉬기도 하는데 LAB 시간까지도 항상 돌아다니시면서 도움을 주시니, 너무 감사하다고요. 뚜시궁! 칭찬은 세상의 힘입니다... T.T

요즘, 컨설팅하고 강의하고, 메일링쓰고... 너무 힘드니까 그 때 생각이 나네요. ^^

오늘은 CSMA/CD에 대해서 학습해 보도록 하겠습니다. 본래 CSMA/CD는 동축케이블 시절에 처음 나왔지만, 어제 Hub에 대해서 학습했으니, 우리에게 익숙한 UTP cable 상에서 CSMA/CD를 알아보도록 하겠습니다.

다음과 같이 케이블이 연결되어 있다고 가정해보죠.



Hub는 유입된 Traffic을 나머지 Port로 Flooding하기 때문에 PC1이 PC3에게 Frame을 전송하면 PC2에게만 전송되는 것이 아니라, PC2와 PC3가 연결되어 있는 Rx Port로 traffic을 전송하겠지요. 다음과 같이요.



그런데, 위의 그림을 잘 보시면 PC2와 PC3의 Tx line은 놀고 있습니다. 그래서, PC2가 PC3에게 Tx line을 통하여 Frame을 전송합니다. 그럼 어떻게 될까요. 다음과 같이 PC3와 연결되어 있는 Rx는 충돌(Collision)이 발생하게 되겠죠!

 



자! 일단 이런 일이 발생하는 원인을 제거해야 합니다. 어떻게 하면 이런 문제를 제거할 수 있을까.... 고민하다가 단순하고 멋진 생각을 하게 됩니다. Rx로 traffic이 들어오면 Tx 기능을 disable하면 되지 않겠느냐! 라는 거죠. 멋지지 않습니까? 다음과 같이 PC1이 Traffic을 보낼 때는 PC2와 PC3의 Tx 기능이 Disable 되서 PC1만 전송을 하게 되니 충돌이 일어나지 않겠지요! 해결!!!

흠... 예상하지 못한 일이 일어났군요. PC1이 전송한 traffic이 아직 PC2와 PC3에 도착하지 않았는데 PC2가 Frame을 전송하려고 합니다. 앗! 그냥 전송해 버립니다. 다음과 같이요.



충돌발생! 아직 충돌을 해결하지 못했군요. 그럼 어떻게 해야 할까요? 그렇습니다. 때에 따라서는 포기할 줄 아는 것도 매우 중요합니다. 그래! 충돌나라... 대신 충돌을 최소화시켜보자. 충돌을 누가 제일 먼저 감지할까요? 당연히 Tx로 전송을 하던 놈들 일겁니다. 원래 나혼자 전송을 해야 하는 것이 정석인데, Tx로 전송중에 Rx로 Traffic이 들어오잖아요. 이런 딴놈도 보내고 있군... 그럼 충돌이 났겠군! 제일 먼저 확인이 가능합니다.

그러면, 그놈 전송 못하게 막아야겠네요. 우리는 엿먹으라는 표현을 쓰는데 외국애들은 JAM 먹으라는 표현을 좋아하나 봅니다. 충돌을 감지한 놈이 32bit(or 48bit)의 JAM 신호를 전송합니다. 이 JAM 신호도 Hub는 나머지 Port로 flooding을 하죠. 모든 PC들이 이 정보를 받게 됩니다. 그 다음은 어떻게 할까요? JAM 신호를 받았어요. 그런데, JAM 신호를 받고 모두가 동일한 시간 동안 기다렸다가 Traffic을 전송하면 또 다시 충돌이 발생하겠죠! 그래서, 똑똑한 놈들이 좋아하는 수학공식을 이용합니다.

지금은 이해가 잘 안가시겠지만, 어제 배우신 3-4-5 Rule에서 충돌을 감지할 수 있는 최대 시간을 계산했는데 51.2us가 나옵니다. 그 시간안에는 절대로 두번째 Frame을 보내면 안되겠죠. 그럼 첫번째 Frame이 충돌난거지 두번째 Frame이 충돌난거지 알 수가 없을테니까요. 그래서 Frame의 최소 사이즈가 51.2us 이상 전송할 수 있는 길이로 책정되었습니다. 10Mbps에서 512bit가 나와요. 즉, 64byte가 되었죠.

그걸 충돌 후 기다리는 시간에 적용합니다. 처음에 충돌이 일어나면 51.2us 내에서 Random한 시간을 기다렸다 전송을 합니다. 헉! 또 충돌이 일어났어요. 운도 없죠! 그러면 51.2us X 2 = 102.4us 내에서 Random한 시간을 기다렸다 전송을 합니다... 다음은 51.2us X 3, 51.2us X 4 ..., 51.2us X 16 까지 수행합니다. 그 정도면 더이상 충돌이 일어나지 않나 보네요. 원래는 10이였는데 PC 대수가 많아져서 16으로 늘려버렸습니다.

우리는 이것을 'Backoff Algorithm'이라고 합니다. 쉽죠? ^^

CSMA/CD를 배웠습니다. 잉? CSMA/CD는 내용에 없다고요? CSMA/CD를 펼쳐보죠...
Carrier Sense Multiple Access / Collision Detect <== 엔지니어는 펼치는거 싫어하죠!
영어니까 부사가 뒤에 붙네요.. Multiple Access 에서 Carrier Sense 한답니다. Point-to-Point에서는 Rx-Tx, Tx-Rx 연결하면 무슨 충돌이 발생하겠습니다....

직역 : 여럿이 같이 사용하는 망에서 운반되는 Traffic이 있는지 감지한데요.
의역 : LAN과 같이 다중 Host가 통신하는 환경에서는 Traffic을 전송하기 전에 Rx로 Traffic이 유입되는지 확인하여, Rx로 Traffic이 들어올 경우 Tx 기능을 Disable하여 전송을 차단함. 즉, Traffic이 없을 때만 전송함

'/' 표시는 왜 했을까요? 당연히 "/"전의 내용은 충돌을 막기위한 기술이고, "/"뒤의 CD는 총돌났을때 대처하는 기술입니다.

남은건 CD군요. 'Collision Detect'
직역 : 충돌방생시 충돌을 탐지하여 문제를 해결한다.
의역 : Tx로 전송중에 Rx로 Traffic이 유입되면 충돌을 인식하게 되고, JAM 신호를 던져 Backoff Algorithm을 동작시켜 충돌을 최소화 시키게 되는거죠!

휴~ 원래 의역하면 내용이 줄어드는 것이 보통인데 의역이 훨씬 길군요.

여튼, 오늘은 CSMA/CD가 왜 필요하고, 어떻게 동작하는지 살표보았습니다.
내일은 Switch에서는 이 충돌이 발생하지 않는다는데 왜 그런지 한번 살표보도록 하겠습니다.

 

 

■ 오늘의 낙서


어느 동네에 이발소가 2개 있었습니다. 한 이발소 아저씨는 머리가 깔금하게 정리되어 있었습니다. 하지만, 다른 이발소 아저씨는 머리 모양이 엉망이였습니다. 그런데, 이상한건 동네 사람들이 머리 모양이 엉망인 이발소만 찾아가는 거였습니다. 왜 그럴까요?
예, 맞습니다. 자신의 머리를 깍지 못하기 때문에 머리모양은 바로 상대방의 실력이였던 겁니다.

우리는 엔지니어 입니다. 엔지니어의 손은 거칠수록 실력있는 엔지니어고, 피곤해서 조금 초췌해 보일수록 내실이 튼튼한 사람이 아닐까요? 오늘의 낙서였습니다.


Layer 1 장비 - Hub의 동작원리

네트워크 기초 | 2010.03.29 09:21 | Posted by 승진아빠

지난주에 Layer 1, 2의 역할에 대해서 학습하셨습니다. 이번주는 학습내용은 다음과 같습니다.

2010.03.08(월) : Layer 1 장비 - Hub의 동작원리
2010.03.09(화) : CSMA/CD는 왜 필요한가?
2010.03.10(수) : 왜 Switch는 Collision이 발생하지 않는가?
2010.03.11(목) : 네트워크 심화 - Loopback interface의 필요성
2010.03.12(금) : 네트워크 심화 - 왜 '0.0.0.0/0'이 Default-route 인가?
2010.03.13(토) : 금주의 LAB - 'Floating Routing'의 사용과 한계점

그럼, 오늘 학습을 시작하도록 하겠습니다.
우리는 많은 장비를 상호간에 연결하기 위해 Hub를 사용합니다. 그럼 Hub는 어떤 기능을 하는 장비일까요?
예전에 Repeater라는 제품이 있었습니다. 뭐하는 제품이죠? 그렇습니다. 통신선로상에 발생되는 Noise를 제거하고, 전송 중에 약해진 전압을 증폭하여 본래의 신호로 복원해 주는 장비였습니다. 초창기에 Ethernet이 나왔을 때, 10base5 동축케이블을 사용했습니다. 그런데, 이 동축케이블은 500m 이상 떨어진 장비간에 정확하게 Traffic을 전달할 수 없었습니다. 우리가 멀리 떨어진 사람과 대화하는 것과 비슷합니다. 이렇게 생각해 보시죠.

우리집에서 소리를 지르면 옆집까지는 정확하게 전달되지만, 건너편 집까지는 정확하게 전달이 되지 않습니다. 그 집에서는 "뭐야? 부부싸움하나?" 생각하겠죠! 그런데, 옆집이 우리가 소리치는걸 정확하게 듣고 나서, 그 옆집에 전달을 해주면 그 옆집도 제가 소리지른 내용을 정확하게 이해할겁니다. 또, 그 옆집이 옆집으로... 계속 전달하면 되겠죠.

그런데, 그렇게 전달되다 보면 개인의 의견이 들어가게 됩니다. Noise와 내용 변질이 되는거죠. 사람사는 것과 데이터 전송하는 것과 똑같습니다. 어느정도까지는 데이터를 정확하게 복원하여 전달할 수 있지만, 여러번의 원복단계를 거치면 본래의 데이터를 원복하기 힘들어 집니다. 그걸 누군가가 테스트했더니... '아하, Repeater 연결은 4개가 한계구나!'라는 것을 알아냈습니다.



그래서, 10Base5의 최대 길이는 2,500m가 되었습니다. 우리는 이것을 3-4-5 Rule이라고 부르죠! '왜 Ethernet 케이블 길이는 100m 이내여야 하는가?'는 추후에 논의하시고요, 다음으로 넘어가시죠!

그런데, PC가 많아지면서 Connector를 통해 일열로 줄세워서 연결 다자간 통신을 하는 동축케이블은 한계에 부딪치게 됩니다. '많은 PC들이 한번에 통신할 수 있는 방법은 없을까?' 고민하다가 기발한 아이디어를 생각하게 됩니다. 중간에 장비 하나를 두고 다른 장비들을 연결해 보자는 생각이죠. 그렇게 해서 Hub가 나왔습니다.

Hub는 Reapter의 집합에 불과합니다. 한개의 Port로 데이터가 유입되면 본래의 데이터로 복원하여 나머지 다른 Port로 전송하는 역할을 수행하죠. 그래서 Hub를 'Multiport Repeater'라고도 이야기를 합니다. 엄밀히 말하면 약간의 차이가 있기는 합니다. Multiport Repeater는 동축케이블을 사용하는 시기에도 존재 했었거든요. ^^

그럼, Hub는 Repeater 역할만 수행을 할까요?

다음 그림과 같이 Hub는 모든 Port들이 서로간에 Rx와 Tx가 Cross되어 있습니다.
PC가 Tx로 Traffic을 전송하면, Hub의 Tx가 그 정보를 받아서 다른 Port의 Rx로 전송을 합니다. 그럼 다른 PC들은 모두 Rx를 통해서 Traffic을 전달받게 되는거죠.


우리는 가장 기본적인 상식을 한가지 알고 있습니다.

UTP cable은 Rx line과 Tx line이 구분되어 있고, 상호간에 통신을 위해서는 반드시 Tx와 Rx가 연결되어 있어야 한다는 사실입니다. 이건 불변의 진리죠! Tx는 송신하는 line이고 Rx는 수신하는 line이니까 반드시 나의 Tx는 상대방의 Rx로 상대방의 Tx는 나의 Rx로 연결되어야 하는 겁니다.

통신을 위해서는 모든 장비는 Cross로 연결되어야 한다! [불변의 진리]

그런데, 우리는 양 끝단이 Tx-Rx로 연결되는 Cross-over cable만 사용하나요? 아니죠..... Rx-Rx, Tx-Tx로 연결되는 Straight cable (or Dircet cable)을 더 많이 사용하죠. 그 이유가 바로 Hub나 Switch는 위의 그림처럼 내부에서 한번 Cross되어 있기 때문입니다. 결국 통신을 해야 하는 PC-PC간에 Cross 연결이 되면 통신이 가능하니까요. ^^

재미있으셨나요? 어떤 책들은 같은 장비면 Cross, 다른 장비면 Straight cable을 사용해야 한다고 써 있던데, 그럼 Router와 PC는 다른 장비니까 Straight인가요? Cross cable을 사용하죠. Router나 PC나 내부적으로 Cross되어 있지 않기 때문에 그런 것이랍니다.

내일은 CSMA/CD가 왜 필요한지 학습해 보도록 하겠습니다. 오늘 하루 즐거운 시간되세요.