소소한 IT이야기/클라우드

[Network_03] 네트워크 정리- 라우터, 프로토콜 (feat.deeeeeb)

Klaus 2023. 2. 15. 19:02

1. 라우터 

- OSI 7계층 중 네트워크에 속하는 장비.

-  상위(WAN)과 하위(LAN)의 경계에 위치하고 하위 서브넷의 게이트웨이 역할 

 

[+] 라우팅 프로토콜 (routing protocol) 

- 경로를 찾아주는 프로토콜 
=>Dynamic(자동) : RIP, RIPv2, OSPF, EIGRP <=직접 연결된 모든 네트워크 설정
** Static(수동), Default-Route(수동) <=직접 연결되지 않은 모든 네트워크 설정  
routed protocol : 찾아낸 경로로 실제 데이터를 전송하는 프로토콜
=> IP(국제 표준), ipx(Novell 사), appletalk(Apple 사) 

 

[+] 라우터 네트워크 구성도 예시

트렁크 위치를 잘확인해보자.

- 3번의 경우 서울과 부산에 있는 VLAN을 묶었을 때 (라우터)

- 물리적으로 완전 따로 되어 있을 때

 

[+] 실습

- 3번째 구성도

- RIPv2 Network사용 (라우티끼리 통신하기 위한 네트워크 프로토콜v2)

[+] 작성된 구성도의 네트워크 설정 

- [SW1] 설정

en, conf t, host SW1
vtp domain Korea
vtp mode server
int vlan 1
ip addr 192.168.100.2 255.255.255.0
no shut

 

- GW 주소 주기 및 trunk 설정

ip def
ip default-gateway 192.168.100.1
트렁크 설정(스위치에 작업하는것) == ahem
int fa0/1
switch mode trunk
switch trunk allowed vlan all

 

exit (캡슐화는 하지않음)
vlan 2 ##VLAN 2 생성
name server ##VLAN의 이름설정
int fa2/1 

vlan 2에 들어가는 포트를 지정
switch access vlan 2
end sh vlan ## 지금까지 설정한 내용을 확인.

- [SW2] 설정

> 설정

en ,conf t, host SW2
vtp domain korea
vtp mode transparent
int vlan 1
ip addr 172.16.100.2 255.255.255.0
no shut

ip def ## 디폴트 gateway 설정
ip default-gateway 172.16.100.1
int fa0/1 ##인터페이스 fa0/1 설정
switch mode trunk
switch trunk allowed vlan all
exit
vlan 2 ##망선택
name server
exit
int fal/1
switch access vlan 2
end

 

 

 

 

 

 

인터페이스를 확인하여 vlan 2에 넣어준다.

이후 아래와 같이 sh vlan id 2를 입력하면 설정된 값을 확인할 수 있다.

 

- 라우터 설정

host RT1
int fa0/0
no shut (서브인터페이스 설정에서는 no shut을 먼저 설정해줘야한다.)

