[클라우드 With네트워크/GNS실습(2)]

SooYeon Yeon·2022년 7월 18일
0

본사 & 지사 실습

HQ 라우터 구성

conf t
int fa1/0
ip add 10.10.100.1 255.255.255.0
no sh

int fa0/1
ip add 10.10.10.1 255.255.255.0
no sh

do show ip int br

BR 라우터 구성

conf t
int fa 0/0
ip add 10.10.200.1 255.255.255.0
no sh

int fa0/1
ip add 10.10.10.2 255.255.255.0
no sh

HQ, BR 에서 통신 확인

# HQ
do ping 10.10.10.2 # 연결 O, 10.10.10.1 -> 10.10.10.2로 통신 O
do ping 10.10.10.2 so 10.10.100.1 # 연결 X, 원래는 10.10.10.1인데 출발지가 10.10.100.1로 하는 것. 통신 X (2로 갔는데, 돌아올 때 10.10.100.1을 알아야하는데 모르기 때문에 통신이 안되는 것. 되게 하려면 라우팅테이블에서 찾아야함) 
do ping 10.10.200.1 # 연결 X, 10.10.10.1 -> 10.10.200.1 어디있는 지 모르니까 안 가는 것

# HQ 설정
ip route 10.10.200.0 255.255.255.0 10.10.10.2 # 해당 범위로 하는 목적지 패킷이 들어오면 HQ는 BR한테(10.10.10.2)로 보내면 됨 
# BR 설정
ip route 10.10.100.0 255.255.255.0 10.10.10.1 # BR에서도 설정

# HQ에서 잘 보내지는 지 확인
do ping 10.10.200.1 so 10.10.100.1 # 출발지를 10.10.100.1 -> 목적지 10.10.200.1

[HQ]에서 확인

  • c는 원래 이어져 있는 것
  • s는 정적으로 내가 등록했다는 뜻

ip route 1.1.1.0 255.255.255.0 2.2.2.2

ip route 1.1.0.0 255.255.0.0 2.2.2.2

  • 두자리만 고정, 1.1.0.0~1.1.255.255에 해당하는 애들은 전부 2.2.2.2로 보낸다는 뜻

ip route 1.0.0.0

  • 1.0.0.0~1.255.255.255에 해당하는 애들은 모두 2.2.2.2로 보낸다는 뜻

ip route 0.0.0.0 0.0.0.0 2.2.2.2

  • 0.0.0.0~255.255.2555.255까지 모두 2.2.2.2로 보낸다는 뜻 : default root (IPv4)
  • 이걸 설정하면 인터넷 가능

IPv4 : 4개의 옥텟. 각 옥텟은 8bit.

  • 범위 : 0.0.0.0 ~ 255.255.255.255

HQ에서 default root 설정하기

  • 내가 알지 못하는 모든 네트워크로 갈 때 192.168.1.1로. 인터넷이 가능해짐
ip route 0.0.0.0 0.0.0.0 192.168.1.1

BR에서도 동일하게 설정

  • 내가 알지 못하는 모든 네트워크로 갈 때 10.10.10.1로
ip route 0.0.0.0 0.0.0.0 10.10.10.1

Longest Match Rules

  • 라우터와 같이 패킷 처리 장비는 목적지 주소에 부합하는 네트워크 경로가 2개 이상일 경우에는 더 자세한 주소로 찾아간다. (목적지 패킷과 더 많이 매칭되는 경로)

10.10.200.100으로 가려고 할 때

C 10.10.10.200.0/24 ←상세한 주소

S 0.0.0.0/0

HQ 설정

  • 인터넷, 옆으로도, 본사 지사와의 통신도 가능하도록 하게 할 것임.
int fa0/0
ip add 192.168.1.114 255.255.255.0
no sh
do ping 8.8.8.8 # 연결 되는 것 확인 가능
exit
conf t
ip name-server 8.8.8.8 # PC에 8.8.8.8 넣는 것과 같은 효과
ip domain-lookup # 지금 부터 쓰는 글자를 DNS에게 물어볼 것임

do ping www.google.com # 정상적으로 동작

그러나, 뒤쪽에 있는 사설 ip는 인터넷 연결되지 못함

BR에서

  • 인터넷 연결확인
  • 리턴이 돌아오지 않음
do ping 8.8.8.8 # BR에서는 연결되지 않음

공유기 하나기때문에 PAT를 해야함

내 뒤에 있는 것 중 어떤 걸 연결할지

HQ에서

! private addresses
access-list 1 permit any
! private addresses => public ip
ip nat inside so list 1 int fa0/0 overload

any = 0.0.0.0

HQ(config)#! busan branch network
HQ(config)#int fa0/1
HQ(config-if)#ip nat inside

HQ(config-if)#! head quarter network
HQ(config-if)#int fa1/0
HQ(config-if)#ip nat inside

HQ(config-if)#! internet network
HQ(config-if)#int fa0/0
HQ(config-if)#ip nat outside

모든 IP가 나에게 오는데 80번 포트로 가는 것을 나는 허용하겠다

외부에 있는 모든 애들이 내부로 443으로 접속하는 것을 허용하겠다

