http://hsm-racoon.tistory.com/27?category=988566


설정은 전에 쓰던 설정을 사용합니다.
GNS3에 WireShark 기능이 내장되어 있어서 생각보다 쉽습니다.

3계층에 주된 것은 IP인데 ICMP와 ARP는 IP를 보조하는 역할을 합니다.
1.221.80.2 (kali)에서 1.221.80.14(win7)에 ping을 보내봅니다.





핑을 보낸뒤에 GNS3 로 가보면






연결되어있는 선에 오른쪽 클릭을하면 'Start capture' 라는걸 클릭을하면 클릭한 순간부터 패킷 캡쳐를 시작합니다.










그럼 다음과 같이 통로에 돋보기 모양이 활성화 되며 다시 오른쪽 클릭하여 
'Start Wireshark' 를 클릭합니다.
다음과 같은 화면에서 위에 필터를 확인해 봅시다.





PING을 보냈고 1.221.80.2에서 1.221.80.14 가 서로 통신한 것을 확인 할 수 있습니다.
ping을 보낼때는 ICMP 프로토콜을 사용합니다.
ICMP 프로토콜은 IP에 상태와 오류에 대한 통신을 하는 프로토콜입니다.

위에 ARP 프로토콜도 보이는데 자세히 알아봅시다.





3계층 'Address Resolution Protocol (request) 가 보이는데 더블클릭을 해줍니다.
Opcode는 request(1) 로 나와있습니다. 요청을 하는것을 알수있습니다. 
Sender는 보내는사람 Target은 받는사람입니다.
<원래는 Target의 Mac주소가 00:00:00:00:00:00 으로 표시되어야 합니다.>

바로 아래 arp패킷 캡쳐를 확인해봅니다.





Sender와 Target 바뀐것을 확인할 수 있습니다.
이와같이 ARP 프로토콜은 IP주소를 알지만 MAC주소를 모를때 통신하는 용도로 확인합니다.
매번 통신을 할때마다 ARP를 보내면서 통신을 하면 속도 저하의 원인이 되므로 
ARP Cache Table을 이용하여 ip주소와 mac주소를 저장합니다.

1.ping x.x.x.x 
2.ARP Cache Table(한번 알아온 것은 여기에 기록한다.)
3-1. ARP Table에 있는가? yes-> 중지
3-2. ARP Table에 있는가?  no ->4
4.ARP Request
5.ARP Reply
6.ARP Cache Table 기록

다음은 이 ARP프로토콜의 약점을 이용한 
ARP Cache Poisoning ( ARP Spoofing) 공격을 해보겠습니다.







패킷 라이브 캡쳐를 GNS3에서 사용할 때 다음과 같은 오류가 뜨는 경우가 있다. 이럴때는
Edit->Preferences 에서 Packet capture 부분을 확인한다.





Settings 부분에서 Packet capture reader command: 에 있는
첫번째 큰 따옴표 부분 " " 의 Wireshark의 경로를 확인한다.
<필자는 Wireshark를 C드라이브에 깔았다가 새로 파티션한 E드라이브에 다시 깐 것을 GNS3가 알지 못하여서 오류가 발생했다>




이번에는 Router의 ip를 설정해 보겠습니다.





GNS3에서 Router를 오른쪽 클릭하여서 Console로 들어갑니다.
그럼 다음과 같은 창이 나옵니다.





Cisco IOS에는 4가지 단계가 있습니다.

User Mode->Privileged Mode -> Global Configuration mode -> Regional Setting Mode

어떤 모드인지는 앞에 보시면 아는데
R1# 이것은 #가 있으므로 Privileged Mode(특권모드) 입니다. 원래 기본적으로는 유저모드로 되어있는데, GNS3는 생략하고 바로 특권모드로 실행이 됩니다.

이 상황에서 disable 을 입력하고 엔터를 치면
R1> 으로 바뀌는데 이 모드가 유저모드 입니다.