exit
int fa0/0.1로  들어간다. (가상으로 분리된 
encap dot1q (텝을 눌렀을 때 자동으로 잡힌다.) == 캡슐화 지정

encap dot1Q 1 native (캡슐화 하고 난 이후 tag를 지정한다.)
ip addr 192.168.100.1  255.255.255.0
exit
int fa0/0.2

[+] 라우터 프로토콜

- 라우팅 프로토콜 : 경로를 찾아주는 프로토콜

> 동적 다이네믹 : RIP, RIPv2, OSPF, EIGRP <= 직접 연결된 모든 네트워크 설정 (예 : 외부=대규모)

> 정적 스테틱 : default-route <= 직접 연결되지 않은 모든 네트워크 설정 (예 : 조직내부=소규모)

라우티드 프로토콜 : 찾아낸 경로로 실제 데이터를 전송하는 프로토콜

> ip(국제 표준),ipx(Novell사) ,appletalk (애플)

== > 동적의 경우 라우터가 살았는지 죽었는지 확인하기 편하기 때문에 사용한다.

 

[+]rip version 2 설정

- 이웃 라우터를 찾아주는 라우팅 프로토콜 설정

- 서브 인터페이스 설정

- 서브 네트워크가 있을 때 립 라우팅 프로토콜에서는 v2를 사용해야한다.

실제 연결된 네트워크를 넣어준다.

network 192.168.100.0
net 192.168.100.200.0
net 10.10.10.0
end
sh ip route 라우터를 확인한다.

- 우측 라우터 설정

int fa0/0
no shut
fa0/0.1
encap dot1Q 1 native
ip addr 172.168.100.1 255.255.255.0
exit

int fa0/0.2

encap dot1Q 2

ip addr 172.16.200.1 255.255.255.0

exit

router rip
version 2
net 172.16.100.0
net 172.16.200.0
net 10.10.10.0

- 네트워크 설정 확인

sh network
sh ip route

 

** 라우터에서 네트워크 주소를 설정할 때 172.16.100.0과 172.16.200.0으로 지정하였다.

**sh ip route해서 경로 설정을 보면 172.16.~ class B이므로 172.16.까지가 디폴트 네트워크 주소이므로

    classful해서 확인해보면 위에처럼 보인다.

 

- 각 노드에 ip주소 설정하기

- 설정 확인 및 경로 확인

> tracert 192.168.200.20
> 192.168.100.10 (node1:.10)에서 확인

- ping은 단순한 연결만 확인하지만, tracert(트레이설트)는 걸쳐가는 정보까지 확인이 가능하다.

 

[+] sw-vtp 패스워드 넣기 

 

- 외부(도메인)에서 네트워크의 도메인에 함부로 들어오지 못하도록 비밀번호를 설정할 수 있다.

[+] no 명령어

- 설정 삭제시 사용하는 명령어

- 해당 인터페이스에 들어가서 삭제가 가능하다.

> VLAN 2 removal : no vla 2
> VLAN 2 port extraction : no switch access vlan 2 
> TRUNK removal : no switch mode trunk

 

 

[+] VTP Pruning

- VTP Pruning이란 스위치 A와 스위치 B 사이에 VLAN 1과 VLAN 2만 다니게 구성된 TRUNK라면 이 VLAN에 관한 포트 정보를

스위치 A가 스위치 B 이외의 다른 VLAN 설정을 가지 고 있는 스위치 C나 D에게 브로드캐스트로 알리지 않게 구성하는 기법

 

- VLAN 1과 VLAN 2 만 지나다니는 TRUNK에서 VLAN 3과 VLAN 4를 지나가지 않게 한다면 VLAN3과 4를 pruning 해주면 된다. 이렇게 하면 전체적인 네트워크의 대역폭이 줄어들게 되어서 효율이 좋아진다.

- 하지만 VLAN 1은 Administrative(OR Native) VLAN이므로 pruned 될 수 없다.

- 스위치는 디폴트로 pruningol disabled되어 있어서 필요하면 VTP 서버 모드에서 활성화(enabled)시켜주어야 한다.

- 플러딩할 필요가 없는 대역을 제안하여 부하를 감소할 수 있다.

- 예를들어 아래와 같은 네트워크 구성이 있을 때 VLAN1~2 | VLAN3~4로 pruning할 수 있다.

 

[+] portFast

 

- portFast는 포트의 Learning과 Listening 상태를 거치지 않고 BLocking 상태에서 바 로 Forwarding 상태로 인터페이스를 전환하는

기술로써 STP(Spanning Tree Protocol)로 인한 시간을 단축시키고 네트워크에 노드들이 빠르게 연결될 수 있도록 도와주는 RSTP와 같은 기법이다.

기본적으로 PortFast가 활성화된 인터페이스에서는 BPDU를 수신하지 않고, BPDU를 수신하 더라도 포트에 연결된 단말에는 영향을 주지 않는다. PortFast의 목적이 STP로 인한 시간 지 연을 최소화시키는데 있으므로 Accessport에 주로 적용한다.

PVST+(Per-VLAN Spanning Tree Plus)

PVST+는 각 VLAN이 자신만의 spanning tree 인스턴스를 가지고 있는 것을 말한다. 다음 그림처럼 두 개의 VLAN 2와 VLAN 3을 가지고 있는 세 개의 스위치는 각 VLAN 별로 spanning tree를 가지고 있으면서 지정된 인터페이스에 지정된 VLAN만 통과시킨다. SW3에서 VLAN 2는 SW2와 연결되고 VLAN3은 SW1하고만 연결되게 한다. VLAN 별로 다닐 수 있는 통로 |를 지정하는 기법이다.

 

[+] L3 스위치 설정 (레벨 업)

[+] 라우터 설정 (RT)

en, conf t, host RT
int fa0/0
ip addr 10.10.10.1 255.255.255.255.252
no shut
end

 

[+] L2-SW1 (좌측 스위치)

en conf t host L2-SW1
vlan 10
name ASLES
exit
vlan 20
name EMG
exit
int fa1/1 
switch mode access
switch access vlan 10
exit
int fa2/1
switch mode access
switch access vlan 20
exit
- 트렁크 설정
int fa0/1
switch mode trunk
switch trunk allowed vlan all
switch trunk encap dot1q

[+] 관리 목적 IP 설정하기

- ip를 입력할 때에는 VLAN에 줘야한다.!!? L2는 MAC 캐시 테이블을 가지고 있다.

conf t
int vlan 1
ip addr 10.10.10. 254 255.255.255.0
no shut
ip de
ip default-gateway 10.10.10.10
end

- L2 설정

en conf t host L2-SW2
vlan 10
name SALES
exit
vlan 20
name ENG
exit
int fa1/1
switch mode access
switch access vlan 20
exit
int fa2/1
switch mode access
switch access vlan 10
exit
- 트렁크 설정
int fa0/1
switch mode trunk
vlan all
end
cenf t
int vlan 1
ip addr 10.10.10.254 255.255.255.0
no shut
ip de
ip default-getway 10.10.20.20
end
sh vlan brief 확인

 

- L3 설정 (스위치 인데 라우터처럼 사용!!! 레벨업 설정)

host L3-SW
ip routing
vlan 10
name SALES
exit
vlan 20
name ENG
int fa01/1 (라우터와 연결되는 부분)
no switch
ip addr 10.0.0.2 255.255.255.252
no shut
exit

 

- 이제 트렁크를 양쪽으로 선택

int fa0/2 ## int fa0/3
switch trunk encap dot1q
switch mode trunk
swutch trunk allowed vlan all
exit 

- 인터페이스가 아닌 vlan 10 /20에 설정한다
int vlan 10       / 20
ip addr 10.10.10.10 255.255.255.0
no shut
exit 

- 외부 노드들이 외부로 나갈 때, 디폴트 라우터 경로를 설정해줘야한다.

en, conf t
ip route 0.0.0.0 0.0.0.0 10.0.0.1.  ##특정 목적지를 지정하지 않았다. == 디폴트 라우트

 

- 라우터에서도 설정

en, conf t
ip route 0.0.0.0 0.0.0.0 fa0/0

- L3-SW에서 sh vlan brief로 확인

> 포트를 보면 1번 2번 3번이 빠져있는 것을 볼 수있다.

> 이것은 vlan 10/20의 getway이기 때문에 포트에서는 확인할 수 없다.

- 이제 장비별로 아이피를 준다.

- 각 노드에서 확인하기

tracert 10.10.10.41

- geteway도 확인할 수 있다.

> ping 10.0.0.1

[+] 이더 채널(EtherChannel)

- 스위치/라우터 간 연결에서 여러 물리적인 이더넷 링크(포트)를 묶어서 하나의 논리적인 링크로 만들어서 데이터를 전송함으로써

  고속으로 통신을 수행시키는 기법이다. 여러 회선이 묶여 있으므로 라우터/스위치 간 통신에서 폴트 톨러런스(fault-tolerance)와

  리던던시 (redundancy), 부하를 분산하는 로드밸런싱(load-balancing) 등이 가능하고 WAN의 ISPL TeIco(CO)에서 사용하는

  컨센트레이터(Concentrator)와 같은 장치에서 주로 사용된다. 중요 서버나 네트웍 장비에서도 설정한다.

- 이더넷 케이블을 여럿 묶어서 하나의 케이블처럼 서비스하게 하는 기법 스위치의 트렁크 부분에 EtherChanne1로 설정한다면 먼저 회선이 묶일 이름을 지정하고 1, 회선의 mode를 autoL desirable로 설정할 수 있는데 양 스위치에 모두 auto로 설정하지 않고 어느 한 쪽을 desirable로 구성해야 EtherChanne1이 설정된다.

 

[+] 비슷한 유형의 기술 및 서비스

- 여러NIC을 묶어 하나로 서비스하는 채널 밴딩(Channel Bonding)

- 하나의 NIC를 나눠 서비스하는 아이피 밴딩(IP Binding)

- 여러개의 HDD를 묶어 데이터를 보존하는 RAID

- HDD를 추가해서 별도의 조치없이 바로 용량을 증가시킬 수 있는 LVM

 

[+] 채널 추가

- 채널 그룹 1에 넣어주겠다는 의미

- 인터페이스에서 설정 (int)

channel-group 1 mode desir
channel-group 1mode desirable

- end 대신 c+z

- 설정된 내용 확인 - 설정은 간단하지만 이론은 기억하고 있자.

특별한 설정 없이 바로 연결된다는 내용을 채널 그룹 모드에 대한 설명을 확인할 수 있다.

> 만약 Fa0/1가 사용이 안될 경우 그 외 포트로 접속할 수 있도록 설정되어 있다.

 

[+] port-security 설정하기

- 스위치는 L2 장비이기 때문에 노드의 MAC 주소로 노드를 구분하므로 별도의 구성없이 바로 노드를 연결해서 사용 가능하다. (취약점)

- 이런 쉽게 접근할 수 있는 면 때문에 스위치 포트에 스위치가 알지 못하는 MAC 주소를 가지고 있는 외부 해커 노드가 연결되었을 때,

   이를 규제하는 포트 보안을 설정 해두는 것이 좋다. 어느 한 포트에서 설정해 주어도 스위치 전체 포트로 포트 보안 이 적용될 수도 있다.

- 포트 보안은 노드의 MAC 주소로 규제한다.

- 하드웨어 노드에 대한 규제이기 때문에 네트워크에서 승인되지 않는 노드의 연결을 감지해내는 PacketFence의 NAC(Network Access Control)라는 도구와 역할과 유사하다고 볼 수 있다.

 

[+] 포트 보안 위반 처리하기

포트 보안을 설정한 포트에 연결되는 노드는 스위치가 인식하고 있는 MAC 주소목록과 비교해서 다를 경우에 해당 MAC_주소가 필터링되는데 static, dynamic, 그리고 sticky 세 가지가 있다. 다음에 표로 정리해 두었다.

설정 설 명
static switch(port) port(-security) mac(-address) MAC_address식으로 모든 호스트의 MAC 주소를 일일이 스위치 포트에 지정해 주어야 하는 불편함이 있지만 가장 안전한 방식이다. nvram에 저장할 수 있다.
dynamic 자동으로 MAC 주소를 알아서 인식해주는데 switch port max 2식으로 포트 당 최대 허용할 호스트 숫자만 지정하는 방식이다. 디폴트 설정이고, nvram에 저장할 수 없으며 별도의 명령어로 설정하지 못한다. 리부팅되면 설정된 정보가 사라진다.
sticky dynamic처럼 동적으로 MAC 주소를 학습하게 하지만 nvram에 저장되므로 재부팅되어도 정보가 유지된다. switch port mac sticky 해서 설정한다.

- 포트 보안 위반 처리하기

액션 설명
protect sticky 모드에서만 작동하며 위반 포트에서 들어오는 프레임을 버리고 로그를 만들지
않음.
restrict 위반 포트에서 들어오는 프레임을 버리고 로그와 경고를 남긴다.
shutdown 위반 포트에서 들어오는 프레임에 경고를 내고 해당 포트를 shutdown 시킴. 디폴트
설정

port-security 설정하기

> 모든 아이피 주소

- 설정하기

 

int fa1/1
switch mode  mode
switch mode access
switch

포트보안

만약, switch port mac [ mac ]넣어주면 해당 mac포트는 접속할 수 있다. ==> 정적/수동 모드 스테틱

switch port max 1 : 해당 포트에는 max=1이다. (지금들어와 있는 노드만)

[+]포트 보안 위반

switch port violation ?

지정된 노드 이외에는 접속할 수 없도록 한다.

- 설정 확인

서버 1에서 확인 (정상동작)

 

[+] 위반 테스트 (해커가 접근)

- 포트를 끊고 해커 MAC으로 접속하였지만, 포트는 살아있는 상태이지만, 포트보안으로 인해 연결할 수 없다.

 

2. 네트워크 용어 설명

[+] ISO 모델 / TCP/IP 모델, DOD모델

 

[+] IP주소

- 네트워크층에 속하며 데이터를 네트워크 간에 라우트(경로찾기) 역할

- 아이피는 각 호스트에 네트워크 주소를 정의해주는데 이 아이피 주소는 네트워크 부분(Net ID)와 호스트 부분Host ID)으로 나눈다

