본문 바로가기
AWS Cloud School 8기

응용 문제/ PAT,DNAT + GNS,VM,Xshell / 웹페이지 정적으로 업로드

by YUNZEE 2025. 1. 14.
728x90
리눅스 컬러 설명?

흰색: 디렉토리

파랑: 파일

빨강: zip파일

보라, 핑크: 사진

간단한 무료 웹페이지 배포

- wget 설치

-> 인터넷에서 파일이나 웹 콘텐츠를 다운로드할 때 사용하는 명령줄 기반의 도구

설치: yum install -y wget

[root@web ~]# wget https://www.free-css.com/assets/files/free-css-templates/download/page296/oxer.zip

 

- 파일이 잘 있는 걸 확인할 수 있다.

 

- unzip이라는 명령어가 없다면 위에랑 같은 방식으로 설치

- yum install -y unzip

- unzip oxer.zip

-r: 하위 폴더 포함해서 복사

- 해당 경로를 보면 oxer-html이라는 폴더 자체가 복사된 걸 확인 가능하다.

 

- /var/www/html 하위에 oxer-html라는 폴더가 존재하므로 접속 시 이 경로를 지정

 

실습) 211.183.3.80으로 접속했을 때 템플릿이 보이도록 해보시오 

[root@web ~]# wget https://www.free-css.com/assets/files/free-css-templates/download/page296/klinik.zip

[root@web ~]# unzip klinik.zip

 

방법 1) 웹루트디렉토리(/var/www/html)에 '템플릿의 내용물'을 복사

 

*은 모든 것을 의미함

방법 2) 웹루트디렉토리 자체를 변경

