태터데스크 관리자

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

태터데스크 메시지

저장하였습니다.
 

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


 
 

SPAN과 RSPAN 개요

네트워크 심화 | 2010.05.10 11:17 | Posted by 승진아빠


드디어, 주말작업을 끝으로 프로젝트를 마무리했습니다. 한동안 교육사업에만 집중하며 제가 하지 못했던 Voice 공부도 시작할 수 있겠군요. 여러분을 위해서나 저를 위해서나 교육사업이 잘되서 딴 짓하지 않는 것이 최선이겠지요. 그러기 위해서는 많이 오셔서 교육센터에 투자하셔야겠지요? ^^

삼성SDS에 있는 친구가 그러더군요. "2+1"을 해보라구요. 두명 데러오면 한명 무료... 네트워크와 관련된 일은 다 다단계로 생각하나 봅니다.

어제도 잠을 못자서 메일링을 보내지 못했냐구요? 아니요... 작업을 끝내고 메일을 보낸 후에, 긴장감이 풀려서 잠시 쉰다는게 오늘 아침이지 뭡니까! 요즘 회사에 차가 없어서 집에 가서 일하고 있거든요. 역시 일은 집에서 하면 안되나 봐요. 시간이 2-3배 걸리고 나태해져요.

자, 오늘은 SPAN에 대해서 학습해 보도록 하겠습니다. 그리고, 오늘 부터는 예전과 마찬가지로 주간 일정을 알려드리도록 하겠습니다. 이제는 가능하니까요. ^^

월 : SPAN과 RSPAN의 개요
화 : ISL Trunk 이해하기
수 : 802.1Q Trunk 이해하기
목 : Native VLAN의 이해
금 : 'switchport mode'의 이해
토 : VLAN과 Trunk LAB 실습

금주부터는 기 수강생이나 활동을 열심히 하신 분들을 위해 매주 1-2편 LAB 동영상을 카페에 올릴 예정입니다.
주임등급부터 학습이 가능하도록 할 예정인데, 카페명을 보고 제가 기 수강생이신지 아닌지 알 수가 없어요. 기 수강생 분들은 저에게 쪽지를 남겨주세요. ^^

자 그럼, [오늘의 학습]을 시작하도록 하겠습니다.

SPAN(Switched Port Analyzer)이란 특정 Port나 VLAN으로 송신되거나 수신되는 Traffic을 특정 Port로 Copy해서 전송하는 기술을 이야기 합니다. 흔히들 '포트 미러링(Port Miroring)'이라고 부르기도 합니다.

용어부터 정리하면 다음과 같습니다.

- Ingress Traffic : 수신되는 Traffic
- Egress Traffic : 송신되는 Traffic
- Source Port/VLAN : 실 Traffic이 송수신되는 Port/VLAN
- Destination Port : Copy된 Traffic이 전송되는 Port
   ※ Destination Port는 Traffic을 수신하지 못하며, Copy된 Traffic외에는 전송하지 못함
- Session : Source Port와 Destinaion Port간의 Port mapping
- Reflector Port : RSPAN VLAN이 Copy되어 전송되는 Port



물론 Tx나 Rx 둘중에 하나만 SPAN 할 수도 있습니다. 그리고, 조심하셔야 하는 것은 VLAN 정보를 SPAN하려고 할 때, 다른 VLAN에서 Source VLAN으로 Rouing 되어서 넘어오는 Traffic은 Monitoring 할 수 없다는 겁니다. 해당 VLAN에서 돌아다니는 Traffic만 Monitoring 하실 수 있습니다.
그러나, Source VLAN에서 다른 VLAN으로 Routing 되는 Traffic은 Monitoring이 가능합니다.

그리고, 무한대로 SPAN 기술을 적용할 수 있는 것이 아니라, Session 수에 대한 제한이 있습니다.
그 제한는 다음과 같으며 기술의 발전으로 향후 변경될 수 있습니다.



6500은 하도 자주 바껴서 여기를 클릭해서 확인해주세요. ^^

먼저 일반적인 Local SPAN에 대해 확인해 보도록 하겠습니다.
예전에 Hub는 다음과 같이 모든 Port로 Flooding을 했습니다.



그러다, Switch가 등장한 이후에는 Destination MAC-address가 있는 Port로만 Forwarding을 하게 되었습니다. 그러다보니, Network 상에서 돌아다니는 Traffic을 Monitoring 하기가 쉽지 않아졌군요.



그래서, SPAN이라는 기술을 만들어 다음과 같이 Copy를 해서 다른 Port로 전송하는 기술을 만들게 되었습니다. 그것을 우리는 SPAN이라고 이야기를 하는 것이죠!



위와 같이 Port를 SPAN 할 수도 있고 다음과 같이 VLAN을 한 Port로 SPAN 할 수도 있습니다.



자, 그럼 다음과 같이 구성되어 있을때 어떠한 SPAN을 구성할 수 있는지 그림으로 확인해 보도록 하겠습니다. Network을 Monitoring하는 장비가 VLAN 2번 Port에 연결되어 있군요.



1. 동일 VLAN에 송수신되는 Traffic Monitoring



2. 여러 VLAN에서 송수신되는 Traffic Monitoring (타 VLAN만 설정도 가능)

 


4. Rx/Tx 선별하여 Monitoring



5. Trunk Port Monitoring 및 특정 VLAN의 Traffic만 Monitoring

 


개념이 별로 어렵지는 않으시죠? 그럼 RSPAN에 대해 알아보시죠! RSPAN은 다른 Switch에 있는 VLAN 정보를 Remote에 있는 장비로 SPAN하는 기술입니다. 이것도 그림을 보시면 쉽게 이해하실 수 있습니다.

RSPAN은 다음과 같이 특정 VLAN에 돌아다니는 Traffic을 RSPAN용으로 지정한 VLAN을 통해 타 Switch로 전달을 합니다. 물론 해당 타 Switch로 전달하기 위한 Port는 Trunk Port로 설정되어 있어야겠죠!



결국 요약해서 그림을 그리면 다음과 같이 되겠군요.



주절 주절 말로 쓰는것보다 쉽죠? 그림은 모두 Cisco 사이트에 있는걸 가져다 쓴겁니다. 보통 Cisco는 개념도를 많이 그리는데 저 그림들은 아주 쓺만하더군요. ^^

