Cloud 실습 (2-2) - static route, default route, NAT & PAT

Hwarang Goh·2022년 7월 11일
0

Kakao Cloud School

목록 보기
10/13
post-thumbnail

Cloud 실습 (2-2) - static route, default route, NAT & PAT


Cloud 실습 (2-1)과 이어집니다. 실습 환경 설정을 먼저 진행하세요.


실습

다른 네트워크와의 통신

  • HQ#
    HQ 에서 10.10.10.0/24 대역의 다른 router로 ping
do ping 10.10.10.2

출발지를 10.10.100.1로 하여 다른 네트워크인 10.10.10.2 로 ping

do ping 10.10.10.2 so 10.10.100.1 # 출발지를 변경
# 도착지가 어디인지는 알고 있어서 가긴가는데, 돌아오는게 안됨
# BR 입장(10.10.10.2)에서 10.10.100.x 가 어디있는지를 모름
# BR이 10.10.100.1 을 routing table 에서 찾지만 없어서 drop

HQ에서 BR의 내부망(10.10.200.1)로 ping

do ping 10.10.200.1

# HQ가 해당 주소가 어디있는지를 모름

static route

  • HQ
ip route 10.10.200.0 255.255.255.0 10.10.10.2
# HQ 에게 어디로 갈지 알려줌
# 10.10.200.0(목적지 네트워크 대역) 255.255.255.0(서브넷) 으로
# 가기 위한 10.10.10.2(next hop) 을 static route
  • BR
ip route 10.10.100.0 255.255.255.0 10.10.10.1
# BR 에게 어디로 갈지 알려줌
# 10.10.100.0(목적지 네트워크 대역) 255.255.255.0(서브넷) 으로
# 가기 위한 10.10.10.1(next hop) 을 static route
  • HQ
do ping 10.10.200.1 so 10.10.100.1

# 이제 HQ, BR 모두 서로 .100.x, .200.x 대역을 알고 있어서 성공

do wr # 저장 (HQ, BR 모두)
  • HQ#
do show ip route

  • 10.10.10.0, 10.10.100.0 은 직접 연결되어서 알고 있음
    (맨 앞에 C는 connected, directly connected 되었다는 문구)

  • 10.10.200.0 은 맨 앞에 s 처럼 static(정적) 입력받아서 10.10.10.2 를 통해 가는 것을 알 수 있음

  • ping 10.10.10.2
    • dst IP 가 routing table에 매칭되는 것이 있는 지 찾아봄
    • 10.10.10.0 에 매칭
    • 매칭된 곳으로 가기 위해 빠져나가기 위한 10.10.10.1 을 확인하고 내보냄
    • 나갈때는 MAC(src, dst) 붙여서 frame으로 나감
    • dst MAC 을 알기위해 frame 보내기 전에 ARP 를 통해 상대의 MAC 주소를 알아왔을 것임

ICMP 했을 때

  • ARP table 에 dst IP 에 대한 MAC addr 이 없으면,
    • ARP 프로토콜을 사용해 dst MAC을 broadcast(ff:ff:ff:ff:ff:ff)로 해서 상대 MAC addr을 찾아냄
    • dst MAC 을 넣고 ICMP 를 보냄

  • receiver는 dst MAC이 자신인지 확인 후
    • dst IP가 자신인지 확인 후
    • ICMP 요청을 본 후 응답을 보냄
      (이때 IP, MAC 모두 src <-> dst - 출발지, 목적지가 서로 뒤바뀌는 것)

default route 설정

default route 설정 방법

ip route 10.10.10.0 255.255.255.0 1.1.1.1
  • subnet mask에 의해서 10.10.10. 부분은 고정되고
  • 10.10.10.0 의 .0 부분은 뭐든지 와도 됨
    • (0~255, 사실 상 1~254, 네트워크 주소 및 브로드캐스트 주소 제외)
ip route 0.0.0.0 0.0.0.0 2.2.2.2
  • 모든 IP 에 대해서 2.2.2.2 로 route 하도록 설정
  • "default route" 라고 부름
    (default gateway 설정하면 이런 역할을 하는 것임)
  • HQ#
ip route 0.0.0.0 0.0.0.0 192.168.1.1 # default root 설정
  • BR#
ip route 0.0.0.0 0.0.0.0 10.10.10.1 # default root 설정

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

-> longest match rules!

  • 10.10.200.100 이라는 dst가
    routing table에서 매칭되는 네트워크 경로가 둘일 때,
C 10.10.200.0/24	# 더 상세한 주소
S 0.0.0.0/0			# 덜 상세함

더 상세한 10.10.200.0 을 보고 찾아가게됨.


사설 IP 구간에서 공인 IP 구간으로 통신 - NAT 필요

  • HQ#
conf t
int fa0/0
ip add 192.168.1.101 255.255.255.0
# 외부망으로 나가는 공인 IP 설정
no sh
do ping 8.8.8.8

DNS 설정

