1. 네트워크의 세상에 들어서며
- 네트워킹: 서로 연결된 장비들끼리 대화를 주고받는 것.
- 인터넷: 여러 네트워크를 연결한 것.
- 하나의 프로토콜을 사용한다.
- 익스플로러나 크롬, 파이어폭스 등과 같은 웹 브라우저를 이용해 통신한다.
- 필요한 정보가 모두 존재한다.
- 특징
- 인트라넷: 회사 직원들만 이용하는 내부의 네트워크.
- 엑스트라넷: 내부 네트워크를 협력사나 고객까지로 확대한 개념.
2. 네트워크와 케이블, 그리고 다른 친구들
LAN/WAN
LAN(Local Area Network): 어느 한정된 공간에서 네트워크를 구성
WAN(Wide Area Network): 멀리 떨어진 지역을 서로 연결하는 경우
이더넷/토큰링
: 네트워킹의 한 방식으로 CSMA/CD 프로토콜을 사용해 통신하는 방법. 100/1,000Mbps
*CSMA/CD: Carrier Sense Multiple Access/Collision Detection
네트워크 상에 통신을 Carrier라고 하는데 네트워크 자원을 쓰고 있는 PC나 서버가 있는지 감지하는 것이 Carrier Sense이다. 이더넷에서 2개 이상의 PC나 서버가 동시에 네트워크 상에 데이터를 실어 보내는 경우를 Multiple Access(다중 접근)이라고 한다. 통신에서 이렇게 2개의 장비들이 부딫치는 경우를 Collision(충돌)이라고 해 이를 막기 위한 콜리전 점검이 Collision Detection(충돌 감지)이다. 충돌이 발생한 경우엔 랜덤한 시간을 기다린 후 데이터를 최대 15번까지 재전송한다.
토큰링: 토큰을 가진 PC만이 데이터를 보낼 수 있게 만들어 차례대로 데이터를 전송. 전송할 데이터가 없는 PC에도 토큰이 주어져 전송 대기 시간이 길어진다.(4/156bps)
UTP/STP
UTP(Unshielded Twisted-pair) 케이블: 가장 많이 사용되는 케이블
STP(Shielded Twisted-pair) 케이블: 주로 토큰링에 사용. 절연체로 감싸져 EMI를 줄일 수 있음.
- 카테고리 1: 전화망에 주로 사용
- 카테고리 2: 데이터를 4Mbps의 속도로 전송가능
- 카테고리 3: 10 Base T 네트워크에 사용. 10Mbps속도까지 데이터 전송 가능
- 카테고리 4: 토큰링 네트워크에 사용됨. 최대 16Mbps까지 사용.
- 카테고리 5: 최대 100Mbps를 지원하는 Fast Ethernet용으로 사용되었는데 현재는 기가비트 속도의 데이터 전송도 가능.
- 카테고리 6: 기가비트 이상의 속도에 적합. 가장 많이 쓰임. Cat6, Cat6a로 후자가 저 성능이 개선된 10Gbps 속도를 지원한다.
- 카테고리 7: 주로 10Gbps 속도 이상을 지원하는 케이블로 앞으로 더 자주 사용될 예정.
- 10 Base T: 10Mbps로 통신하는 UTP 케이블. 최대 전송 거리 100미터인 UTP 케이블로 카테고리 3,4,5 사용.
- 10 Base FL: 10Mbps로 통신하는 광케이블. ST커넥터로 연결하며 광케이블은 싱글모드, 멀티모드 케이블을 사용.
- 10 Base 2: Thin 케이블이라고 하며 과거 제일 많이 사용됨. BNC 커넥터로 연결.
- 10 Base 5: AUI 인터페이스가 이 케이블을 사용하며 옐로우 케이블이라고 부른다. 최대 거리는 500 Mbps로 두껍게 생겼다. 주로 중앙 망용으로 천장 위에 설치하고 하나씩 뽑아 PC나 랜카드에 연결했다,
MAC
MAC(Media Access Control) Address는 6개의 옥탯으로 이루어져 48bit의 주소를 가진다.
이 주소에서 앞쪽 6개의 16진수는 벤더, 즉 생산자를 나타내고 뒤의 6자리수가 Host Identifier로 시리얼 넘버가 된다. MAC 주소로 통신을 하게 되는데 해당 주소를 모르고 통신을 보내는 경우는 라우터가 대신 자신의 MAC주소로 상대의 IP로 데이터를 보낸다.
통신
- 유니캐스트: 1:1통신으로 출발지와 목적지가 정확하다. 랜카드는 온 데이터의 주소와 자신의 맥 주소를 비교해 자신에게 온 데이터일 시 이를 처리해달라는 요청을 CPU에게 보낸다.
- 브로드캐스트: 1:N 통신으로 로컬 랜에 붙어있는 모든 네트워크 장비들에게 보내는 통신이다. 이 때 자신의 맥 주소와 데이터의 주소가 일치하지 않아도 처리를 위해 CPU로 해당 데이터를 올려보낸다. 따라서 CPU의 성능을 떨어뜨린다. 브로드캐스트를 사용하는 경우는 상대의 MAC 주소를 모를 때 ARP 하는 과정, 다른 라우터를 찾을 때, 자신이 제공하는 서비스를 전체에 알릴 때 등의 상황에 사용된다. (ps. 라우터는 원래 브로드캐스트를 막는 성질이 있음)
- 멀티캐스트: 보내고자 하는 그룹에만 데이터를 보낸다. 선택적으로 목적지 그룹에 데이터를 한번에 전송한다. 멀티캐스트는 라우터나 스위치가 해당 기능을 지원할 때 사용할 수 있다.
OSI 7계층
계층을 나누는 이유는 데이터 흐름을 파악하거나 문제를 해결하기 편리하기 때문이다.
ex) 네트워크가 안되면 ping을 날려보고 이상이 없을 시 네트워크 계층 하위계층의 문제가 아니라는 것을 알 수 있음.
- 물리 계층
- 통신 단위는 0과 1으로 단지 데이터를 전송하는 역할을 한다. 대표 장비는 케이블, 리피터, 허브 등이 있다.
- 데이터 링크 계층
- 물리 계층에 송수신되는 정보의 오류와 흐름을 관리해 안전한 정보 전달을 수행. 해당 계층에서 전송되는 단위를 프레임이라고 부른다. 대표 장비는 스위치, 브리지 등이 있다.
- 네트워크 계층
- 주 목적은 데이터를 목적지까지 가장 안전하고 빠르게 전송하는 것.(라우팅) 경로를 선택하고 주소를 정하며 경로에 따라 패킷을 전달한다.
- 트랜스포트 계층
- 주요 일은 플로 컨트롤과 에러 복구 기능으로 데이터가 정상적으로 전송될 수 있도록 하는 역할을 한다.
프로토콜
컴퓨터끼리 통신하기 위해서 필요한 서로 간의 통신 규약 또는 통신 방식에 대한 약속으로 같은 프로토콜을 사용해야 통신이 가능하다.
- TCP
- IPX(Internetwork Packet eXchange): 내부용
- AppleTalk
3. TCP/IP
TCP/IP
TCP/IP(Transmission Control Protocol/Internet Protocol)의 약자로 각 네트워크에 접속한 호스트들이 고유의 주소를 가지고 있어 다른 네트워크에 연결되어있는 호스트들과도 데이터를 주고받을 수 있는 것을 말한다. 호스트의 주요 주소(즉 IP는)는 InterNIC(Internet Network Information Center)라는 단체에서 관리되고 있다.
인터넷을 사용할 수 있는 IP가 정해져 있기 때문에 내부 네트워크에서는 공인되지 않은 IP를 사용하고 외부로 나갈 때만 공인 IP를 가지고 나가는 방식인 NAT(Network Address Translation)이나 동일한 IP주소로 여러 명이 인터넷에 접속하며 포트 넘버만 바꾸는 PAT 등이 사용된다.
*유틸리티 중 추적(TRACE) 기능이 있는데 출발지 PC에서 에코 패킷을 보내 어디를 거쳐 목적지까지 가는지를 파악한다. 통신에 문제가 생길 시 파악이 쉽다.
이진수
0과 1로 이루어진 수로 IP주소는 8비트씩 네 개로 구분해 사용된다. 2의 32승만큼의 주소가 존재해 대략 43억개의 주소를 가지고 있으며 현재는 주소부족으로 인해 128개의 이진수로 이루어진 IPv6를 사용한다. 2진수를 10진수로 변환하고 10진수를 2진수로 변환하는 방법은 아래와 같다.
또한 Logical AND 연산으로 양쪽이 1인 경우에만 1인 연산도 나중에 서브넷 마스크에 사용된다.
*DHCP는 자동으로 IP 주소를 배정해주는 기능으로 IP 주소를 모두 가지고 있다가 요구하는 PC에 그때 그때 분배하고 다시 회수한다.
4. 네트워크 장비
랜카드
- 어떤 환경에서 사용하는 지에 따라 FDDI, ATM용 랜카드, 토큰링용 랜카드, 이더넷용 랜카드가 있다.
- 데스크탑 용과 PCMCIA 방식이라고 하는 노트북 용 랜카드가 있다.
- 데스크탑 랜카드는 또 PC의 버스 방식에 따라 3가지정도 종류가 나뉘는데 가장 많이 사용하는 PCI, ISA, EISA로 구분할 수 있다.
- 랜카드에 접속하는 종류에 따라서 TP 포트를 가진 랜카드, BNC나 AUI 포트를 가진 랜카드, 광케이블과 접속하는 랜카드 등의 종류로 나뉜다.
랜카드는 데이터를 CPU에 올려보낼 때 자신이 가지고 있는 IRQ(Interrupt ReQuest)로 인터럽트를 걸게된다. 랜카드를 꽂고 부팅을 하면 자동으로 IRQ를 배정해준다.
허브의 개념
허브는 이더넷, 토큰링용이 다르고 속도에 따라 허브와 패스트 허브로 나뉘고 다른말로 멀티포트 리피터라고도 부른다. 리피터는 데이터의 전송 길이를 늘리기위해 사용하는 것으로 현재는 허브가 이 역할을 대체해 사용하는 일이 드물다. 허브는 들어온 데이터를 다른 쪽에 뿌려주는 단순 기능만이 존재해 이더넷 허브인 경우 CSMA/CD의 영향을 받아 중간에 콜리전이 발생한다. 이 때 충돌의 영향을 받는 구간을 콜리전 도메인(Collision Domain)이라고 한다.
허브의 종류
허브로만 네트워크를 크게 구성할 시 콜리전 도메인이 커지는 한계가 있다.
허브의 종류로는 인텔리전트 허브와 더미 허브가 있는데 NMS(네트워크 관리 시스템)에 의해 관리가 되는 지에 따라 구분된다. 인텔리전트 허브의 경우에는 모든 데이터를 분석하고 제어, 충돌을 감지해 자동으로 Isolation하는 기능을 가지고 있다. 분리된 포트는 램프가 켜져 구분이 가능하며 이 기능은 Auto Partition이라고 한다.
*네트워크 장비의 종류에는 쌓을 수 있는 Stackable 형과 Standalone 형이 있다.
스위치와 브리지
콜리전 도메인을 나눌 수 있는 장비는 브리지와 스위치가 존재한다. 또한 허브는 이더넷의 특성으로하나의 네트워크 통신이 발생하면 나머지는 기다려야하는데 스위치의 경우는 다른 PC들 간의 통신도 동시에 수행이 가능하다. 다만 서버와 통신하는 경우는 서버가 한 대밖에 없기 때문에 성능의 관점에서 차이가 없다.
브리지와 스위치는 아래 다섯 가지 일을 수행한다.
- Learning: 자신의 맥 어드레스 테이블에 프레임의 출발 MAC 주소 기록,
- Flooding: 들어온 포트를 제외한 나머지 포트에 뿌려줌. 브로드캐스트에서 발생.
- Fowarding: 목적지가 다른 포트에 있을 때 데이터를 넘겨주는 행위
- Filtering: 목적지와 출발지가 같은 세그먼트에 있을 댸 브리지를 못넘어가게 막음.
- Aging: 맥 어드레스를 기억하는 시간으로 디폴트는 5분, 즉 300초이다.
브리지와 스위치의 차이는 아래와 같다.
- 스위치는 하드웨어 식의 처리 방식을 가진다. 브리지는 프레임 처리 방식이 소프트웨어적 프로그램에 의해 처리되지만 스위치는 처리방식을 미리 칩에 구워서 사용하는 ASIC(에이직)방식으로 프레임 처리 속도가 빠름
- 브리지는 포트들이 같은 속도를 지원하는 반면 스위치는 서로 다른 속도를 지원함
- 스위치는 브리지가 2,3개 정도의 포트를 가지는 반면 몇십에서 몇백의 포트를 지원한다.
- 스위치는 Cut-through 또는 Stored and forwarding 방식을 사용하지만 브리지는 Stored and forwarding만 사용.
- Cut-through 방식: 처음 48bit만 받아 프레임 목적지를 보고 전송을 처리, 에러 복구에 약하다
- Stored and forwarding 방식: 들어오는 프레임을 다 받아 검사하고 전송, 속도는 약하지만 에러 복구에 강함
- Fragment free 방식: 두 장점을 결합해 처음 512bit를 보고 처리해 컷스루보다는 우수함
루핑
브리지나 스위치의 구성에서 프레임이 네트워크 상에서 무한정으로 빙빙도는 현상
*폴드 톨러런트는 장애 대비책으로 한 대의 장비가 죽었을 때 다른 장비가 해당 역할을 수행하는 것이다. 로드 밸런싱이란 두 개의 인터넷 회선을 사용해 두 라인 중 하나를 사용하기 때문에 속도가 두 배가 된다. 대부분의 로드 밸런싱은 폴드 톨러런스가 가능.
스패닝 트리와 스위치
스패닝 트리는 루핑을 방지할 수 있는 기능으로 루핑이 발생하는 상황을 미리 막아준다. 스위치 간의 두 개의 링크 중 하나를 끊어둔다. 기존 경로에 장애가 발생할 시 다른 경로에 연결되는데 1분이 소요되기 때문에 이에 따른 기술들도 등장하고 있다. 시스코의 이더채널은 려어개의 링크를 하나처럼 인식한다.
라우터
라우터는 브로드 캐스트 도메인 영역 분배, 패킷 필터링, 로드 분배, QoS(트래픽 순서 조정)의 기능을 가지고 있다.
5. IP주소
IP주소와 라우터
이진수 32자리(4 옥텟)로 되어 이를 십진수로 구성한 네트워크 주소이다. 라우터에서는 내부 네트워크에 연결 되는 라우터 포트를 이더넷 인터페이스, 인터넷과 접속하기 위한 외부의 포트를 시리얼 인터페이스라고 한다. 이더넷 인터페이스의 주소는 사용할 수 있는 IP주소 중 주로 맨 앞의 주소를 부여하고 시리얼 인터페이스의 주소는 상대 ISP 업체와 IP주소를 맞춘다.
IP 주소의 구성
IP주소는 네트워크 부분과 호스트 부분으로 나뉘고 각 클래스 별로 부여되는 범위가 다르다.
- A 클래스: 32개의 2진수 중에 제일 첫자리가 0이 되어야한다. 앞의 8자리가 네트워크 주소로 제일 첫 자리가 0인 1-126까지 A 클래스에 속한다. 사용할 수 있는 주소는 네트워크 자체를 나타내는 호스트가 모두 0인 경우와 브로드캐스트 주소를 나타내는 모두 1인 경우를 제외한다.
- B 클래스: 32개의 2진수 중에 제일 첫자리가 10이 되어야한다. 앞의 16자리가 네트워크 주소로 제일 첫 자리가 10인 128-191까지 B 클래스에 속한다.
- C 클래스: 32개의 2진수 중에 제일 첫자리가 110이 되어야한다. 앞의 24자리가 네트워크 주소로 제일 첫 자리가 110인 192-233까지 C 클래스에 속한다. 사용 가능 네트워크 수는 254개이다.
- D 클래스: 멀티캐스트용
- E 클래스: 연구용
서브넷 마스크
메인이 아닌 가공을 통한 네트워크를 만들기 위한 분류이다, 서브넷 마스크는 클래스에서 나눠진 네트워크 영역대 이외로 추가로 구역을 나눠 어디까지가 네트워크/호스트 영역인지 AND 논리 연산을 통해 보여주는 주소이다. 즉, 기존 IP 호스트 주소의 일부분을 네트워크 부분으로 바꿔준다. 이렇게 나눠진 구분 분류를 서브넷이라고 한다. 서브넷 당 호스트 수는 2^(호스트 비트 수)-2이다.
서브넷 간의 통신은 네트워크 간에만 가능하다. 또한 서브넷 마스크를 만들 때 연속적인 1로 이루어져 그 사이에 0이 오면 안된다.
서브넷 마스크가 1인 곳이 네트워크 0인 곳이 호스트의 부분이다.
6. 스위치
스패닝 트리 프로토콜(STP)
- 브리지 ID와 Path Cost
- 브리지 ID = Bridge Priority(2바이트, 16비트) + 맥 어드레스(6바이트, 32비트)
- Path Cost: 경로에 가는 데 드는 비용
- 1000Mbps를 둘 사이의 링크 대역 폭으로 나눔, 지금은 지정 값 사용
[Path Cost]
대역폭 | STP Cost |
10Mbps | 100 |
100Mbps | 19 |
1Gbps | 4 |
- 세 가지의 기본 동작
- 네트워크 당 하나의 루트 브리지를 갖는다
- 루트 브리지가 아닌 나머지 모든 브리지는 무조건 하나의 루트 포트(루트 브리지에 가장 빨리 갈 수 있는 포트를 갖는다.
- 세그먼트 당 하나의 데지그네이티드 포트를 갖는다. 브리지나 스위치가 서로 연결되어 있을 때 반드시 한 포트는 데지그네이티드 포트로 선정.
- 루트 포트와 데지그네이티드 포트 뱨고는 다 막아둠.
- 포트의 우선순위
- 누가 더 작은 브리지 ID를 가졌는가?
- 루트 브리지까지 Path Cost 값은 누가 더 작은가?
- 누구의 BID(Sender BID)가 더 낮은가?
- 누구의 포트 ID가 더 낮은가?
(1) 스위치가 부팅되면 BPDU를 통해 자신의 ID를 교환하게 되고 가장 낮은 ID가 루트 브리지로 선정된다. Bridge Priority를 통해 루트 브리지 선정을 조작할 수 있다.
SW-3(config) #spanning-tree vlan 1 priority 100 //값을 100으로 변경
(2) 나머지 스위치들이 루트 포트를 선출한다. Path Cost를 계산해 작은 값이 선출된다.
(3) 데지그네이티드 포트를 뽑기 위해 Path Cost를 계산하고 같을 시 우선순위를 고려한다. 여기서 BID를 가리는 것은 출발지의 BID를 비교하는 것과 같아 둘 중 BID를 비교하고 처리가 안될 시 포트 ID까지 비교해 판단을 내린다.
*해당 포트를 뽑는 이유는 나머지 포트들은 막기 때문.
- 상태 변화
- Disable: 포트가 고장나서 사용할 수 없거나 네트워크 관리자가 일부로 포트를 Shutdown시킨 상태이다.
- Bloking: 스위치를 맨 처음 켜거나 Disable된 포트를 관리자가 다시 살렸을 때의 상태이다. 데이터 전송이나 맥어드레스 학습은 못하지만 BPDU를 주고받으며 루트 브리지, 루트 포트, 데지그네이티드 포트를 뽑는다.
- Lilstening: 설정이 완료되면 15초를 대기하게 된다. 포워딩 딜레이 디폴트 시간인 15초를 유지하면 그 다음 단계인 러닝 상태로 넘어간다.
- Learning: 맥 어드레스를 비로소 배우기 시작해 맥어드레스 테이블을 만든다. 이후 다시 포워딩 디폴트 시간인 15초를 대기하게 된다.
- Forwarding: 포워딩 상태가 되어서야 스위치 포트가 데이터를 주고받는다.
스패닝 트리 프로토콜의 변화
- 스패닝 트리 재편성
- Hello Time: 루트 브리지는 자신들에게 연결된 브리지들에게 헬로타임마다 한번씩 헬로 BPDU를 보낸다. 디폴트 시간은 2초이다.
- Max Age: 브리지들이 루트 브리지로부터 헬로패킷을 받지 못했을 때 새로운 스패닝 트리를 만들기 시작하기까지의 대기 시간. 디폴트 시간은 20초이다.
- Fowarding Delay: 블로킹 상태에서 포워딩 상태로 넘어갈 때까지 걸리는 시간. 사실상은 설정 값의 두 배이다.(두 번 딜레이가 있기 때문)
- 스패닝 트리를 다른말로 하면 IEEE 802.1d STP 라고 한다. 802.1d는 변화를 반영하는 시간, 즉 Convergence Time이 거의 1분 가까이 걸린다는 단점이 있어 이를 보강하는 표준 기능을 IEEE 802.1w인 RSTP이라고 한다.
카타리스트 스위치
- PoE를 지원하는 스위치가 있는데, PoE(Power of Ethernet)는 이더넷 케이블 위에 데이터 뿐만이 아니라 전원까지 실어 보내는 것을 말한다.
- SFP(Small FormFactor Pluggable)는 광케이블용 접속 방식이고 속도는 1기가(1Gbps)이다.
- Dual Purpose Uplink란 위와 아래 포트의 전송 방식이 다를 때 이중 하나를 선택해 사용할 수 있는 포트를 말한다.
- 스위치 기기 앞에 있는 시스템 LED는 정상일 때 초록색, 비정상일 때 주황(노랑)색을 띈다.
스위치 설정 명령어
- 스위치에서 각 포트의 현재 상황을 조회
show interface status
*Duplex 통신 방식은 한쪽 통신 Half Duplex 와 Full Duplex가 있다. Auto로 설정되어 있는 경우 상대방의 설정에 맞추겠다는 의미이다.
- 스위치의 IP 주소 설정
라우터는 해당 주소를 설정하지 않으면 동작에 문제가 생기는 반면, 스위치는 필수로 설정할 필요는 없다. 하지만 관리하는 데 필요하기 때문에 주소를 부여한다. 스위치는 라우터와 달리 네트워크를 나누지 못해서 모든 인터페이스에 하나의 주소를 부여한다.
//유저모드
Swith>
//프리빌리지드(Privileged) 모드 전환
Swith>enable
password: ********
Swith#
//구성 모드로 전환
Swith# configure terminal
Swith(config)#
//디폴트 vlan1 인터페이스에서 IP주소 세팅
Swith(config)# interface vlan 1
Swith(config-if)# ip address 192.168.0.1 255.255.255.0
//세팅을 먀치고 나온다.
Swith(config-if)# exit
Swith(config)# exit
//세팅이 완료되었는지 조회
swith# show interface vlan 1
//통신을 위해 디폴트 게이트웨이(=라우터)를 설정
swith# configure terminal
Swith(config)# ip default-gateway 192.168.1.1
Swith(config)# exit
//스위치 속도와 Duplex 세팅
Swith(config)# interface fastethernet 0/1
Swith(config-if)# speed ?
Swith(config-if)# speed 10
Swith(config-if)# deplex ?
Swith(config-if)# deplex half
MAC Address
맥 어드레스는 스위치의 콜리전 도메인을 막는 역할을 한다. 맥 어드레스를 저장하는 방식에는 두 가지가 있는데 첫 번째로 자동으로 주소를 학습하는 Dynamic 방식이 있다. 이 방식은 주소를 사용한지 300초(디폴트)가 지나도록 다시 사용하지 않으면 주소가 MAC 테이블에서 지워진다. 두 번째로는 수동으로 주소를 지정해주는 Permanent 방식이 있다.
//mac 테이블 조회
Swith# show mac-address-table
가상의 랜(Virtual LAN)
VLAN은 스위치에서 가장 많이 사용되는 기능으로 가상의 랜으로 하나의 스위치를 마치 여러 대의 스위치처럼, 브로드캐스트 도메인을 나누는 역할을 한다. 스위치에서만 지원하는 기능으로 VLAN이 한번 나뉘면 VLAN 간의 통신은 오직 라우터를 통해서 가능하다.
- 스위치 별로 여러 개의 VLAN를 가질 수 있는데 하나의 포트를 통해 서로 다른 여러 개의 VLAN를 전송하는 기능이 있고 이 기능이 있는 포트를 트렁크 포트(Trunk Port)라고 한다.
- VLAN은 여러 대의 스위치에 구성이 가능하고 같은 VLAN 끼리는 스위치를 건너서도 통신이 가능하다.
- VLAN에도 다이나믹, 스태틱이 나뉘어 다이나믹의 경우 스위치의 Learning에 맥 주소를 학습하자마자 VMPS(Vlan Membership Policy Server) 서버에서 맥 주소에 해당하는 VLAN를 알려준다.
VLAN에서의 드렁킹과 VTP
트렁킹은 VLAN을 하나로 전송해주는 역할을 하기 때문에 패킷을 보낼 때 각각의 이름표를 붙여준다. 트렁킹의 표준 방식은 IEEE 802.1Q이고, 이름이 붙지 않는 VLAN를 네이티브 VLAN이라고 한다. 네이티브 VLAN란 패킷에 VLAN 정보를 붙이지 않는 것으로 모든 스위치 네트워크에서 유일하게 하나의 VLAN만을 설정할 수 있다.
VTP(VLAN Trunking Protocol)은 스위치들 간에 VLAN 정보를 서로 주고받아 일치시키는 시스코용 프로토콜이다. 메세지 형식은 다음과 같다.
- Summary Advertisement: 5분에 한 번씩 전달하는 메세지이다. 변경사항이 있을 시는 5분을 기다리지 않고 즉시 전송됨.
- Subset Advertisement: 구성이 변경되거나 Advertisement Request를 받았을 때 전송
- Advertisement Request: 위의 메세지를 요청할 때 사용.
VTP 세가지 모드는 다음과 같다.
- VTP 서버 모드: VLAN 생성, 삭제, 이름 변경 등 수행
- VTP 클라이언트 모드: 정보를 받고 전달하는 것만 수행
- VTP 트랜스페어런트 모드: VTP 도메인의 영역에 있지만 서버로부터 VLAN를 업데이트하거나 다른 스위치에 전달하지 않음. 직접 VLAN를 만들고 삭제해 독립적으로 사용.
VLAN을 만들고 변경하기 전에 VTP 도메인 이름을 먼저 생성해야 한다. Config Revision은 VLAN이 새로 만들어지거나 지워질 경우 1씩 추가된다. 이 값으로 업데이트 유무를 판단.
*VTP Pruning이란 가지고 있지 않은 VLAN의 정보에 대한 트래픽은 받지 않는 것.
VLAN의 구성
//도메인 설정
Swith(config)# vtp domain cisco
//VTP 모드 입력
Swith(config)# vtp mode ?
Swith(config)# vtp mode server
//트렁크 포트 세팅
Swith(config)# int da 0/1
Swith(config-if)# switchport ? //각 포트를 VLAN에 배정허거나 트렁크 세팅 시 사용
Swith(config-if)# switchport mode trunk
/*VLAN
1- 디폴트로 vlan1에 모두 속해있음, 2- 각 스위치마다 만들수있는 개수가 다름
3- 스위치 IP주소 세팅은 vlan1에 한다.*/
Swith# show vlan //1 확인
Swith# show vtp status //2 확인
//VLAN 생성 - VLAN Configuration 모드
Cat2950# vlan database
Cat2950(vlan)# vlan 2 name CCNA
Cat2950(vlan)# no vlan 2
//VLAN 생성 - config-vlan 모드
Cat2950# configure terminal
Cat2950(config)# vlan 2
Cat2950(config-vlan)# name CCNA
Cat2950(config-vlan)# exit
Cat2950(config)# no vlan 2
//포트 배정
Cat2950# configure terminal
Cat2950(config)# interface fastEthernet 0/5
Cat2950(config-if)# swithport access vlan 2
Cat2950(config-if)# no swithport access vlan 2 //삭제
흐름도: 스위치 이름, 패스워드 설정 > VLAN 1에 IP주소 할당, 디폴트 게이트웨이 세팅 > VTP 모드 세팅, VTP 도메인 설정 > VLAN 생성 > 트렁크 포트 세팅 > 포트를 VLAN에 세팅
7. 라우터
라우터는 Path Determination(경로 설정)과 Switching(스위칭)을 수행하는 장비인데 가장 최적의 경로를 설정하기 위해서 라우팅 알고리즘을 사용하고, 라우팅 테이블을 만들어서 관리한다. 라우팅 테이블은 RAM에 올라가기 때문에 전원이 꺼지면 전부 지워진다. 라우터의 종류는 단독형과 모듈형이 있고 라우터에 들어가는 소프트웨어는 IOS(Internetwork Operating System)이라고 한다.
라우터의 실제 설치 방법은 다섯 가지가 있다.
- console 케이블을 이용하는 것. console 케이블을 포트와 연결해 컴퓨터의 USB Port에 연결한다. 콘솔 프로그램(ex. PuTTY)을 설치해 필요한 내용을 넣어주고 세션 이름을 생성한다.
- 텔넷을 이용한다. 콘솔 프로그램에서 설정이 가능한데 접속 방법을 Telnet으로 설정한다. 네트워크가 끊키면 사용하지 못하는 단점이 있다.
- 원격지에서 모뎀을 이용해 구성한다. 위의 두 방법을 사용할 수 없을 때 쓰는 방법으로 AUX 포트를 통해 모뎀을 연결해 라우터에 명령을 입력한다.
- 네트워크 관리 시스템(NMS)에 의한 라우터의 구성 방법.
- TFTP 서버로 구성. 다른 곳에서 만들어놓은 라우터의 구성 파일을 TFTP 서버에 저장했다가 라우터에 다운로드한다.
라우팅 프로토콜의 종류
- 라우티드 프로토콜: 라우팅을 당하는 고객으로 TCP/IP, IPX, AppleTalk이 여기 해당된다. 라우팅 프로토콜은 목적지까지 가장 빠른 경로를 설정하는 것이다.
- 스태틱 라우팅 프로토콜 VS 다이내믹 라우팅 프로토콜
- 스태틱 라우팅은 네트워크 대역폭도 절약하고 보안에도 강하지만 설정이 번거롭다는 단점이 있다. 반면 다이내믹 라우팅 프로토콜은 자동으로 경로를 설정해주는 대신에 라우터에 부담이 간다.
- AS, IGP, EGP
- AS란 하나의 네트워크 관리자에 의해 관리되는 라우터들의 집단. AS가 밖으로 나갈 때는 AS에 있는 문지기 라우터(ASBR)에 정보를 물어봐서 밖으로 데이터를 보낸다.
- 이 때 AS 내부에서 사용하는 라우팅 프로토콜을 interior Routhing Protocol(IRP) 혹은 interior Gateway Protocol(IGP)라고 한다.
- AS 외부에서 사용하는 프로토콜은 Exterior Gateway Protocol(EGP)나 ERP라고 한다.
라우터의 모드
- RXBOOT 모드: 라우터의 패스워드를 모르는 경우나 라우터 이미지 파일(IOS)에 문제가 생긴 경우 복구를 위해 사용
- 셋업 모드: 처음 부팅하거나 구성 파일이 없는 경우 자동으로 들어가는 모드. 질문을 바탕으로 라우터의 구성 파일을 생성한다.
스패닝 트리를 사용하기 위해 특수 프레임을 사용하는데 이를 BPDU(Bridge Protocol Data Unit)이라고 한다. 해당 프레임으로 정보를 주고받는다.
(1) 스위치가 부팅되면 BPDU를 통해 자신의 ID를 교환하게 되고 가장 낮은 ID가 루트 브리지로 선정된다. Bridge Priority를 통해 루트 브리지 선정을 조작할 수 있다.
```jsx
SW-3(config) #spanning-tree vlan 1 priority 100 //값을 100으로 변경
```
(2) 나머지 스위치들이 루트 포트를 선출한다. Path Cost를 계산해 작은 값이 선출된다.
(3) 데지그네이티드 포트를 뽑기 위해 Path Cost를 계산하고 같을 시 우선순위를 고려한다. 여기서 BID를 가리는 것은 출발지의 BID를 비교하는 것과 같아 둘 중 BID를 비교하고 처리가 안될 시 포트 ID까지 비교해 판단을 내린다.
*해당 포트를 뽑는 이유는 나머지 포트들은 막기 때문.
- 유저모드: “>”가 나타나는 모드로 주로 테스트, 현재 상태를 볼 수 있다.
- 프리빌리지드 모드: 유저에서 Enable을 입력해 들어갈 수 있으며 “#”이 나타난다. 모든 명령어를 사용할 수 있다.
- 구성 모드: Config 모드라고도 하며 모든 구성 파일을 만듬.
//구성모드 진입
Router# configure
//구성을 텔넷이나 콘솔로 하는 경우
Router# configure terminal
//password 변경
Router(config)# enable password ciscol
//이더넷 인터페이스 IP주소 변경
Router(config)# interface fa 0/0
Router(config-if)# ip adress 150.10.1.1 255.255.255.0
//Ctrl+Z로 탈출
//RAM 작업 구성 파일을 NVRAM으로 옮겨 저장
Router# write memory
*configure memory는 NVRAM에 있는 구성 파일을 RAM위에 덮어 씌워 백업하겠다는 의미.
라우터 내부
- RAM: 휘발성이기 때문에 전원이 켜지면 운영체제와 라우팅 테이블, 구성파일이 올라간다.
- NVRAM: 비휘발성 메모리. 라우터의 구성 파일을 저장. 파워가 켜져있을 때 RAM에 있다가 전원이 꺼지면 NVRAM에 올라가게 된다.
- Flash 메모리: 라우터를 움직이는 운영체제인 IOS는 플래시 메모리에 저장된다. 전원이 꺼져도 지워지지 않으며 NVRAM보다 용량이 크다. 구성 파일 저장용이 아닌 ISO 이미지 파일 저장용으로 사용된다.
- ROM: 라우터의 기본적인 내용, 파워가 켜진 후 라우터의 순서, 어디서 운영체제를 가져다 올릴 것인지 등을 기록해둔다. 롬에는 기본적인 IOS가 내장되어 라우터에 문제가 생길 경우 IOS를 롬에서 가져온다.
이 중 램과 플래시 메모리는 확장이 가능하다. 이 둘을 꽂을 수 있는 공간을 뱅크라고 하며 PCMCIA 방식으로 카드를 앞뒤로 뺄 수 있는 슬롯 형식으로 되어있기도 한다.
- 최근 라우터의 내부엔 Control plan과 Data plan이 있는데 컨트롤 플레인은 복잡한 기능을 담당하는 반면 데이터 플레인은 데이터 전송만에 집중해 빠른 전달을 한다.
라우터의 정보
//라우터 종류, IOS 버전, IOS 파일 이름, 인터페이스 정보, NVRAM 용량, 구성파일 등
show version
//인터페이스 작동 여부
show interface
//구성파일 종휴(기본, 백업용)
show config
//현재 구성파일 보기
sh run
//백업 구성파일 보기
show start
//플래시에 있는 파일 이름, 크기, 버전 확인
show flash
//라우터의 동작 상태 확인
show processes cpu
라우팅의 구성
- 스태틱 라우팅
//ip route [목적지 주소][1홉을 건너뛴 IP주소][거리(생략 시 디폴트 사용)] ip route 150.150.0.0 255.255.0.0 203.210.100.1 //마지막은 다음 홉 주소
- 보통 Stub 라우터용으로 많이 사용되는데 Stub 네트워크란 오직 하나의 경로만 통해서 외부 망과 연결된 네트워크이다.
- 디폴트 라우트: 경로를 찾아내지 못한 모든 네트워크들을 보내기 위해 미리 정해 놓은 길.
- 디폴트 네트워크 뒤에 오는 네트워크 주소는 항상 클래스를 맞춰줘야 한다.150.100.0.0처럼 뒤에 호스트를 0으로 비워둬야한다.
- RIP에서 구성하는 경우 뒤에 오는 네트워크 주소는 반드시 RIP가 돌고있는 네트워크 주소여야한다.
//1- 디폴트 네트워크 설정
ip default-network 203.240.10.0
//2- 스태틱 명령어 사용
ip route 0.0.0.0 0.0.0.0 203.240.10.1
디스턴스 벡터와 링크 스테이트
- 디스턴스 백터 알고리즘은 말 그대로 디스턴스와 백터를 위주로 만들어진 라우팅 알고리즘이다. 라우터는 목적지까지의 거리와 라우터에 대한 방향만을 지정한다.
- 따라서 인접 라우터들과 주기적으로 라우팅 테이블을 교환해 확인한다. 단점은 라우팅 테이블의 변화를 알아차리기 힘들고 최대 홉 카운트가 15를 넘지 못해 이상의 네트워크를 인식하지 못한다. 작은 규모의 네트워크에는 장점을 살릴 수 있으며 대표적으로 RIP(Routing information Protocol)와 IGRP가 있다.
- 링크 스테이트 알고리즘은 먼저 링크에 대한 정보를 토폴러지 데이터베이스로 만들고 SPF(Shortest Path First)를 아용해 SPF 트리를 만든다. 라우터는 해당 트리 정보를 이용해 라우팅 테이블을 제작한다.
- 변화 감지가 빠르고 변화가 부분적으로 이루어져 트래픽 발생을 줄인다. 하지만 모든 라우팅 정보를 관리하기 때문에 메모리 낭비, SPF 계산 등의 작업에 CPU 성능 저하 등의 단점이 있다. 링크 스테이트 알고리즘은 고용량 네트워크에 사용해야 바람직하다. 대표적으로 OSPF(Open Shortest Path Frist)가 있다.
라우터의 패스워드 구성
enable secret: 암호화해서 저장. 패스워드 둘 다 설정되어 있을 경우엔 enable secret만 사용.
enable password: 구성 파일에 그대로 저장.
콘솔 포트. 버추얼 터미널 포트, AUX 포트에도 패스워드 세팅이 가능하며 타임 아웃을 걸어 사용 안하는 포트를 자동으로 끊어줄 수도 있다.
핑과 트레이스
핑: !!!!! → 정상 응답/ ….. → 타임아웃
단순형 핑을 사용했을 때 출발지 주소는 라우터 인터페이스가 된다.
출발지 지정, 에코 패킷 크기, 핑 횟수를 설정하려면 확장형 핑을 사용해야함.
ping //이후 질문형으로 알아서 세팅됨.
트레이스: 중간에 거친 경로 정보와 소요 시간까지 확인
TTL(Time To Live)의 값이 0이 될 때마다 에러를 반환하는 특성을 이용해 하나씩 증가시키며 돌아오는 메세지를 가지고 경로를 추적함.
trace 172.70.100.1
망분리
CBC(Client Based Computing)과 SBS(Server Based Computing)가 있는데 CBC는 컴퓨터에서 가상화를 시켜서 망을 분리하고 SBS는 서버에서 가상화를 하고 PC에는 그냥 화면만 뿌려주는 VDI 방식이다.
네트워크 관리 시스템(NMS)
네트워크를 효율적으로 관리하고 문제를 방지한다. 라우터, 스위치, 허브 등을 관리하고 PC만을 관리하는 데스크톱 매니지먼트 시스템(DMS)도 있다.
APT 공격
이를 막기 위해 방화벽, IPS(침입 탐지 솔루션), 샌드 박스 솔루션 등을 사용
여기서 샌드 박스 솔루션이란 격리된 환경에서 파일을 구동해 악성 행위가 일어나는지 확인하는 기법이다.
'CS & Reversing' 카테고리의 다른 글
[book] 리버스 엔지니어링 기드라 실전 가이드: Chapter 2 (0) | 2023.07.24 |
---|---|
[book] 시스코 네트워킹 Vol 2 (1) | 2023.05.04 |
[book] 리버스 엔지니어링 기드라 실전 가이드: Chapter 1 (0) | 2023.05.04 |
[book]리버싱과 시스템 해킹의 원리(x64dbg 디버거) (0) | 2023.05.04 |
암호학 - 해시 함수 (0) | 2023.01.16 |