RSPAN을 사용하는 경우 Looping이 발생할 수 있는데 그 부분은 추후에 시간이 되면 설명드리도록 하겠습니다. 오늘은 SPAN과 RSPAN의 개념만 설명드리도록 할께요.

그래도, 큰 일 한가지가 끝나니 마음이 편하군요. ^^
돈 벌일이 더 큰 걱정이기는 하지만, 거미줄이야 치겠습니까.... 그럼 내일 뵙도록 하겠습니다.

'show vlan' 정보 확인하기!

네트워크 심화 | 2010.05.06 22:57 | Posted by 승진아빠


우리가 [네트워크 기초]에서 VLAN을 배우고 있는데요, [네트워크 심화]에서 show vlan을 깊숙히 배워보기로 하시죠! 네트워크 엔지니어들이 늘 사용하는 명령어죠. 저도 다 알지는 못하지만, 아는데가지 최대한 설명드리도록 하겠습니다.^^

다음은 show vlan 결과입니다.

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa0/1, Fa0/2, Fa0/3, Fa0/4
                                                Fa0/5, Fa0/6, Fa0/7, Fa0/8
                                                Fa0/9, Fa0/10, Fa0/11, Fa0/12
                                                Fa0/13, Fa0/14, Fa0/15, Fa0/16
                                                Fa0/17, Fa0/18,
                                                Fa0/19, Fa0/20
                                                Fa0/21, Fa0/22, Fa0/23, Fa0/24
                                                Gi0/1, Gi0/2
2    VLAN0002                         active
3    VLAN0003                         active
4    VLAN0004                         active
5    VLAN0005                         active
1002 fddi-default                     act/unsup
1003 token-ring-default               act/unsup
1004 fddinet-default                  act/unsup
1005 trnet-default                    act/unsup

VLAN Type  SAID       MTU   Parent RingNo BridgeNo Stp  BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
1    enet  100001     1500  -      -      -        -    -        0      0
2    enet  100002     1500  -      -      -        -    -        0      0

VLAN Type  SAID       MTU   Parent RingNo BridgeNo Stp  BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
3    enet  100003     1500  -      -      -        -    -        0      0
4    enet  100004     1500  -      -      -        -    -        0      0
5    enet  100005     1500  -      -      -        -    -        0      0
1002 fddi  101002     1500  -      -      -        -    -        0      0
1003 tr    101003     1500  -      -      -        -    -        0      0
1004 fdnet 101004     1500  -      -      -        ieee -        0      0
1005 trnet 101005     1500  -      -      -        ibm  -        0      0

Remote SPAN VLANs
------------------------------------------------------------------------------


Primary Secondary Type              Ports
------- --------- ----------------- ------------------------------------------

하나씩 살펴볼까요?

■ VLAN
   ○ Standbard VLAN : 1 ~ 1005 (과거에는 1 ~ 1000 이였으나 변경됨)
       - VLAN 1 : Default-VLAN으로 삭제 불가
       - Cisco에서는 1002 ~ 1005까지 Token-Ring이나 FDDI를 위해 예약해 놓은 VLAN으로 삭제 불가
   ○ Extended VLAN : 1006 ~ 4094 (과거에는 1025 ~ 4094 이였으나 변경됨)
   ※ 과거에는 1001, 1006~1023 VLAN을 사용하지 못하였으나 현재는 사용 가능함
 
■ Name
   ○ VLAN을 관리하기 위한 VLAN name
       - VLAN 1의 Default name : 'default'
       - VLAN1, 1002-1005 : VLAN의 이름 변경 불가

       - 타 VLAN의 default name : 'VLAN + vlan # (4자리)' 형태로 변경 가능 
          ex) VLAN0002, VLAN0003 등


■ Status
   ○ active : 현재 VLAN이 만들어져서 운영중인 상태 (Interface에 할당여부와 상관없음)
   ○ inactive : VLAN을 Interface에 할당하였으나, 해당 VLAN이 존재하지 않는 경우
       (show vlan에서는 나오지 않음)
   ○ suspended : 현재 VLAN이 만들어져 있으나, 해당 VLAN의 Frame을 전달하지 않는 상태
   ○ act/unsup : 1002 - 1005 처럼 suspended 상태로 만들 수 없는 VLAN
   ○ act/lshut : 해당 VLAN을 사용하지 않기 위해 shutdown 한 상태
                       (Interface vlan을 shutdown한게 아닙니다.)

※ Inactive : Interface fa0/2에 에 VLAN 3번을 할당 후 'no vlan 3'으로 VLAN 삭제시
# show interface fa0/2 switchport
Name: Fa0/2
Switchport: Enabled
Administrative Mode: dynamic desirable
Operational Mode: down
Administrative Trunking Encapsulation: dot1q
Negotiation of Trunking: On
Access Mode VLAN: 3 (Inactive)
Trunking Native Mode VLAN: 1 (default)
Voice VLAN: none
Administrative private-vlan host-association: none
Administrative private-vlan mapping: none
Administrative private-vlan trunk native VLAN: none
Administrative private-vlan trunk encapsulation: dot1q
Administrative private-vlan trunk normal VLANs: none
Administrative private-vlan trunk private VLANs: none
Operational private-vlan: none
Trunking VLANs Enabled: ALL
Pruning VLANs Enabled: 2-1001
Capture Mode Disabled
Capture VLANs Allowed: ALL
Protected: false
Appliance trust: none

■ Ports
   ○ 해당 VLAN으로 설정되어 있는 Interface 정보
   ○ Interface 정보가 없는 대표적인 경우
       - Inactive VLAN이 할당된 Interface
       - Trunk Port로 설정되어 있는 Interface

■ Type (VLAN 1, 1002 ~ 1005번을 제외하고 'media' 명령어를 사용하여 변경 가능)
   ○ ethernet : VLAN type Ethernet
   ○ fd-net : VLAN type FDDI Net
   ○ fddi : VLAN type FDDI
   ○ tokenring : VLAN type Token Ring
   ○ tr-net : VLAN type Token Ring Net

