LAN 토폴로지와 스위치
Packet Tracer에 들어가기 전
먼저 네트워크의 기본 구성 요소부터 이해해보자.
라우터, 스위치, 엔드 디바이스(PC, 서버 등)가 어떻게 상호 작용하는지 알아보자.
- 가장 기본적인 두 대의 디바이스(
PC
)가 있다고 가정해보자. - 두 PC를 연결하고, IP 주소 설정, 서브넷 마스크 설정을 하고 ping 테스트를 통해 연결.
- 이 과정에서 TCP/IP의 기본 개념을 이해해보자.
- 그 다음 단계로
스위치
를 추가하여 여러 대의PC
를 연결.- L2 통신의 개념과 MAC 주소의 역할을 이해해보자.
- 마지막으로
라우터
를 추가하여 서로 다른 네트워크 간의 통신을 구현.- 라우팅 테이블, 게이트웨이 등의 개념을 학습해보자.
사용법
PC

- 장치 타입 → End Devices → PC / LAPTOP 등 Drag & Drop
Switch

Router

Connection

- 실선은 Copper Straight [PC - Switch/Router]
- 점선은 Copper Cross - Over [Switch/Router … Switch/Router]
- 번개 모양은 Automatic
기본 사용 방법

- 장치(PC 와 Laptop)들을 놓는다.
- 각 디바이스 개수만큼 연결한 스위치 추가
- 실선과 점선으로 연결
- 스위치 0 → 메뉴에서 FastEthernet0/1 선택
- PC 0 → 메뉴에서 FastEthernet0 선택
- (나머지도 동일하게 연결)
- 왼쪽 스위치 :
FastEthernet0/2
오른쪽 스위치 :FastEthernet0/3
- PC 클릭 → Desktop → IP Configuration → IP Address에
198.168.0.1
Subnet Mask에255.255.255.0
- 나머지 장치는 IP 주소 ~0.2, ~0.3 순으로 입력

- Desktop → Command Prompt로 ping 테스트
- 작업 공간에서 Simulation 가능 [실제 이동 경로 & 헤더 정보 등을 볼 수 있다.]
LAN Topology
- 같은 로컬 에이리어 네트워크 (LAN) 내에서 네트워크 장비와 디바이스들이 어떻게 물리적 혹은 논리적으로 연결되어 있는지 나타내는 구조
LAN과 WAN
- LAN (로컬 영역 네트워크):
- 제한된 지역 내에서 연결된 네트워크
- 스위치는 MAC 주소를 사용하여 네트워크 내 장치들 간에 데이터를 전달합니다. 스위치는 MAC 주소 테이블을 사용해 데이터를 해당 장치로 정확하게 전달
- WAN (광역 네트워크):
- 더 넓은 지역, 심지어 전 세계적으로 연결된 네트워크
- 인터넷이 대표적인 WAN 예시
- WAN에서는 서로 MAC 주소를 알 수 없음
- WAN에서 라우터는 IP 주소를 기반으로 데이터를 전달하는데, 각 네트워크 간의 경로를 찾기 위해 라우팅 테이블을 사용
- NAT / PAT
- 더 넓은 지역, 심지어 전 세계적으로 연결된 네트워크

1) Bus 형
- 하나의 메인 케이블(백본)에 모든 노드가 연결되는 구조
- 장점 :
- 구조가 단순하고 설치 비용이 저렴
- 노드 추가/제거가 쉽고 유연함
- 케이블 길이가 짧아 경제적
- 소규모 네트워크에 적합
- 단점 :
- 트래픽 증가 시 성능 저하
- 메인 케이블 장애 시 전체 영향
- 데이터 충돌 발생 가능
- 보안 취약점 존재


ping 192.168.0.4
2) Ring 형
- 각 노드가 양옆의 두 노드와 연결되어 원형을 이루는 구조
- 자동선택 기능을 사용한 링
- 장점 :
- 데이터 흐름이 일정하고 예측 가능
- 충돌이 적고 전송이 안정적
- 각 노드가 리피터 역할 수행
- 장거리 전송에 유리
- 단점 :
- 단일 노드 장애가 전체에 영향
- 네트워크 확장이 제한적
- 설치/제거 시 네트워크 중단
- 양방향 링 구성 시 비용 증가


ping 192.168.0.4
3) Star 형
- 중앙에 허브가 있고 모든 노드가 이 허브에 직접 연결되는 구조
- 장점 :
- 구현과 유지보수가 단순하고 직관적
- 개별 노드 장애가 다른 노드에 영향 없음
- 높은 성능과 데이터 전송 속도
- 중앙 집중적 보안 관리 용이
- 단점 :
- 중앙 허브 장애 시 전체 네트워크 마비 - 단일 장애 지점 (SPOF)
- 허브에 과부하 발생 가능
- 케이블 설치 비용이 높음
- 허브 용량에 따른 확장성 제한


ping 192.168.0.4
4) Mesh 형
- 모든 노드가 서로 직접 연결되는 구조
- 장점 :
- 높은 안정성과 이중화 구성
- 효율적인 트래픽 분산
- 우회 경로 확보로 신뢰성 높음
- 뛰어난 보안성
- 단점 :
- 설치/유지보수 비용이 매우 높음
- 구현과 설정이 매우 복잡
- 케이블 연결 관리가 어려움
- 노드 수 증가에 따른 복잡도 급증


ping 192.168.0.4
5) Tree 형
- 계층적 구조로, 상위 노드에서 하위 노드로 분기되는 형태
- 장점 :
- 네트워크 확장이 용이
- 체계적인 계층 구조 관리
- 하위 네트워크 독립성
- 효율적인 트래픽 관리
- 단점 :
- 루트 노드 장애 시 전체 영향
- 계층 증가에 따른 관리 복잡성
- 상위 노드 병목 현상 가능
- 깊이가 깊어질수록 지연 증가


- 192.168.0.1 to 192.168.0.12
VLAN(Virtual LAN) (case 1 : Switch 1개)
VLAN이란?
“논리적인 구조의 속임수로 같은 물리적 공간에 있는 네트워크를 다른 네트워크에 있는 것처럼 속이는 기술”
- 먼저, 물리적인 LAN을 먼저 생각해보면, 같은 건물이나 같은 층에 있는 컴퓨터들이 하나의 네트워크로 연결되어 있는 구조이다.
- 그런데 예를 들면, 마케팅팀과 개발팀이 다른 네트워크에 있어야 한다고 가정해보자.
- 전통적인 방식이라면 물리적으로 별도의 네트워크 장비와 케이블을 설치해야 했다.
- 하지만, VLAN은 이런 물리적 제약을 소프트웨어적으로 해결한다.
- 하나의 물리적인 스위치를 마치 여러 개의 독립된 스위치처럼 동작하게 만드는 기술이다.
- 예를 들어, 같은 스위치에 연결된 컴퓨터라도 서로 다른 VLAN에 속하면 마치 다른 네트워크에 있는 것처럼 통신이 분리된다.
초기 default VLAN 설정
- show vlan으로 확인해보자.

- 처음 VLAN 1은 ‘기본 VLAN’이다.
- 모든 스위치 포트는 처음에 이 VLAN 1에 속하도록 설정되어 있다.
- 그래서 별다른 설정 없이는 같은 물리적인 공간에 있다면 한 네트워크에 속하도록 설정이 된다.
- 그리고 VLAN 1002부터 1005까지는 특별한 목적으로 예약된 VLAN이다. (사용 불가)
- FDDI, 토큰링 등으로 고정되어 있다.
- 우리가 새로운 VLAN을 할당하려고 하면 “2 ~ 1001” 의 VLAN을 사용해서 나누면 된다.
VLAN 구성하기
- 먼저 VLAN 2개를 생성한다.
Switch#enable
Switch#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#vlan 2
Switch(config-if)#name VLAN_2
Switch(config-if)#exit
- enable : 관리자 모드 진입
- config terminal : 글로벌 모드 진입
- vlan 2 : vlan 모드 진입
- name <이름> : 진입되어 있는 vlan의 이름 설정