- 라우터는 IP주소 중 네트워크 부분만 보고 데이터를 목적지로 보내는 경로를 결정한다.

상위 전송층의 TCP연결설정 흐름제어 등을 정의해주면 하위 네트워크층의 IP가 실제 데이터를 비연결지향적으로 전송한다.

 

IP헤더 구성

[+] ARP

- IP는 타겟과 효율적으로 통신하기 위해서 많은 정보를 필요로 하지만 보통 상위 TCP에서 이미 설정한 출발지와 목적지의 IP_주소 필드만 있으면 데이터는 전송될 수 된다. 네트워크층은 IP_주소의 네트워크_주소를 보고 목적지 네트워크를 찾지만 실제로 로컬에서 호스트간의 통신은 그 호스트에 붙어있는 네트워크 카드에 설정된 IP_주소를 실제 NIC의 MAC_주소와 매핑해서 MAC_주소로 상대방을 인식하고 통신한다. LAN에서는 IP_주소를 MAC_주소로 매핑해서 MAC_주소로 상대방을 찾고, WAN에서는 IP_주소의 네트워크_주소로 상대방(에 이르는 경로)을 찾는다. 따라서 TCP/IP 그룹은 IP_주소(논리적 주소)를 MAC_주소(물리적 주소)로 매핑해주는 ARP라는 프로토콜을 정의하고 있다. IP는 로컬에서 데이터그램을 목적지로 보낼 때 목적지 노드의 MAC_주소를 알아야 하는데 이 MAC_주소를 찾을 때 ARP 프로토콜이 필요하다. ARP 프로토콜은 로컬에서 IP_주소로 MAC_주소를 찾을 때 사용되고, 브로드캐스트의 속성이 ARP이다. 

