Attack 종류
공격유형은 시스템 공격, 애플리케이션 공격, 네트워크 공격으로 나뉩니다. 클라이언트와 서버는 운영체제를 설치하게 되는데 운영체제의 핵심은 커널입니다. 커널을 공격하는 기술을 시스템 공격이라고 합니다. 커널을 공격한다는 것은 관리자의 패스워드를 알아내서 시스템을 장악하는 것으로 권한탈취를 하는 것입니다. 운영체제 위에는 애플리케이션이 설치됩니다. ftp, telnet, 웹, 이메일 등 다양한 서비스를 받는데 WS_FTP, MS outlook과 같은 프로그램의 취약점을 이용한 공격을 애플리케이션 공격이라고 합니다. 애플리케이션 해킹 중 웹해킹 분야가 너무 커져서 따로 트랙이 나온 것입니다. 원래 웹 해킹은 애플리케이션 해킹에 속해있었습니다. 요즘 공격은 원격으로 합니다. 그래서 모든 공격은 네트워크 기반의 공격이 이루어지고 있습니다. 네트워크 취약점을 이용한 공격을 네트워크 공격이라고 합니다.
네트워크 주소
논리적 주소(3계층 주소)
논리적 주소는 3계층 주소입니다. 우리가 평소에 사용하는 논리적 주소는 IP address입니다. 이 IP address는 Network ID와 Host ID로 나눠집니다. IP address는 컴퓨터의 집주소라고 할 수 있는데, 어느 망에 몇 번째 컴퓨터인지를 알 수 있습니다. Network ID와 Host ID를 구분하기 위해 Subnet Mask를 사용합니다. IP address와 Subnet mask를 &(and)연산을 하면 Network ID를 알 수 있습니다. 255를 1로 이해하고 &는 곱하기 연산으로 하면 됩니다.
[네트워크 개요] 그림에서 a는 192.168.1.0의 10번째 pc이고, b는 192.168.1.0의 20번째 pc이며, c는 192.168.5.0의 10번째 pc입니다. IP address와 Subnet Mask만으로도 이 컴퓨터가 어느 그룹에 속해있고, 거기서 몇 번째 인가를 파악할 수 있습니다. 통신할 때는 IP address와 함께 Subnet Mask를 셋팅해줘야 합니다.
내부망과 외부망
송신자(a)가 수신자(b)에게 데이터를 보낼 때, 가장 먼저 확인해야 하는 것은 b가 같은 강의실에 있는지 없는지를 먼저 확인해야 합니다. a와 b의 네트워크 아이디가 같다면 같은 위치에 있는 것을 알 수 있고, a가 192.168.1.0에 있다면, b도 같은 망에 있다는 것을 알 수 있게 됩니다. 같은 망에 있으므로 내부망이라고합니다.
송신자(a)가 수신자(c)에게 데이터를 보낼 때는 Network ID가 다릅니다. a의 Network ID는 192.168.1.0, c의 Network ID는 192.168.5.0입니다. 서로 다른 위치에 있으므로 이것은 외부망이라고 합니다.
즉, 송수신자의 Network ID가 동일하다면 내부망, 다르면 외부망입니다.
물리적 주소(2계층 주소)
통신을 하기 위해서는 랜카드 필요합니다. 랜카드를 NIC(Network Interface Card)라고 하며, NIC의 종류는 엄청 많은데 우리가 사용하는 NIC은 이더넷 카드(Ethernet Card) 라고 합니다. 이 랜카드에 부여되어 있는 주소를 물리적 주소라고 합니다. 이더넷 카드에 부착되어 있는 랜카드를 MAC address라고 합니다.
MAC 주소는 12자리로 16진수로 표현합니다.
EX) 00-40-D0-15-81-C5
MAC 주소의 앞 6자리는 랜카드를 만든 제조회사 번호(OUI), 뒤 6자리는 일련번호로 구성되어 있습니다.
FQDN(7계층 주소)
FQDN은 Fully Qualified Domain Name의 약자입니다. Host Name과 Domain Name으로 구성되어 있습니다.
EX) www.naver.com, www.tistory.com
FQDN주소, 7계층주소, 문자주소라고도 합니다. www는 호스트네임, naver.com은 도메인 네임입니다. 위의 사진에서 www, ftp, smtp는 서버이고, gildong은 클라이언트입니다. 서버는 서비스를 제공하고, 클라이언트는 서비스를 사용하는 입장입니다. 서버에서 호스트명에 프로토콜명을 주는 경우가 대부분입니다.(www입장에서는 "http://www.naver.com"이야, ftp입장에서는 "ftp.naver.com이야") 호스트명으로 해당 서버가 어떤 역할을 하는지를 알 수 있습니다. 반면 보통 클라이언트는 프로토콜명을 사용하지는 않습니다.
MAC/IP/FQDN Address
MAC 주소, IP주소, FQDN 모두 컴퓨터의 집주소라고 할 수 있습니다. 클라이언트가 서버를 호출하는 것이며, 서버가 클라이언트를 호출하는 일은 없습니다. 클라이언트가 있어야 서버가 있고, 클라이언트가 서버를 호출하는 방법이 3가지인 것입니다.
컴퓨터 주소가 3개인 이유는?? 실제 컴퓨터가 사무실에서 사용하게 된 것이 1960년대인데, 클라이언트와 서버 모두 기계입니다. 즉, 사람이 사용하는건데, 사람이 서버를 부를 때 기계번호(MAC주소, 16진수)로 호출을 했었습니다. 근데 이게 부르기 어려워서 10진수 주소체계인 IP 주소가 나왔고, 그다음에 문자주소(FQDN)가 나오게 된 것입니다. 사람이 사용하기 편한 상태로 진화했다고 볼 수 있습니다.
문자주소(FQDN)는 그냥 서비스 주소로 네트워크에서는 그다지 중요하지 않습니다. 그러나 서버입장에서는 고객유치를 위해 돈을 내고 도메인 주소를 사용하는 것입니다. 그러나 클라이언트 입장에서는 돈을 내고 도메인 주소를 사용할 필요가 없으니 MAC/IP 주소 두 개를 사용합니다. 통신에 필요한 주소는 MAC/IP 주소입니다.
DNS와 ARP
주소 관련 프로토콜로는 DNS와 ARP가 있습니다.
- DNS : 문자주소를 기반으로 해서 IP주소를 찾아주는 역할 또는 IP주소를 기반으로 문자주소를 찾아주는 역할
- ARP : IP주소를 기반으로 MAC주소를 찾아주는 역할
- RARP(역ARP) : MAC주소를 기반으로 IP주소를 찾는 역할
문자주소로 MAC주소를 찾는 것은 없습니다. 문자주소는 선택이지 필수는 아니기 때문에 클라이언트 쪽에서는 문자주소를 사용하지 않아 필요가 없기 때문입니다.
포트번호(4계층 주소)
포트번호는 서비스번호 또는 애플리케이션 번호라고 할 수 있습니다. 프로그램을 돌리면 그 프로그램에 부착되는 번호를 의미합니다. 프로그램은 두 가지로 클라이언트용/서버용이 있습니다. chrome은 웹 클라이언트용 프로그램이고, apache는 웹 서버용 프로그램입니다. 크롬에서 창 하나를 열 때마다 포트번호를 부착합니다.
포트번호는 0번부터 65535번까지 있으며, 0번은 사용하지 않습니다.
포트번호는 크게 3가지로 분류합니다. Well-Known Port, Registered Port, Dynamic Port로 구분합니다.
- Well-Known Port : 1-1023
- Registered Port : 1024-49151
- Dynamic Port : 49152-65535
Dynamic 포트는 클라이언트용에 부착되고, Well-Known 포트는 서버용에 부착됩니다.
포트는 왜 붙일까요?? 192.168.1.10이라는 주소가 있습니다. 컴퓨터는 단독주택이 아니라 아파트라고 볼 수 있는데, 그 아파트는 세대수가 65535세대입니다. 아파트는 번지수가 다 똑같기 때문에 호수가 필요합니다. 여기서 포트번호는 호수를 나타내는 것과 동일합니다. 즉, 192.168.1.10:20과 같이 포트번호 20호 이렇게 입력해줘야 합니다. 콜론(:)으로 포트번호를 구분합니다.
포트주소(송신과 수신)
클라이언트가 크롬을 열었는데 해당 포트가 50010번으로 할당되어 있습니다. 서버는 아파치를 설치해 놓고 그곳의 포트번호를 80번으로 셋팅해 놓았습니다. 클라이언트가 200.10.10.10으로 가면 포트번호 80번으로 이동하게 됩니다. 서버로 이동하면 그 위치에 웹트래픽이 있을 것이고, 그 웹 트래픽이 클라이언트의 50010번 포트에 데이터를 뿌려줄 것입니다. 똑똑 문을 여는 순간 트래픽이 전송되고 그때 포트번호가 사용됩니다.
클라이언트는 서버의 포트번호를 어떻게 알까요? 반대로도 서버는 클라이언트의 포트번호를 어떻게 알까?
Well-Known 포트, 즉 잘 알려진 포트, 클라이언트에게 잘 알려진 포트를 의미합니다. 21호에는 ftp 트래픽이 들어있고, 80호에는 웹트래픽이 들어있다는 것을 클라이언트가 알고 있습니다. 그렇다면 80호에 웹트래픽이 있었는데, 처음 환경설정할 때 포트번호를 80번이 아닌 5000번으로 해도 될까요? 해도 됩니다! 그렇지만 꼭 클라이언트에게 공지를 해줘야 합니다. 그러나 대부분은 되도록 80번에 할당하려고 노력합니다.
1) http://200.10.10.10
2) http://200.10.10.10:5000
둘의 차이는 1)은 기본으로 80번 포트로 알고 있습니다. 2)는 포트가 바뀌었을 경우 아래와 같이 포트번호를 입력해서 들어가야 합니다.
C:\Windows\System32\drivers\etc 폴더로 이동하여 services 파일을 메모장으로 열면 각 프로토콜이 사용하고 있는 포트번호를 확인할 수 있습니다.
Dynamic 포트는 임시로 할당했다가 다른 창에 재할당하기 때문에 동적포트라고 합니다. Well-Known 포트는 정적포트입니다.
Registered 포트: 메신저 프로그램의 통신규약은 대부분 비슷하며 껍데기가 다를 뿐입니다. 이런 프로그램들은 포트번호가 할당되어 있어야 합니다. IANA라는 회사에서 포트번호를 관리하고 있는데, 이런 신규 프로그램들에 Registered 포트를 할당해 줍니다. 카카오톡 같은 퍼블릭한 프로그램 같은 경우 포트번호를 할당받아 사용해야 합니다. 새롭게 개발되는 애플리케이션 같은 경우는 포트번호를 할당받아 사용합니다.
전송모드
송신지개수 : 수신지개수
- Unicast(유니캐스트) 1:1
- Broadcast(브로드캐스트) 1:m(불특정다수)
- Multicast(멀티캐스트) 1:n(특정다수)
Unicast
클라이언트 IP는 간단하게 1.10, MAC은 1111 / 서버 IP는 1.20, MAC은 2222입니다.
클라이언트가 서버에게 데이터를 달라고 요청, 전송데이터에 내용을 작성(잘지내, 데이터 줘, 안녕)
등기라고 생각하면 됩니다. 받는 사람뿐만 아니라 보내는 사람 주소도 입력해야 합니다.
총 6개의 정보(송수신자 Port, IP, MAC 주소)를 정확히 입력해야 요청을 보낼 수 있습니다.
MAC주소는 수신지, 송신지 순 / IP와 Port번호는 송신지, 수신지 순입니다.
클라이언트가 크롬을 활성화시키는 순간 송신지 포트는 결정됩니다.(운영체제가 설정)
클라이언트가 url창에 https://~~~를 입력하면 http는 80으로 결정되어 있습니다. Port 주소는 운영체제가 결정합니다. 어떤 애플리케이션을 구동하는가에 따라서 결정되는 것입니다. 그다음에 송신지 IP와 MAC주소가 들어갑니다.
그다음은 서버(수신지)의 IP와 MAC주소를 넣어야 하는데 클라이언트는 서버의 문자주소밖에 모릅니다. 따라서 수신지의 IP주소를 알려주는 DNS, IP주소를 기반으로 MAC주소를 알려주는 ARP의 도움을 받습니다.
입력이 다 되면 요청이 보내집니다.
Broadcast
Broadcast IP주소(BIP)
- Local : 255.255.255.255
- Directed : 192.168.1.255/24
Broadcast MAC주소(BMAC)
- FFFF.FFFF.FFFF
브로드캐스트 주소는 시스템(운영체제) 운영 또는 프로토콜 운영 또는 특정 애플리케이션 운영을 위해 사용하는 가상주소입니다. DHCP라는 프로토콜은 가장 대표적으로 브로드캐스트로 운영되는 프로토콜입니다. 브로드캐스트 주소는 암기하고 있어야 합니다. 브로드캐스트 주소는 운영체제 설치 시 할당됩니다.
사진에서 보면 송수신지 Port가 68,67로 되어 있는데 DHCP data 자체가 사용하는 포트번호가 68 67번입니다.
송수신지 포트가 결정되면 자동으로 수신지 ip가 255.255.255.255가 할당되고, 자동으로 수신지 mac이 FFFF.FFFF.FFFF
가 할당됩니다. 브로드캐스트는 DNS나 ARP의 도움을 받지 않고, 자동변환을 합니다.
로컬과 다이렉트의 차이는 망 밖으로 나갈 수 있는지 없는지의 차이입니다. 원래 브로드캐스트는 망 밖으로 못 나갑니다. 망 내에서만 가능한 주소를 로컬이라고 하고, 망 밖으로 나갈 수 있는 주소를 다이렉트라고 합니다.
수신지 주소에 브로드캐스트 IP주소가 있으면 브로드캐스트 패킷입니다. 맥, 리눅스, 윈도우 등 아무 운영체제가 설치가 되면 브로드캐스 주소가 셋팅됩니다. 모든 컴퓨터가 공통적으로 브로드캐스트 주소를 가지고 있습니다.
Multicast
Multicase IP주소(MIP)
- 224-239.x.x.x
Multicase MAC주소
- 0100.5Exx.xxxx
멀티캐스트도 시스템(운영체제) 운영 또는 특정 프로토콜 운영 또는 특정 애플리케이션 운영을 위해 사용하는 가상주소입니다. 운영체제 설치 시 할당됩니다.
특정 멀티미디어 관련된 프로그램을 설치하게 되면 IP가 할당됩니다.
예를 들어, 아프리카 tv를 설치받는 순간 멀티캐스트 주소가 할당됩니다. 아프리카 tv 서버에서 데이터를 전송하면 특정 IP를 가진 다수(클라이언트)에게 트래픽을 송출하는 방식입니다.
227.154.65.50 → 0100.5E1A.4132
멀티캐스트의 맥주소는 0100.5Exx.xxxx 형식입니다. 나머지 6자리는 멀티캐스트 IP가 멀티캐스트 MAC주소로 바뀝니다. IP주소 10진수를 MAC 16진수로 바꿉니다.
** 앞부분이 0100 5e 더라도 멀티캐스트가 아닐 수도 있습니다. 원래는 48비트 즉, 24비트 앞 24비트 뒤로 구성되는데 멀티캐스트의 경우 25비트 앞 23비트 뒤로 구성됩니다. 멀티캐스트는 25비트가 일치해야 합니다. 25번째 비트가 0이 아닌 1이라면 멀티캐스트가 아닐 수 있습니다.
[정리]
- 브로드캐스트는 수신지의 MAC주소, 멀티캐스트는 수신지의 IP주소를 통해 알아보는 것이 안전합니다.
- 하나의 컴퓨터를 운영하면 3가지 유형의 주소를 다 가지고 있습니다.
- 식별자를 나타내는 유니캐스트 IP주소는 송신, 수신용으로 사용할 수 있습니다.
- 브로드캐스트는 2개, 멀티캐스트는 4~5개를 기본으로 있습니다. (cmd창에 명령어 입력하여 확인)
- 앱을 설치하게 되면 멀티캐스트 주소는 늘어날 수 있습니다. 반대로 또 앱을 삭제하면 멀티캐스트 주소는 줄어들 수 있습니다.
- 브로드캐스트나 멀티캐스트 주소는 수신용으로 사용합니다. 둘은 자동변환작업을 해서 DNS나 ARP의 도움을 받지 않습니다.
[cmd창]
arp -a 입력
위의 명령어를 입력했을 때 뜨는 멀티캐스트와 브로드캐스트 주소는 운영체제가 운영하기 위해 셋팅해 놓은 주소입니다.
ARP
IP주소를 MAC으로 변환해 주는 역할을 합니다.
ARP 패킷 종류
- ARP request 패킷 - 송신지가 수신지의 MAC주소를 조회하기 위해 보내는 질의 패킷으로, 브로드캐스트 방식으로 운영합니다.
- ARP reply 패킷 - ARP request에 대한 응답패킷으로, 유니캐스트 방식으로 운영합니다.
브로드캐스트방식으로 운영하는 대표적인 패킷이 ARP reques 패킷입니다. 브로드캐스트방식은 보내는 쪽의 정보가 다 들어 있습니다. 그러므로 요청을 받은 쪽에서는 응답을 할 때 유니캐스트 방식으로 응답할 수 있습니다. 왜냐하면 정보를 다 가지고 있기 때문입니다.
ARP Cache Table
IP 주소와 MAC 주소의 대응관계를 저장한 테이블입니다.
수신지 MAC 주소가 필요할 때, ARP 캐시를 조회해서 없으면 ARP request를 보냅니다. 한 번 요청했던 곳은 캐시에 기록을 해놓습니다. 같은 곳에 계속해서 요청을 하는 것은 비효율적이므로 기록해 놓는 것입니다.
[cmd 창]
arp -a 입력
[powershell 창]
ipconfig /displaydns 입력
계층별 장비
Forwarding과 Flooding
- Forwarding(포워딩) : 하나의 송신지 포트에서 하나의 수신지 포트로 트래픽 전송
- Flooding(플러딩) : 송신지 포트를 제외한 나머지 포트들로 트래픽 전송
케이블이 들어가는 물리적 인터페이스를 포트(4계층 포트와 별개)라고합니다.
그림에서 a는 1번 인터페이스에 연결되어 있는 상태이며, b는 2, c는 3, d는 4에 연결되어 있습니다.
a라는 pc가 c한테 데이터를 전송하고 싶은데 방식은 두 가지 입니다.
하나의 송신지 포트에서 하나의 수신지 포트로 전송하는 방법(유니캐스트 방식처럼; 포워딩)
송신지를 제외한 나머지 포트들로 전송하는 방법이 플러딩(브로드캐스트 방식처럼; 플러딩)
장비에서는 유니캐스트, 브로드캐스트 이런 말 안쓰고 포워딩/플러딩 이라고 합니다.
Switch(2계층 장비)
스위치는 경로db이름을 MAC Address Table이라고 합니다. 목적지와 그 목적지로 가기 위한 출구번호로 이루어진 것입니다. 2계층 장비이기 때문에 목적지 주소가 MAC 주소입니다.
(포워딩)스위치는 수신지 MAC주소를 확인합니다. 어디가려고 나한테 왔나를 먼저 체크합니다.(c) 그다음 경로db에서 검색해서 c로 보냅니다.
(플러딩) 스위치는 수신지 MAC주소 확인합니다. d로 가고 싶어 합니다. 그러나 경로db에는 d로 가는 정보가 없습니다. 그럴땐 모든 곳에 내보냅니다.
*경로db에는 브로드캐스트/멀티캐스트 주소를 등록하지 않습니다. 그렇다면 스위치는 브로드캐스트나 멀티캐스트 패킷의 전송은 어떻게 할까? 플러딩으로 합니다.
Router(3계층 장비)
[네트워크 개요] 그림 참고 (위에서 2번째 그림)
- Default gate way
게이트웨이는 망과 망을 연결시켜 주는 중계장비를 뜻합니다. 라우터나 멀티레이어 스위치, 게이트웨이(방화벽) 장비를 사용할 수 있습니다. 게이트웨이 주소는 내부망 주소를 써야 합니다.
게이트웨이로 사용할 수 있는 대표적인 장비는 라우터입니다. IP address를 가지고 운영합니다. 3계층 장비들의 경로db를 Routing Table이라고 한다. Routing Table은 목적지 주소와 출구번호로 구성되어 있습니다. 3계층 장비이기 때문에 IP주소를 기반으로 합니다.
사실 그림에는 없지만 라우터 밑에는 스위치가 하나 더 붙어있습니다. 그래서 목적지에는 그룹주소가 나타나 있습니다.
(포워딩)라우터는 수신지 IP주소를 확인합니다. 어디가려고 나한테 왔나를 먼저 체크합니다.(c) 그다음 경로db에서 검색해서 c로 보냅니다.
(플러딩) 라우터는 수신지 IP주소를 확인합니다. d로 가고 싶어 합니다. 그러나 경로db에는 d로 가는 정보가 없습니다. 그럴때는 안보내고 폐기합니다.
*경로db에는 브로드캐스트/멀티캐스트 주소를 등록하지 않습니다. 그렇다면 라우터는 브로드 캐스트나 멀티캐스트 패킷의 전송은 어떻게 할까? 안보내고 폐기합니다.
Hub(1계층 장비)
더비허브 == (1계층)
스위치허브 == 스위치(2계층)
hub는 주소가 없습니다. 따라서 경로db도 없습니다. 그래서 그냥 열린 문으로 다 보냅니다.(플러딩)
[정리]
허브 : 플러딩
스위치 : 플러딩, 포워딩
라우터 : 포워딩
Media Translation
- 3계층 이상의 장비에서 처리
- 출발지에서 목적지까지 가는 동안 3계층 주소(IP)는 변화가 없고, 2계층 주소(MAC)는 스위칭 환경에 따라 달라짐
PC_1에서 FTP로 보낼 때
[대부분의 예측]
Source MAC | Destination MAC | Source IP | Destination IP |
6666 | 21.7 | 34.250 |
실제로는 Destination MAC이 5555가 아닙니다.
목적지의 PC_1이 ARP request를 보냅니다. Switch가 받습니다.(브로드캐스팅으로) 그리고 플러딩으로 전송합니다.
라우터에 도착합니다. 라우터가 request를 받으면 폐기합니다.(브로드캐스팅이기 때문에) 왜냐하면 브로드캐스팅은 내부에서만 돌기 때문입니다. 따라서 5555는 올 수 없습니다. 즉, 그 Destination MAC을 정하는 게 media translation입니다.
*게이트웨이는 내부작업만 할 때는 필요 없습니다. 외부에서 내부, 내부에서 외부로 작업을 할 때 필요한 것입니다.
Media Translation
1) PC_1에서 FTP로 보낼 때
Source IP | Destination IP | Source MAC | Destination MAC | |
PC_1 -> RA | 21.7 | 34.250 | 6666 | 2222(GMAC) |
RA -> RB | 21.7 | 34.250 | 9999 | 3333 |
RB -> FTP | 21.7 | 34.250 | 7777 | 5555 |
3계층 주소인 SIP DIP는 변하지 않고, 2계층 주소인 SMAC, DMAC은 변합니다.
L3: IP address(산업표준주소); 3계층 주소 이상은 IP주소를 인지하고 있다는 의미.
L2: MAC address(비산업표준주소); 망마다 주소가 다름, LAN마다 주소가 달라질 수 있음.
2) FTP에서 PC_1로 보낼 때
Source IP | Destination IP | Source MAC | Destination MAC | |
FTP->RB | 34.250 | 21.7 | 5555 | 7777(GMAC) |
RB->RA | 34.250 | 21.7 | 3333 | 9999 |
RA->PC1 | 34.250 | 21.7 | 2222 | 6666 |
request가 스위치로 가면 스위치에서는 L2주소만 참조합니다.(A.M R.M) 즉, 수신지 IP와 수신지 MAC이 일치하는지 안하는지 확인할 수가 없습니다. 송수신지 IP는 3계층 장비(게이트웨이)만 참고합니다.
해당 이미지는 Routing Table에 목적지인 5.0 주소가 없어서 오류가 발생하는 것입니다. 절대 수신지 IP와 수신지 MAC이 일치하지 않아서가 아닙니다!!
[실습]
[Options]-[Preferences]에서 Show Device Labels 체크해제, Always Show Port Labels 체크
1) ping 테스트
192.168.1.10 더블클릭 -> 상단 Desktop 클릭 -> Command Prompt 클릭 -> ipconfig /all 입력 -> MAC 주소 복사 후 라벨 밑에 붙여 넣기
192.168.1.20도 동일하게 만들어줍니다.
ipconfig를 입력하면 게이트웨이 맥주소를 알 수 있습니다.
192.168.1.10에서 arp -a 입력 후 확인하면 아무것도 안 나옵니다. 192.168.1.20으로 핑을 보내봅니다.
명령어로 ping 192.168.1.20 입력합니다. 다시 arp -a 입력 후 확인하면 캐시테이블에 저장된 것을 볼 수 있습니다.
ping은 echo-request, echo-reply로 이루어져 있습니다. ping은 가는 패킷, 오는 패킷 따로 있습니다.(sent, received)
이번에는 192.168.5.10으로 ping을 보내봅니다. 외부망이므로 실패할 것입니다. 5.10으로 가기 위해서는 게이트웨이의 MAC주소가 필요합니다. 그래서 캐시테이블에 게이트웨이의 MAC주소가 셋팅됩니다. cmd에서 arp -a를 했을 때 게이트웨이 맥 주소가 입력되어 있다면 아 얘는 밖으로 나가려고 시도했구나를 알 수 있습니다.
질의에서 응답까지의 시간을 rtt라고함(round trip times)
request timed out은 진짜 reply가 안올수도 있고, 사용자가 정해놓은 시간 내에 오지 않은 것을 의미한다.
스위치는 스위치를 통과하는 데이터의 송신지 맥주소를 기반으로 경로db(MAC address table)에 등록합니다.
스위치를 더블클릭 -> 상단 CLI 클릭 -> Enter 후 Swith> 이렇게 변하면 en 입력 -> sh mac-address-table입력
DNS cache table = 문자주소 : IP addr
ARP cache table = IP addr : MAC addr
MAC address table = MAC addr : Port number
트래픽 흐름
내부망
1. DNS를 이용하여 수신지 IP 주소 조회
- DNS 캐시 조회(c:\> ipconfig /displaydns)
- Hosts.txt 파일 조회(C:\Windows\System32\drivers\etc\hosts)
- DNS 서버 이용
2. 송신자 서브넷 마스크를 이용하여 수신자가 내부망에 존재하는지 확인
3. 수신지 MAC 주소 조회
- ARP 캐시 조회(c:\> arp -a)
- ARP request/reply 이용
4. 수신지로 트래픽 전송
외부망
1. DNS를 이용하여 수신지 IP 주소 조회
- DNS 캐시 조회(c:\> ipconfig /displaydns)
- Hosts.txt 파일 조회(C:\Windows\System32\drivers\etc\hosts)
- DNS 서버 이용
2. 송신자 서브넷 마스크를 이용하여 수신자가 외부망에 존재하는지 확인
3. Gateway의 MAC 주소 조회
- ARP 캐시 조회(c:\> arp -a)
- ARP request/reply 이용
4. Media Translation 방법으로 수신지로 트래픽 전송
내부에 있으면 게이트웨이 사용x
외부에 있으면 게이트웨이 사용o
1~3단계 명령을 내리는 주체는 os, 즉 운영체제입니다. 운영체제는 하드디스크 관리, 메모리 관리, 스케쥴링 등의 역할을 하는데 그중 네트워크 관리도 있습니다.