결과
- 그리고,
VLAN_2
엔Fa0/1
과Fa0/2
,VLAN_3
엔Fa0/3
과Fa0/4
포트를 배정시킨다.
Switch#enable
Switch#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#interface fa0/1
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 2
- inteface fa0/1 : 인터페이스 모드 진입
- switchport mode access : 해당 포트를 VLAN 전용으로 사용함을 선언
- switchport access vlan 2 : 해당 포트가 속한 VLAN 번호 설정


VLAN 통신 테스트
192.168.0.1
to192.168.0.2
- 같은 VLAN 내에서는 통신 가능

192.168.0.1
to192.168.0.2
- 다른 VLAN 끼리는 통신 불가능

VLAN(Virtual LAN) (case 2 : Switch 여러 개)
- 그렇다면 네트워크를 확장하고 좀 더 현실적인 아키텍쳐로 바뀌면 어떨까?
- 먼저 Switch를 하나 더 두어보자.
- 들어가기전
- VLAN 설정 자체는 IP 주소를 직접 변경하지 않는다.
- VLAN은 Layer 2(데이터 링크 계층)에서 작동하는 반면,
IP 주소는 Layer 3(네트워크 계층)에서 작동하기 때문.
- VLAN은 Layer 2(데이터 링크 계층)에서 작동하는 반면,
- 그러나, 실제 네트워크 운영에서는 일반적으로 각 VLAN마다 서로 다른 IP 대역을 할당한다.
- 네트워크 관리와 보안을 위한 설계
- 그러므로 VLAN 별로 다른 대역을 할당해보자.
- VLAN 2: 203.237.20.nnn
- VLAN 3: 203.237.30.nnn
- VLAN 설정 자체는 IP 주소를 직접 변경하지 않는다.

- Switch 0 설정

- Switch 1 설정

여기서 이런 궁금증이 든다.
- 🤔 과연 PC2는 PC0과 통신이 가능할까?
- 결과를 보면, PC1과는 통신이 가능하지만, 다른 스위치로 넘어가면서 통신이 불가능해진다

- 이런 논리적인 흐름의 질문이 든다.
- 오히려 VLAN 설정하기 전에 그냥 여러 스위치를 건너 뛰어도 통신이 됐음.
- 그리고 같은 VLAN 끼리는 통신이 된다고 했다.
- 그런데 갑자기 같은 VLAN에서 여러 스위치를 건너뛰면 왜 통신이 안될까?
- 여기서 VLAN 태그라는 개념이 등장한다.
- VLAN을 설정하면 각 패킷에는 특별한 VLAN ID가 붙게 된다.
- (마치 우편물에 부서명을 적는 것과 같다.)
- 일반적인 스위치의 Port(Access Port)는 VLAN 태그를 처리하는 방법에 대해 1가지 밖에 모른다.
- PACKET 들어올 때 : 자신의 VLAN 번호를 태그로 붙인다.
- PACKET 나갈 때 : 태그를 제거하고 보낸다.
- 그럼 여기서 문제가 발생한다.
- PC2에서 나온 패킷
- Switch 0으로 들어올 때 : fa0/2에서 VLAN 2 태그를 붙임
- 이 패킷이 fa0/5로 가면서 VLAN 1의 통신으로 취급됨 [VLAN 2 태그가 떨어짐]
- 다른 스위치의 fa0/3에 도착했을 때도 VLAN 1의 통신으로 인식됨
- 결과적으로 원래의 VLAN 2 통신이 의도대로 전달되지 못함.
- PC2에서 나온 패킷
- [즉, Switch0의 fa0/와 Switch1의 fa0/3이 VLAN 1이기 때문]
- VLAN을 설정하면 각 패킷에는 특별한 VLAN ID가 붙게 된다.
→ 스위치 간 VLAN 전용 통로가 필요하다!
트렁크(Trunk)
[먼저 PC2가 PC0과 통신이 가능하도록 해결해보자]
- Switch0과 Switch1간에 VLAN 2,3 전용 포트 따로 설정!
- switch0의 fa0/5, fa0/6을 각각 VLAN 2,3 전용으로 설정
- switch1의 fa0/3, fa0/4를 각각 VLAN 2,3 전용으로 설정
- Switch 0 포트의 VLAN 상태

- Switch 1 포트의 VLAN 상태

- PC2에서 PC0로 통신이 가능하다.


그런데 또 이런 궁금증이 든다.
- 🤔 과연 VLAN 별 통신 라인 추가가 바람직한 해결인가?
- 만약 VLAN이 수백개라면..?
- 일일이 연결해줄 수 없다
- 또한 추가 가능한 VLAN ID는 1000개.
- → Trunk 가 해결책
트렁크란?
- 트렁크는 모든 VLAN 패킷을 하나의 포트로 통과시키는 것
- 스위치 간 프레임 전달에 하나의 물리적 연결(포트)를 공유하는 것.
- VLAN 트렁킹된 스위치들 간에 여러 VLAN에서 나온 프레임들을 이 트렁크를 통해 전달한다.
- 즉, 스위치와 스위치 간 프레임 전달 시 하나의 포트에 다수의 VLAN이 지나갈 수 있도록하는 링크.
Switch(config)#interface fa0/5
Switch(config-if)#switchport mode trunk
Switch(config-if)#
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/5, changed state to down
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/5, changed state to up
exit
Switch(config)#exit
Switch#
%SYS-5-CONFIG_I: Configured from console by console
show interface trunk
Port Mode Encapsulation Status Native vlan
Fa0/5 on 802.1q trunking 1
Port Vlans allowed on trunk
Fa0/5 1-1005
Port Vlans allowed and active in management domain
Fa0/5 1,2,3
Port Vlans in spanning tree forwarding state and not pruned
Fa0/5 none

- Fa0/5가 트렁크 포트로 on (강제로 트렁크 모드로 설정) 되었다.
- 1~1005는 이론적으로 모든 VLAN 범위가 통과 가능하다.
- 실제 현재 사용 중인 VLAN : 1, 2, 3이 현재 활성화되어 있다.
- Vlans in spanning tree forwarding state and not pruned : None
(활성화된 VLAN들이 여기 나타나야 한다. - 없다.)
- Fa0/5 포트는 Native VLAN이 1로 설정됨
- 반대편 Fa0/3 포트는 Native VLAN이 2로 설정됨
- Switch1의 Fa0/3 포트도 Trunk로 설정해준다.

- 물론 PC2에서 PC0로 통신이 가능해졌다.

Inter-VLAN
- 놓치면 안되는 것의 “기술의 도입에 대한 목적”이다.
- VLAN의 목적은 가상의 LAN으로서 관리의 편리성 추구이며,
다른 VLAN과의 통신 제한이 아니다.
- VLAN의 목적은 가상의 LAN으로서 관리의 편리성 추구이며,
- 그럼, 서로 다른 VLAN 간의 통신이 가능하도록 하는 방법은 없을까?
- VLAN 간 통신을 하려면 라우터(게이트웨이)가 있어야 한다.
- 라우터를 경유하여 마치 다른 LAN으로 통신하는 것처럼 동작한다.
- [다른 네트워크 영역은 라우터가 필요!!!]
서브 인터페이스
- 단순히 생각하면 이런 생각이 든다.
- 전통적인 라우터 방식: 각 VLAN마다 라우터의 물리적 인터페이스를 하나씩 사용
- 그러나 이런 생각의 전환을 해본다.
- 하나의 물리적 라우터 인터페이스에 여러 개의 논리적 인터페이스를 생성하여 각각 다른 VLAN을 처리할 수 있도록 할 수 있다면?
- 그런데, Fa0/0이라는 물리적 라우터 인터페이스에 어떻게 여러 개의 논리적 인터페이스를 생성할까?

- 서브 인터페이스: 하나의 인터페이스에 여러 VLAN들의 인터페이스를 논리적으로 나누는 것
- 2811 모델을 추가해준다!
- 참고 :
- 2811 라우터는 Cisco의 중급 라우터로, Inter-VLAN 라우팅을 위한 서브인터페이스 구성을 지원합니다. 서브인터페이스란 하나의 물리적 인터페이스를 여러 개의 논리적 인터페이스로 나누어 사용할 수 있게 해주는 기능입니다. 이는 마치 하나의 도로를 여러 개의 차선으로 나누어 서로 다른 목적지로 가는 차들을 효율적으로 처리하는 것과 비슷합니다.
1. fa0/0 활성화