ARP 헤더

[+] RARP / BootP

- 로컬에서 ‘MAC_주소 =>IP_주소’로 변환해서 DHCP 서버를 알아내는 프로토콜로써 BootP도 이와 유사한 역할

- 이 BootP와 RARP 프로토콜이 발전해서 DHCP 프로토콜
=>ARP가 노드의 IP_주소로부터 MAC_주소를 알려준다면, RARP는 노드의 MAC_주소로 부터 (DHCP 등의) IP_주소를 알아낸다.

 

[+] 픽서 [PXE]

[+]DHCP

- OS가 설치되어 있는 상태+DHCP서버 설정이 되어 있다면, 자동으로 IP, DNS, Gateway,서브넷 마스크등 자동으로 임대형식으로 할당

- 관리자는 작업 그룹과 호스트 명만 확인하여 따로 지정해주면 된다.

ipconfig /al1(모든 정보 보기)
ipconfig /release(임대 끝내기)
ipconfig /flush(버리기)
ipconfig /renew (갱신)

[+] ICMP(Internet Control Message Protocol)

네트워크층에서 실행되는 이 ICMP 프로토콜도 중요하다. 한 노드가 다른 노드와 데이터를 송수신할 때 사용되는 제어 메시지 프로토콜로써 흐름 제어나 상태를 메시지로 표시한다.

