1. 환경설정

VM

- Oracle Virtual Box 6.1

 

Linux 

 -CentOS - 7

   CentOS-7-x86_64-Minimal-1804.iso

 

원격 접속 툴

 - Mobaxterm

 


2. VM으로 centos7 설치하기

 

 

1) 새로만들기

 - 이름 설정 > 경로 설정  > 종류(Linux) > 버전 (Red-Hat(64-bit)) > 메모리 설정 > 하드디스크 설정 >

 

2) Centos 7 적용하기

 저장소 > 컨트롤러: IDE > 광학 드라이브 > 디스크 파일 선택 > 다운받은 centos 선택

 

3) 네트워크 

- NAT

- 호스트 전용

 

4) 머신 시작하기 >  install centos

날짜: 서울 / 자동 파티션 설정 / 네트워크 연결 > Begin Installation 

루트 패스워드 설정 > 유저 생성

 

 

※ 서버는 2가지 작업이 있다. 

○ 콘솔 작업

   - 내 컴퓨터에서 작업

   - 장비를 처음 설치할 때

   - 장비를 복구할 때

○ 네트워크 작업 

   - 다른 컴퓨터로 작업 

   - 네트워크를 통해 원격접속하여 작업

 

 

5) 콘솔로 접속후 터미널에서 여러 정보를 확인해보자

 

호스트이름 확인

사용자 확인

ip 확인을 하려고 하니 명령어가 없다고 한다.

로컬컴퓨터에서 명령어를 찾을 수 없다. 

 -> 로컬컴퓨터에 ifconfig의 명령어가 있는 패키지가 없어서 명령어 실행이 안된다.(최소버전을 설치했기 때문)

 -> 패키지를 설치하여 명령어를 써보자 (인터넷과 연결이 되어있어야함 ping을 통해 네트워크 통신을 확인해보자)

 yum provides

 yum install -y net-tools

 

실행해보면 잘 된다.

 

6) 네트워크 설정

cd /etc/sysconfig/network-scripts

vi ifcfg-enp0s8

-> vm 네트워크 설정에서 설정한 NAT 네트워크를 연결해준다

onboot = no를 yes로 변경하고 저장한다.

 

- 네트워크를 재실행하여 적용하고 확인해보자

systemctl restart network

네트워크가 설정된것을 볼 수 있다. 

 

ssh [IP] -l [사용자]

ssh [사용자[@[IP]

위 명령어 중 하나를 입력하여 mobaxterm으로 접속한다 

  -> 콘솔작업에서 네트워크 작업으로 넘어간다.

- 접속이 된걸 볼 수 있다.

 

 

 

Cloudfront, S3 연동하여 정적콘텐츠 배포하기

 

1. S3 버킷만들기

 - 이름 / 리전 설정

 

- 퍼블릭 액세스 차단을 해제하고 나는 암호화를 설정해주고 버킷을 생성했다. 

 

 

2. Cloudfront 만들기

1) Cloufront 배포

- 원본 도메인은 연동할 S3버킷을 선택해준다.

- Cloudfront를 통해서만 원본에 접근할 수 있도록 원본 액세스 제어 설정 생성을 선택하여 설정을 생성해준다

 - 뷰어 프로토콜 정책 > Redirect HTTP to HTTPS로 체크하고

 - HTTP로 오는 통신을 HTTPS로 리다이렉션할 수 있도록 *SSL/TLS인증서를 설정해준다.

  -> 이전에 ACM을 통해 받은 SSL 인증서를 불러오자

* 참고

https://strong-ming.tistory.com/12

 

 - CloudFront는 엣지로케이션을 사용하기 때문에 배포하는데까지 몇분이 소요된다

 

 

2) S3 권한 설정

 ○ Cloudfront > 원본>S3 버킷체크> 편집

 ○ S3 버킷액세스 > 버킷정책 > 정책복사

 

 3) Cloudfront가 S3 객체에 액세스할 수 있는 권한을 주기

  ○ 복사한 정책을 S3 > 버킷선택 > 권한 > 버킷정책 > 편집에 붙여넣는다

 

4) Cloudfront로 접속해보기

 ○ 설정이 끝났으면 cloudfront 도메인으로 접속해보자

 ○ 도메인/이미지값을 넣고 들어가보자

 ○ 이미지가 잘 보인다. 

   -> 개발자모드로 보면 현재는 캐싱이 안된 상태인데 새로고침을 하면 캐싱된 상태로 바뀐다.

 

- 캐싱된 상태이기때문에 업로드된 이미지를 지워도 이미지는 유지된다.

업로드 된 이미지를 모두 영구삭제 시킨다
새로고침해도 이미지가 그대로 보인다.

5) 캐시무효화

 ○ Cloudfront > 무효화 > 무효화 생성

  - 무효화하고 싶은 경로를 설정하고 생성을 클릭한다(난 모든 경로에 대해 캐시 무효화를 시켰다)

 ○ 새로고침을 해보니 캐시가 무효화된 /test.jpg 경로는 이미지가 보이지않게 된다

 

 

1. 도메인 확인

 ○ 내가 구매한 도메인 확인

 

2. Router53에 등록하기

 

 1) 호스팅영역 구성