2. fa0/0.2 생성, VLAN2 연결, IP주소 할당 & fa0/0.3 생성, VLAN3 연결, IP주소 할당

3. switch1 fa0/4를 트렁크 모드로 설정

4. Router의 서브 인터페이스 상태 확인

5. 게이트웨이 설정
- VLAN 2 (PC0, 1, 2) → 203.237.20.254

- VLAN 3 (Laptop0, 1, 2) → 203.237.30.254

스위치
스위치의 동작 원리
MAC 주소 테이블 동작 원리
- 스위치와 노드들이 ARP를 통해 MAC 주소 정보를 지속적으로 교환한다.
- ARP 프로토콜에 포함된 MAC 주소 정보를 기반으로 스위치의 MAC 주소 테이블이 구축된다.
- 실제 데이터 전송 (ping 등)이 발생하면, 이 MAC 주소 테이블을 참조하여 패킷을 적절한 포트로 전달
- MAC 주소 테이블은 네트워크 토폴리지 변화를 반영하기 위해 일정 주기로 초기화되며, 최신 정보로 동적 갱신된다.
ARP란?
- IP 네트워크에서 IP 주소를 물리적인 MAC 주소로 변환하는 핵심 프로토콜
- 컴퓨터가 같은 네트워크 상의 다른 장치와 통신하려면 반드시 상대방의 MAC 주소를 알아야 하는데,
ARP가 이 주소 변환 과정을 자동으로 처리해준다.
ARP를 활용한 동작 원리
PC0에서 Laptop0으로 ping을 보낸다고 가정

- ARP Request (PC0 → Switch0)
- PC0이 Laptop0의 MAC 주소를 알아내기 위해 ARP 요청 패킷 전송
- 패킷 내용:
- 출발지: PC0의 IP 주소와 MAC 주소
- 목적지: Laptop0의 IP 주소 (MAC 주소는 미확인 상태)
- 스위치 브로드캐스트 (Switch0 → 모든 노드)
- Switch0은 PC0의 MAC 주소를 자신의 테이블에 기록
- 수신한 ARP 요청 패킷을 모든 포트로 브로드캐스트
- ARP reply (Laptop0 → Switch0)
- Laptop0이 자신의 IP 주소를 확인하고 ARP 응답 패킷 생성
- 패킷 내용:
- 출발지: Laptop0의 IP 주소와 MAC 주소
- 목적지: PC0의 IP 주소와 MAC 주소
- Laptop0은 PC0의 MAC 주소를 자신의 ARP 캐시에 저장
- 스위치 전달 단계 (Switch0 → PC0)
- Switch0은 수신한 응답 패킷을 PC0에게 전달
- PC0과 Laptop0의 MAC 주소 정보를 MAC 주소 테이블에 저장
- 통신 시작
- PC0이 Laptop0의 MAC 주소를 획득하여 실제 데이터 통신 가능
시뮬레이션
- 시뮬레이션을 눌러서 이벤트 목록창을 볼 수 있다.
- 편지봉투 모양의 [Add Simple PDU] → ICMP 패킷 전송 시뮬레이션
- 송신노드와 수신 노드를 클릭하고 Show All/None 클릭 후 ARP, ICMP 패킷만 클릭한다.
- PC0에서 Laptop0으로 편지를 보낸다.
- ARP - ICMP 순으로 통신이 이루어진다.
1) ARP 패킷 분석
1. PC0 → Switch0 ARP Request

- ARP
- Source MAC
= PC0 의 MAC 주소 - Source IP
= PC0의 IP 주소 - Target MAC
= Laptop 의 MAC 주소 [모르는 주소] - Target IP
= Laptop0의 IP주소
- Source MAC
2. Switch0 → 모든 노드 (브로드캐스트)

- Switch0은 수신한 ARP Request를 모든 포트로 전달
- Switch0의 MAC 주소 테이블에 PC0의 정보 기록
- 포트 번호와 PC0의 MAC 주소 매핑
3. Laptop0→ Switch0 ARP Reply

- ARP
- Source MAC
= Laptop0 의 MAC 주소 - Source IP
= Laptop0의 IP 주소 - Target MAC
= PC0 의 MAC 주소 - Target IP
= Laptop0의 IP주소
- Source MAC
2. ICMP 패킷 분석
- PC → Laptop

- SRC ADDR = PC0의 MAC 주소
- DEST ADDR = Laptop0의 MAC 주소
3) Switch0의 MAC 주소 테이블 변화


- 위를 보니 Fa0/1 Fa0/4에 연결된 PC0과 Laptop0의 MAC 주소가 테이블에 기재되었다.
🤔 갑자기 이런 궁금증이 든다.
- Switch0 → 모든 노드로 BroadCast할 때 각자의 MAC 주소 받아오면 되는거 아닌가?
- 해답은 ARP를 이용해 MAC 주소 테이블이 어떻게 유지하는지의 방법에 있다.
- 스위치의 MAC 주소 학습은 '출발지(Source) MAC 주소'만을 대상으로 한다.
- PC0이 ARP Request를 보낼 때
- Laptop0이 ARP Reply를 보낼 때
- 모든 노드로 전달된 ARP-Request 패킷에 대해 수신 노드가 아니면 응답하지 않는다.
- PC1과 Laptop1은 Swtich0이 전달한 ARP-Request에 대해 Reply 하지 않는다.
- 스위치의 MAC 주소 학습은 '출발지(Source) MAC 주소'만을 대상으로 한다.
그런데 이런 ‘고민’도 떠오른다.
1.효율성
- ARP는 매우 짧은 시간 간격으로 반복 실행한다.
- 노드들이 많은 네트워크에서는 통신량으로 부하 가중
- 특히 스위치가 모든 노드에게 BroadCast하는 ARP-Request에서
2. 보안상의 문제
- Laptop1이 악의적인 공격자라고 가정해보자.
- ARP Reply가 실제로 해당 IP 주소를 가진 정당한 장치에서 온 것인지 확인하지 않는다. (보안 X)
- 이 때 Laptop0의 IP에 Laptop1 MAC 주소를 실어서 Reply한다면?
- 테이블이 제대로 갱신되기 전까지 PC0은 Laptop0인 줄 알고 모든 패킷을 보낸다.
VLAN을 통한 해결
- MAC 주소를 이용한 라우팅
- 동일한 네트워크(LAN)에서 스위치를 통해서만 발생한다.
- 라우터를 통한 외부 네트워크로의 통신에는 사용되지 않는다.
- ARP 패킷은 하나의 네트워크에서만 송수신한다.
- LAN을 논리적으로 분리된 가상의 VLAN으로 관리한다.
라우터
라우터란?
- 라우터는 서로 다른 네트워크를 연결하는 3계층 장비.
- IP 주소를 기반으로 패킷의 최적 경로를 결정하고 전달한다.
- 스위치가 같은 네트워크 내에서 MAC 주소를 기반으로 통신을 담당한다면,
- 라우터는 서로 다른 네트워크 간의 통신을 가능하게 만드는 일종의 '네트워크 간의 다리' 역할을 한다.
라우터의 Mode
- 사용자 모드(User EXEC Mode)
- 기본적인 정보 조회만 가능, 설정 변경 불가
- > 로 표시
- 관리자 모드(Privileged EXEC Mode)
- 라우터 설정을 변경할 순 없지만 시스템 정보 상세조회 가능
- # 으로 표시
- 글로벌 모드(Global Configuration Mode)
- 라우터 설정(이름, 보안, 인터페이스 등)을 변경
- (config)# 로 표시
- 라인 모드(Line Configuration Mode)
- 콘솔, 원격 접속(Telnet, SSH 등) 관련 설정 변경
- (config-line)# 로 표시
- 인터페이스 모드(Interface Configuration Mode)
- 라우터의 네트워크 인터페이스(이더넷, 시리얼 등) 설정을 변경
- 라우터의 인터페이스에 IP 주소를 설정하고 활성화/비활성화
- (config-if)# 로 표시
목표 네트워크 구성

