VLSM & NAT

최병훈·2024년 10월 3일
post-thumbnail

1) 사용하게 된 목적

  • IPv4의 주소 부족 문제 해결
  • NAT의 경우는 보안의 측면
    • Transparent(투명성) : 사용자는 몰라도 된다.
    • 위치 투명성 : 사용자는 위치를 몰라도 된다.
      • 위치를 아는 것은 보안에서는 위험

2) VLSM

  • Variable Length Subnet Mask
    : 하나 이상의 classful 네트워크 내에서 두개 이상의 서브넷 마스크를 사용할 수 있도록 하는 것. 주소 공간을 어떻게 할당하고 사용하는지에 따라 실제 네트워크에 많은 이점을 제공
  • 적은 주소를 필요로 하는 서브넷의 경우 네트워크 관리자가 더 적은 호스트 비트를 갖는 마스크를 사용해서 서브넷팅 해주면 됩니다.
  • VLAN과 주소를 적절히 서브넷팅 하는 것은 거의 비슷한 효과를 만들 수 있습니다.
    • 라우터를 나누는 것은 물리적으로 네트워크를 분할하는 것이고 VLAN은 논리적으로 네트워크를 분할하는 것이며 서브넷팅도 유사한데 서브넷 마스크를 이용해서 네트워크를 분리하면 내부 통신이 불가능해집니다.
  • 하나의 네트워크에서 2개 이상의 서브넷 마스크를 이용하는 것
    • 하나의 라우터에 연결된 네트워크의 대역이 172.16.0.0/16 일때
    • 이를 내부에서 172.16.14.0/24 로 분할하고
    • 이를 다시 172.16.14.0/27 로 분할해서 사용하는 형태

3) NAT와 PAT

  • 개요
    • IPv4의 주소가 고갈되는 문제를 해결하기 위해서 먼저 등장한 것은 Classless 할당인데, 낭비되는 주소를 줄일 수 있었지만 근본적인 해결책이 되지는 못함
    • 주소 고갈 문제를 해결하기 위해서 IPv5가 나왔는데 표준화 시작 단계에서 폐기됨. 그래서 IPv6로 넘어감
    • IPv4에서 IP로 넘어갈 때 IPv4의 수명을 연장시킨 기술 중의 하나가 NAT
  • NAT (Network Address Translation)
    • 내부와 외부의 IP 주소를 다르게 설정할 수 있도록 하는 기술
      • 일반적으로 내부에서는 Private IP를 사용하고 외부에서는 Public IP를 사용
    • 적은 수의 Public IP Address를 Private IP Address를 이용해서 여러 호스트가 공유할 수 있도록 해주는 것
    • 라우터가 내부 주소를 외부 주소로 변환해서 다른 네트워크로 패킷을 전달할 수 있도록 해주는 것.
    • 이때 전체 네트워크에 대해서 하나의 주소만 외부에 광고하도록 NAT를 설정할 수 있는데, 이렇게 되면 내부의 주소를 광고하지 않기 때문에 네트워크 보안을 확보할 수 있다.
    • inside address 와 outside address
      • inside address : 내부 네트워크 내의 장비를 가리키는 주소
      • outside address : 외부 네트워크(인터넷) 내의 장비를 가리키는 주소
    • local address 와 global address
      • local address : 내부 데이터그램에서 사용하는 주소
      • global address : 외부 데이터그램에서 사용하는 주소
    • 주소 매핑에 따른 NAT 분류
      • static NAT
        • 네트워크 관리자가 수동으로 내부 주소와 외부 주소를 일대일로 매핑하는 것.
        • 내부 네트워크 장비가 외부 네트워크에 항상 동일한 외부 주소로 표현되어야 할 필요가 있는 경우에 사용
        • 수동으로 매핑 정보를 입력 및 관리해야 하고 내부 네트워크에서 IP 주소를 공유할 수 없습니다.
        • AWS의 EC2에 탄력적 IP를 적용하는 것이 static NAT
      • dynamic NAT
        • 내부 IP를 주소 풀에 있는 외부 IP로 자동으로 변환하는 것
        • 필요할 때 마다 즉시 생성되고 세션이 완료되면 변환 정보는 버려지고 내부 전역 주소는 다시 풀로 반환됩니다.
        • 일반적인 서버 용도로는 사용할 수 없습니다.
        • Amazon의 EC2 서비스가 이런 구조
        • EC2 서비스는 Public IP를 가지고 이렇게 구현합니다.
  • PAT (Port Address Translation)
    : 포트 번호를 달리해서 내부 호스트를 구분하는 것
    • 하나의 IP 주소를 가지고 여러 개의 다른 IP 주소를 매핑할 수 있음
    • NAT Overloading 이라고 하기도 합니다.
    • 포트번호는 16bit로 이론적으로 65536개의 주소가 매핑 가능
  • 설정
    • NAT를 수행하는 라우터는 패킷이 내부 네트워크를 떠날 때 패킷의 출발지 주소를 내부 전역 주소로 변환합니다.
    • 또한 외부 네트워크로부터 도착한 패킷의 목적지 IP를 다시 내부 지역 주소로 변환
  • 정적 NAT 설정
    ip nat inside source static 로컬IP 글로벌IP
    ip nat inside source static 10.1.1.2 192.168.1.2
    • 내부 인터페이스에 설정
    ip nat inside
    • 외부 인터페이스에 설정
    ip nat outside