도메인 이름, 유형 선택 > 호스팅 영역 선택

 

2) 확인

 

3) 가비아 도메인 - Router53 매핑

 ○ 가비아>My가비아>도메인>도메인 관리>네임서버 설정

 ○ 네임서버 목록을 AWS 값/트래픽 라우팅 대상에 있는 NS값으로 변경 후 저장

 

 

 

3. ACM을 통해 SSL/TLS 인증서 받기

 ○ AWS Certicate Manager > 인증서 요청 > 퍼블릭 인증서 요청

 ○ 도메인 이름 입력, DNS 검증 선택하여 요청

  2) 인증서 확인

  ○ 인증서 업데이트에 최대 몇시간이 걸린다.

  ○ 인증서 완료

 - 인증서 검증이 완료되면 콘솔창에 요렇게 뜬다.

 

-참고

https://docs.aws.amazon.com/ko_kr/acm/latest/userguide/gs-acm-request-public.html

'클라우드 > AWS' 카테고리의 다른 글

S3와 CloudFront 연동하기  (0) 2023.02.16

1. 인플레이스 배포

사용중인 환경에 새로운 변경사항이 포함된 어플리케이션만 반영하는 방법

○ CodeDeploy에서 사용하는 대표적인 방법이다.

○ 애플리케이션을 일시정지한 후, 최신 상태의 애플리케이션의 변경 사항이 설치되면 새 버전의 앱을 실행하는 방식

○ 롤백이 가능하다.

 

2. 블루/그린 배포

○  버전 관리 문제를 방지 / 운영환경에 영향을 주지 않고 실제 서비스 환경으로 새 버전 테스트가 가능

○ 롤백이 인플레이스 배포보다 더 빠르다는 특징도 있다.

○ 구버전, 새버전 환경을 모두 갖춰야하기 때문에 시스템 자원이 두배로 들며, 그만큼 비용이 비싸진다.

○ AWS Elastic Beanstalk, CodeDeploy에서 사용 가능

 

※ Red/Black 배포 신버전의 환경을 새버전의 환경으로 똑같이 구축해서 한번에 전환한다

 

 

3. 카나리 배포

○ 예전 광산에서 카나리아를 날려보내 유독가스를 확인하던 것에서 유래되었다. 

○ 가동 중인 서버들의 일부에만 새로운 앱을 배포하여, 일부 트래픽을 새 버전의 환경으로 분산하는 방법

  - A/B 테스트가 가능 / 오류율 및 성능 모니터링에 유용하게 사용할 수 있는 장점이 있다.

 

 - 트래픽을 분산시켜서 일정치를 배포하고 나누어서 차근히 배포함? 

 

*A/B테스트란?

   - 두가지 콘텐츠를 비교하여 방문자/뷰어가 더 높은 관심을 보이는 버전을 확인함. 

   - A/B 테스트를 통해 선호하는 것을 분석하여 선호하는 것을 제공하는 발판을 마련할 수 있다.

    - 지속적으로 운영할 때 가장 큰 이점을 제공 

    - 웹사이트 A/B 테스트시 웹사이트 방문자에 가장 적합한 전술을 전략적으로 판별할 수 있음

    - 

 

4. 롤링 배포

 ○ 새버전을 배포할 때 새버전을 점진적으로 증가시키고 이전버전을 하나씩 줄여나가는 방식이다.

   - 쿠버네티스 RS나 Deployment를 통해 업데이트하기가 수월하다. 

 

 


참고 

https://dev.classmethod.jp/articles/ci-cd-deployment-strategies-kr/

 

매번 헷갈리는 CI/CD 배포 전략 정리해버리기 | DevelopersIO

AWS 자격증을 공부하다가 매번 헷갈리는 배포 전략에 대해서 정리해보았습니다.

dev.classmethod.jp

 

* 나중에 좀더 찾아보고 추가해야지

OSI 7 계층과 TCP/IP가 있다.

 

OSI 7 계층과는 다르게 계층이 아닌 프로토콜이라는 점이다

 

OSI 7계층의 7(Application),6(Presentation),5(Session)계층이 TCP/IP에서는 Application으로 묶어서 분류하고

OSI 7계층의 4(Transport)계층은 똑같이 Transport, 

OSI 7계층의 3(Network)계층은 Internet으로 분류된다.

OSI 7계층의 2(Data Link), 1(Physical)계층이  TCP/IP에서는 Network Interface로 묶어서 분류한다.

 

개요.

4계층으로 구성되어 있으며

 

protocol number(1byte)

 - 2^8 =256개 (0~255)

*참고사이트 http://www.iana.org/assignments/protocol-numbers

 

port number(2byte)

 - 2^16 = 65,536 (0~65,536)

*참고사이트 http://www.iana.org/assignments/port-numbers


Application(응용계층)

 ○ 응용 프로세스 간의 정보교환을 담당함

 ○ 프로토콜

   - HTTP: 웹을 지원하기 위한 프로토콜 HTML문서를 주고 받으며 현재는 HTTP3까지 나옴

   - DNS: 도메인 이름을 IP주소로 변환해주는 일을 담당

   - Telnet: 원격지에 있는 장비로 표준 터미널 에뮬레이션 기능을 제공, 텔넷을 통해 원격지에서 네트워크 장비를 설정함

   - FTP: 연결지향적인 방식으로 파일을 전송하고 수신하는 프로토콜

   - SMTP: 컴퓨터 네트워크를 통해 전자 메일을 전달하는 프로토콜

    