기본 설정
- 라우터 3대: [Network Devices] → [Routers] → [2811]
- 스위치 1대 : [Network Devices] → [Switches] → [2960]
- PC 3대, 노트북 1대, 서버 1대 : [End Devices] → [PC], [Laptop], [Server]
라우터 - 시리얼 인터페이스 장착

- PC와 달리 두 라우터 간에 데이터를 주고받기 위한 동기화가 필요
- FastEthernet이 아닌 Serial 인터페이스를 사용하므로 모듈을 추가해야 한다.
- HWIC-2T 추가
노드 간 연결하기
- Laptop0은 통신용이 아니라 Router0을 설정하기 위한 콘솔
- FastEthernet 케이블이 아닌 RS232(하늘색) 케이블로 연결
- 라우더들끼리 Serial DCE 연결
- 먼저 클릭한 쪽에 시계 모양 - 두 라우터 간 데이터를 주고받기 위한 동기화가 필요
- Serial DCE(Data Communication Equipment): 시간 동기화를 주도하는 노드 (시계 있는 쪽)
- Serial DTE(Data Terminal Equipment): 그에 따라 동기화하는 노드 (시계 없는 쪽)

IP 설정
- 컴퓨터들은 203.237.nnn.nnn/24 사용(C클래스)
- 1번부터 시작
- 원격 관리가 필요한 스위치나 서버는 100번 부터
- 라우터는 광역의 랜들을 연결하므로 A클래스 IP 사용
- 규모가 작아 30비트 서브넷 마스크를 사용하여 최대 4개의 라우터를 묶을 수 있도록
- 스위치는 2계층 장비
- IP 주소 설정 불필요
- 원격 접속으로 스위치 관리
- IP 주소 할당 필요
- VLAN1에 할당
- 스위치 IP 주소 설정

- 총 6개의 LAN

연결 확인
- PC0에서 테스트
- PC0 로컬 호스트(127.0.0.1)
- PC0 → Switch1(VLAN1, 203.237.10.100)
- PC0 → Server0(203.237.10.101)
- PC0 → Router0(203.237.10.254)
- 모두 통신 성공

5. PC0 → PC2(203.237.30.1)

- unreachable 이 발생한다
- PC0으로 부터 받은 패킷을 Router0이 어느 인터페이스로 보내야할지 모르기 때문
- → 라우팅 테이블이 필요하다
- 아래는 Router0의 라우팅 정보

정적 라우팅 설정
- 정적 라우팅 대상
- 1번 PC0 입장에서 목적지가
- 2번 네트워크(203.237.20.nnn/24)인 패킷 : serial0/3/0 (혹은 1.1.1.2)
- 3번 네트워크(203.237.30.nnn/24)인 패킷 : serial0/3/1 (혹은 2.2.2.2)
- 6번 네트워크(3.3.3.nnn/30)인 패킷 : serial0/3/0 혹은 serial0/3/1
- 1번 PC0 입장에서 목적지가
- Router1의 정적 라우팅 설정

- Router2의 정적 라우팅 설정

- Router3의 정적 라우팅 설정 + route 확인

통신테스트 by ping
- PC0 ↔ PC1

- PC0 ↔ PC2

방화벽 - 네트워크 구성
망구성

ASA0 구성 설정
1. 인터페이스 통신 상태
- 내부망 : 통신 가능
- 외부망 : 통신 불가
- inPC → outPC 불가능

2. IP 주소 설정
- Inside : 설정됨
- outside : 설정되어있지 않음
- → VLAN에서 203.237.20.253으로 설정

3. Config 확인
- 내부망 Security-level : 100
- 외부망 Security-level : 0
- 보안 레벨이 높은 곳 → 낮은 곳 : 허용 (반대는 불가능)
- 내부망 노드들은 DHCP를 이용하여 IP 할당받는다.
inPC DHCP 설정
- inPC는 ASA가 DHCP로 주소를 할당해준다고 했다.
- 게이트웨이는 ASA0 inside의 ip 주소로 고정된다.

- outPC는 고정 주소 사용 중

Router0 설정
- fa0/0 IP 설정 & 활성화
- 203.237.10.254/24
- fa0/0 IP 설정 & 활성화
- 203.237.20.253/24
RNA 설정
Routing
- 라우터의 정적라우팅
- 네트워크 디바이스들이 서로 다른 네트워크에 있을 때, 그들 사이의 통신 경로를 명확히 지정해줘야 한다.
- 예를 들어, 내부 네트워크의 PC가 다른 네트워크의 서버와 통신하려면, 그 경로를 알아야 한다.
ip route <목적지 네트워크 주소> <목적지 서브넷 마스크> <다음 홉 IP 주소/출구 인터페이스>
- 방화벽의 정적라우팅
- 트래픽이 반드시 방화벽을 통과하도록 하여 보안 정책을 적용할 수 있게 한다.
route <VLAN명> <외부망 네트워크 주소> <외부망 서브넷마스크> <다음 홉 IP 주소>

→ 어떤 목적지 주소를 갖는 패킷이든 외부망의 Router0인 203.207.20.254로 전송한다.
- 통신확인
- inPC ↔ ASA0

- inPC ↔ outPC

NAT
- inPC → outPC 까지는 패킷 전달이 잘 되지만,
- Router0 → ASA0으로 전달이 되지 않는다.
outPC → Router1로 전달되는 패킷
- outPC(203.237.10.10)가 inPC(192.168.1.5)로 통신을 시도할 때, Router는 문제에 직면한다.
- 목적지 주소가 사설IP이기 때문에 외부에서 인식이 불가능하다.
- → Rotuer 입장에서 어디로 보내야 할 지 모른다.
- (마치 동 호수만 알고, 택배 기사가 서울에서 배달을 하려는 상황과 마찬가지)

- ⇒ ASA가 사설 IP를 공인 IP로 변경해서 보내줘야 한다.
- ASA의 NAT

- 들어오는 패킷의 처리
- 외부 노드들은 내부 네트워크의 실제 사설 IP를 알 필요가 없다.
- 대신 ASA의 공인 IP 주소로 통신을 시도
- ASA는 NAT 테이블을 유지하면서, 어떤 외부 통신이 어떤 내부 노드를 위한 것인지 추적
- 수신된 패킷의 목적지 주소를 적절한 내부 사설 IP로 변환하여 전달
- 외부 노드들은 내부 네트워크의 실제 사설 IP를 알 필요가 없다.
- 나가는 패킷의 처리
- 내부 노드가 외부로 통신을 시도할 때, ASA는 출발지의 사설 IP를 자신의 공인 IP로 변환
- 이 과정에서 ASA는 어떤 내부 노드가 어떤 통신을 시작했는지 NAT 테이블에 기록
- 나중에 응답이 돌아오면, 이 테이블을 참조하여 올바른 내부 노드에게 전달
NAT 설정

- in2out 객체 생성 (네트워크 객체 모드)
- 대상 서브넷을 지정해준다.
- NAT 지정
- 내외부망을 연결하는 (inside, outside)를 동적 매핑
- 공인 Ip 주소는 인터페이스에 할당된 IP 주소를 사용한다.

- 그래도 inPC → outPC의 통신이 실패하게 된다.

ACL
- 패킷을 보면 목적지 주소는 공인 IP 주소로 정확히 설정되어 있으나,
- 외부망에서 내부망으로 들어오는 트래픽의 흐름을 방화벽이 모두 Block하고 있기 때문
- 즉, 인터페이스마다 어떤 출발지 & 어떤 목적지 를 가지는 트래픽을 허용 / 거부 할 것인지 정의해줘야 한다.
- → ACL : 이러한 Allow/Deny 접근 제어 목록
access-list <ACL명> <타입> <동작> <프로토콜> <출발지> <목적지>
access-group <ACL명> <트래픽> <인터페이스 키워드> <VLAN 명>
- ACL 설정
- 모든 출발지에서 모든 목적지로 가는 ICMP(ping) 트래픽을 허용하는 규칙을 만든다.
- 만든 규칙을 외부 인터페이스의 인바운드 방향에 적용

- inPC → outPC Ping 확인