# HQ(config)# 상태에서 진행
ip name-server 8.8.8.8 # DNS 등록
ip domain-lookup
# 이제부터 domain name 물어볼 것이라는 설정
# 안하면 www.google.com 이 domain이라는 것을 알지 못함
do ping www.google.com

  • 여기까지 하면 HQ는 ping www.google.com 성공
    BR에서 ping하면 아직 안됨(NAT, 실제로는 PAT 설정으로 해줘야함)
  • HQ#
conf t

access-list 1 permit any
# 특정 IP 대역(any, 0.0.0.0/0 -> 모든 IP)을 허가(permit)

ip nat inside so list 1 int fa0/0 overlaod
# list 1(모든 IP)에 있는 IP가 inside 하면
# fa0/0 을 통해 내보낸다(outside)
# 공인 IP 가 1개고 사설 Ip 가 여러개니까 중복해서 사용(overload)

int fa0/1
ip nat inside # 들어오는 곳이라고 설정

int fa1/0
ip nat inside # 들어오는 곳이라고 설정

int fa0/0
ip nat outside # 나가는 곳이라고 설정
  • PC1, PC2 > Start 하고 > Console open

  • PC1

ip 10.10.100.100/24 10.10.100.1 # pc1에 ip 설정 및 default route 설정
ip dns 8.8.8.8 # dns 설정
ping www.google.com # 외부로 domain name 을 통해서도 잘 됨

  • PC2
ip 10.10.200.200/24 10.10.200.1 # pc2에 ip 설정 및 default route 설정
ip dns 8.8.8.8 # dns 설정
ping www.google.com # 외부로도 잘됨

ping 10.10.100.100 # HQ 쪽으로도 잘 연결된다


trouble shooting

문제점을 찾아 해결해 나가는 과정
무조건 가까운 쪽에서 점검해 나간다.

10.10.100.100 <-> 10.10.200.200 통신을 가정

  • 각 네트워크 끼리 먼저 확인
    PC1 -> HQ 통신 확인(ping)
    HQ -> BR 통신 확인
    PC2 -> BR 통신 확인
  • 다른 네트워크로 가는것 확인
    PC1 -> BR 통신 확인
    PC1 -> PC2 통신 확인

외부로 통신 확인

HQ -> 192.168.1.1

  • 내가 설정을 잘못한건지 확인
    HQ# do show ip int br # status, down 이 모두 up인지 확인, IP 입력이 잘못되지 않았는지 확인
  • 내 문제가 아닌경우
    cloud 1 과 HQ의 링크를 제거한 후 다시 연결하고 테스트

시나리오2

  • 2-1
    우리회사는 웹서비스 제공을 위하여 공인주소를 구매하였다.
    211.183.3.0/24 를 사용할 수 있고, 라우터에 HQ의 fa0/0 에는 211.183.3.99 을 할당한다.
    ISP 주소는 211.183.3.2 로 고정되어 있다. 나머지 주소는 내부에서 자유롭게 사용할 수 있다.

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

  • cloud 1과 HQ 링크 delete
    cloud 1 > configure > 이더넷 delete, vmnet10 add

2-1

  • HQ#
conf t
int fa0/0
ip add 211.183.3.99 255.255.255.0 # ip 변경
do ping 211.183.3.2 # 잘됨 .2 은 vmware 에서 알아서 잡아준것
do show run | in ip route

192.168.1.1 은 예전거! 지우고 다시 설정해야함

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 ping www.google.com # 외부로 연결 잘됨

2-2

웹서버와 IP 1대1 매칭
-HQ#
nat 중 지워야할 설정이 있음

do show run | in ip nat


4번째 지워야함

no ip nat inside source list 1 interface FastEthernet0/0 overload # 지움

실제 환경이면 외부연결 안되어야 하지만, 앞단에서 nat 로 자동 변경되서 나가서 지금 연결이 되긴함... (실제 환경에서는 안됨)
- pool 만들기

ip nat pool PRI 211.183.3.100 211.183.3.100 pre 24
# PRI 라는 pool 에 공인IP 범위 start, end (둘다 211.183.3.100) 을 prefix 24로 넣어둠

ip nat inside so list 1 pool PRI overload
# 밖으로 나가는 안에서 오는 것들 PRI 라는 pool 에서 공인 IP 뽑아서 overload(중복)해서 써라
  • aws 에서 서버를 생성하면 사설 주소가 할당되고 자동으로 공인주소 부여해준다.
    하지만 이 공인주소는 고정이 되지는 않는다.
    -> dynamic NAT (pool 안에 아무거나 꺼내서 씀. 종료가 되면 반납하고 다시 시작할 때 재할당 받음.)
  • elastic ip 는 위와 같은 환경에서 공인 IP 주소를 정적으로 사설 주소와 매핑해 주는 기능이다.
    -> static NAT

  • HQ#
conf t
ip nat pool WEBSRV 211.183.3.101 211.183.3.101 pre 24
ip nat inside so static 10.10.100.100 211.183.3.101 # 1대1 static 매칭
  • window cmd
ping 211.183.3.101 # 잘됨


외부에서 ping 보낸 것이 내부의 web server의 사설 IP로 변경되어서 전달되는 것을 확인 가능

0개의 댓글