rm -rf/var/www/html/*

- 이동, 파일이나 폴더의 이름을 바꾸는 부수적인 효과 

내가 원하는 건 사용자들이 접속했을 때 /var/ww/html/sub라는 경로로 가는 것

- httpd.conf: 설정파일

- sub 추가

 

- 사용자들이 내 웹서버에 접속했을 때 가는 웹루트디렉토리를 /var/www/html/sub로 변경

 

[root@web ~]# systemctl restart httpd

- 기능적인 변경사항이 발생하면 재시작으로 반영시켜줘야 함

 

 

 

문제 1

 

 

1. 내부와 외부를 보고 생각한 다음 

2. 설정해야 하는 IP구성(GNS에 남기기)

3. 내가 구성하고 싶은 기능 = WEB에 템플릿을 올리고 싶음

3-1. web서버에 템플릿을 구성하고 싶음

- 외부(8.8.8.8)와 통신이 되어야 함(PAT)(NAT)

- 211.183.3.100을 목적지로 찾아오는 대상들로 하여금 web서버에 접속이 되게 하고 싶음.(DNAT)

do sh ip route

 - 라우팅 테이블에 ip주소가 있다면 소통이 가능하다는 것이지만, 라우팅 테이블에 ip주소가 없다면 당연히 소통이 안됨. 그래서 8.8.8.8이 소통이 안 되는 이유는 라우팅테이블에 정보가 없기 때문이다. 따라서 디폴트루트를 설정해 줘야 됨

 

넥스트홉은 VM8의 GW인 211.183.3.2 여야 한다. 왜냐하면 인터넷을 하고 싶기 때문임.

211.183.3.100이 안 되는 이유는?

1. GNS3의 클라우드 모양인 것은 스위치 기능을 한다. 그러니 헷갈리면 안 됨

2. 그리고 전에 cisco네트워크 공부했을 때 넥스트홉은 다음 ip주소다. 하지만 스위치 (클라우드 모양) 에는 할당된 ip주소가 없기 때문에 자연스럽게 다음 IP주소인 GATEWAY 가 된다.

목적지주소는 왜 211.183.3.100일까? 211.183.3.2는 왜 아닌가? 

http:80 브라우저를. 100을 통해서 보내야 내부 ip에 잘 도달할 수 있다. DNAT를 통해서 외부에서 내부로 보낸다는 것을 잊지 마라

 

R1#conf t

R1(config)#int f0/0

R1(config-if)#ip add 10.10.1.150 255.255.255.0

R1(config-if)#no sh

 

R1(config-if)#int f0/1

R1(config-if)#ip add 211.183.3.100 255.255.255.0

R1(config-if)#no sh

 

 

- web에서 GW와 통신이 되는 걸 확인

- 내가 원하는 건, 내부에 있는 web이라는 서버에 템플릿과 httpd를 다운로드하여 설치하는 것 = 인터넷이 가능해야 됨 = R1에 PAT설정

 

R1(config)#access-list 1 per 10.10.1.0 0.0.0.255

# 출발지 정의

 

내외부설정

 

R1(config)#int f0/0

R1(config-if)#ip nat inside

 

R1(config-if)#int f0/1

R1(config-if)#ip nat out

 

R1(config-if)#ip nat inside source list 1 int f0/1 over

# 나트 명령어

 

- PAT가 잘되는지 확인하기 위해 web VM에서 211.183.3.0/24 대역에 존재하는 호스트에 ping을 쳐보면

 

- R1에서 nat이 잘되는 걸 확인할 수 있다.

 

- PAT를 통해 R1의 f0/1의 주소인 211.183.3.100으로 변환이 되는 건 확인함

 

- 따라서 디폴트루트를 설정해줘야 한다.

- 넥스트홉은 vmnet8의 GW인 211.183.3.2 여야 한다. 왜냐하면 인터넷을 하고 싶기 때문

 

R1(config)#ip route 0.0.0.0 0.0.0.0 211.183.3.2

- 디폴트루트 설정

- 넥스트홉 활용

- 0.0.0.0 0.0.0.0은 어디든 가는 것

 

- R1에서 통신이 되는 걸 확인

- web VM에서도 통신이 되는걸 확인. 이후에 패키지를 설치한 후 잘되는지 확인한다.

 

- vmnet8에 존재하는 서버는 원래, vm1과 통신이 되면 안 된다. 왜냐하면 vm8의 서버의 gw가 211.183.3.2로 되어있고, 애초에 R1에 NAT이 걸려있기 때문임

 

문제 2
외부에서 내부랑도 소통이 가능하고 vm1과 vm2가 소통이 가능하도록 문제를 풀어보도록 하겠습니다.

- 내가 만든 DNS3구조

- VM2와 VM3 각각 만들어줌

- Xshell에도 세션을 만들어 ping 확인해 보기

 - 이제 GNS로 돌아와서 ip add, NAT을 해주고, 마무리로 ping도 확인

R1

R1(config)#int f0/0           
R1(config-if)#ip add 10.10.2.30 255.255.255.0
R1(config-if)#no sh                 


R1(config-if)#int f0/1
R1(config-if)#ip add 1.2.3.4 255.255.255.0   
R1(config-if)#no sh

R2

R2(config-if)#int f0/0    

R2(config-if)#ip add 1.2.3.5 255.255.255.0
R2(config-if)#no sh         


R2(config-if)#int f0/1                    
R2(config-if)#ip add 10.10.3.30 255.255.255.0
R2(config-if)#no sh

 

R2(config)#int f1/0
R2(config-if)#ip add 211.183.3.10 255.255.255.0
R2(config-if)#no sh

 

 R2에만 NAT설정

- R1은 내부에 있기 때문에 불필

- 캡처 못함 ㅎ

- 선생님 풀이를 넣겠음

- ip주소가 다른 거 참고 바람

 

R2(config)#access-list 1 per 10.10.0.0 0.0.7.255

R2(config)#int f0/0

R2(config-if)#ip nat in

R2(config-if)#

R2(config-if)#int f0/1

R2(config-if)#ip nat in

R2(config-if)#int f1/0

R2(config-if)#ip nat out

R2 (config-if)#ip nat inside source list 1 int f1/0 over

 

******질문*****

근데 이걸 NAT 해주기 전에도 통신이 가능하긴 함, 그럼 왜 해준 걸까?

원래는 nat를 안 해줘도 내 노트북 안에 동등한 위치에 가상 네트워크가 있어서 그래서 통신은 됨\

하지만 내부와 외부를 정해줘서 nat 설정을 해줘야 됨

 

 

route 설정

 

 

 

 

 

선생님 풀이 

- r1과 r2를 이어주는 대역인 1.2.3.~ 보다는 적어도 vmnet에서 안 쓰는 대역, 묶기 편한 것으로 해주는 게 좋음

ex) 10.10.7.0/24 => 10.10.0.0/21 0~7 대역으로 PAT할 때 묶기 편한 대역을로 정하면 나중에 PAT같은 걸 할때 편하게 할 수 있다.(슈퍼넷팅 할 때 좋다.) 

 

1. 기본 설정

- 위의 R1과  R2의 기본설정 동일

- vm2과 vm3 만들어줌

 

2. 라우팅

R1 라우팅

 

ip route 0.0.0.0 0.0.0.0 10.10.7.20

- 디폴트 라우팅. 이것만 해주면 R1의 라우팅은 끝이다. 

- 왜냐하면 211.183.3.0/24, 10.10.3.0/24가 디폴트 라우팅과 같은 방향이니까, 다 포함됨

 

R2 라우팅

 

- 디폴트 라우팅

- 디폴트 루트에 속하지 않는 네트워크를 따로 라우팅

 

- R2에서 VM1로 통신이 되는 걸 확인

 

3. PAT(vm1과 vm2가 외부로 통신 됐으면 좋겠어서 = DNAT는 필요가 없다.)

- 하지만 지금 문제 2에서는 굳이 해줄 필요는 없음

 

******질문*****

실습 1에서는 DNAT을 해주고 실습 2에서는 DNAT을 안 해줘도 되는 이유는?

실습 1은  외부에서 접속해서 내부 VM1의 템플릿 데이터를 받고 나와야 되기 때문이고

실습 2에서는 내부에서 핑을 쳤을 때 외부 핑이 닿는지만 확인하면 되기 때문에 DNAT 설정을 안 해줘도 됨

여기서 만약에 실습 1과 같은 조건이 붙는다면, DNAT설정을 라우터 2에 해줘야 됨

 

 

라우팅 설정이 안 된다?

ip ad 하고 no sh 했는지 잘 확인해 보기

 

여기까지

728x90