Transport(전송계층)

  ○ 호스트간의 메시지 단위의 정보교환 및 관리를 담당

  ○ 대표적인 프로토콜로 TCP/UDP가 있다.

 

1. TCP

TCP는 신뢰성 전송을 하기 때문에 연결을 생성하고 종료하는 순간에도 신뢰성 확보를 위해 hand-shacke라는 과정을 거친다.

 

가. 특징

  ○ 연결지향의 신뢰성 있는 프로토콜

  ○ 윈도우를 이용한 흐름제어와 순서번호와 승인번호(ACK)를 이용한 에러제어를 한다.

  ○ 장점은 세그먼트의 전달이 보장된다는 것이며, 단점을 연결을 위한 초기 설정 시간이 걸린다.

  ○ TCP의 PDU는 Segment로 애플리케이션의 메시지를 순차적으로 분할하고 데이터가 전후 상관 관계가 고려되어 있다는 의미에서 Segment 라는 용어를 사용한다고 한다.

 

나. TCP Header

 TCP 헤더가 뭐냐?

각 프로토콜은 각자 맡은 역할이 있고 보내고자하는 데이터에 *헤더를 씌워서 데이터를 전송한다.

TCP는 데이터를 신뢰성있고 순서에 맞게 보내는 역할을 가지고 있는데 그 역할을 수행하기 위한 정보들을 TCP 헤더에 담는다.

 *인캡슐레이션이라고 하는데 다음에 다뤄보겠다.

 

TCP기본헤더값은 20byte이며 옵션에 따라 최대 60byte까지 늘어난다.

 -> 20byte안에 어떤 정보들이 담겨있을까?

TCP 헤더값

 ○ Source port(발신지 포트 주소)

   - 출발지 포트번호

 ○ Destination port(목적지 포트 주소)

   - 목적지 포트번호 

 ○ Sequence Number

   - 데이터가 잘 전송되는지를 보장하기 위해 들어가는 필드로, 전송되는 세그먼트의 순서번호

 ○ Acknowledgment Number

   - 통신상대가 발송한 패킷을 받았다는 것을 상대에게 확인해주는 번호로 수신한 마지막 byte 순서번호에서 1을 더함

 ○ Header Length

   - TCP 헤더의 크기를 나타내는 것으로 4byte단위이다.

 ○ Flags

   - URG: Urgent Ponter가 유효함을 표시

   - ACK: Acknowledgment Number가 유효함을 표시

   - PSH: 수신자는 패킷데이터를 최대한 응용프로그램에서 전달할 것을 지시함(버퍼에 모아두지말고 다 보내라는 뜻)

   - PST: 연결을 리셋하도록 지시

   - SYN: 연결의 시작을 나타내기 위해 사용

   - FIN: 연결을 종료하도록 지시

 ○ Window Size

   - 상대편 장비에게 얼만큼의 데이터를 보내도 되는지를 알려주는 필드

 ○ Checksum

   - TCP 헤더와 데이터 필드에 대한 계산된 체크섬으로 에러 여부를 체크함

 ○ Urgent Pointer

   - URG flag가 On되어 있을 경우에만 유효(전송 데이터 중 긴급한 데이터의 위치 선정)

 ○ Option

   - 현재 정의되어 있는 옵션으로 최대 40byte까지 추가할 수 있다.

 ○ TCP data

   - TCP 윗단에서 내려온 데이터

 

wireshark를 통해 TCP헤더가 진짜 그렇게 구성되어 있나 보자

헤더 크기를 보면 기본헤더값인 20byte이며 위에서부터 순서대로 보면 Source port, Destination port, Sequence Number, Acknowledgment Number, Header Length, Flags, Window Size, Checksum, Urgent Pointer가 표시되는 것을 볼 수 있다.

 

 

다. TCP 전송 과정

연결 생성, 연결 유지 및 전송, 연결 종료로 나눠서 보도록 하자

 

3-way handshake(연결 시작)

  데이터를 전송하기에 앞서 상대방과의 회선을 위해 연결하는 과정을 거친다.

 

CLOSE

 아무런 연결도 없는 상태이다

LISTEN

 HostB가 HostA의 연결 요청을 기다리는 상태

SYN_SENT

HostA가 HostB에게 연결요청하면서 랜덤한 시퀀스번호를 담아 SYN을 보냄

SYN_RCVD

HostB가 HostA가 보낸 SYN를 제대로 받은 상태

이후 HostB는 HostA에게 제대로 받았다고 Acknowledgment Number(요청자가 보낸 시퀀스번호+1)를 보낸다. 

-> 이게 SYN+ACK

ESTABLISHED

HostB에게 SYN/ACK를 받으며 제대로 연결되었다고 판단하고 응답으로 HostB에게 ACK를 보내고 HostA는 연결상태에 들어간다.

HostA에게 ACK를 받은 HostB는 제대로 연결되었다고 판단하고 연결상태에 들어간다.


1) HostA가 LISTEN상태의 HostB에게 SYN를 보내면