정적 NAT 실습

  • 라우터 2개를 배치하고 fa0/0을 연결
  • VPCS를 1개 추가 배치하고 첫번째 라우터의 fa0/1과 연결
  • R2 라우터 설정
    configure terminal
    interface fa0/0
    ip address 192.168.1.254 255.255.255.0
    no shutdown
    exit
    exit
    show ip interface brief
  • R1 라우터 설정

    configure terminal
    interface fa0/0
    ip address 192.168.1.1 255.255.255.0
    no shutdown
    
    interface fa0/1
    ip address 10.1.1.1 255.255.255.0
    no shutdown
    exit
    exit
    
    show ip interface brief

  • 두 라우터의 연결 확인

    • R1 라우터에서
    ping 192.168.1.254

  • VPCS 설정

    ip 10.1.1.2 /24 10.1.1.1
    • R1 라우터까지 ping : 성공
    ping 192.168.1.1

    • R2 라우터까지 ping : 실패
    ping 192.168.1.254

  • R1에서 정적 NAT 설정

    configure terminal
    ip nat inside source static 10.1.1.2 192.168.1.2
    
    interface fa0/0
    ip nat outside
    
    interface fa0/1
    ip nat inside

  • VPCS에서 R2 라우터에 다시 ping

    • R1에서 정적 NAT 설정을 통해 10.1.1.2의 내부 주소가 192.168.1.2라는 외부 주소로 변경되어 전달된다.
    • 따라서 192.168.0.0/24 의 네트워크 대역에서 통신이 가능
      ping 192.168.1.254
  • 동적 NAT
    • 주소 부족 문제 때문에 수행
    • 주소 풀이 필요
    • 내부에 호스트 대수에 비해 가지고 있는 IP가 적고 대신에 내부 호스트가 동시에 인터넷을 사용하지 않는 경우 사용
    • 과정
      • 외부 주소 풀을 생성
        ip nat pool 이름 시작IP 종료IP
      • 내부 주소 풀을 생성
        access-list 번호 permit 네트워크대역 와일드마스크
      • NAT 활성화
        ip nat inside source list ACL번호 pool 이름
      • 인터페이스에서 inside와 outside 설정

동적 NAT 실습

  • R1에서 기존 설정 제거

    configure terminal
    no ip nat inside source static 10.1.1.2 192.168.1.2
    
    interface fa0/0
    no ip nat outside
    
    interface fa0/1
    no ip nat inside
  • R1에서 설정

    • 외부에서 사용할 주소 풀을 생성

      configure terminal
      ip nat pool net-200 192.168.1.32 192.168.1.63 netmask 255.255.255.224
    • 대역
      192.168.1.32 ~ 192.168.1.63
      마지막 8자리 : .00100000 ~ .00111111
      따라서 서브넷 마스크의 마지막 8자리 : .11100000
      -> 128 + 54 + 32 = 224

    • 내부에서 사용할 주소 풀을 생성

      access-list 1 permit 10.1.1.0 0.0.0.255
    • 주소 pool을 만들지 않고 바로 적용

      ip nat inside source list 3 interface fa0/0 overload
    • 인터페이스 설정

      interface fa0/0
      ip nat outside
      
      interface fa0/1
      ip nat inside

    • VPCS에서 R2 라우터에 다시 ping

      • R1에서 정적 NAT 설정을 통해 10.1.1.2의 내부 주소가 외부 주소 풀의 IP로 변경되어 전달된다.
      • 따라서 192.168.0.0/24 의 네트워크 대역에서 통신이 가능
        ping 192.168.1.254
  • PAT : 포트 변환
    • 동적 NAT가 주소 부족 문제를 많이 해결하기는 했지만 완전하지는 않습니다.
    • IP 변환을 하지 않고 특정 포트를 매핑해서 외부로 나가는 것이 PAT
    • IP 주소는 동일하고 포트 번호만 다르기 때문에 NAT Overload 라고도 합니다.
    • 2가지 방법으로 설정 가능
      • 동적 NAT와 동일하게 설정
        • ip nat inside source list 명령 끝에 overload 를 추가해서 설정
      • 라우터의 외부 인터페이스를 이용해서 설정 가능

PAT 실습 : 별도의 IP를 가지고 설정

  • R1에서 설정

    • 외부에서 사용할 주소 풀을 생성

      configure terminal
      ip nat pool net-100 192.168.1.64 192.168.1.95 netmask 255.255.255.224
    • 내부에서 사용할 주소 풀을 생성

      access-list 2 permit 10.1.1.0 0.0.0.255
    • 연결

      ip nat inside source list 2 pool net-100 overload
    • 인터페이스 설정

      interface fa0/0
      ip nat outside
      
      interface fa0/1
      ip nat inside
  • VPC에서 다시 ping을 수행

    ping 192.168.1.254
  • R1에서 주소 변환 확인

    show ip nat translations

PAT 실습 : 외부 인터페이스의 IP 1개를 가지고 설정

  • ACL 작성
    access-list 번호 {permit | deny} 네트워크주소 와일드카드마스크
    access-list 3 permit 10.1.1.0 0.0.0.255
  • 주소 pool을 만들지 않고 바로 적용
    ip nat inside source list ACL번호 interface 인터페이스이름 overload
    ip nat inside source list 3 interface fa0/0 overload
  • 인터페이스에 inside와 outside 적용
    interface fa0/0
    ip nat outside
    
    interface fa0/1
    ip nat inside
  • VPC에서 다시 ping을 수행
    ping 192.168.1.254
  • R1에서 주소 변환 확인
    show ip nat translations

0개의 댓글