ABOUT ME

삶의 기록장

Today
Yesterday
Total
  • [산대특] Network 이론 3, VLAN, VTP, PVST+, RPVST, EtherChannel, Port Security, TCP/IP, ARP, DHCP, ICMP, TCP, UDP
    [산대특]클라우드기반 빅데이터 활용 정보 시스템보안과정/Network 2024. 10. 25. 17:05

    1016

     

      VLAN

    스위치에서 디폴트 vlan 1 네트워크를 vlan 2, vlan 3식으로 여러 서브 네트워크를 생성.

    스위치의 모든 포트(노드)들은 디폴트로 vlan 1으로 묶여 있다. 

    브로드캐스트1의 사이즈가 작아져서 전체적인 네트워크 효율이 좋아짐. 

    => ‘망 분리’라고도 함.

     

      VLAN을 생성하는 방법은 여러가지

    특정 프로토콜별(appletalk, ipx, ...),

    IP_주소 대역별(172.16.0.0, 10.10.10.0, ...), 역할별, 또는 서비스별로 묶어서 구축가능.

     

    스위치에서 이기종 네트워크를 묶을 때에도 널리 활용

     

    물리적인 위치와 무관하게 노드들을 원하는 LAN 별로 묶을 수 있다.

      

    라우터는 

    a. 서로 다른 네트워크를 연결, 역으로 보면 서로 다른 네트워크는 라우터로 묶여야 한다. 

    b. 목적지로 가는 최적의 경로를 찾아주는 역할 

    c. 네트워크를 브로드캐스트 도메인으로 분할. = 브로드캐스트를 통과시키지 않는다. 

     

    스위치포트를 mode trunk 식으로 설정

    VLAN 태그는 각 네트워크 프레임에 VLAN 정보를 포함시키는 역할

    vlan1과 vlan2가 섞여있으므로 각각이 구별되게끔 프레임에 Encapsulation 지정 <=default로 802.1Q(dot 1q)

     

    Encapsulation : 트렁크 포트를 통해 여러 VLAN의 트래픽을 전송할 때,

    각 프레임에 VLAN 정보를 추가하는 과정.

    프레임에 VLAN 태그를 붙여 수신한 장치가 이 트래픽이 어느 VLAN에 속하는지 알 수 있도록

     

    vlan1과 vlan2가 통신되게 하기 위한 라우터와의 연결을 위해서

    네트워크 주소가 다른 각각의 VLAN의 게이트웨이_주소를

    물리적인 하나의 라우터 인터페이스에 설정 해야하므로 서브 인터페이스 사용해서 논리적으로 설정해줌!!! 

     =>관리목적으로 vlan1에 IP_주소와 게이트웨이_주소를 지정해야 할 수도 있다. 

     

    VTP = 에는 서버, 클라이언트, 트랜스페어런트 모드가 있다. 

    여러개의 스위치 중 하나를 서버로 만들고 하나는 클라, 다른 하나는 트랜스 로 만들고 

    스위치 아래에 있는 정보들을 모두 서버로 보내 서버는 다 알고 있는 것. 

    서버는 정보가 업데이트 될 때마다 version이 바뀐다. 

    다른 모드들은 서버에 들렸을 때 버전이 바뀌면 끌고 온다.(업데이트)

     

    트랜스페어런트 모드는 , 그 모드 아래 붙어있는 중요한 데이터 서버를 달아두면, 그 서버는 해당 스위치 바깥의 일들은 알지만 다른 애들은 서버를 모른다. 통신은 하지만 서버에 대한 것은 서버가 안알려준다. 

     

     

      하나의 라우터 안에 두 개의 네트워크 주소가 다른 설정이 있을 때

    이들간의 통신은 자동으로 이뤄짐 ==> Inter-Route

    VLAN1, VLAN2 사이에서는 Inter-VLAN

     

    => 서브 인터페이스기법 이외에 두번째 IP_주소뒤에 secondary를 써주는 기법도 있다. 

     

    **** vlan에 속한 노드의 IP_주소, 게이트웨이를 설정하는데 주의할 것 

    호스트의 IP_주소는 자기가 속한 vlan 네트워크의 주소를 사용

    ▪ 호스트의 GW 주소는 물리적으로 물려있는 라우터의 서브 인터페이스의 주소를 사용

     

      VTP에 패스워드를 걸 수도 있다.

    Switch(config)#vtp domain korea 하고 

    Switch(config)#vtp password 1234 하면 

    패스워드 없이 함부로 VTP 스위치 그룹에 가입될 수 없다.  

     

      VTP Pruning(가지치기)

    스위치A와 스위치B 사이에 vlan1과 vlan2만 다니게 구성된 TRUNK가 있을 때 

    VLAN에 관한 포트 정보를 다른 vlan3과 vlan4를 가지고 있는 스위치C나 스위치D에게

    브로드캐스트로 vlan1과 vlan2의 정보를 알리지 않게 구성하는 기법.

    전체적인 네트워크의 대역폭이 줄어들게 되어서 효율이 좋아진다. 

     

      TRUNK 인터페이스로 들어가서 

    Switch(config-if)#switch trunk pruning vlan 3-4

    하면 이 VLAN3과 4는 이 TRUNK 설정 인터페이스로 들어오지 못한다.

     

      PVST+(Per-Vlan Spanning Tree Plus)

      PVST+는 각 VLAN이 자신만의 Spanning tree 객체를 가지고 있는 것

    Switch(config)#spanning-tree vlan 2 하면 이 스위치에는 vlan 2만 다니게 된다.

    VLAN 루핑 방지.

     

    =>RPVST(Rapid Per-vlan Spanning Tree Plus)

    PVST 시스템에서 만일 어느 vlan 경로가 깨지면 새로운 경로를 자동으로 빠르게 생성해서 연결시켜주는 기법.  

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

     

      L3 스위치로 VLAN 설정하기

      L3 스위치는 Router의 경로설정으로 인한 속도 저하를 L2 스위치의 빠른 처리 능력에 접목시킨 기법.

    L3 스위치는 스위치 기능과 라우터 기능을 동시에 가지고 있다. 

    구성은

    L3-SW의 상단부는 라우터 설정(IP_주소 필요)

    L3-SW의 하단부는 스위치 설정(MAC_주소 연결)

     

    L3-SW 상단부는 아래서 올라오는 10.10.10.0과 10.10.20.0 네트워크를 연결하는 라우터 기능

    하단부는 Trunk 등 VLAN 설정을 할 수 있는 스위치 기능 + 각 네트워크의 게이트웨이가 되어야 한다. 

     

    *** 라우터의 경로 설정은 

    Dynamic 동적으로 경로를 찾아주는 프로토콜로 RIP(v2), OSPF, EIGRP를 설정해주고,
    직접 붙어있는 네트워크들을 모두 설정한다. 
    Static  정적으로 결로를 설정하는데 직접 붙어 있지 않는 모든 
    'ip route 목적지_네트워크 목적지_서브넷마스크 내쪽_출발지_포트(OR 상대_입력_IP)'
    각각 설정한다.
    Default Route Static 설정의 일부로써 목적지에 이르는 경로가 하나 밖에 없을 때
    (Stub neteork) 'ip route 0.0.0.0 0.0.0.0 내쪽_출발지_포트(OR 상대_입력_IP)'
    하나만 설정
    하면 된다. 
    CDP Network
    (Cisco Discovery Protocol)
    직접 연결된 Cisco 브랜드만의 네트워크로써
    neighbor network 하면 스스로 알아서 연결해준다.  

     

      EtherChannel

      EtherChannel은 PortChannel로도 불림

    스위치/라우터 간 연결에서 여러 물리적인 이더넷 링크(케이블)를 묶어

    하나의 논리적인 링크로 만들어서 데이터를 전송함 => 고속으로 통신을 수행시키는 기법.

    폴트 톨러런스(fault–tolerance)와 잉여의 장비로 즉시 대체할 수 있는 리던던시(redundancy) 등이 가능. 

     

    WAN의 ISP 나 TelCO(CO)에서 사용하는

    컨센트레이터(Concentrator)와 같은 장비나 중요 서버와 네트워크 장비에서 주로 설정

     

      스위치의 특정 포트에 EtherChannel로 설정

    먼저 회선이 묶일 이름을 지정하고, 

    회선의 mode를 auto나 desirable로 설정할 수 있는데 모든 포트를 auto로 설정하지 않고

    기준 되는 포트를 auto로 해주고,

    여기에 참여하는 나머지 포트들을 desirable로 구성해주면 EtherChannel이 설정된다

     

      Port Security

    (L2) 스위치 포트에 스위치가 알지 못하는 MAC_주소를 가지고 있는 외부 해커 노드가 연결되었을 때

    이를 규제하는 포트 보안을 설정해 두는 것이 좋다.

    어느 한 포트에서 설정해 주어도 스위치 전체 포트로 포트 보안이 적용

      포트 보안은 노드의 MAC_주소로 규제

     

      스위치 포트에는 대부분 지정된 노드가 연결되어 스위치의 CAM 메모리에 스위칭_테이블로 저장.

    포트 보안은 스위치 포트에 새로운 노드가 가입되면 스위치가 인지하고 어떤 규제를 가하게 하는 기법.

    보통 중요한 서버나 데이터베이스 등이 연결된 스위치 포트에 포트 보안을 설정해준다. 

    하지만 Trunk 설정 회선, EtherChannel 회선, 그리고 Switch port Analyzer의 port에는 포트 보안을 걸 수 없다. 

     

      포트 보안을 설정한 포트에 연결되는 노드는

    스위치가 인식하고 있는 MAC_주소목록과 비교해서 다를 경우에 해당 MAC_주소가 필터링

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

     

      보안 위반 시 취할 행동으로 protect, restrict, 그리고 shutdown이 있는데 

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

     

    구글에서 퍼옴

      TCP/IP Protocol Suite 

    1) IP

      IP는 L3 네트워크층에서 정의

    네트워크층은 데이터를 네트워크 간에 라우트(경로 찾기) 할 책임.

    IP_주소는 ‘네트워크 부분(Net_ID)’과 ‘호스트 부분(Host_ID)’으로 나눈다.

    라우터는 네트워크 부분만 보고 데이터를 목적지로 보내는 경로를 결정

    상위 전송층의 TCP가 연결설정, 흐름제어 등 전송에 필요한 것들을 정의

    하위 네트워크층의 IP가 실제 데이터를 비연결지향적으로 전송

     

    IP는 L4 전송층으로부터 데이터가 크면 연결지향적일 때는 패킷

    비연결지향적일 때는 데이터그램으로 조각내서(fragmentation) 주고받는다(packet switching 기법). 

     

      IP가 데이터를 전송시

    데이터 헤더 32비트에는 IP 버전, 

    ToS(Type of Service:QoS에서 사용하는 필드), 

    그리고 헤더와 데이터 전체길이를 나타내는 16비트의 길이필드와

    데이터를 단편화시켜서 최단경로로 목적지로 보낸 다음

    목적지에서 어떻게 재조립되어야 하는지를 IP에게 지시하는 정보 등이 들어있다. 

     

    8비트 TTL(Time To Live) 필드 값은 라우터를 지날 때마다 감소하

    값이 0이 되면 목적지 라우터에 이르는 경로를 찾지 못한 것으로 간주해서 패킷을 버림. 

    값이 6이면 TCP, 17이면 UDP로 전달

     

    다음 CRC(Cyclical Redundancy Check) 혹은

    FCS(Frame Check Sequence)로 에러검사에 사용되는 16비트,

    이어서 출발지 IP_주소 32비트와 목적지 IP_주소 32비트가 나온다.

    나머지는 데이터그램의 흐름에 따라 Host층으로부터 보내진 데이터거나 그 계층으로 보내져야 할 데이터 비트이다.

     

    2) ARP(Address Resolution Protocol)와 RARP(Reverse ARP)

    TCP/IP 그룹IP_주소(논리적 주소)를 MAC_주소(물리적 주소)로 매핑해주는 ARP라는 프로토콜을 정의

    내부 LAN에선 MAC 으로 통신, MAC_주소를 찾을 때 ARP 프로토콜이 필요.

    ARP 프로토콜은 로컬에서 IP_주소로 MAC_주소를 찾을 때 사용, 브로드캐스트의 속성도 ARP

     

    192.168.1.254(IP) node2(host_name) <- ARP 프로토콜 : OS가 있는 경우 

           ×        Vintage_name(GUID) <- RARP 프로토콜(BootP) : OS가 없는 경우

     

    3) DHCP(Dynamic Host Configuration Protocol) 

    RARP와 BootP와 유사하지만 이보다 개선된 구조. 

    DHCP 서버는 클라이언트 호스트들에게 DNS 서버, DHCP 서버, 게이트웨이 주소와

    클라이언트의 IP_주소와 서브넷마스크를 자동으로 임대(lease)해서 할당.

    관리자는 작업그룹과 호스트_명만 나중에 지정해주면 된다.

     

    4) ICMP(Internet Control Message Protocol)

      네트워크층에서 실행되는 이 ICMP 프로토콜도 중요

    데이터를 송수신할 때 사용되는 제어 메시지 프로토콜, 흐름 제어나 상태를 메시지로 표시.

     

    라우터가 데이터를 처리하고 있을 때

    더 많은 데이터가 너무 빠르게 들어오면

    라우터는 source quench 메시지를 발생시켜서 흐름 제어를 하는데

    이럴 때 사용되는 프로토콜이 ICMP이다. 

     

     TTL(Time To Live: RIP에서 16까지)도 이 ICMP 프로토콜을 사용

    재전송을 알리는 메시지 전송에도 이 프로토콜이 사용. 

     

      ICMP Redirect 메시지는

    라우터가 어떤 노드로부터 데이터그램을 받았을 때 표시된 경로보다 더 좋은 경로가 있다는 것을 알고 있다면

    송신 노드에게 ICMP Redirect 메시지를 보내서 더 좋은 경로로 오라고 알리기도 한다. 

     

    라우팅 정보를 Static으로 했다면 업데이트된 정보를 무시하고 자신이 가지고 있는 경로대로만 데이터를 전송할 것. 

     

    연결을 확인하는 ping과 목적지까지의 경로를 확인하는 traceroute(tracert)도 이 ICMP 프로토콜을 사용.

     

    source quench, TTL, PING, TRACERT, ICMP Redirect 다 ICMP 프로토콜을 사용한다. 

     

     ICMP 데이터가 타겟이 도달하지 못했을 때 보이는 destination unreachable 메시지에는 

    ▪ Network Unreachable(Code0), 

        Host Unreachable(Code1), 

        Protocol Unreachable(Code2), 

        Port Unreachable(Code3) 은 모두 원격 호스트가 발생시킨 메시지이고, 

    ▪ Can't Fragment(Code4)는 라우터가 발생시킨 메시지이다. 

     

      라우터에서 타겟에게 ICMP의 ping이나 traceroute 했을 때 응답하는 기호나 문자 메시지를 정리한 표

    ! ICMP Echo 응답을 수신함
    . 응답을 기다리는 동안 ping 명령어가 타임아웃 됨을 수신함
    U ICMP가 목적지-호스트 도달불가(ICMP Type3 Code1) 메시지를 수신함
    N ICMP가 네트워크 도달불가(unreachable, Code0) 메시지를 수신함
    P ICMP 목적지-포트 도달불가(ICMP Type3 Code3) 메시지를 수신함
    A ACL(Access List Control)에 의해 패킷이 거부됨
    & 패킷의 TTL(Time To Live)이 초과되었음
    ? 알 수 없는 패킷을 수신함

     

    5) TCP(Transmission Control Protocol)

    신뢰성 있는 연결지향적(connect-oriented) 프로토콜

     

    TCP 프로토콜은

    데이터가 제대로 타겟에 도착되었는지 확인(acknowledgement),

    손상되었을 때에는 재전송(retransmission)

    대처방법을 정의해 놓았다. 

     

    TCP는 수신 노드와 초기연결을 수립

    여러 응용층 프로토콜에서 온 데이터를 하나의 연결로 보내는 멀티플렉싱(multiplexing) 책임.

     

    멀티플렉싱은 동일한 목적지로 가는 다수의 패킷들을

    한 번에 묶어서 빠르게 보내주므로 네트워크가 효율적으로 작동되게 하는 기법

     

      TCP는 3단계 협상(3-way handshakes)을 통해 연결을 초기화

    ① 노드A가 세그먼트에 일련번호를 정해서

    노드B에게 SYN request(SEQ=0)를 보내고, 

      수신측 노드B로부터

    응답 Sequence(순서번호)가 예측한대로 오기를 기다린다. 

    ② 수신측 노드B로부터 SYN+ACK reply(SEQ=0, ACK=1)를 받아서 일련번호가 예상대로 맞으면  

    ③ 송신측 노드A가 ACK reply(SEQ=1, ACK=1)를 보내서

    3단계 협상을 완결해서 노드B와 연결을 이루고 데이터 송수신이 시작된다.

     

    패킷 전송은 패킷 스위칭 방식을 주로 사용.

    패킷을 분할해서 시퀀스 번호를 매겨서 수신자에게 순서 없이 각자 빠른 경로로 전송시킨 뒤,

    수신자에서 시퀀스 번호에 맞춰서 재조립을 하고,

    잘 받았는지 확인 메시지를 송신자에게 보내면, 송신자가 다음 패킷을 보낸다.  

     

    TCP는 네트워크의 전송 효율을 높이기 위해서 슬라이딩 윈도우(sliding window: 송수신 데이터량 조절)를 사용

     

    슬라이딩 윈도우는 수신자가 송신자에게 데이터 수신을 확인해주는 ACK를 보내기 전에

    네트워크의 상태에 따라서 송수신되는 데이터 전송량을 Nagle 알고리즘을 사용해

    유동적으로 조절하는 흐름제어(flow control)를 한다.

     

    TCP 프로토콜6개의 Flag 

    URG(Urgent: 다른 데이터보다 먼저 처리 요청)

    ACK (Acknowledge: 데이터 송수신에 대한 확인),

    PSH(Push: 데이터 즉시 송신),

    RST(Reset: 오류에 대한 응답으로 연결 종료 후 재설정),

    SYN(Synchronization: 연결 시작),

    FIN(Finish: 연결 종료)

    패킷의 동작을 제어하는 요소들. 

    입력 패킷에 RST이나 FIN 등의 플래그는

    연결되는 서버를 다운시키려는 의도, 해당 입력 연결을 즉시 끊는 설정이 보안상 필요

     

      포트를 정리해서 알아본다. [인터뷰-포트명 포트번호]

    Well-Known or System
    1~1,023
    대부분의 중요한 서버 서비스의 포트로 지정
    클라이언트는 이 포트로 서비스를 요청. IANA에서 규정한 포트여서 함부로 변경할 수 없다. 
    Static or Registered
    1,024~49,151
    벤더들이 ICANN에게 등록해서 얻은 포트
    Dynamic or Private
    49,152~65,535
    서버가 클라이언트에게 임의적으로 할당하는 포트

     

    연결방식

    PASSIVE 방식 FTP나 Telnet 연결 시
    클라이언트가 서버에게 192.168.100.100:23식으로 연결을 요청
    서버가 임의로 50,001식의 포트를 할당해서 연결시키는 디폴트 연결방식.
    ACTIVE 방식 클라이언트가 Dynamic Port 중 하나인 50,005를 지정해서 연결을 요청
    서버가 이
    요청된 포트로 클라이언트를 연결시켜주는 방식

    연결 보안은 좋을 수 있지만 이 포트를 아는 일부만 연결된다. 

    6) UDP(User Datagram Protocol)

     프린터, TFTP, IP TV마라톤 중계나 화상 회의, VoIP(Voice over IP: 인터넷 전화기)

    반드시 전송이 보장될 필요가 없는 곳에 UDP 프로토콜이 사용

    UDP는 비연결지향적(connectionless oriented) 프로토콜

    데이터를 보내기 전에 미리 상대방과 연결을 수립할 필요가 없다.

    전송된 여부 확인은 상대방 응용층에 달려있다. 

     

      Printer, TFTP Server, DNS, DHCP, SNMP, ....등이 UDP를 사용

    UDP도 TCP와 마찬가지로 전송층 프로토콜.

    UDP는 보통 멀티미디어나 대용량 파일을 전송할 때 주로 사용되는 프로토콜

     

연의 취업 도전기.