■ SAID (802.10 security association identifier)
   ○ Default : 100000 + vlan #
   ○ Switch 내부에서 VLAN을 관리하는 번호로 'said' 명령어를 사용하여 변경 가능

■ MTU (VLAN의 Maximum Tranmission Unit)
   ○ Default : 1500 (byte)
   ○ 'mtu' 명령어를 사용하여 <576-18190> 범위에서 변경 가능

나머지 부분은 FDDI나 Token-Ring에서 사용되는 내용입니다. 저도 그 부분은 아직 깊이가 적어서 좀 더 학습해서 알려드리도록 하겠습니다. ^^

다음줄에 나오는 Remote SPAN은 내일 학습하도록 하고, Primary, Secondary VLAN하는 부분은 다음주에 Private-VLAN을 학습하면서 확인해 보도록 하겠습니다.

메일링이 계속 늦죠? 자꾸 메일링을 쓰지 못하도록 누가 일을 많이 줘요....!!
당장 먹고 살일을 처리하고 메일링을 작성하니, 좀 메일링이 늦습니다. 조금만 더 참아주세요.
감사합니다. ^^

CCIE Open-Ended 과연 어려운가? (4)

네트워크 심화 | 2010.04.16 12:15 | Posted by 승진아빠

벌써 Open-Ended 4번째 시간이군요. 좀 만만해 지셨나요? 더 자신이 없어지셨다고요? 이론은 아무것도 아닌데 영아에 자신이 없으신가 보군요. 계속 영작하는 연습을 해보세요.

예를 들면 하루에 2-3개씩 단어를 잡으세요.

단어 : Router, VLAN, Packet

그리고, 그걸 한글로 설명할 수 있도록 요약하시고 영작을 해보세요. '어떻게 설명하는 것이 좋을까...'라고 출퇴근 길에 머리속으로 계속 생각하시다 보면 CCIE에 나오는 시험 정도는 영작하실 수 있을겁니다. 못한다고 하면 평생 못하는거고, 할 수 있다고 생각하면 실패하더라도 한번 해보기라도 하는거 아니겠어요? ^^

차주부터는 시험센터가 운영될 듯 합니다. 저녁 9시에도 시험볼 수 있는 학원, 주말에도 시험볼 수 있는 학원이 되겠다고 메일링 초반에 드렸던 약속을 지키겠습니다. 업무중에 눈치보면서 시험치러 오시지 마시고, 야간이나 주말에 편하게 오셔서 시험보고 가세요. 크지 않은 학원에 6대의 Test PC가 있으니까 왠만하면 자리가 있을겁니다.

급한 사정에 의해 당일 등록하시더라도 시험이 가능하도록 해드릴 생각이지만, 잘못하면 오래 기다리셔야 합니다. 최소 하루전에는 등록해 주시고요. 참고로 시험센터는 VUE 입니다. VUE에서 시험보는 과정만 신청해주세요. ^^

그럼, 오늘도 메일링을 시작해 볼까요?

Q1. What circumstances use the tcp intercept?

TCP intercept가 뭐죠?

답부터 말씀드리면 TCP intercept 기능은 DoS attack과 같은 TCP SYN flooding 공격으로 부터 서버를 보호하기 위한 기술입니다. 어떻게 보호하냐구요?

공격자가 서버를 공격하기 위해 TCP SYN packet을 보내면 서버는 당연히 SYN/ACK를 보내게 될 것입니다. 그런데, 마지막 ACK를 공격자가 보내지 않으면 서버는 Session이 완성될때까지 Memory 등 자원을 사용하며 ACK를 기다리게 되죠.

그런데, 이렇게 기다리는 Session이 많아지게 되면 서버의 자원이 Full 사용되어 정상적인 Session에게 할당할 자원이 부족하여 서비스 제공을 못하게 됩니다.

이때, TCP intercept 기능이 enable되어 있는 Router가 공격자와 서버 사이에 있는 경우, TCP 3-way handshaking 상황을 table에 기록하여 정상적으로 Session이 맺어지는지 모니터링을 합니다.

만일, 일정한 시간내에 정상적으로 Session이 완성되지 않는 경우에는 Session을 종료시켜 버리는 것이죠.

자! 그럼 어떻게 동작하는지 잠깐 살펴보도록 하겠습니다.

1. 공격자가 SYN packet을 서버로 전송합니다.

Router는 SYN 정보를 TCP intercept table에 등록한 후, 서버로 부터 ACK가 날아오는지 확인합니다.

2. 서버가 공격자에게 SYN/ACK packet을 전송합니다.

최초 SYN에 대해 ACK가 전달되었고, 새로운 SYN이 전달되었으므로 Router는 'Half-open connection' 상태가 됩니다. 그리고, 공격자로부터 ACK가 날어오는지 확인을 하게 되죠! 만일, ACK가 날아온다면 'Two half-connections'상태가 되어 문제없이 통신을 하게 되는 것이고, ACK가 날아오지 않는다면 Default로 30초간 기다렸다가 Session을 종료시킵니다. 간단하죠? ^^

보다 저 자세한 내용은 추후에 설명드리기로 하고 오늘은 개념만 설명드리도록 하겠습니다. ^^
이제는 답을 적어야죠!

The TCP intercept feature implements software to protect TCP servers from TCP SYN-flooding attacks, which are a type of denial-of-service attack

너무 길다고 생각이 드시면 [To protect TCP servers from TCP SYN-flooding attacks] 부분이 핵심입니다.


Q2. What mode violation is still permitted to forward traffic?

CCNA 문제군요. [violation]은 Port-security를 적용할 때 많이 사용하는 Option이죠? 실제로 Violation은 Port-security외에도 장비에 어떠한 정책을 수립할 때, 함께 사용됩니다. 수립된 정책을 위반했을 때 어떤 동작으로 취하라는 것을 의미하는 것이죠.

예를 들어 Port-security를 설정하여 특정 MAC-address만 통신이 가능하도록 만들었는데, 허락되지 않은 MAC-address가 유입될 때 동작방법을 명시하게 되는 것입니다. Default mode는 'Shutdown' 상태로 Port를 사용하지 못하도록 차단시켜 버리는 거구요. 그럼, 다른 mode는 어떤게 있나요?

문제를 보면 Port-security 정책을 수립할 때를 묻는것 같군요.