LAN 토폴로지와 스위치
Packet Tracer에 들어가기 전
먼저 네트워크의 기본 구성 요소부터 이해해보자.
라우터, 스위치, 엔드 디바이스(PC, 서버 등)가 어떻게 상호 작용하는지 알아보자.
- 가장 기본적인 두 대의 디바이스(
PC
)가 있다고 가정해보자. - 두 PC를 연결하고, IP 주소 설정, 서브넷 마스크 설정을 하고 ping 테스트를 통해 연결.
- 이 과정에서 TCP/IP의 기본 개념을 이해해보자.
- 그 다음 단계로
스위치
를 추가하여 여러 대의PC
를 연결.- L2 통신의 개념과 MAC 주소의 역할을 이해해보자.
- 마지막으로
라우터
를 추가하여 서로 다른 네트워크 간의 통신을 구현.- 라우팅 테이블, 게이트웨이 등의 개념을 학습해보자.
사용법
PC

- 장치 타입 → End Devices → PC / LAPTOP 등 Drag & Drop
Switch

Router

Connection

- 실선은 Copper Straight [PC - Switch/Router]
- 점선은 Copper Cross - Over [Switch/Router … Switch/Router]
- 번개 모양은 Automatic
기본 사용 방법

- 장치(PC 와 Laptop)들을 놓는다.
- 각 디바이스 개수만큼 연결한 스위치 추가
- 실선과 점선으로 연결
- 스위치 0 → 메뉴에서 FastEthernet0/1 선택
- PC 0 → 메뉴에서 FastEthernet0 선택
- (나머지도 동일하게 연결)
- 왼쪽 스위치 :
FastEthernet0/2
오른쪽 스위치 :FastEthernet0/3
- PC 클릭 → Desktop → IP Configuration → IP Address에
198.168.0.1
Subnet Mask에255.255.255.0
- 나머지 장치는 IP 주소 ~0.2, ~0.3 순으로 입력

- Desktop → Command Prompt로 ping 테스트
- 작업 공간에서 Simulation 가능 [실제 이동 경로 & 헤더 정보 등을 볼 수 있다.]
LAN Topology
- 같은 로컬 에이리어 네트워크 (LAN) 내에서 네트워크 장비와 디바이스들이 어떻게 물리적 혹은 논리적으로 연결되어 있는지 나타내는 구조
LAN과 WAN
- LAN (로컬 영역 네트워크):
- 제한된 지역 내에서 연결된 네트워크
- 스위치는 MAC 주소를 사용하여 네트워크 내 장치들 간에 데이터를 전달합니다. 스위치는 MAC 주소 테이블을 사용해 데이터를 해당 장치로 정확하게 전달
- WAN (광역 네트워크):
- 더 넓은 지역, 심지어 전 세계적으로 연결된 네트워크
- 인터넷이 대표적인 WAN 예시
- WAN에서는 서로 MAC 주소를 알 수 없음
- WAN에서 라우터는 IP 주소를 기반으로 데이터를 전달하는데, 각 네트워크 간의 경로를 찾기 위해 라우팅 테이블을 사용
- NAT / PAT
- 더 넓은 지역, 심지어 전 세계적으로 연결된 네트워크

1) Bus 형
- 하나의 메인 케이블(백본)에 모든 노드가 연결되는 구조
- 장점 :
- 구조가 단순하고 설치 비용이 저렴
- 노드 추가/제거가 쉽고 유연함
- 케이블 길이가 짧아 경제적
- 소규모 네트워크에 적합
- 단점 :
- 트래픽 증가 시 성능 저하
- 메인 케이블 장애 시 전체 영향
- 데이터 충돌 발생 가능
- 보안 취약점 존재


ping 192.168.0.4
2) Ring 형
- 각 노드가 양옆의 두 노드와 연결되어 원형을 이루는 구조
- 자동선택 기능을 사용한 링
- 장점 :
- 데이터 흐름이 일정하고 예측 가능
- 충돌이 적고 전송이 안정적
- 각 노드가 리피터 역할 수행
- 장거리 전송에 유리
- 단점 :
- 단일 노드 장애가 전체에 영향
- 네트워크 확장이 제한적
- 설치/제거 시 네트워크 중단
- 양방향 링 구성 시 비용 증가


ping 192.168.0.4
3) Star 형
- 중앙에 허브가 있고 모든 노드가 이 허브에 직접 연결되는 구조
- 장점 :
- 구현과 유지보수가 단순하고 직관적
- 개별 노드 장애가 다른 노드에 영향 없음
- 높은 성능과 데이터 전송 속도
- 중앙 집중적 보안 관리 용이
- 단점 :
- 중앙 허브 장애 시 전체 네트워크 마비 - 단일 장애 지점 (SPOF)
- 허브에 과부하 발생 가능
- 케이블 설치 비용이 높음
- 허브 용량에 따른 확장성 제한


ping 192.168.0.4
4) Mesh 형
- 모든 노드가 서로 직접 연결되는 구조
- 장점 :
- 높은 안정성과 이중화 구성
- 효율적인 트래픽 분산
- 우회 경로 확보로 신뢰성 높음
- 뛰어난 보안성
- 단점 :
- 설치/유지보수 비용이 매우 높음
- 구현과 설정이 매우 복잡
- 케이블 연결 관리가 어려움
- 노드 수 증가에 따른 복잡도 급증


ping 192.168.0.4
5) Tree 형
- 계층적 구조로, 상위 노드에서 하위 노드로 분기되는 형태
- 장점 :
- 네트워크 확장이 용이
- 체계적인 계층 구조 관리
- 하위 네트워크 독립성
- 효율적인 트래픽 관리
- 단점 :
- 루트 노드 장애 시 전체 영향
- 계층 증가에 따른 관리 복잡성
- 상위 노드 병목 현상 가능
- 깊이가 깊어질수록 지연 증가


- 192.168.0.1 to 192.168.0.12
VLAN(Virtual LAN) (case 1 : Switch 1개)
VLAN이란?
“논리적인 구조의 속임수로 같은 물리적 공간에 있는 네트워크를 다른 네트워크에 있는 것처럼 속이는 기술”
- 먼저, 물리적인 LAN을 먼저 생각해보면, 같은 건물이나 같은 층에 있는 컴퓨터들이 하나의 네트워크로 연결되어 있는 구조이다.
- 그런데 예를 들면, 마케팅팀과 개발팀이 다른 네트워크에 있어야 한다고 가정해보자.
- 전통적인 방식이라면 물리적으로 별도의 네트워크 장비와 케이블을 설치해야 했다.
- 하지만, VLAN은 이런 물리적 제약을 소프트웨어적으로 해결한다.
- 하나의 물리적인 스위치를 마치 여러 개의 독립된 스위치처럼 동작하게 만드는 기술이다.
- 예를 들어, 같은 스위치에 연결된 컴퓨터라도 서로 다른 VLAN에 속하면 마치 다른 네트워크에 있는 것처럼 통신이 분리된다.
초기 default VLAN 설정
- show vlan으로 확인해보자.

- 처음 VLAN 1은 ‘기본 VLAN’이다.
- 모든 스위치 포트는 처음에 이 VLAN 1에 속하도록 설정되어 있다.
- 그래서 별다른 설정 없이는 같은 물리적인 공간에 있다면 한 네트워크에 속하도록 설정이 된다.
- 그리고 VLAN 1002부터 1005까지는 특별한 목적으로 예약된 VLAN이다. (사용 불가)
- FDDI, 토큰링 등으로 고정되어 있다.
- 우리가 새로운 VLAN을 할당하려고 하면 “2 ~ 1001” 의 VLAN을 사용해서 나누면 된다.
VLAN 구성하기
- 먼저 VLAN 2개를 생성한다.
Switch#enable
Switch#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#vlan 2
Switch(config-if)#name VLAN_2
Switch(config-if)#exit
- enable : 관리자 모드 진입
- config terminal : 글로벌 모드 진입
- vlan 2 : vlan 모드 진입
- name <이름> : 진입되어 있는 vlan의 이름 설정