2) HostB는 HostA가 보낸 SYN과 함께 ACK를 보낸다

3) HostB에게 응답(SYN/ACK)을 받은 HostA는 연결이 되었다고 생각하고 HostB에게 ACK를 보내면서 둘다 연결상태가 된다.

 

 

연결 유지 /데이터 전송

TCP는 데이터를 보낼 때 상대방이 보낸 시퀀스번호 + 데이터를 합쳐서 승인번호를 만들어 전송한다

 

 

연결 종료(4-way handshake)

앞서 말한거처럼 TCP는 신뢰성 확보를 위해 연결 종료 시에도 Handshake를 진행한다.

갑자기 끊어버리면 신뢰성을 중요시하는 TCP가 온전히 데이터를 다 보냈는지 모르기 때문에 종료도 안전하게 종료한다.

 

1) 전송할 데이터를 모두 전송했으면 HostA는 HostB에게 FIN을 전송한다(회선해지요청)

2) HostB는 FIN을 받고 받았다는 것을 응답하기 위해 ACK(시퀀스번호+1)를 HostA에게 보낸다

  -> 이렇게 되면 HostA->HostB 전송은 종료된다 (회선해지응답) 

   -> 하지만 HostB -> HostA 전송은 가능하기에 Half Close라고 부른다.

3) HostB가 필요한 데이터 전송을 완료 후 회선을 종료해도 되면 HostA에게 FIN을 전송한다(회선해지요청)

4)HostA가 수신을 받고 HostB에게 ACK를 전송하면 연결이 종료된다.

 

※ 비정상적인 중단 해제

  위에 설명한것처럼 늘 안전하게 연결이 종료되는 것은 아니다. 존재하지 않는 포트에 연결을 요구할 때나 연결요구가 도착할 때 목적지 포트에 프로세스가 대기하지 않는 경우 등 비정상적인 종료가 진행된다.

  

HostA나 HostB 중 오류나 긴급한 문제로 TCP를 종료해야할 경우 RST를 생성하여 상대편에 전송하면 회선종료 절차를 준수하지 않고 즉시 회선을 해지한다.

 -> FIN이 아닌 RST를 보낸다.

 

 

 

 

2. UDP

 ○ 비연결형 전송과 빠른 전송을 제공하는 프로토콜

 ○ TCP와 다르게 신뢰성이 없는 프로토콜

 ○ UDP의 전송 단위는 Datagram, 데이터크기가 간단하다.

   - UDP 헤더 크기는 총 8byte다.

   - 헤더값은 [ sourse port(2byte) + Destination port(2byte) + Length(2byte) + Checksum(2byte) ]으로 되어 있다

-wireshark를 통해 UDP를 보면 8byte와 4개의 헤더값, 값당 2byte가 찍히는 걸 볼 수 있다. 

 

 

TCP와 UDP의 차이점
TCP UDP
- 연결지향형 전송
- 신뢰성 전송(세그먼트의 전달이 보장)
- unicast
- 데이터 전송
- Full Duplex
- 오류제어, 흐름제어 수행
- 연결을 위한 초기 설정 시간이 걸림
- 비연결형 전송
- 빠른 전송
- unicast/broadcast/multicast
- 대량 멀티미디어, 실시간 전송, 게임 등에 적합
- Half Duplex
- 오류제어,흐름제어 x
-

 

 

네트워크 계층은 다음에 해야겠다

 

 

 

 

 

 

 

 

 

'네트워크' 카테고리의 다른 글

VLAN, Etherchannel  (0) 2023.02.08
STP(Spanning Tree Protocol) / RSTP  (0) 2023.02.07
CSMA/CD 프로토콜  (0) 2023.02.06
Port Forwarding, Reverse Proxy, Load Balancer  (0) 2023.02.04
Proxy와 NAT  (0) 2023.02.02

VLAN(Virtual LAN)이란?

 

Router를 사용하지 않고도 스위치로 네트워크를 분리할 수 있는 기능이다.

 

1.VLAN의 효과

 1) 브로드캐스트를 제어

 2) 보안 제공

 3) 라우터로 브로드캐스트도메인을 나누는 것에 비해 네트워크의 유연성과 확장성을 제공함

 

2. VLAN 설정

 1) Static

   ○ 스위치의 특정 포트를 고정적으로 특정 VLAN 멤버로 설정함

   ○ port에 연결된 시스템은 어떤 시스템이던지 해당하는 VLAN에 소속됨

 2) Dynamic

   ○ 특정 포트를 Dynamic으로 설정함

   ○ 접근한 사용자 정보를 받아서 어떤 VLAN인지 확인후 매핑시켜줌

   ○ 추가적인 구성요소가 필요함

      - VMPS(VLAN Membership Policy Server)

      - VMPC(VLAN membership Policy Client)

      - TFTP

   ○ 현업에서 많이 사용되지는 않는다고 한다.(네트워크 엔지니어가 아니라서 몰?루)

 3) Voice

 

3. Switchport mode 종류

  1) Access

    ○ 하나의 VLAN에 멤버로 소속된다

     - 일반적으로 pc와 연결되는 port에 설정되어지는 모드이다.

  2) Trunk

    ○ 스위치가 가지고 있는 모든 VLAN 정보를 포함하며 모든 VLAN으로부터 데이터를 송수신할 수 있음

     - 일반적으로 스위치 간 설정되는 모드이다.