외부에 있는 모든애들이 내 뒤에 있는 모든 1024-65535 에 대해 접속하는 걸 허용하도록한다.

이 제외한 나머지는 차단시키겠다.

시나리오1

본사와 지사의 모든 내부 네트워크는 HQ 라우터의 fa0/0에 있는 한개의 IP주소를 공유하여 인터넷을 사용할 수 있어야 한다

PC1

PC1> ip 10.10.100.100/24 10.10.100.1 # ip, 게이트웨이 설정

PC1> ip dns 8.8.8.8 # dns 설정

PC1> ping www.google.com # 인터넷 연결 확인

PC2

PC2> ip 10.10.200.200/24 10.10.200.1

PC2> ip dns 8.8.8.8

ping www.google.com # 구글 접속(인터넷)되는 지 확인
ping 10.10.100.100 # 본사로 가는 지 확인

트러블 슈팅

문제점을 찾아 해결 해나가는 과정

  • 무조건 가까운 쪽에서부터 점검해 나간다.

PC1

  • PC1 → 본사 10.10.10.1 연결 확인
ping 10.10.10.1

HQ

  • HQ(본사 라우터) → BR(지사 라우터) 왼쪽 10.10.10.2
do ping 10.10.10.2

PC2

  • PC2 → 지사 10.10.200.1 연결 확인
ping 10.10.200.1

→ 각 네트워크 끼리 통신 문제 X

PC1

  • PC1 → BR(지사 라우터) 왼쪽 10.10.10.2
ping 10.10.10.2

PC1

  • PC1 → PC2 (PC→PC)
ping 10.10.200.200

→ 내부 네트워크 문제 X

인터넷 문제일 수 있음

HQ

do ping 192.168.1.1 

if 안되면

do show ip int br

(0/0에 IP가 들어가있는지, 상태가 up인지, 라인 프로토콜이 up인지) down이면 no sh 하면 됨. IP가 192.168.1.1xx가 맞는지

이래도 안되면

라인 지웠다가 다시 연결

PC에서 timeout 기간 / 라우터에서 . 인 것은 ARP통신 중인 것임

시나리오 2

우리 회사는 웹서비스 제공을 위하여 공인주소를 구매하였다.

211.183.3.0/24를 사용할 수 있고, 라우터에 HQ의 fa0/0에는 211.183.3.99를 할당한다.

ISP 주소는 211.183.3.2로 고정되어 있다. 나머지 주소는 내부에서 자유롭게 사용할 수 있다.

이 중, 211.183.3.100은 본사와 지사에 있는 PC들이 동적 PAT를 통하여 인터넷과 연결이 가능하도록 할 계획이고, 211.183.3.101은 본사 내부에 있는 웹서버 10.10.10.100.100과 1:1로 정적 NAT를 구성하여 웹서비스를 제공할 계획이다.

우리 회사는 웹서비스 제공을 위하여 공인주소를 구매하였다.

211.183.3.0/24를 사용할 수 있고, 라우터에 HQ의 fa0/0에는 211.183.3.99를 할당한다.

ISP 주소는 211.183.3.2로 고정되어 있다. 나머지 주소는 내부에서 자유롭게 사용할 수 있다.

회선을 바꾸기

  • 기존 케이블 delete
  • 클라우드 VMnet10으로 새로 만들기

HQ

int fa0/0
ip add 211.183.3.99 255.255.255.0
do ping 211.183.3.2
do show run | in ip route

no ip route 0.0.0.0 0.0.0.0 192.168.1.1 #바꾸기 전 거 지우는 것
ip route 0.0.0.0 0.0.0.0 211.183.3.2 # 서비스프로바이더에게 던짐

do show run | in ip rooute # 잘 바뀌었는 지 확인
do ping 8.8.8.8 # 연결 확인

위쪽은 지워야함 (없어진거니)

아래쪽은 본사에서 지사로 가기 위한

—————————여기까지가 첫번째 단락 한 것————————

211.183.3.100은 본사와 지사에 있는 PC들이 동적 PAT를 통하여 인터넷과 연결이 가능하도록 할 계획이고

101번으로 들어가는 지 1:1 매핑되는 지확인할 것임

HQ

NAT중에 지워야 할 설정 지우기

do show run | in ip nat # 여기서 나온 4번째 주소를 지워야함

no ip nat inside source list 1 interface FastEthernet0/0 overload # 지우기
# ping 확인해보면 연결 안되어야함 (여기서는 NAT가 구성하지 않아도 자동으로 웹으로 빠져나가게 설정 되어있는 데 실제로는 안되어야 하는 것)

공인 IP 주소는 Pool에 담아둬야 한다. 내가 가려고할 때 공인 IP를 띄운담에 가지고 빠져나가야 한다.

  • pool PRI를 만드는데, 여기서는 211.183.3.100 하나기 때문에 src, dst를 둘다 같이 해준다.
  • 예를들어 풀에 공인 IP를 3개 넣고싶으면 211.183.3.100 211.183.3.102 이런식으로
ip nat pool PRI 211.183.3.100 211.183.3.100 pre 24