결과
- 그리고,
VLAN_2
엔Fa0/1
과Fa0/2
,VLAN_3
엔Fa0/3
과Fa0/4
포트를 배정시킨다.
Switch#enable
Switch#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#interface fa0/1
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 2
- inteface fa0/1 : 인터페이스 모드 진입
- switchport mode access : 해당 포트를 VLAN 전용으로 사용함을 선언
- switchport access vlan 2 : 해당 포트가 속한 VLAN 번호 설정


VLAN 통신 테스트
192.168.0.1
to192.168.0.2
- 같은 VLAN 내에서는 통신 가능

192.168.0.1
to192.168.0.2
- 다른 VLAN 끼리는 통신 불가능

VLAN(Virtual LAN) (case 2 : Switch 여러 개)
- 그렇다면 네트워크를 확장하고 좀 더 현실적인 아키텍쳐로 바뀌면 어떨까?
- 먼저 Switch를 하나 더 두어보자.
- 들어가기전
- VLAN 설정 자체는 IP 주소를 직접 변경하지 않는다.
- VLAN은 Layer 2(데이터 링크 계층)에서 작동하는 반면,
IP 주소는 Layer 3(네트워크 계층)에서 작동하기 때문.
- VLAN은 Layer 2(데이터 링크 계층)에서 작동하는 반면,
- 그러나, 실제 네트워크 운영에서는 일반적으로 각 VLAN마다 서로 다른 IP 대역을 할당한다.
- 네트워크 관리와 보안을 위한 설계
- 그러므로 VLAN 별로 다른 대역을 할당해보자.
- VLAN 2: 203.237.20.nnn
- VLAN 3: 203.237.30.nnn
- VLAN 설정 자체는 IP 주소를 직접 변경하지 않는다.

- Switch 0 설정

- Switch 1 설정

여기서 이런 궁금증이 든다.
- 🤔 과연 PC2는 PC0과 통신이 가능할까?
- 결과를 보면, PC1과는 통신이 가능하지만, 다른 스위치로 넘어가면서 통신이 불가능해진다

- 이런 논리적인 흐름의 질문이 든다.
- 오히려 VLAN 설정하기 전에 그냥 여러 스위치를 건너 뛰어도 통신이 됐음.
- 그리고 같은 VLAN 끼리는 통신이 된다고 했다.
- 그런데 갑자기 같은 VLAN에서 여러 스위치를 건너뛰면 왜 통신이 안될까?
- 여기서 VLAN 태그라는 개념이 등장한다.
- VLAN을 설정하면 각 패킷에는 특별한 VLAN ID가 붙게 된다.
- (마치 우편물에 부서명을 적는 것과 같다.)
- 일반적인 스위치의 Port(Access Port)는 VLAN 태그를 처리하는 방법에 대해 1가지 밖에 모른다.
- PACKET 들어올 때 : 자신의 VLAN 번호를 태그로 붙인다.
- PACKET 나갈 때 : 태그를 제거하고 보낸다.
- 그럼 여기서 문제가 발생한다.
- PC2에서 나온 패킷
- Switch 0으로 들어올 때 : fa0/2에서 VLAN 2 태그를 붙임
- 이 패킷이 fa0/5로 가면서 VLAN 1의 통신으로 취급됨 [VLAN 2 태그가 떨어짐]
- 다른 스위치의 fa0/3에 도착했을 때도 VLAN 1의 통신으로 인식됨
- 결과적으로 원래의 VLAN 2 통신이 의도대로 전달되지 못함.
- PC2에서 나온 패킷
- [즉, Switch0의 fa0/와 Switch1의 fa0/3이 VLAN 1이기 때문]
- VLAN을 설정하면 각 패킷에는 특별한 VLAN ID가 붙게 된다.
→ 스위치 간 VLAN 전용 통로가 필요하다!
트렁크(Trunk)
[먼저 PC2가 PC0과 통신이 가능하도록 해결해보자]
- Switch0과 Switch1간에 VLAN 2,3 전용 포트 따로 설정!
- switch0의 fa0/5, fa0/6을 각각 VLAN 2,3 전용으로 설정
- switch1의 fa0/3, fa0/4를 각각 VLAN 2,3 전용으로 설정
- Switch 0 포트의 VLAN 상태

- Switch 1 포트의 VLAN 상태

- PC2에서 PC0로 통신이 가능하다.


그런데 또 이런 궁금증이 든다.
- 🤔 과연 VLAN 별 통신 라인 추가가 바람직한 해결인가?
- 만약 VLAN이 수백개라면..?
- 일일이 연결해줄 수 없다
- 또한 추가 가능한 VLAN ID는 1000개.
- → Trunk 가 해결책
트렁크란?
- 트렁크는 모든 VLAN 패킷을 하나의 포트로 통과시키는 것
- 스위치 간 프레임 전달에 하나의 물리적 연결(포트)를 공유하는 것.
- VLAN 트렁킹된 스위치들 간에 여러 VLAN에서 나온 프레임들을 이 트렁크를 통해 전달한다.
- 즉, 스위치와 스위치 간 프레임 전달 시 하나의 포트에 다수의 VLAN이 지나갈 수 있도록하는 링크.
Switch(config)#interface fa0/5
Switch(config-if)#switchport mode trunk
Switch(config-if)#
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/5, changed state to down
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/5, changed state to up
exit
Switch(config)#exit
Switch#
%SYS-5-CONFIG_I: Configured from console by console
show interface trunk
Port Mode Encapsulation Status Native vlan
Fa0/5 on 802.1q trunking 1
Port Vlans allowed on trunk
Fa0/5 1-1005
Port Vlans allowed and active in management domain
Fa0/5 1,2,3
Port Vlans in spanning tree forwarding state and not pruned
Fa0/5 none

- Fa0/5가 트렁크 포트로 on (강제로 트렁크 모드로 설정) 되었다.
- 1~1005는 이론적으로 모든 VLAN 범위가 통과 가능하다.
- 실제 현재 사용 중인 VLAN : 1, 2, 3이 현재 활성화되어 있다.
- Vlans in spanning tree forwarding state and not pruned : None
(활성화된 VLAN들이 여기 나타나야 한다. - 없다.)
- Fa0/5 포트는 Native VLAN이 1로 설정됨
- 반대편 Fa0/3 포트는 Native VLAN이 2로 설정됨
- Switch1의 Fa0/3 포트도 Trunk로 설정해준다.

- 물론 PC2에서 PC0로 통신이 가능해졌다.

Inter-VLAN
- 놓치면 안되는 것의 “기술의 도입에 대한 목적”이다.
- VLAN의 목적은 가상의 LAN으로서 관리의 편리성 추구이며,
다른 VLAN과의 통신 제한이 아니다.
- VLAN의 목적은 가상의 LAN으로서 관리의 편리성 추구이며,
- 그럼, 서로 다른 VLAN 간의 통신이 가능하도록 하는 방법은 없을까?
- VLAN 간 통신을 하려면 라우터(게이트웨이)가 있어야 한다.
- 라우터를 경유하여 마치 다른 LAN으로 통신하는 것처럼 동작한다.
- [다른 네트워크 영역은 라우터가 필요!!!]
서브 인터페이스
- 단순히 생각하면 이런 생각이 든다.
- 전통적인 라우터 방식: 각 VLAN마다 라우터의 물리적 인터페이스를 하나씩 사용
- 그러나 이런 생각의 전환을 해본다.
- 하나의 물리적 라우터 인터페이스에 여러 개의 논리적 인터페이스를 생성하여 각각 다른 VLAN을 처리할 수 있도록 할 수 있다면?
- 그런데, Fa0/0이라는 물리적 라우터 인터페이스에 어떻게 여러 개의 논리적 인터페이스를 생성할까?

- 서브 인터페이스: 하나의 인터페이스에 여러 VLAN들의 인터페이스를 논리적으로 나누는 것
- 2811 모델을 추가해준다!
- 참고 :
- 2811 라우터는 Cisco의 중급 라우터로, Inter-VLAN 라우팅을 위한 서브인터페이스 구성을 지원합니다. 서브인터페이스란 하나의 물리적 인터페이스를 여러 개의 논리적 인터페이스로 나누어 사용할 수 있게 해주는 기능입니다. 이는 마치 하나의 도로를 여러 개의 차선으로 나누어 서로 다른 목적지로 가는 차들을 효율적으로 처리하는 것과 비슷합니다.
1. fa0/0 활성화