3) Dynamic

    ○ DTP를 통해 스위치에 연결된 상태

 

 4. Trunk

  Trunkig이란?

두개의 스위치 사이의 Point-to-Point 연결을 통해 다수의 VLAN Traffic을 전달하는 방법

 

가. 이더넷에서 사용할 수 있는 Trunking 방법은 2개가 있다

  1) ISL(Inter-Switch-Link)(cisco)

  2) IEEE802.1Q(표준)

 

나. 두개의 차이점은 무엇이냐

  1) ISL(Inter-Switch-Link)(cisco)

    ○ Frame을 변화시키지 않음

    ○ Frame앞에  *헤더를 붙이고 헤더에 VLAN 관련 정보를 입력함

      - 인캡슐레이션을 한다.

     트렁크포트를 지나갈 때 ISL 헤더를 추가해서 다른 스위치로 넘김

         *VLAN 정보를 넣어서 나 VLAN10이야~ 하고 trunkport를 통해 다른 스위치로 넘어가면 헤더값을 보고 '어 얘 vlan10이네?' 하고 vlan10으로 보내줌

    ○ 1548byte: ISL(26byte) + 이더넷프레임(1518byte)+ CRC(4byte)
    ○ L3 이상 지원함

     

    

 2) IEEE802.1Q(표준)

   ○ ISL과는 다르게 Frame을 변화시킴

   ○  L2 이상 지원함

   ○ 1522byte:  이더넷프레임(1518byte)+

 

5. VLAN 범위

 1)  nomal VLAN: 0 ~1005

      0, 4095는 시스템만 사용함

      일반적인 vlan은 1~1001번까지 만들 수 있음

 

 

cisco packet tracer로 vlan 설정해보기

 

1. 하나의 네트워크에 연결되어 있는 pc를 아래처럼 2개의 VLAN을 통해 네트워크를 나눌 것이다 

2. vlan만들기

Switch>en

Switch#conf t

Switch(config)#vlan 10
Switch(config)#vlan 20

30은 그냥 심심해서 만듬

 

3. 각 포트에 들어가서 vlan을 할당해준다.

Switch(config)#interface range f0/10-11
Switch(config-if-range)#switchport access vlan 10
Switch(config)#interface range f0/12,f0/13

Switch(config-if-range)#switchport access vlan 20

Switch#show vlan

위 이미지처럼 vlan으로 네트워크를 분할하고 구분하고자 한 pc의 포트에 vlan을 할당해주었다.

 

cisco packet tracer로 trunk 설정해보기

1. 스위치 2개를 연결하여 아래 이미지처럼 Vlan을 연결해보자

- 스위치 f0/20포트를 확인한다

Switch#show interface f0/20 switchport

- 스위치 f0/20포트에 접속
Switch(config)#int range f0/20

- f0/20포트에 트렁크 모드를 할당한다
Switch(config-if)#switchport mode trunk

- 트렁크를 확인하고 건너편 pc와 통신을 해본다.
Switch#show interface trunk

 


2. EtherChannel

 

1. 멀티플 이더넷링크를 하나의 논리적인 이더넷링크로 만드는 것을 말한다.

   -> 네트워크 랜선을 여러개 연결하면 (대역폭을 늘리면) 더 빠르지 않을까?
     -> 하지만 *스위치 STP로 인해 선이 여러개 있어도 루핑방지를 위해 BP가 생김
       -> 그래서 여러개의 포트를 사용할 수 있도록 해주는게 이더넷채널임

 

 *STP https://strong-ming.tistory.com/7

 

STP(Spanning Tree Protocol) / RSTP

STP(IEEE802.1d) 특정 포트를 차단하여 루핑이 돌지 못하게 만든 프로토콜 - 데이터가 루핑을 돌지 못하도록 막아주는 역할을 함(마치 물리적으로 포트를 뽑은것처럼) STP가 사용되는 이유는? 스위치

strong-ming.tistory.com

 

2.  종류

 1) PAgP(Port Aggregation Protocol)

    ○ cisco 전용 프로토콜이다.

    ○ 2, 4, 8개로 묶어서 회선을 지원한다.

    ○ mode

       - desirable: 능동적으로 이더채널을 형성하고 관리한다.

       - auto: 수동적으로 이더채널을 형성하고 관리한다.

       - on: PAgP에 의해서가 아닌 수동으로 관리하겠다는의미

 

 2) LACP

    ○ IEEE802.3ad의 표준화된 프로토콜이다.(cisco를 제외한 표준)

    ○ 2, 4, 8, 16회선을 지원하나 실제로는 8회선까지만 사용가능하다.

    ○ mode

       - active: 능동적으로 이더채널을 형성하고 관리

       - passive: 수동적으로 이더채널을 형성하고 관리

       - on: 프로토콜없이 수동으로 관리하겠다는 뜻

 

 

cisco packet tracer로 etherchannel 설정해보기

 

1. STP로 인해 switch0 Fa0/3포트가 Bolcked이 된것을 볼 수 있다

2. 프로토콜 설정, 그룹 설정 및 모드 설정