예를들어 라우터가 데이터를 처리하고 있을 때 더 많은 데이터가 너무 빠르게 들어오면 라우터는 source quench 메시지를 발생시켜서 흐름 제어를 하는데 이럴 때 사용되는 프로토콜이 ICMP이다.

 

또, 데이터그램 내에서 TTL(Time To Live)도 이 ICMP 프로토콜을 사용하는데 데이터그램이 최종 목적지까지 가는데 너무 많은 라우터를 지나게 되어서(최대 15개) TTL이 0이 되면 해당 데이터그램을 버리고 다시 보내라고 알리는 메시지 전송에도 이 프로토콜이 사용된다. 그리고 라 우터가 어떤 노드로부터 데이터그램을 받았을 때 표시된 경로보다 더 좋은 경로가 있다는 것을 알 고 있다면 송신 노드에게 ICMP redipect 메시지를 보내서 더 좋은 경로로오라고 알리기도 한 다. 이 새로운 정보를 기반으로 새롭게 라우팅할 여부는 라우터의 설정 여하에 달려있는데 라우팅 정보를 static으로 했다면 업데이트된 정보를 무시하고 자신이 가지고 있는 경로대로만 데이터를 전송할 것이다.

 

[+] TCP

신뢰성 있는 연결지향적 프로토콜 (반대 UDP)

와이어샤크를 통해서 3hand