2. fa0/0.2 생성, VLAN2 연결, IP주소 할당 & fa0/0.3 생성, VLAN3 연결, IP주소 할당

3. switch1 fa0/4를 트렁크 모드로 설정

4. Router의 서브 인터페이스 상태 확인

5. 게이트웨이 설정
- VLAN 2 (PC0, 1, 2) → 203.237.20.254

- VLAN 3 (Laptop0, 1, 2) → 203.237.30.254

스위치
스위치의 동작 원리
MAC 주소 테이블 동작 원리
- 스위치와 노드들이 ARP를 통해 MAC 주소 정보를 지속적으로 교환한다.
- ARP 프로토콜에 포함된 MAC 주소 정보를 기반으로 스위치의 MAC 주소 테이블이 구축된다.
- 실제 데이터 전송 (ping 등)이 발생하면, 이 MAC 주소 테이블을 참조하여 패킷을 적절한 포트로 전달
- MAC 주소 테이블은 네트워크 토폴리지 변화를 반영하기 위해 일정 주기로 초기화되며, 최신 정보로 동적 갱신된다.
ARP란?
- IP 네트워크에서 IP 주소를 물리적인 MAC 주소로 변환하는 핵심 프로토콜
- 컴퓨터가 같은 네트워크 상의 다른 장치와 통신하려면 반드시 상대방의 MAC 주소를 알아야 하는데,
ARP가 이 주소 변환 과정을 자동으로 처리해준다.
ARP를 활용한 동작 원리
PC0에서 Laptop0으로 ping을 보낸다고 가정

- ARP Request (PC0 → Switch0)
- PC0이 Laptop0의 MAC 주소를 알아내기 위해 ARP 요청 패킷 전송
- 패킷 내용:
- 출발지: PC0의 IP 주소와 MAC 주소
- 목적지: Laptop0의 IP 주소 (MAC 주소는 미확인 상태)
- 스위치 브로드캐스트 (Switch0 → 모든 노드)
- Switch0은 PC0의 MAC 주소를 자신의 테이블에 기록
- 수신한 ARP 요청 패킷을 모든 포트로 브로드캐스트
- ARP reply (Laptop0 → Switch0)
- Laptop0이 자신의 IP 주소를 확인하고 ARP 응답 패킷 생성
- 패킷 내용:
- 출발지: Laptop0의 IP 주소와 MAC 주소
- 목적지: PC0의 IP 주소와 MAC 주소
- Laptop0은 PC0의 MAC 주소를 자신의 ARP 캐시에 저장
- 스위치 전달 단계 (Switch0 → PC0)
- Switch0은 수신한 응답 패킷을 PC0에게 전달
- PC0과 Laptop0의 MAC 주소 정보를 MAC 주소 테이블에 저장
- 통신 시작
- PC0이 Laptop0의 MAC 주소를 획득하여 실제 데이터 통신 가능
시뮬레이션
- 시뮬레이션을 눌러서 이벤트 목록창을 볼 수 있다.
- 편지봉투 모양의 [Add Simple PDU] → ICMP 패킷 전송 시뮬레이션
- 송신노드와 수신 노드를 클릭하고 Show All/None 클릭 후 ARP, ICMP 패킷만 클릭한다.
- PC0에서 Laptop0으로 편지를 보낸다.
- ARP - ICMP 순으로 통신이 이루어진다.
1) ARP 패킷 분석
1. PC0 → Switch0 ARP Request

- ARP
- Source MAC
= PC0 의 MAC 주소 - Source IP
= PC0의 IP 주소 - Target MAC
= Laptop 의 MAC 주소 [모르는 주소] - Target IP
= Laptop0의 IP주소
- Source MAC
2. Switch0 → 모든 노드 (브로드캐스트)

- Switch0은 수신한 ARP Request를 모든 포트로 전달
- Switch0의 MAC 주소 테이블에 PC0의 정보 기록
- 포트 번호와 PC0의 MAC 주소 매핑
3. Laptop0→ Switch0 ARP Reply

- ARP
- Source MAC
= Laptop0 의 MAC 주소 - Source IP
= Laptop0의 IP 주소 - Target MAC
= PC0 의 MAC 주소 - Target IP
= Laptop0의 IP주소
- Source MAC
2. ICMP 패킷 분석
- PC → Laptop

- SRC ADDR = PC0의 MAC 주소
- DEST ADDR = Laptop0의 MAC 주소
3) Switch0의 MAC 주소 테이블 변화


- 위를 보니 Fa0/1 Fa0/4에 연결된 PC0과 Laptop0의 MAC 주소가 테이블에 기재되었다.
🤔 갑자기 이런 궁금증이 든다.
- Switch0 → 모든 노드로 BroadCast할 때 각자의 MAC 주소 받아오면 되는거 아닌가?
- 해답은 ARP를 이용해 MAC 주소 테이블이 어떻게 유지하는지의 방법에 있다.
- 스위치의 MAC 주소 학습은 '출발지(Source) MAC 주소'만을 대상으로 한다.
- PC0이 ARP Request를 보낼 때
- Laptop0이 ARP Reply를 보낼 때
- 모든 노드로 전달된 ARP-Request 패킷에 대해 수신 노드가 아니면 응답하지 않는다.
- PC1과 Laptop1은 Swtich0이 전달한 ARP-Request에 대해 Reply 하지 않는다.
- 스위치의 MAC 주소 학습은 '출발지(Source) MAC 주소'만을 대상으로 한다.
그런데 이런 ‘고민’도 떠오른다.
1.효율성
- ARP는 매우 짧은 시간 간격으로 반복 실행한다.
- 노드들이 많은 네트워크에서는 통신량으로 부하 가중
- 특히 스위치가 모든 노드에게 BroadCast하는 ARP-Request에서
2. 보안상의 문제
- Laptop1이 악의적인 공격자라고 가정해보자.
- ARP Reply가 실제로 해당 IP 주소를 가진 정당한 장치에서 온 것인지 확인하지 않는다. (보안 X)
- 이 때 Laptop0의 IP에 Laptop1 MAC 주소를 실어서 Reply한다면?
- 테이블이 제대로 갱신되기 전까지 PC0은 Laptop0인 줄 알고 모든 패킷을 보낸다.
VLAN을 통한 해결
- MAC 주소를 이용한 라우팅
- 동일한 네트워크(LAN)에서 스위치를 통해서만 발생한다.
- 라우터를 통한 외부 네트워크로의 통신에는 사용되지 않는다.
- ARP 패킷은 하나의 네트워크에서만 송수신한다.
- LAN을 논리적으로 분리된 가상의 VLAN으로 관리한다.
라우터
라우터란?
- 라우터는 서로 다른 네트워크를 연결하는 3계층 장비.
- IP 주소를 기반으로 패킷의 최적 경로를 결정하고 전달한다.
- 스위치가 같은 네트워크 내에서 MAC 주소를 기반으로 통신을 담당한다면,
- 라우터는 서로 다른 네트워크 간의 통신을 가능하게 만드는 일종의 '네트워크 간의 다리' 역할을 한다.
라우터의 Mode
- 사용자 모드(User EXEC Mode)
- 기본적인 정보 조회만 가능, 설정 변경 불가
- > 로 표시
- 관리자 모드(Privileged EXEC Mode)
- 라우터 설정을 변경할 순 없지만 시스템 정보 상세조회 가능
- # 으로 표시
- 글로벌 모드(Global Configuration Mode)
- 라우터 설정(이름, 보안, 인터페이스 등)을 변경
- (config)# 로 표시
- 라인 모드(Line Configuration Mode)
- 콘솔, 원격 접속(Telnet, SSH 등) 관련 설정 변경
- (config-line)# 로 표시
- 인터페이스 모드(Interface Configuration Mode)
- 라우터의 네트워크 인터페이스(이더넷, 시리얼 등) 설정을 변경
- 라우터의 인터페이스에 IP 주소를 설정하고 활성화/비활성화
- (config-if)# 로 표시
목표 네트워크 구성

