요즘 왜 네전따의 스폰서를 하려 하는지 이해가 됩니다. 단순히 잘못된 이메일을 찾는다고 글을 올렸을 뿐인데 하루 사이에 메일링을 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을 배우도록 하겠습니다.
많은 사람들이 묻습니다. 어떻게 그렇게 많이 아세요? 대답은 한결 같습니다.
전 강사니까요. 강사라는 직업이 뭘 하는건가요? 책 한권이 나왔다고 그 책을 모든 사람이 다 읽어 볼 필요는 없습니다. 강사는 그 책을 먼저 읽고 이해한 다음 시간이 없어서 책을 정독할 수 없으신 분들을 위해 이런 내용이 있더라고요... 설명해 주는 사람에 불가하죠! 즉, 책 읽는게 제 직업입니다.
전문가는 여러분과 함께 일을 하시는 차장님이나 부장님이 전문가 이시고요. ^^ 그럼 좋은 하루 되시기 바랍니다. 감사합니다.