다시 특권모드로 돌아가고 싶으면 enable 을 입력합니다.

다시 본론으로 돌아와서 ip를 설정하고 싶은데 어떤 이더넷 네트워크가 있는지 확인하기 위해서
show ip interface brief 를 입력합니다.





다음과 같이 나옵니다. 
FastEthernet0/0 과 0/1 두개가 있고 모두 IP-Address가 주어지지 않았고, Status와 Protocol이 모두 down 상태입니다.
이제 설정을 해보겠습니다.
설정하고 싶으면 Cisco IOS의 4단계중 Global Configuration Mode(전역설정) 모드여야 합니다.

Configure Terminal을 입력합니다.
그러면 앞에가
R1 (config)# 
로 바뀐것을 확인 할 수 있습니다.
여기서 내가 설정하고싶은 이더넷을 골라줍니다.

interface fastEthernet 0/0
입력하면 이제
R1(config-if)# 
로 바뀐것을 알 수 있습니다.









(1)번 포스팅에서 라우트의 ip를 1.221.80.1로 지정하기로 하였습니다.
다음과 같이 입력합니다
ip address 1.221.80.1 255.255.255.240
ip를 1.221.80.1로 설정하고 서브넷마스크는 255.255.255.240로 설정하는 명령어 입니다.
그다음 exit를 두번! 입력합니다
exit
exit
그러면 이제 R1#로 돌아온 것을 확인할 수 있습니다.
ip를 설정하여 주었으니 확인 해봅시다.

show ip interface brief





다음과같이 FastEthernet0/0의 ip주소가 1.221.80.1 로지정된 것을 확인 할 수 있습니다.
하지만 서브넷 마스크가 잘 지정이 됐는지 확인할 순 없었는데, 이때 다음 명령어를 입력합니다.

show running-config 
또는
show run




이 명령어는 현재 설정된것을 확인 할 수 있는 명령어 입니다.
그럼 다음과 같이 아래에 --More--가 나오는데 스페이스를 누르면서 ip 정보를 찾아봅시다.





3번정도 누르니까 나오네요. 위에 FastEthernet0/0이 서브넷마스크 255.255.255.240이 지정된것을 확인 할 수 있었습니다. 스페이스를  막 눌러 빠져 나옵니다.
이제는 protocol을 up 해주는 명령어를 사용 해보겠습니다.

configure terminal
interface fastethernet 0/0

그러면 다시 R1(config-if) 가됩니다.
이 상태에서 
no shutdown
을 입력해줍니다. 이 명령어는 상태와 프로토콜을 up해주는 명령업니다 (반대는 shutdown)
다시 exit를 두번 입력합니다
exit
exit
R1# 상태에서 다시 show ip interface brief 를 하면 다음과 같이 나타납니다.





status와 protocol이 up 된 것을 확인 할 수 있습니다.