기본 설정
- 라우터 3대: [Network Devices] → [Routers] → [2811]
- 스위치 1대 : [Network Devices] → [Switches] → [2960]
- PC 3대, 노트북 1대, 서버 1대 : [End Devices] → [PC], [Laptop], [Server]
라우터 - 시리얼 인터페이스 장착

- PC와 달리 두 라우터 간에 데이터를 주고받기 위한 동기화가 필요
- FastEthernet이 아닌 Serial 인터페이스를 사용하므로 모듈을 추가해야 한다.
- HWIC-2T 추가
노드 간 연결하기
- Laptop0은 통신용이 아니라 Router0을 설정하기 위한 콘솔
- FastEthernet 케이블이 아닌 RS232(하늘색) 케이블로 연결
- 라우더들끼리 Serial DCE 연결
- 먼저 클릭한 쪽에 시계 모양 - 두 라우터 간 데이터를 주고받기 위한 동기화가 필요
- Serial DCE(Data Communication Equipment): 시간 동기화를 주도하는 노드 (시계 있는 쪽)
- Serial DTE(Data Terminal Equipment): 그에 따라 동기화하는 노드 (시계 없는 쪽)

IP 설정
- 컴퓨터들은 203.237.nnn.nnn/24 사용(C클래스)
- 1번부터 시작
- 원격 관리가 필요한 스위치나 서버는 100번 부터
- 라우터는 광역의 랜들을 연결하므로 A클래스 IP 사용
- 규모가 작아 30비트 서브넷 마스크를 사용하여 최대 4개의 라우터를 묶을 수 있도록
- 스위치는 2계층 장비
- IP 주소 설정 불필요
- 원격 접속으로 스위치 관리
- IP 주소 할당 필요
- VLAN1에 할당
- 스위치 IP 주소 설정

- 총 6개의 LAN

연결 확인
- PC0에서 테스트
- PC0 로컬 호스트(127.0.0.1)
- PC0 → Switch1(VLAN1, 203.237.10.100)
- PC0 → Server0(203.237.10.101)
- PC0 → Router0(203.237.10.254)
- 모두 통신 성공

5. PC0 → PC2(203.237.30.1)

- unreachable 이 발생한다
- PC0으로 부터 받은 패킷을 Router0이 어느 인터페이스로 보내야할지 모르기 때문
- → 라우팅 테이블이 필요하다
- 아래는 Router0의 라우팅 정보

정적 라우팅 설정
- 정적 라우팅 대상
- 1번 PC0 입장에서 목적지가
- 2번 네트워크(203.237.20.nnn/24)인 패킷 : serial0/3/0 (혹은 1.1.1.2)
- 3번 네트워크(203.237.30.nnn/24)인 패킷 : serial0/3/1 (혹은 2.2.2.2)
- 6번 네트워크(3.3.3.nnn/30)인 패킷 : serial0/3/0 혹은 serial0/3/1
- 1번 PC0 입장에서 목적지가
- Router1의 정적 라우팅 설정

- Router2의 정적 라우팅 설정

- Router3의 정적 라우팅 설정 + route 확인

통신테스트 by ping
- PC0 ↔ PC1

- PC0 ↔ PC2

방화벽 - 네트워크 구성
망구성

ASA0 구성 설정
1. 인터페이스 통신 상태
- 내부망 : 통신 가능
- 외부망 : 통신 불가
- inPC → outPC 불가능

2. IP 주소 설정
- Inside : 설정됨
- outside : 설정되어있지 않음
- → VLAN에서 203.237.20.253으로 설정

3. Config 확인
- 내부망 Security-level : 100
- 외부망 Security-level : 0
- 보안 레벨이 높은 곳 → 낮은 곳 : 허용 (반대는 불가능)
- 내부망 노드들은 DHCP를 이용하여 IP 할당받는다.
inPC DHCP 설정
- inPC는 ASA가 DHCP로 주소를 할당해준다고 했다.
- 게이트웨이는 ASA0 inside의 ip 주소로 고정된다.

- outPC는 고정 주소 사용 중

Router0 설정
- fa0/0 IP 설정 & 활성화
- 203.237.10.254/24
- fa0/0 IP 설정 & 활성화
- 203.237.20.253/24
RNA 설정
Routing
- 라우터의 정적라우팅
- 네트워크 디바이스들이 서로 다른 네트워크에 있을 때, 그들 사이의 통신 경로를 명확히 지정해줘야 한다.
- 예를 들어, 내부 네트워크의 PC가 다른 네트워크의 서버와 통신하려면, 그 경로를 알아야 한다.
ip route <목적지 네트워크 주소> <목적지 서브넷 마스크> <다음 홉 IP 주소/출구 인터페이스>
- 방화벽의 정적라우팅
- 트래픽이 반드시 방화벽을 통과하도록 하여 보안 정책을 적용할 수 있게 한다.
route <VLAN명> <외부망 네트워크 주소> <외부망 서브넷마스크> <다음 홉 IP 주소>

→ 어떤 목적지 주소를 갖는 패킷이든 외부망의 Router0인 203.207.20.254로 전송한다.
- 통신확인
- inPC ↔ ASA0

- inPC ↔ outPC

NAT
- inPC → outPC 까지는 패킷 전달이 잘 되지만,
- Router0 → ASA0으로 전달이 되지 않는다.
outPC → Router1로 전달되는 패킷
- outPC(203.237.10.10)가 inPC(192.168.1.5)로 통신을 시도할 때, Router는 문제에 직면한다.
- 목적지 주소가 사설IP이기 때문에 외부에서 인식이 불가능하다.
- → Rotuer 입장에서 어디로 보내야 할 지 모른다.
- (마치 동 호수만 알고, 택배 기사가 서울에서 배달을 하려는 상황과 마찬가지)

- ⇒ ASA가 사설 IP를 공인 IP로 변경해서 보내줘야 한다.
- ASA의 NAT

- 들어오는 패킷의 처리
- 외부 노드들은 내부 네트워크의 실제 사설 IP를 알 필요가 없다.
- 대신 ASA의 공인 IP 주소로 통신을 시도
- ASA는 NAT 테이블을 유지하면서, 어떤 외부 통신이 어떤 내부 노드를 위한 것인지 추적
- 수신된 패킷의 목적지 주소를 적절한 내부 사설 IP로 변환하여 전달
- 외부 노드들은 내부 네트워크의 실제 사설 IP를 알 필요가 없다.
- 나가는 패킷의 처리
- 내부 노드가 외부로 통신을 시도할 때, ASA는 출발지의 사설 IP를 자신의 공인 IP로 변환
- 이 과정에서 ASA는 어떤 내부 노드가 어떤 통신을 시작했는지 NAT 테이블에 기록
- 나중에 응답이 돌아오면, 이 테이블을 참조하여 올바른 내부 노드에게 전달
NAT 설정

- in2out 객체 생성 (네트워크 객체 모드)
- 대상 서브넷을 지정해준다.
- NAT 지정
- 내외부망을 연결하는 (inside, outside)를 동적 매핑
- 공인 Ip 주소는 인터페이스에 할당된 IP 주소를 사용한다.

- 그래도 inPC → outPC의 통신이 실패하게 된다.

ACL
- 패킷을 보면 목적지 주소는 공인 IP 주소로 정확히 설정되어 있으나,
- 외부망에서 내부망으로 들어오는 트래픽의 흐름을 방화벽이 모두 Block하고 있기 때문
- 즉, 인터페이스마다 어떤 출발지 & 어떤 목적지 를 가지는 트래픽을 허용 / 거부 할 것인지 정의해줘야 한다.
- → ACL : 이러한 Allow/Deny 접근 제어 목록
access-list <ACL명> <타입> <동작> <프로토콜> <출발지> <목적지>
access-group <ACL명> <트래픽> <인터페이스 키워드> <VLAN 명>
- ACL 설정
- 모든 출발지에서 모든 목적지로 가는 ICMP(ping) 트래픽을 허용하는 규칙을 만든다.
- 만든 규칙을 외부 인터페이스의 인바운드 방향에 적용

- inPC → outPC Ping 확인