Port-security에서 Violation mode는 다음과 같이 3가지가 있습니다. 

1. Protect
[Port-security maximum] command에 의해 설정된 최대 등록가능한 MAC address 초과시, Port-security table에 등록되지 않은 Frame은 Drop시키는 Mode로 table에 등록된 사용자는 통신이 가능한 mode

2. Restrict
Protect mode와 동일하게 동작하나, Protect mode는 Log를 남기지 않는 반면 Restrict mode는 차단된 Frame에 대한 Log를 기록하여 Log Server에게 전송하며, 차단된 Frame Count를 table에 등록하여 잘못된 Frame이 얼마나 많은지 확인 가능한 mode

3. Shutdown
Port-security table에 등록되어 있지 않은 Frame 유입시 Port를 err-disable 상태로 만들어 Port를 더이상 사용하지 못하도록 하는 mode

쉽죠? 답은 mode를 물었으니 다음과 같이 적으면 되겠군요. 철자가 문제겠군요!

Protect mode and 2. Restrict mode

오늘은 메일링이 많이 늦었죠? 오늘 저녁까지 OO증권 컨설팅 제안서를 만들어야 해서요. 오전까지 달라고 해서 부지런히 밤세 만들었더니, 저녁까지 달라네요. 그래서 메일링을 쓰고 있는 것입니다. 또 작업 들어가야죠.

오늘 하루 힘차게 보내시고요, 내일 뵙도록 하겠습니다. 화이팅!!

CCIE Open-Ended 과연 어려운가? (3)

네트워크 심화 | 2010.04.15 09:42 | Posted by 승진아빠

안녕하세요. 이경태입니다. CCIE를 준비중이신 분들은 목, 금, 토요일이 기다려지시겠어요. 덤프를 사려니 비싸고, 샀어도 답이 맞는지 확신이 안서고..... 제가 몇주동안은 CCIE를 준비하시는 분들을 위해 Open-Ended와 Troubleshooting은 아무것도 아니다는걸 알려드리도록 하겠습니다.

CCIE 시험을 준비하지 않으시는 분들도 공부해 두시면 좋으실 겁니다. 그래도 CCIE 시험인데 시스코가 중요하지도 않은 이론을 가지고 문제를 내겠습니까! 나름대로 중요하니까 문제로 만든것이겠지요.

이번주는 컨설팅일 때문에 정신이 하도 없어서 바로 문제 풀이로 들어가도록 하겠습니다. ^^

Q1. CLASS-MAP match-any XXX. What's mean match-any?

CCNP 'ONT' 과정에 나오는 QoS 문제군요. 예전에는 주요 서비스의 품질 보장을 위하여 각 Flow마다 Bandwidth와 low latency를 보장해 주는 방법을 사용해 왔습니다. 그런데, 문제가 생겼습니다. 서비스를 보장해 주겠다고 하나의 Flow마다 10Kbps씩 할당을 해 주었더니, 서비스 수가 증가되어 Bandwidth가 부족하기 시작한거죠. 그래서, 사람들이 새로운 방식을 생각해 냅니다.

Flow마다 주지 말고 서비스마다 Bandwidth를 줘보자!

예를 들면 전체 Bandwidth의 30%는 HTTP 서비스를 위해 보장해 주는거죠. 이렇게 하려면 어떻게 해야하죠? 당연히 HTTP만 분류할 수 있어야 하죠? 이렇게 서비스를 보장해 주기 위해서는 해당 서비스 Packet을 분류해야 하는데 이렇때 사용하는 것이 class-map 입니다.

여기서 사용하는 명령어를 묻는 문제군요. 바로 [match-any]!!

class-map을 설정하는 방법은 다음과 같습니다.

class-map [match-all | match-any] class_name
    
match match_conditon_1
    
match match_conditon_2
    
match match_conditon_3
   .....

이 때 잘 보시면 Option으로 'match-all'과 'match-any'가 있는걸 확인하실 수 있으실 겁니다. 만일, Option을 명확하게 설정하지 않으면 'match-all'로 설정됩니다. 그럼 두개의 차이를 간단히 설명드리고 답을 알려드리도록 하겠습니다.

■ match-all

class-map 안에 있는 모든 match_condition 조건에 일치하여야 해당 class로 분류됩니다. 예를 한번 들어 볼까요?

class-map match-all [미인]
   match [이쁜 얼굴]
   match [작은 얼굴]
   match [달걀형]

이렇게 설정해 놓으면 [미인]이라는 class에는 [이쁜 얼굴], [작은 얼굴], [달걀형] 3가지 조건이 모두 만족되어야 들어갈 수 있는 것입니다. match [와이프] 이렇게 한줄 더 되어 설정되어 있으면 class는 둘중에 하나겠군요. [와이프]만 들어갈 수 있던지 [Empty]던지....^^

■ match-any

class-map 안에 있는 match-condition 조건중 하나만 일치하여도 해당 class로 분류됩니다. 위의 예를 이용해서 만들어 보시죠.

class-map match-any [미인]
   match [이쁜 얼굴]
   match [작은 얼굴]
   match [달걀형]

이제는 [미인]이라는 class에는 [이쁜 얼굴]이거나 [작은 얼굴]이거나 [달걀형]이면 누구나 class에 들어갈 수 있습니다. 무슨 문제가 있나요? 달걀형이면 누구나 들어갈 수 있으니 몸이 달걀형이어도 들어갈 수 있겠군요. 달걀형 얼굴이 아니라 달걀형이 조건이니까요. ^^

자! 그럼 답을 한번 알아볼까요? Cisco Site 내용이 정답이겠죠!

match-any - Only one of the match criteria listed in the class map is satisfied to match the network traffic class in the class map, typically match commands of the same type


Q2. in NAT, the inside local and inside global relationships between and describe its role?

NAT는 Network Address Translation으로 Source IP address를 변경하여 전송할 때 사용을 합니다. 그럼, 왜 IP address를 변경할까요? Source IP address를 변경하면 Spoofing 공격이잖아요! NAT를 하는 경우는 매우 다양한 경우가 있지만 대표적으로 두가지 경우가 있습니다.

■ Case 1. Internet 사용 시