Switch>en

Switch#conf t

Switch(config)#interface range f0/3-4

Switch(config-if-range)#channel-protocol lacp

Switch(config-if-range)#channel-group 1 mode active

 

3. 이더채널 확인

Switch#show etherchannel sum

한쪽 스위치만 설정했기에 Stand-alone상태라고 표시된다.

4. 반대쪽 스위치도 2번처럼 etherchannel을 설정해준다

5. 이더채널 확인

Switch#show etherchannel sum

2개의 스위치가 모두 설정이 되었으면 in port-cahnnel 상태가 된 것을 볼 수 있다.

 

6. Blocking-Port없이 모두 초록불이 들어왔다.

 


3. 실습하며 알아보기

앞서 알아본 것들을 토대로 아래의 네트워크 환경을 조건에 맞게 구축해보자

구성조건

1. Etherchannel구성 
2. RSTP로 변경 
3. vlan 100, vlan 200 생성 
4. part A는 vlan 100멤버 
   part b는 vlan 200멤버 
5. trunk 설정(802.1q-LACP) 
6. DSW1 vlan 100의 root-bridge
   DSW2 vlan 200의 root-bridge
7. part_A통신 확인
   part_B 통신 확인

 

 

 

1. Etherchannel구성 

 

Switch>en 

Switch#conf t

Switch(config)#int range f0/3, f0/5

Switch(config-if-range)#channel-protocol lacp

Switch(config-if-range)#channel-group 1 mode active

- 연결된 반대편 스위치도 똑같이 설정

Switch#show etherchannel sum

 

P상태가 뜨면서 LACP가 활성화된 것을 볼 수 있다.

 

2. RSTP로 변경 

 

Switch>en 

Switch#conf t

Switch(config)#spanning-tree mode rapid-pvst 

Switch#show spanning-tree

rstp로 된것을 볼 수있다.

 

3. vlan 100, vlan 200 생성 

Switch>en 

Switch#conf t

Switch(config)#vlan 100
Switch(config)#vlan 200

 

4. part A는 vlan 100멤버 
   part b는 vlan 200멤버 

Switch(config)#interface range f0/10

Switch(config-if-range)#switchport access vlan 100

Switch(config)#interface range f0/11

Switch(config-if-range)#switchport access vlan 200

-  모든 스위치에 적용


5. trunk 설정(802.1q-LACP) 

- switch0과 switch1은 L3스위치이기때문에 인캡슐레이션을 해줘야함

- switch0과 switch1에 설정

Switch(config)#interface range f0/01,f0/03,f0/05

Switch(config-if-range)#switchport trunk encapsulation dot1q
Switch(config-if-range)#switchport mode trunk

- switch2는 L2 스위치기때문에 인캡슐레이션을 하지않음

Switch(config)#int range f0/1-2
Switch(config-if)#switchport mode trunk


6. DSW1 vlan 100의 root-bridge
   DSW2 vlan 200의 root-bridge

병목현상을 방지하기 위해 RB를 나누어 트래픽을 분산시키려고함

- DSW1을  vlan 100의 RB로 만들기 위해 우선순위를 0으로 설정한다

Switch>en 

Switch#conf t

Switch(config)#spanning-tree  vlan 100 priority 0

- DSW2을  vlan 200의 RB로 만들기 위해 우선순위를 0으로 설정한다

Switch>en 

Switch#conf t

Switch(config)#spanning-tree  vlan 200 priority 0

DSW1 BID와 vlan100 RB가 같은걸 볼 수 있다
DSW2 BID와 vlan200 RB가 같은걸 볼 수 있다


7. part_A통신 확인
   part_B 통신 확인

 

- ping을 통해 확인해보면 A끼리는 통신이 잘되고 A-B는 통신이 안되는 것을 볼 수 있다.

 

'네트워크' 카테고리의 다른 글

TCP/UDP-TCP헤더, TCP전송  (0) 2023.02.09
STP(Spanning Tree Protocol) / RSTP  (0) 2023.02.07
CSMA/CD 프로토콜  (0) 2023.02.06
Port Forwarding, Reverse Proxy, Load Balancer  (0) 2023.02.04
Proxy와 NAT  (0) 2023.02.02

Cisco Packet Tracer로 밑에 흩어져 있는 친구들을 연결해보자

 pc - 스위치 - 라우터 - 스위치 - 서버 *pc랑 스위치랑 연결이 안돼서 임시방편

서버 - 스위치 - 라우터 - 스위치 - 서버

 

1. 케이블 연결 및 pc ip 설정

1) 통신의 기본은 연결이기에 케이블로 각 장치들을 연결해준다.

2) 각 PC에 IP설정


2. 라우터 설정

1) 라우터 CLI에 들어가서 장비 기본  설정을 해준다. 흩어진 친구들(?)에게는 장치이름이 있으니 이름 먼저 설정한다.

 

2) 이름설정

Router>enable

Router#configure terminal

Router(Config)#hostname EDU_R

 

3) Router 기본설정

EDU_R>enable
EDU_R#configure terminal
EDU_R(config)#line console 0
EDU_R(config-line)#password korea
EDU_R(config-line)#login
EDU_R(config-line)#line vty 0 4
EDU_R(config-line)#password korea
EDU_R(config-line)#login
EDU_R(config-line)#exit
EDU_R(config)#enable password korea
EDU_R(config)#enable secret korea