이제 마지막으로 내부적으로 제대로 설정이 되었는지 ping을 뿌려보겠습니다.
ping은 특권모드에서 가능합니다. (R1# 상태)
현재 라우터의 IP는 1.221.80.1 이므로 내부에 연결되어있는 windows7 의 ip인
1.221.80.14로 ping을 보내봅시다.

ping 1.221.80.14





핑이 가는것을 확인 했습니다. 
. 표시는 실패 !표시는 성공을 나타냅니다.

종료전에 
copy running-config startup-config 
를 꼭 해줘야합니다!. 설정을 저장하는 명령어 입니다.
하지 않으면 매번 gns3를 킬때마다 ip를 설정해줘야 합니다.

또는
라우터를 오른쪽 클릭하고 -> export config 을 누르면 셋팅을 따로 빼와서 저장합니다.

Destination filename [startup-config]? 가 뜨면 그냥 엔터 눌러줍니다.




제가 이번 포스트에 사용한 프로그램들은 다음과 같습니다.
Oracle VM VirtualBox 5.0.40 
GNS3 (홈페이지 가면 로그인 하고 바로 받을 수 있는 것)
칼리리눅스 (공격자)/ 윈도우7 (피해자)


일단 VirtualBox에 가상머신을 까는것은 따로 포스트하지 않겠습니다.
GNS3를 킨다.
위에 메뉴바에서 Edit->Preferences 클릭하면 다음과 같은 창이 나옵니다.





여기서 VirtualBox 안에 VirtualBox VMs를 클릭합니다.





저는 미리 설정이 되어있는 상태입니다.
아래에 New버튼을 누르면 VirtualBox와 자동 연결되어 VM을 불러올 수 있습니다.
주의: VirtualBox 안에 있는 가상머신의 이름이 한글이면 오류가 나타납니다!!
-간혹 복제하셔서 VM이름이 'kali _복제'라고 되어있을 수 도 있습니다. 한글은 못읽어옵니다.

GNS3는 자기 마음대로 가상으로 네트워크를 꾸릴 수 있습니다.
따라서 상황을 하나 줍시다.

*서브넷마스크에 관한 설명은 포스팅 했습니다.

-상황-
네트워크를 설계하는데 회사 내부의 컴퓨터 40대와 서버 10대를 설치하려 합니다.
컴퓨터 40개는 사설 ip로 묶어서 공인 ip 1개로 사용합시다. (NAT이용)
서버는 사설IP를 쓰기에는 무리가 있으므로 서버 1개당 각각 1개의 공인 ip가 필요해서
총 11개의 공인 ip가 필요합니다.

ip를 신청해서 다음과 같이 나왔습니다.

1.221.80.0 /28 

1.221.80.0은 IP address 주소이고 /28은 28비트가 정해져서 내려왔다는 뜻이므로 
서브넷 마스크는 255.255.255.240이 됩니다. 
1111 1111 . 1111 1111 . 1111 1111. 1111 0000 (28비트가 정해짐)
그러면 제가 사용할수 있는 아이피는 
1.221.80.0 부터 1.221.80.15까지 입니다. 맨처음은 주소번호이고 마지막은 브로드캐스트이므로
총 14개를 사용할 수 있네요.

이런식으로 생각할 수 있습니다.


이제 GNS3로 간단하게 가상 네트워크를 꾸려봅시다. (후에 해킹도 할 예정이라 간단히)





다음과 같이 설계했습니다. (아직 IP는 주지 않은상태)
라우터에 1. 221.80.1 의 IP를 줄 예정이고, 칼리(공격자)에는 1.221.80.2 
윈도우7(피해자)에게는 1.221.80.14를 줄 예정입니다.
저렇게 설정하고 연결한 후에 칼리부터 IP를 설정하겠습니다.
-참고 라우터 이미지는 따로 다운을 받아야 합니다. 
-Edit-Preferences에서 Dynamips - IOS routers에서 iso 파일을 넣어줘야 해당 라우터가 사용 가능합니다.





칼리 리눅스에서는 다음과 같이 입력합니다.
vi /etc/network/interfaces
-vi 사용법은 따로 포스팅 하지 않겠습니다

그러면 나오는 창에 다음과 같이 적습니다.










auto eth0
iface eth0 inet static
address 1.221.80.2
netmask 255.255.255.240
gateway 1.221.80.1

address는 설정할 아이피를 입력
netmask는 서브넷마스크를 입력
gateway는 빠져나갈 곳 (라우터의 주소)를 입력 하면 됩니다.

이렇게설정을 한후 esc-> :wq! 를 입력하고 나와주고 reboot 을 명령어로 입력하여 재접속 해줍니다.
재접속 후 ifconfig 명령어로 eth0 네트워크가 잘 잡혔는지 확인을 합니다.

다음은 windows7 의 ip를 잡아보겠습니다.
windows는 우리가 아는 방법대로 하면 됩니다. 
윈도우키 +R 을 눌러 ncpa.cpl 을 입력합니다. 그럼 다음과 같은 익숙한 화면이 나옵니다.





오른쪽 클릭- >속성 에 들어가서 IPv4 속성에 들어갑니다. 그리고 다음과 같이 설정합니다.





-ip를 1.221.80.14로 준 것 말고는 변함이 없습니다.
-DNS서버 주소는 비워둡니다.
이와 같이 설정을 한 후에 
윈도우키 +R -> cmd 를 입력후 나오는 창에 ipconfig를 입력하여 설정이 잘 됬는지 확인합니다.

그리고 마지막으로 VirtualBox로 갑니다.





다음과같이 kali와 win7에 오른쪽클릭을 한후 설정을 들어갑니다.





네트워크를 클릭한 후 다음에 연결됨을 연결되지 않음으로 체크하고 확인을 누릅니다
마찬가지 kali에도 적용을 해줍시다.

이제 내부적으로 제대로 연결되었는지 확인하기위해 핑을 보내봅니다.





win7으로 가셔서 cmd창에 1.221.80.2(칼리리눅스의 ip주소) 에 핑을 날려보면 잘 되는 것을 
확인 하실 수 있습니다.
마찬가지고 칼리로 가셔서 window ip에 핑을 날려봅시다.





아까랑 다르게 핑이 가지가 않습니다. 왜 그럴까요?
이와 같은 경우에는 kali 와 window 사이에 무언가가 막고 있다는 뜻입니다.
window-> kali로 가는것이 가능하지만 kali->window로 가는게 막혔으면
window에 자동으로 설정되어있는 방화벽이 문제일 수 있습니다.
방화벽을 내리고 다시 핑을 보내봅시다.
-방화벽은 window7 (VM) 에 가셔서 윈도우+R->firewall.cpl 을 입력하면 설정 가능합니다.





핑이 잘 가는 것을 확인했습니다.
다음 포스팅은 Router의 ip 설정입니다.




Nmap 포트스캔에 대해 와이어샤크로 알아보도록 해보겠습니다.
적절한 ip는 그냥 토토사이트 광고오는 도메인주소를 nslookup 하셔서 나오는 ip에 하도록 하겠습니다.
포트스캔에 종류에는 여러가지가 있습니다. 상대방이 어떤 포트가 열려있는지 확인하는 것이죠
tcp는 기본적으로 3핸드-쉐이킹 방법으로 연결을 하는데 이것을 이용한 방법입니다.
공격자가 사용하면 어떤 포트로 공격할지 준비를 하는거고 보안가가 사용하면 취약점을 진단하는 용도로 쓰입니다.



1.Open Scan
칼리에서 명령어는 nmap -sT [IP] 이다






다음과같이 일반적으로 포트에 신호를 주고 3핸드쉐이킹을 한다.







닫힌포트에는 [RST,ACK]가 오는것을 알 수 있다.



2.Half Open Scan
명령어는 nmap -sS [IP] 이다. 특정 포트에 주고싶으면 -P [포트번호] 하면 된다.







열린 포트에는 연결이 이루어 지지않게 끊어버리는것을 볼 수 있다.







닫힌포트는 똑같이 [RST,ACK]가 온다.






2.스텔스스캔
스텔스스캔은 IDS/IPS에 탐지되지 않기위해 쓴다. 정상 연결이 아니고 플래그를 보내고 기다리는 형태이므로 정확하지 않을 수 도있다. FIN , ACK , 또는 플래그가없는 패킷을 보내면 열려있는 포트는 응답이 없고 닫힌 포트는 [RST]를 보낸다.
ACK는 -sA
FIN은 -sF
NULL은 -sN 이다.






셋다 RST를 보낸다고 닫혀있는 포트라 생각하면 안된다.
스텔스스캔은 숨어있는 포트를 찾기에 적절하다.







nmap -sA -P0 -p [포트범위처음-포트범위마지막] [IP]
으로 22000번 포트가 열려있다는 것을 추측할 수 있다.

3.Xmas Scan
모든 플래그를 올려서 보내는 방법이다.
위에 설명과 비슷하다.

4.UDP Scan
-sU 명령어를 사용한다. UDP는 열려있으면 아무런 응답이없고 닫혀있으면 ICMP로 핑이 온다
"Destination Unreachable"






그외에 -T (1~5)까지로 포트스캔의 시간을 조정하는 방법도 있다.


와이어샤크를 킨 후에  한국 인터넷진흥원에 접속합니다.







너무많으니까 HTTP로 필터를 주고 GET표시난것 클릭하셔서 URI가 kisa.or.kr 인 패킷에 오른쪽 클릭을 합니다.
그리고 Follow ->TCP Stream 을 하면 그 패킷의 흐름만 볼 수 있습니다.
그런식으로 아무 사이트에 접속을 해봅시다.






1. 클라이언트 -> 서버 에게 SYN 을 보냅니다.
2. 서버->클라이언트 SYN,ACK를 보냅니다
3. 클라이언트->서버 에게 ACK를 보냅니다.
이로써 클라이언트와 서버간에 연결이 되었습니다. 이 연결을 3핸드 쉐이킹이라고 합니다.







cmd에서 netstat -an 을 입력하면 현재 연결되어있는 ip와 포트를 확인할 수 있습니다.
ESTABLISHED라고 나온것이 연결되어 있는 것입니다.







밑에 UDP연결들은 보시면 내것만 나와있고 상대편것은 나와있지 않습니다. 이렇게 UDP는 누가 들어와도 상관하지 않습니다. 3핸드쉐이킹을 하지 않아서 완벽한 연결이 없습니다.











다시보면 
4.HTTP (웹페이지)를 GET 하는 명령을 서버에게 보냅니다.
5.서버는 ACK로 알겠다고 응답합니다.
6.서버가 전송을 시작합니다. 이때 패킷이 클때 단편화를 하며 보내는데 Ack=537이 되어있는 것은 하나의 패킷을 단편화 한 것입니다. 








Seq Number는 1 응답하면서 +1 응답을 한다하고 1로 되었고
ack는 537입니다. 이제 다음 sequence number는 1에 TCP Segment Len을 더한 1461입니다. 
다음 패킷을 보면








Sequence number가 1461인것을 볼 수 있고. 그다음 Seq num은 1461+1460인 1921인것을 알 수있습니다. ACK=537 이므로 전에 패킷과 하나의 덩어리라는 것입니다.
계속 보내다가








IP 192(클라이언트)는 14(서버)에게 중간중간에 seq 537번 (서버에겐 ack=537입니다)
에 있는 자료 2921번까지 잘 받았다. 라는 응답을 합니다. 이것은 지정된 시간에 보내도록 한 약속입니다. 중간중간에 확인체크가 잘 되면








서버는 클라이언트에게 다시 전송을 시작합니다.(2921부터 다시 시작)








중간중간 Flag에 ack말고 Push가 1로 올라온 경우가 있습니다 [PSH,ACK]
이것은 중간중간 데이터버퍼가 쌓이면 다음계층으로 보내는 역할을 합니다.
데이터 모아뒀다가 어느정도 쌓이면 다음으로 보내고, 다시 모아두면 보내고 하는 역할을 PSH가 합니다.









그리고 클라이언트가 서버에게 TCP Window Update라는 패킷을 보내는데 이것은 버퍼가 얼마나 남았는지 많은지 적은지를 보내주고 남은 크기에따라 서버가 보내는 속도를 조절하면서 합니다.
이것이 흐름제어 이고 슬라이딩 윈도우 기법입니다.








이 패킷 아래에 설명을 보시면 
[Calculated windo size: ---] 가있는데 이것이 0이면 보내는 것을 중단합니다.







이렇게 전송을 다하면 
1.서버는 클라이언트에게 다보냈다는 OK사인을 보내고
2.클라이언트는 서버에게 ACK 사인을 보내고 
3.TCP Window 사이즈를 보내주고 혹시 남아있는 패킷을 위해 잠시 기다립니다.
4.그리고 [FIN,ACK]사인을 보내고 연결의 종료를 알려줍니다
5.[ACK]를 서버는 보내주고 연결이 종료됩니다.
이와같이 전송완료/종료(서버)->알겠음(클라이언트)->잠깐기다림->종료확인(클라이언트)->서버(확인)
하는 것을 '우아한 종료' 라고 합니다.








[FIN,ACK] 패킷에 FIN Flag가 올라온 모습입니다


UDP는 User Datagram Protocol 입니다.
TCP랑은 다르게 대충~ 하는 성격을 가져서 데이터의 속도만 중요시한 프로토콜입니다.
비 신뢰성, 비 연결지향성, 최소화된 Header로 
재 전송 시 빠른 처리를 위하여 작은 단위로 데이터를 생성합니다.
단편화 크기는 512byte로 작습니다.

빠른 통신 속도가 필요한 서비스에 적합합니다 ->실시간 통신, 음성 서비스 등






출발지 주소 / 목적지 주소 /길이 / 체크썸 으로 간단한걸 알 수 있습니다.
WireShark로 UDP를 볼 수 있는 가장 쉬운 방법은 바로










nslookup 으로 아무 도메인이나 친 후에
WireShark로 가서 필터에 dns 를 쓰고 확인해봅시다.






4번째 UDP를 보면 소스포트/ 데스티네이션포트/길이/첵썸 을 알 수 있습니다.





ip 헤더입니다. 와이어샤크를 키고 cmd로 가서 
구글(8.8.8.8)에 ping을 보내봅시다.







ip니까 3계층을 봐야합니다. Internet Protocol Verison 4, ~~를 클릭해 봅시다.











가장 처음에 나오는 것 0100 0101 입니다 .
-앞에 0100은 Version 4를 의미한다고. 와이어샤크가 알려줍니다.
-뒤에 0101 은 헤더길이 (IHL) 입니다.
-Differntiated Services Field는 8bit이고 패킷의 우선순위를 지정해줍니다. 0값이니 일반입니다.
-Total Length는 60인 것을 보니 60바이트 인것을 알 수 있습니다.
-Identification: 이것은 큰 바이트의 값을 보낼때 단편화라는 작업을 하게되는데 Flags와 같이 설명하겠습니다. 
cmd를 켜시고 
ping 8.8.8.8 -l 30000 
명령어를 보내면 google에 3만바이트짜리 핑을 보냅니다. 그리고 와이어샤크를 확인해봅니다.







이렇게되면 단편화를 하여 핑을 보내는데 Identification은 단편화 되었을때, 잘게 잘라졌을때 같은것 끼리 같은값을 가지게 됩니다. 뒤에 Flags도 와이어 샤크가 알려주듯이
마지막 more fragments가 set 되어있는걸로 보아 뒤에 더 값이 있는것을 알 수 있습니다.
단편화의 마지막 조각은 저 값이 0으로 되어있습니다.

-TTL은 라우터를 거쳐갈때마다 1개씩 감소하는 값으로 길을 찾지못해 빙빙도는 패킷이 발생할 때 네트워크 성능이 저하되는것을 방지할 수 있는 기능입니다. TTL이 0이 될때 라우터는 패킷의 시체를 담아서 발신지로 보내줍니다.
-Protocol 은 프로토콜 종류를 알려줍니다. ping이므로 ICMP입니다.
-checksum은 오류가 있는지 확인하는 코드입니다.
나머지 소스는 출발지 데스티네이션은 목적지 입니다.

이처럼 와이어샤크를 이용하면 헤더에 따라 분석하는것이 가능합니다.
원래는 다 이진수로 표현되어 있는것을 와이어샤크가 보기쉽게 분석해주는 역할을 합니다.


cmd에 가서 netstat -nr 을 치면 나오는 테이블입니다.
LAN을 벗어나 WAN으로 가고 MAN으로 가려면, 또는 멀리있는 컴퓨터와 통신을 하려면 수많은 라우터를 거치게됩니다. 이들은 어떻게 찾아가는 걸까요? 
저의 ip는 192.168.25.18 입니다.

IPv4경로 테이블에서 계산하는 방법은 간단합니다.
내가 '원하는 목적지의 ip 주소'와 저기 나오는 테이블의 '네트워크 마스크' 와 AND 연산을 하여서
그 계산값이 '네트워크 대상'값과 일치하면 안내를 받으면 됩니다.

계산을 맨 아래부터 시작합니다. 
만약 제가 192.168.25.22와 통신을 하고싶다면 어떻게 해야할까요
맨 아래부터 계산을 합니다.

192.168.25.22 와 255.255.255.255의 2진수 계산값은 192.168.25.22 입니다. 
255.255.255.255가 아니므로 일치하지 않습니다. 위로올라가서

192.168.25.22 와 240.0.0.0의 AND 값은 224.0.0.0이 아니고
192.0.0.0 입니다. 역시 일치하지 않습니다.






결국 일치하는 값을 찾을 수있는데 바로

255.255.255.0과 AND연산을 하고 '네트워크 대상'값이 192.168.25.0인

이것이죠. 게이트웨이의 값이 '연결됨'이므로 다이렉트로 연결되었다는 뜻입니다.
같은 LAN라는 뜻이죠.

이렇게 되면 밖으로 나가는 라우터를 거칠 필요 없이 대상의 MAC만 알면 통신이 가능합니다.
같은 LAN상에 있기 때문이죠.

MAC은 어떻게 아냐구요?
ARP Cache Table을 확인해서...없으면 ARP를 보내고... (전에 포스팅 했습니다.)

하나 더해봐서 만약 1.2.3.4와 통신을 하고싶다면 어떻게 해야 할까요.
아마 계산을 해보면 맨위에있는
0.0.0.0 / 0.0.0.0 과 일치하겠네요.
이 값을 디폴트 라우팅 값이라고 합니다.
테이블 맨 위에 있기때문에 마지막에 연산해서 아무것도 일치하지 않는경우 
옆에 써져있는 게이트웨이 주소로 가면 되는겁니다.

그럼 우리는 1.2.3.4와 통신하고 싶으면 게이트웨이 192.168.25.1로 우선 안내를 받죠.
그렇게 나가면 안내를 받은 곳에서 또 테이블을 찾아서 다른곳으로 안내를 받고 
최종적으로는 1.2.3.4에 도착할 수 있는 겁니다.


CIDR은 Classless Inter Domain Routing 으로 서브넷팅을 할때 좀 더 편하게 
한눈에 알아볼 수 있게 하는 방법이다.

만약 206.10.9.0 라는 ip address와 255.255.255.128이라는 subnetmask가 주어졌다면
계산을 할텐데 <편의상 마지막 옥텟만 2진수로 씁니다>
-표의 3번째 칸은 AND 연산을 한 값

206
10
9
0000 0000(0)
255
255
255
1000 0000(128)
206
10
9
0000 0000(0)

계산이 이렇게 됩니다. 그러면 ip는 두가지 영역으로 분리됩니다.
206.10.9.0 ~ 206.10.9.127
206.10.9.128 ~ 206.10.9.255


이것은 각각 2^7 -2 개의 ip를 할당할수 있는 두개의 영역을 나누어 진 것이고. 따라서
207.10.9.0/25 라고 표현을 합니다. 
그냥 쉽게 서브넷 마스크의 연속된 1의 갯수라고 생각하면 됩니다.
여기서 따로 Subnetmask로 표현을 하지 않고 옆에 /25같은 방법으로 나누는 것을 CIDR이라고 합니다.


+ Recent posts