사설 IP address는 누구나 사용할 수 있기 때문에 '10.0.0.0/8'를 그림과 같이 Company A와 Company B가 사용을 하고 있다고 가정해 보시죠. 인터넷망에서 목적지가 '10.0.0.1'인 Packet이 전달되었을 때, ISP Router는 이 Packet을 Company A로 보내야 하는지 Company B로 보내야 하는지 알 수가 없을 겁니다.
 


그럼 어떻게 해야 할까요? Company A와 Company B는 인터넷망을 사용하기 위해서는 공인 IP address를 사용해야 할 것입니다. 즉, 회사 내부에서는 사설 IP address를 인터넷망에서는 공인 IP address를 사용하여야 한다는 이야기죠. 이런 경우 사설망의 Packet이 인터넷망으로 전달되면서 Source IP address가 공인 IP address로 변경되어야 하는데, 이런 경우 사용하는 기술이 'NAT'라는 기술입니다.

■ Case 2. 대외망 연결 시

만일 사설 IP address '10.0.0.0/8'를 사용하는 두 회사간에 업무협조를 위하여 전용회선으로 연결을 한다고 가정해 보시죠. 그럼 다음 그림과 같은 상황이 발생하게 될 것입니다.



Company B의 Router는 '10.0.0.0/8' Network이 자신의 Network이기 때문에 Company B로 전달하지 않을 것이며, 망일 Static으로 '10.1.1.0/24'에 대해 설정을 해서 Company B로 보냈다고 하더라도, Company A에서 Packet을 받은 PC가 응답 Packet을 보낼 때, Company A 내에 있는 10.1.1.1로 보내게 되어 상호간 통신이 되지 않을 것입니다.

그럼, 어떻게 해야 하나요? 예, 인터넷은 Packet이 나갈 때 NAT를 했지만, 이번 경우는 각 회사에서 Packet이 들어올 때 NAT를 해줘야겠지요. 그건 이론이고요 일반적으로 두 회사중 '을'입장인 회사가 들어오고 나갈 때 다 NAT를 수행합니다. '갑'은 장비설정을 최소화하고 싶어하거든요. 그래야 문제가 생겨도 '너희 문제다. 우리는 설정변경한 것이 없다' 라고 말할 수 있을테니까요. ^^

자, 문제로 돌아와서 우리가 NAT를 사용하는데 'inside local'과 'inside global'에 대한 정의와 그 연관관계를 설명하라고 하는군요. 저게 뭐냐구요? 간단합니다. 다음 그림을 보시죠!



인터페이스에 먼저 Inside와 Outside를 설정합니다. 그러면 위와 같이 어느쪽이 Inside이고 어느쪽이 Outside인지 구분이 되겠죠? 그 다음 inside에 있는 장비의 주소가 Local에서 사용하는 주소가 Inside local address이고, Global에서 사용하는 주소가 Inside global address가 됩니다.

그런가 하면 Outside에 있는 장비가 Local에서 사용하는 주소는 Outside local address, Global에서 사용하는 주소는 Outside global address가 되는 것이죠! 별거 아니군요. ^^

그럼 답을 풀어야죠.

이번에는 시스코 공인교재에 있는 말을 가져다 쓰겠습니다. CCNA Press에 있는 정의입니다.

Inside local : the actual IP address assigned to a host in the private enterprise network
Inside global : the IP address to use to represent the inside host as the packet is sent through the outside network
inside local and inside global relationships : A NAT changes the source IP address of a packet sent by an inside host from an inside local address to an inside global address as the pascket goes from the inside to the outside network.

CCIE Open-Ended 정말 어려운가? (2)

네트워크 심화 | 2010.04.10 01:22 | Posted by 승진아빠

어제는 메일링을 쓰지 못했습니다. 메일링을 쓸 수 있는 상태가 아니였거든요. 저희 직원 중 학원을 총괄 운영하던 직원이 집안 사정으로 퇴사를 하고 진주 고향집으로 내려갔습니다. 저와는 3년간 같이 일해왔던 친구로 친형제나 다름없는 사이였거든요.

그 친구가 있었기에 제가 교육센터를 맡겨놓고 컨설팅 및 개인업무들을 자유롭게 할 수 있었는데... 가슴이 너무 아팠고 지금도 너무 아픕니다. 제가 해준게 너무 없었다는 미안함과 집안 문제가 빨리 해결되서 다시 돌아오기를 기대할 뿐입니다. 저는 사람을 잘 포기하지 않습니다. 그게 제가 가진 가장 큰 재산이니까요.

어제 메일링을 보내드리지 못했기 때문에 이번주는 일요일에도 메일링을 보내드리도록 하겠습니다.

자, 그럼 오늘도 CCIE Ended 문제를 2문제 함께 풀어보시죠!

Q1. How to enable SSH server?

우리는 Telnet의 보안취약성때문에 SSH를 통해 장비에 Access하도록 구성을 합니다. 이번 문제는 이러한 SSH 서버로 어떻게 구성하느냐를 묻는 질문이군요. CCNP과목중 'ISCW'에 나오는 내용이군요.

일단, 장비에 SSH를 enable 기능을 enable해야 합니다.

Step 1 : Hostname을 변경해야 합니다.
'Router', 'Switch'와 같은 Default-name에서는 SSH가 enable되지 않습니다.

Step 2 : Domain-name을 설정하여야 합니다.
SSH는 ID를 'hostname.domain-name' 형식으로 전달하기 때문에 domain-name이 설정되어야 합니다.

Step 3 : Key를 생성합니다.
암호화 통신을 하기 위한 Key를 생성해야 암호화를 시키겠지요. ^^

여기까지 하면 SSH가 enable됩니다. 다음은 Server로 가동시켜야 겠군요.

Step 4 : AAA 기능을 enable합니다.
Default로 Router나 Switch는 aaa 기능이 disable되어 있습니다. 단순히 password만 확인하는 방식으로 user를 인증하지요. 하지만, ID/PW 형식으로 인증을 하기 위해서는 aaa 기능을 enable해야 합니다. 물론 aaa 기능을 enable하기 싫으신 경우 'login local' 명령어를 사용할 수도 있지만, aaa 기능을 enable하는 것이 더 권장됩니다