*비밀번호는 기호에 맞게

 

4) 인터페이스 확인

EDU_R#show ip interface brief

 

5) 라우터의 인터페이스를 확인후에 들어가서 접속한다

EDU_R(config)# interface fastethernet 0/0

 

6) 그다음 라우터에 ip를 설정하여 활성화해준다!(설정하려는 ip값과 케이블를 착오없이 잘 확인해서 설정하자)

EDU_R(config-if)#ip address 192.168.0.1 255.255.255.0

EDU_R(config-if)#no shutdown

 

7) 다른 포트도 설정해준다.

 


3. 스위치 설정

1) 이름설정

Switch>enable

Switch#configure terminal

Switch(Config)#hostname AWS

 

2) 기본 설정

AWS>enable
AWS#configure terminal
AWS(config)#line console 0
AWS(config-line)#password korea
AWS(config-line)#login
AWS(config-line)#line vty 0 4
AWS(config-line)#password korea
AWS(config-line)#login
AWS(config-line)#exit
AWS(config)#enable password korea
AWS(config)#enable secret korea

*비밀번호는 기호에 맞게

 

 

3) 터널 만들기

AWS(config)#int vlan 1

AWS(config-ip)#ip addr 192.168.0.5 255.255.255.0

AWS(config-ip)#no shutdown

 

- vlan에 IP값을 설정해주고 오픈한다

- 반대편 스위치도 ip값을 줘서 똑같이 설정한다.

초록초록하다

짜란- 이렇게 연결표시가 된다.

 

초록불이 들어왔다고 완료가 된것은 아니다.

 

ping을 통해 pc간 통신이 되는지, telnet을 통해 라우터에 접속을 해보자.

 

 

반대편 PC에게 ping이 잘 가는것을 볼 수 있다.

 

telnet으로 router를 잘들어갈 수 있게 된다.

 

 

pc는 gateway가 있기 때문에 다른 네트워크와도 통신할 수 있지만 Switch는  gateway 설정을 안해서 다른 네트워크의 스위치와는 통신할 수 없다. gateway가 없으면 외부 네트워크와 통신할 수가 없다!

 --> 스위치에 gateway 설정하여 다른 네트워크 스위치에 접속하는것을 추가하겠다! 

 

STP(IEEE802.1d)
특정 포트를 차단하여 루핑이 돌지 못하게 만든 프로토콜

  - 데이터가 루핑을 돌지 못하도록 막아주는 역할을 함(마치 물리적으로 포트를 뽑은것처럼)

 

STP가 사용되는 이유는?

스위치 이중화시 아래와 같은 문제가 발생하는데 이를 막기위해 사용된다. 

 

1) 중복 Data 발생

   - Host x가 Router y에게 unicast frame을 보낸다

   - Router y의 MAC주소는 양쪽 스위치에 의해 Learning 된다

   - 이렇게 되면  Router y는 동일한 두 개의 Frame을 받게 되며 중복 Data가 발생하게 된다.!

     -> 중복 data를 받게 되면 라우터는 전송실패로 인식하게 되는 경우가 있다

 2) MAC DB의 불안정성

   - Host x는 roter y에게 unicast frame을 보낸다

   - router y의 MAC주소는 아직 양쪽 스위치에 learning이 되지 않은 상태

   - 스위치 A, B는 host x의 MAC주소를 port1에서 learning

   - frame은 다시 Flooding

   - 스위치 A, B는 host x의 MAC주소를 port2에서 다시 learning하면서 오류를 가지게 된다. 

     -> 이렇게 MAC table이 불안정하게 되면 data의 전송에 오류가 생길 수 있다. 

 3) Broadcast storming으로 인한 네트워크의 잦은 down

   - host x가 broadcast frame을 보낸다.

   - 스위치는 받은 broadcast frame을 flooding하기 때문에 계속 Flooding을 하게 되고

   - 결국 Looping이 발생하여 네트워크가 다운된다.

 


1. STP 과정

STP는 3단계로 나눌 수 있다

 

1단계. Per Network

 1) 하나의 Root Bridge를 선정한다. (네트워크 하나는 1개의 broadcast)

 2) Switch가 BPDU를 뿌리면서 서로의 BID를 확인하고 BID가 낮은 애가 Root Bridge가 된다.

  * BID = [기본우선순위] + [MAC 주소] 

  ** 0~65,535사이 고를 수 있으며 default는 32768이다.

 3) Root Bridge가 정해지면 Root Bridge가 2초(hello time)마다 BPUD를 계속 뿌린다.

 4) Root Bridge를 제외하고 나머지 모두 Non-Root-Bridge가 된다.

 

    -> default가 32768인 이유는?

       -> MAC 주소가 낮은수록 대장이 되는데 먼저 나온 제품일수록 낮은 번호를 가지고 있기 때문에 오래된 장비를 대장을 시키다간 Root-Bridge가 죽을 확률이 높아진다.

       ->  최신 장비를 Root-bridge로 설정하면 좋기 때문에 별도의 우선순위를 설정할 수 있도록 default를 중간값으로 설정된 것이다.

 