PRI : 이름

  1. : 출발 IP 주소

211.~ : 도착 IP 주소

  • nat 쓸건데, 안쪽 (사설로 있는 list1 (ANY로 설정한 것))을 출발지로 하는데, 공유해서 사용(PAT, overload임)
ip nat inside so list 1 pool PRI overload

어떤 주소로 변경되어서 나가는 지 확인

인터넷-서울본사 사이 케이블 start capture

PC1, PC2에서 구글로 ping 보내보기

ping www.google.com

나갈 때 211.183.3.100 으로 나가고, 들어올 때 211.183.3.100 으로 들어 오는 것 확인

211.183.3.101은 본사 내부에 있는 웹서버 10.10.10.100.100과 1:1로 정적 NAT를 구성하여 웹서비스를 제공할 계획이다.

aws에서 서버를 생성하면 사설 주소가 할당되고, 자동으로 공인 주소를 부여해준다.(매핑) 하지만 이 공인 주소는 고정이 되지는 않는다 → 동적 NAT(dynamic NAT) (풀 안에 아무거나 끄집어냄, 종료 시 반납)

elastic IP : 위와 같은 환경에서 공인 IP 주소를 정적으로 사설 주소와 매핑해 주는 기능이다. → 정적 NAT (static NAT)

HQ

일대일로 IP매핑할것이기 때문에 overload아니고 그냥하면됨

ip nat inside so static 10.10.100.100 211.183.3.101

1 인터넷-HQ라우터 (공인IP로 보이고)

2 HQ라우터-스위치(1) 은 사설 IP로 보이면 정상인 것

1 2

211.183.3.1 , 211.183.3.101 → 211.183.3.1, 10.10.100.100 으로 변경 됨

정리 )

NAT는 사설IP 공인IP 1대1매핑

동적: ip가 바뀔 수 있다. 웹서비긑안 흔환경에선 적절X

정적: 1대1로 정확히매핑. 클라우드상에서는 aws elatsitc ip라는 걸 이용하고 오픈스택이라면 플로팅ip인걸 이용

웹서버 배포

  • 컨테이너로 배포
  • 아까 그 putty 이어서 명령어 작성
sudo yum -y install docker
sudo systemctl start docker

sudo systemctl status docker # docker 활동하고 있는 지 확인

sudo docker container run --name centos --hostname centos -it centos:7 /bin/bash # 아마존 위에 centOS를 올린것. 커널이 없고, 아마존 커널을 쓰는 것임
uname -nr

ip a # 안됨
ifconfig # 안됨
ping # 됨. centOS에서 바깥쪽으로 나가는 것임

Ctrl + P 누름
Ctrl + Q 누름 (centOS는 위에서 돌아가고 있는 상태)
sudo docker container attach centos # 다시 centOS로 들어온것
나가려면 다시 Ctrl + P, Ctrl + Q
sudo docker container run -d --name nginx1 -p 80:80 nginx
  • 인스턴스의 공인 IP 확인 후 Ctrl+C 해서 웹에 Ctrl+V 하면 nginx가 열림
  • nginx를 아마존 자체에 설치한 게 아니라 컨테이너에 띄운 것임
  • nginx 두개 띄울 수 있음
윗 방향 키 해서 nginx2로 바꾸고, p를 8001:80으로
sudo docker container run -d --name nginx2 -p 8001:80 nginx # 포트를 바꾼것. 아마존 8001로 접속하면 컨테이너 nginx의 80 으로 넘겨줌. 아마존의 80하면 nginx의 80으로 (정적 PAT)
  • 방화벽 때문에 접속 안됨
  • 인스턴스의 첫번째 인스턴스 > 보안 > 보안그룹 > 인바운드 규칙 편집 > 추가 사용자 지정 TCP를 유형으로, 포트범위 8001, 소스 Anywh~~ 0.0.0.0/0 외부로 부터의 모든것 , 마찬가지로 해서 포트번호 8002로 ) > 저장

주소창에 public IP주소:8001 입력 → 두번째 nginx 실행 되는 것

하나 더 하려면

sudo docker container run -d --name nginx3 -p 8002:80 nginx 

httpd 만들기

sudo docker container rm -f nginx3 # nginx3 지우기

sudo docker container run -d --name httpd1 -p 8002:80 httpd # nginx말고 httpd 만들기
  • Apache가 설치 된 것임.
  • 포트번호 다르게해서 여러개 띄울 수 있음
  • 불편한 점 : 포트번호를 다 입력해줘야 함 → 클러스터 이용
    • 클러스터로 묶어서 자원을 묶고 한꺼번에 오케스트레이션
    • 본인 포트 80 각자 하나씩 만들어지고 자원 공유해서 동시에 6개 실행되고 내용은 다 똑같다.
    • 3대는 중지시키세요 하면 3개 다운
    • 그 다운된 곳으로 접속했을 때 열림 (클러스터로 묶여서) 하나의 네트워크가 됨
    • 자신이 없으면 옆으로 넘겨줌. 이걸 Auto Scaling해서 상황에 맞게 늘리고, 줄일 수 있게 할 수 있다.

0개의 댓글

관련 채용 정보