Step 5 : Username과 Password를 설정합니다.
당연히 ID/PW가 있어야 장비에 Access 할 수 있겠죠. ^^

Step 6 : SSH server를 enable 합니다.
SSH로 접속을 허용하도록 하려면 ssh가 사용하는 22번을 Open해야 하지 않겠습니까? Web server를 enable해야 80 port로 접속이 가능한 것과 마찬가지입니다.

Step 7 : SSH로 접속을 허용합니다.
최종으로 해야 할 일입니다. vty는 default로 telnet 접속을 허용하고 있습니다. ssh로도 접속 가능하도록 하용을 해줘야만 ssh로 Router나 Switch에 접근이 가능합니다.

꽤 복잡하군요. 7단계를 command로 표현하면 다음과 같습니다.

SSH server 구성의 예)

1. hostname SSH_Server
2. ip domain-name netrain.co.kr
3. crypto key generate rsa
4. aaa new-model (생략시 line mode 내에 'login local' 명령어를 사용해야 함)
5. username netrain password cisco
6. ip ssh
7. line vty 0 4
   transport input SSH

이제 마지막으로 이 내용을 영어로 적어야 하는군요.
다음과 같이 적어보죠.

1. Configure the hostname (You can't use default name)
2. Configure the domain-name
3. Generate an SSH key
4. Configure 'aaa new-model'
5. Register Users (username/password)
6. Enable SSH server
7. Add SSH terminal-line access


휴~ 다 됐군요. 순서에 대해서 묻지 않았기 때문에 숫자를 없이 적는 것도 방법일듯 합니다. 그리고, 문제가 정말로 'SSH server를 어떻게 enable하느냐'가 핵심이라면 'ip ssh' 명령어가 가장 중요합니다.


Q2. In HSRP, there are config file for R1 and R2, Want to double-team HSRP load sharing, R1 is the ACTIVE, if you want to R2 can be a group of 2 ACTIVE how to solve?

R1
   interface FastEthernet1/0
   standby 1 ip 11.1.1.254
   standby 1 preempt
   standby 1 track Serial0/0
   standby 2 ip 11.1.1.253
   standby 2 preempt
   standby 2 track Serial0/0

R2
   interface FastEthernet1/0
   standby 1 ip 11.1.1.254
   standby 1 preempt
   standby 1 track Serial0/0
   standby 2 ip 11.1.1.253
   standby 2 preempt
   standby 2 track Serial0/0

HSRP에 대해 다 적을 수는 없을 것 같고, HSRP는 Priority가 높은 놈이 Active가 됩니다. CCNP 과목중 'BCMSN'에 나와 있는 내용이지요.

R2를 Active로 만들고 싶다면 둘중에 하나를 하면 되겠군요. R1의 Priority를 R2보다 낮추던지 R2의 Priority를 R1보다 높이던지요. Default 값은 '100'이죠! 어찌되었군 R2의 Priority를 R1보다 높게 만들면 되겠군요.

그럼 영어로 한번 써 보지요. 

Config R2's priority in Group 2 higher than R1 in Group 2

쉽죠? CCNP까지만 제대로 학습하면 어느정도 다 맞출 수 있을 것 같군요. 4문제 중에 3문제를 맞추면 된다고 하니, 한문제는 포기하죠, 뭐! ^^
내일은 CCIE Troubleshooting issue를 가지고 메일링을 보내드리도록 하겠습니다. 드디어 내일부터 저희 교육센터 CCIE 과정이 시작되는군요. 3개월 과정에 수강생은 두분입니다. 기대가 많이 됩니다.

다음달부터 증권사를 컨설팅하게 될 것 같아요. 학원 잘되서 컨설팅일 안하게 해주세요. ^^

CCIE Open-Ended 정말 어려운가? (1)

네트워크 심화 | 2010.04.08 01:28 | Posted by 승진아빠

덤프 문제를 풀어드리려는 것이 아니라, CCIE 시험에 자신을 가지시라고 몇문제 풀어 드리는 것입니다. 저희 직원 중 한명도 영어에 너무 자신이 없어서 CCIE를 포기한 친구가 있거든요.
 
영어... 생각해보면 별거 아닌데, 무척 부담이 되는건 사실입니다. 영어에 너무 자신이 없어서 고민하시는 분들은 시간이 좀 더 필요하시겠지만, Open-Ended 시험이 너무 어려울 것 같아서 포기하시려는 분들을 위해 3주 정도에 거쳐 목요일과 금요일에 하루 2문제씩 같이 풀어보도록 하겠습니다.

1. RIPv2 packets use which UDP port number for transport?

CCNA 그것도 'ICND 1'에 나오는 내용이군요. RIP은 UDP를 사용하고 Port 번호 '520'번을 사용하죠! RIPv1과 RIPv2는  Classful Routing Protocol인지 Classless Routing Protocol인지부터 차이가 조금 있기는 하지만, UDP 520번을 사용하는 것은 변함이 없습니다. ^^

관련자료 : http://www.networksorcery.com/enp/protocol/rip.htm

이제 영작을 해야겠군요. 짧게 쓰는게 불안하면... 문제를 다 써주면 되죠!

Answer : RIPv2 packets use which UDP 520 port number for transport

2. What bgp feature prevents the router from advertising BGP prefixes that are not installed in the RIB

문제의 요지가 뭡니까? 뭘 묻는 문제인지 알아야 문제플 풀죠! ^^
BGP는 Neighbor에게 update 정보를 던질 때, 자신이 Best-Path 인지는 관심없습니다. 타 Routing Protocol의 정보는 신경쓰지 않는다는 말입니다. 다음의 두가지 조건만 만족하면 Neighbor에게 update를 전달합니다.

1. Next-hop으로 가는 경로를 알고 있는지 여부 (반드시 알고 있어야 함)
2. BGP로 받은 정보 중 Best 경로인지 여부

그런데 만약에 Router가 192.168.1.0/24에 대한 정보를 다음과 같이 알고 있다고 가정하시죠!
- BGP의 Next-hop : 10.1.1.1
- Routing table
   O   10.1.1.0/24 [110/10]   via 10.1.2.1   FastEthernet 0/0
   S    192.168.1.0/24   direct-connected  Null 0

'192.1681.0/24'가 실제로 외부 정보일 경우 전달이 될까요? BGP는 10.1.1.1로 가는 경로가 Routing table에 존재하기 때문에 다른 BGP Neighbor에게 [192.168.1.0/24] 정보를 전달을 할 겁니다. 그럼 저 Router를 Best-Path로 알고 있는 BGP Neighbor는 Packet을 보내오겠군요. 
하지만, BGP 정보보다 Static 정보가 더 우선하기 때문에 Routing table에 의해 Packet은 [192.168.1.0/24]으로 전달이 되지 못하고 'Null 0'로 보내져 모두 Drop되어 버릴 것입니다. 이런 경우 BGP table을 확인해 보면 다음과 같이 'r'이라고 표시가 됩니다.

Router# show ip bgp
* r> 192.168.1.0/24 ...

r : RIB의 준말고 Routing table에 등록되지 못했다는 의미로 그 원인을 알고 싶으신 경우 'show ip bgp rib-failure' 명령어를 통해 확인하실 수 있습니다.

이처럼 Routing table에 등록되지 못한 정보가 BGP로 전달되면 통신이 제대로 이루어지지 않을 수 있습니다. 그래서 Risk를 최소화 하기 위하여 'r'로 표시된 정보는 BGP로 update 하지 않도록 설정할 수 있는데 그러한 기능을 무엇이라고 하는지 묻는 것이군요.

제가 가지고 있는 자료에는 답이 'bgp suppress-inactive'라고 적혀 있는데, 이건 이 기능을 실행하기 위한 명령어죠! 이것도 답이라고 처리해 줄지는 모르겠지만, 까탈스러운 사람이라면 기능의 이름을 물었기 때문에 틀리다고 할 수도 있을겁니다. 정확한 Feature의 이름은 다음과 같습니다.

관련자료 : http://www.cisco.com/en/US/docs/ios/12_2s/feature/guide/fs_sbair.html
               (기억이 안나실거 같으면 URL 끝에 약자를 외우시는게 어때요. [SBAIR])

Answer : Suppress BGP Advertisement for Inactive Routes

DNS 서비스 파헤치기

네트워크 심화 | 2010.04.02 12:22 | Posted by 승진아빠

안녕하세요. 이경태입니다. 오늘은 다른 날보다 많이 피곤하군요.
6시간이 넘는 회의를 마치고 숨가쁘게 달려왔습니다. 빨리 교육센터가 자리잡아야 컨설팅 일을 좀 줄일 수 있을텐데 이것저것 다 하려니 체력이 바닥을 슬슬 드러내는군요. 영어 안되는 사람한테 해외 컨설팅 3년을 가라고 제안을 받아 정중히 거절 하려다가 내일 만나보자고 했습니다. ^^

저희 회사 직원들 다 가지 않으면 못간다고 했으니 저한테 떨어질 가능성은 높지 않아요. 만일, 가게 된다 하더라도 CCIE 과정 신청해 주신 분들은 무조건 CCIE 만들어 드리고 갈테니 걱정하지 마시고요, 해외 가 있어도 메일링은 계속될겁니다. ^^

하여튼 오늘은 DNS에 대해서 알아보도록 하겠습니다. DNS가 뭐죠? 'Name' 정보를 가지고, IP 주소를 가져오는 서비스가 DNS죠. 우리는 인터넷상의 모든 IP address를 다 기억할 수도 없고, 개인 PC에 저장해서 관리할 수도 없습니다. 그럼, DNS는 모든 IP address 정보를 다 가지고 있을까요? 그렇지 않습니다. 그럼 어떻게 IP address를 받아 올 수 있는건가요? 하나씩 알아보기로 하시죠!

■ Web-brower에 http://www.netrain.co.kr을 입력했습니다.

1. 자신의 'hosts file'에 등록되어 있는가를 확인합니다. 
윈도우 계열은 'hosts file'이 C:\Windows\System32\drivers\etc에 위치해 있습니다. 많은 회사에서 DNS 서비스 장애시에도 주요 업무서비스를 원할하게 운영할 수 있도록 하기 위하여, Client 프로그램 설치시나 PC관리서비스 등을 통하여 'hosts file'을 변경하기도 하죠.

2. 'hosts file'에 등록되어 있지 않으면 PC에 등록되어 있는 Local DNS 서버에게 Query를 보냅니다.
[Local DNS server]


[DNS Query]


마지막 줄에 www.netrain.co.kr에 대해 Query가 날아가시는 것을 확인하실 수 있습니다.
만약에 Local DNS의 cache에 해당 domain에 대한 정보가 기록되어 있다면 바로 정보를 전송하여 줍니다.

[DNS Query Reponse]


IP address가 '211.196.153.52'라는 군요. ^^ 그리고, 이렇게 DNS server와 clinet 사이에 통신을 할 경우에는 UDP 53번을 사용하게 됩니다.

3. 그럼, Local DNS server가 domain에 대한 정보를 모를 경우는 어떻게 될까요? 그런 경우에는 DNS Server는 Root DNS에게 문의를 합니다. Root DNS는 전세계 13개가 존재하는데 그 이유는 UDP를 사용하는 DNS Packet의 최대 size를 512byte로 제한하였는데 그 안에 넣을 수 있는 최대 정보가 13개이기 때문입니다.
 
만일 정보가 많아서 512byte를 넘는 경우는 DNS는 자동으로 TCP Port 53번을 통해서 다시 재전송을 하기 때문에 속도나 Resource 측면에서 문제가 되겠죠! 물론 PC와 Server 통신에서 보다는 DNS server간 통신에서 자주 발생하는 문제일 겁니다.

※ Root DNS 목록


그러면, Root DNS는 Level 1 domain인 'kr'을 담당하는 DNS server의 IP address를 Local DNS에게 알려줍니다. 그 다음 'kr'을 담당하는 DNS에게 Query를 던지면 Level 2인 'co.kr'를 담당하는 DNS server IP address를 Local DNS에게 알려줍니다. 그 다음에 또 질의를 하면 'netrain.co.kr'을 담당하는 DNS server IP address를 알려주게 되죠. 휴~ 복잡하군요.

현재는 이러한 복잡성을 단축시키기 위해 'co.kr'을 모두 'kr' DNS가 관리하여 한번에 던져주고 있습니다.

드디어 'netrian.co.kr'까지 왔습니다. 여기까지 찾은 것이 Public domain 주소입니다. 이제 그 집에 가서 sub-domain을 묻습니다. 마지막으로 'www.netrain.co.kr'이 누구냐고 물으면 최종적으로 IP address를 알려주게 되는 것입니다.

어렵지는 않으시죠? 요즘 DNS를 이용한 공격이 많으니 조심하세요. Network 엔지니어는 원리만 이해하면 되지만, 보안 담당자 분들은 각종 공격방법에 대응하는 방법도 아셔야 하잖아요. 원리는 저한테 물으세요. 공격방법은 인터넷에서 검색하시고요. 거기까지 공부할 시간이 없습니다. ^^

내일은 BGP에서 update 시간이 어떻게 진행되는지 LAB을 통하여 알아보도록 하겠습니다. ^^

DHCP 서비스 파헤치기

네트워크 심화 | 2010.04.01 01:00 | Posted by 승진아빠

DHCP 서비스가 뭐죠? 그렇죠! IP address를 자동으로 부여하는 것이 'DHCP'죠. 자동으로 IP를 할당받는 방법은 많습니다. DHCP 말고 다른 방법도 있냐구요?

예전에 Multi-Access 망에서 많이 사용하던 RARP, PPP Protocol의 IPCP 기능을 이용한 IP address 할당 (RFC1332) 등 다양한 Protocol이 통신을 위해 IP address를 할당하고 있습니다. 그 중에서 가장 보편적으로 사용되는 DHCP 서비스를 오늘 자세히 파헤쳐 보도록 하겠습니다.

DHCP는 Bootstrap protocol(Bootp)을 사용하여 IP address를 할당하는 서비스입니다. 어떻게 IP address 정보를 상호간에 전달하는지 살펴보도록 할까요?

다음은 DHCP packet을 Capture한 화면입니다.

공유기와 Router에서 DHCP를 구동시키고 capture를 해봤는데 결과에 차이가 좀 있군요.

[Cisco Router]

[공유기]

웃긴건 CCNA 책에는 Cisco Router 형식으로 쓰여 있고, BSCI 책에는 공유기 형식으로 쓰여 있다는 겁니다. 뭐가 정답일까요? 정답을 모를 때는 RFC를 찾아봐야겠죠. RFC2131 입니다.

RFC보면 뭐가 많이 써 있는데 중간부분에 이렇게 쓰여 있습니다.

If 'giaddr' is zero and 'ciaddr' is zero, and the broadcast bit is set, then the server broadcasts DHCPOFFER and DHCPACK messages to 0xffffffff. If the broadcast bit is not set and 'giaddr' is zero and 'ciaddr' is zero, then the server unicasts DHCPOFFER and DHCPACK messages to the client's hardware address and 'yiaddr' address.  In all cases, when 'giaddr' is zero, the server broadcasts any DHCPNAK messages to 0xffffffff.

무슨 말인지 모르시겠다고요? 조금 다르기는 해도 쉽게 설명을 드리면 이미 Client가 Server의 DHCP table에 등록이 되어 있는 경우라면 Server는 Clinet에게 packet을 Unicast로 전달하고, 그렇지 않은 경우에는 Broadcast로 전달한다는 이야기입니다.

DHCP Discover, Offer, Request, ACK가 뭐냐구요? DHCP는 다음 4단계를 처려 IP address를 할당받습니다.


1. DHCP Dicover : '누가 나 IP address 좀 줘라!' IP address를 요청하는 Packet
2. DHCP Offer : '여기 IP address 있다.' IP address를 할당하는 Packet (아직 DHCP table에 등록하지 않음)
3. DHCP Request : '이 IP address 쓰면 되냐?' 할당받은 IP address를 사용해도 되냐고 요청하는 Packet
※ DHCP Request Packet을 받았을 때 Client가 IP address를 받았음을 확인하고 DHCP table에 등록함
4. DHCP Ack : '그래, 그 IP 너 써라' IP address 사용을 허가하는 Packet

Packet을 하나씩 볼까요?

[DHCP Dicover]

UDP를 사용하고 Port 번호는 2개를 사용하는군요.
- bootpc(bootp clinet) - 68
- bootps(bootp server) - 67

[DHCP Offer]


[Your IP address]를 통하여 IP address를 할당해 주었군요. DNS 정보, Default-gateway 정보 등 다양한 정보를 option에 넣어서 전달을 해 주는군요.

[DHCP Request]


자기가 받은 IP address를 확인하기 위해 Requested IP address에 넣어서 사용해도 되냐고 문의를 하고, Host name 등 자세한 정보를 Server에게 알려주네요. DHCP Server가 Table에 등록하는데 필요한 추가 정보를 보낸다고 보시면 됩니다.

[DHCP Ack]


마지막으로 써도 된다는 메세지를 던지면 해당 IP address를 사용할 수 있게 되는 거랍니다.

별로 어렵지 않죠? 그런데, 잘 보시면 DHCP Server는 IP address를 할당해줄 때, 수동으로 설정한 IP address와 같은 IP address를 줘서 충돌나는 경우가 많지 않다는 사실을 발견하게 됩니다. 어떻게 된 일일까요? 수동으로 IP address를 설정한 PC에서 DHCP한테 자신의 정보를 보내지 않을텐데요.

DHCP는 IP address를 할당할 때, ICMP나 SNMP message 등을 던져서 자신이 할당할 IP address를 누군가 사용하고 있는지를 확인하고 IP address를 할당하는 Option이 있습니다. 대부분 DHCP Server에 이 기능이 enable되어 있습니다. 물론, 요즘은 OS 방화벽 기능 때문에 제대로 동작하지 않는 경우가 많지만요.

오늘은 DHCP에 대하여 알아보았습니다. 향후에 'Router를 이용한 DHCP Server 만들기', 'Router를 이용한 DHCP agent 만들기', 'DHCP client가 된 Router' 등을 통하여 보다 자세하게 알아보도록 하겠습니다. 내일은 DNS에 대해서 알아보도록 하시죠. ^^

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을 주면 무슨 문제가 발생하는지 확인해 보도록 하겠습니다.