2단계. Per Non-Root-Bridge

 1) 하나의 Root Port를 선정한다. 

 2) Root Bridge까지 가장 낮은 cost를 제공하는 port를 Root로 선정함

   * cost
      10M  : 100
      100M : 19
      1G     : 4
      10G   :  2

 3) Rootport가 정해지면 남아있는 port가 Designated port가 된다.

 

3단계. Per segment

 1) 하나의 Designated port를 선정한다

 2) Root port가 있다면 남은 포트가 Designated port가 된다.

 3) 결국 마지막 남은 애가 Blocked Port가 된다.

 

 

cisco packet tracer로 STP 확인해보기

 

 

 

1) 스위치 별 STP 정보확인

 

Switch>en

Switch#show spanning-tree

 

Root-Bridge와 Bridge-ID가 일치하지 않는다

 

Root-Bridge와 Bridge-ID가 일치한다. Root-Bridge를 찾았다.

 

2) 스위치별 BID와 RP,DP, BP를 분류하여 체크

 ● Root-Bridge: 0030.F209.B834

 ● Root-Port: Root-Bridge로 가장 빠른 cost를 제공하는 경로를 가진 [ switch3 Fa0/10 ], [switch2 Fa0/2 ] 포트가 RP로 선정된다.

 ● Designated port: RP를 제외하고 남은 포트인  [ switch1 Fa0/1 ], [ switch1 Fa0/2 ]DP가 되고 *우선순위에 따라 BID값이 낮은 [switch2의 Fa0/3]까지 DP가 된다.

  *우선순위

    ROOT ID -> cost ->  BID -> port ID 순서로 결정됨

 ● Blocked Port: 결국 아무것도 선정되지 못한 [swich3 Fa0/3]이 Blocked 되면서 데이터 loop 경로를 방지하게 된다. 


2. STP 상태

1) Blocking

   ○ data x / MAC x / BPDU o

    - 사용자 Frame을 수신하지 않으며 Root-Bridge가 뿌리는 BPUD만 수신하는 상태

   ○ MAX Aging Time(최대 20초)이 지날 때까지 *BPUD 수신이 안오면 Listening 상태에 들어감

    *BPUD는 2초 간격(hello time)으로 Root-Bridge가 송신한다.

2) Listening

   ○ data x / MAC x / BPDU o

     - 모든 수신되는 BPUD를 체크하여 대장을 다시 선발한다.

      -> blocking port가 재연결될 경우 loop이 발생하지 않는지 확인한다.

   ○ 15초의 시간이 할당됨 

3) Leaning

  ○ data x / MAC o / BPDU o

     - 향후 forwarding을 위해 MAC table을 구성함

  ○ Default로 15초의 시간이 소요됨(Forward Delay)

4) Forwarding

  ○ data o / MAC o / BPDU o

     - Frame을 다시 전송한다

5) Disabled

  ○ data x / MAC x / BPDU x

     - 하드웨어 결함, 소속 VLAN이 없거나, 관리자가 shutdown한 port의 상태 

 

 

cisco packet tracer로 상태변화 확인해보기

 

앞서 확인했던 예시에서 케이블선 하나를 삭제한 후 Blocked된 포트가 있는 스위치를 통해 상태를 확인했다.

Fa0/3 port가 Blocking 상태인걸 볼 수 있다
Fa0/3 port가 Learnig 상태인걸 볼 수 있다
Fa0/3 port가 forward상태로 변경된걸 볼 수 있다

 

 

3. STP의 단점

 

○ 느린 컨버전스 타임(52초)

 - 네트워크가 50초나 끊긴다는 것은 큰일이므로 느린 컨버전스 타임을 개선하기 위해 RSTP가 생겨났다.


2. RSTP (Rapid-STP)

 

1. RSTP란?

cisco에서 컨버전스가 느린 STP의 대안점으로 아래와 같은 기술을 보였고

  - Portfast
  - uplinkfast
  - backbonefast

 

이를 표준화 시킨것이  RSTP(IEEE802.1w)이다

 

2. 특징

 1) 컨버전스 타임 1초 이내

 2) STP 랑 혼용해서 사용금지 / 통일해서 사용하는 것을 권장 -> 그렇지 않으면  STP로 사용된다

 3) Full Duple에서 정상작동 / Half Duplex에서는 STP로 동작함

 

    *통신 종류
- Simplex: 단방향(tv, radio 등)
- Duplex: 양방향
   - Half Duplex: 무전기 등 
   - Full Duplex: 전화 등

 

3. RSTP 모드 설정해보기

 Switch>env

 Switch#conf t

 Switch(config)#spanning-tree mode rapid-pvst

 

 Switch#show spanning-tree 

 

 위와 같이 protocol이 rstp로 된것을 볼 수 있다.

 


 

'네트워크' 카테고리의 다른 글

TCP/UDP-TCP헤더, TCP전송  (0) 2023.02.09
VLAN, Etherchannel  (0) 2023.02.08
CSMA/CD 프로토콜  (0) 2023.02.06
Port Forwarding, Reverse Proxy, Load Balancer  (0) 2023.02.04
Proxy와 NAT  (0) 2023.02.02

+ Recent posts