실습)
# PC A와 PC B가 통신이 되는지 확인

10.20.32.0 /23

512 / 32 = 16

2^4 < 호스트 수 = 16+2 < 2^5

2^(32-SM)-2, 32-SM=5

SM = 27

SM: 255.255.255.11100000(128+64+32=224), 225.255.255.224 /27

규모: 256 - 224 = 2^5 = 32bit

 

16호스트 → 16+2 = 18 규모 ≤ 2^5

규모 = 5bit

10.20.00100000.0

기존 SM: 255.255.254.0 /23

                             11111110.0

이후 SM: 255.255.255.224 /27

                             11111111.11100000

                                         늘어난 네트워크 수: 4

주어진 규모 = 갯수 × 규모

             2^9 = 2^4 × 2^5

10.20.32.0 /27

10.20.32.32 /27

10.20.32.64 /27

10.20.32.96 /27

# R1
Router>en
Router#conf t
Router(config)#int f0/0
Router(config-if)#ip add 10.20.32.30 255.255.255.224
Router(config-if)#no sh
Router(config-if)#int f0/1
Router(config-if)#ip add 10.20.32.40 255.255.255.224
Router(config-if)#no sh

# R2
Router>en
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#int f0/0
Router(config-if)#ip add 10.20.32.50 255.255.255.224
Router(config-if)#no sh
Router(config-if)#int f0/1
Router(config-if)#ip add 10.20.32.70 255.255.255.224
Router(config-if)#no sh
Router(config-if)#do ping 10.20.32.40

# R3
Router>en
Router#conf t
Router(config)#int f0/0
Router(config-if)#ip add 10.20.32.80 255.255.255.224
Router(config-if)#no sh
Router(config-if)#int f0/1
Router(config-if)#ip add 10.20.32.100 255.255.255.224
Router(config-if)#no sh
Router(config-if)#do ping 10.20.32.70
 
라우팅설정
# R1
Router(config-if)#router os 10
Router(config-router)#router-id 1.1.1.1
Router(config-router)#net 10.20.32.30 0.0.0.0 a 0
Router(config-router)#net 10.20.32.40 0.0.0.0 a 0
 
# R2
Router(config-if)#router os 10
Router(config-router)#router-id 2.2.2.2
Router(config-router)#net 10.20.32.50 0.0.0.0 a 0
Router(config-router)#net 10.20.32.70 0.0.0.0 a 0
 
# R1
- R1의 dhcp 설정
Router(config)#ip dhcp pool 1
Router(dhcp-config)#net 10.20.32.0 255.255.255.224
Router(dhcp-config)#de
Router(dhcp-config)#default-router 10.20.32.30
 
# R3
- R3의 dhcp 설정
Router(config-router)#ip dhcp pool 1
Router(dhcp-config)#net 10.20.32.96 255.255.255.224
Router(dhcp-config)#de
Router(dhcp-config)#default-router 10.20.32.100
 
PC에서 IP를 잘 받아왔는지 확인

슈퍼네팅

서브네팅 ↔ 슈퍼네팅

ip route 32.0 /24

ip route 33.0 /24

= ip route 32.0 /23

 

VLSM (Variable Length Subnet Mask)

1. 각 네트워크를 규모 순으로 정렬(2진수법칙)

ex. 10 5 20 → 20 10 5

2. 큰 순서대로 서브넷을 구하기

실습)
R1이 A네트워크의 DHCP 서버
R3가 B네트워크의 DHCP 서버
라우터끼리 연결하는 네트워크는 프리픽스 30

호스트수 = 2^(32-SM) - 2

A: 40 host = 2^6 규모

40+2 < 2^6 = 64

32-SM=6, SM=26

255.255.255.192 /26

 

B: 10 host = 2^4 규모

10+2 < 2^4 = 16

32-SM=4, SM=28

255.255.255.240 /28

 

A: .128 ~ .191 /26 (.192)

B: .192 ~ .207 /28 (.240)

내부: /30 (.252)

#R1의 설정
Router>en
Router#conf t
Router(config)#int f0/1
Router(config-if)#ip add 10.10.10.130 255.255.255.192
Router(config-if)#no sh
Router(config-if)#int f0/0
Router(config-if)#ip add 128.30.20.17 255.255.255.252
Router(config-if)#no sh
Router(config-if)#ip dhcp pool 1
Router(dhcp-config)#net 10.10.10.128 255.255.255.192
Router(dhcp-config)#default-router 10.10.10.130
Router(dhcp-config)#router os 10
Router(config-router)#router-id 1.1.1.1
Router(config-router)#net 10.10.10.130 0.0.0.0 a 0
Router(config-router)#net 128.30.20.17 0.0.0.0 a 0

#R2의 설정
Router>en
Router#conf t
Router(config)#int f0/0
Router(config-if)#ip add 128.30.20.18 255.255.255.252
Router(config-if)#no sh
Router(config-if)#int f0/1
Router(config-if)#ip add 128.30.20.21 255.255.255.252
Router(config-if)#no sh
Router(config-if)#router os 10
Router(config-router)#router-id 2.2.2.2
Router(config-router)#net 128.30.20.18 0.0.0.0 a 0
Router(config-router)#net 128.30.20.21 0.0.0.0 a 0

#R3의 설정
Router>en
Router#conf t
Router(config)#int f0/1
Router(config-if)#ip add 128.30.20.22 255.255.255.252
Router(config-if)#no sh
Router(config-if)#int f0/0
Router(config-if)#ip add 10.10.10.200 255.255.255.240
Router(config-if)#no sh
Router(config-if)#ip dhcp pool 1
Router(dhcp-config)#net 10.10.10.192 255.255.255.240
Router(dhcp-config)#default-router 10.10.10.200
Router(dhcp-config)#router os 10
Router(config-router)#router-id 3.3.3.3
Router(config-router)#net 10.10.10.200 0.0.0.0 a 0
Router(config-router)#net 128.30.20.22 0.0.0.0 a 0

B네트워크의 PC에서 A네트워크의 PC로 통신되는지 확인

사설 네트워크 (Private Network)

사설 IP를 사용하는 내부 네트워크

전세계에 무수히 많은 사설 네트워크가 존재

(IPtime 공유기 default 192.168.0.0 /24)

NAT (Network Address Translation)

네트워크 주소 변환, 주로 내부와 외부 사이의 경계에서

IP가 변하면 전부 NAT이지만, 일반적으로 '내부 → 외부' 또는 '외부 → 내부'의 경우에 가장 많이 쓰임

  • PAT(Port NAT)
    내부 → 외부: Source(출발지) + Dynamic(동적)
  • DNAT(Destination NAT)
    외부 → 내부: Destination(목적지) + Static(정적)

Port

4계층, NIC 포트 아님

실습)
PAT, DNAT 설정
내부: 사설 IP, 외부: 공인 IP

#R1의 기본설정
Router>en
Router#conf t
Router(config)#int f0/0
Router(config-if)#ip add 192.168.1.200 255.255.255.0
Router(config-if)#no sh
Router(config-if)#int f0/1
Router(config-if)#ip add 1.1.1.100 255.255.255.0
Router(config-if)#no sh

#R2의 기본설정
Router>en
Router#conf t
Router(config)#int f0/0
Router(config-if)#ip add 1.1.1.200 255.255.255.0
Router(config-if)#no sh
Router(config-if)#int f0/1
Router(config-if)#ip add 172.16.101.200 255.255.255.0
Router(config-if)#no sh

PAT 설정 (R1)

1. Source 정의(ACL - Access Control List)

Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255
# 192.168.1.0 /24가 Source


2. 내부(inside) 외부(outside)를 구분

Router(config)#int f0/0
Router(config-if)#ip nat inside
Router(config-if)#int f0/1
Router(config-if)#ip nat outside

 

3. NAT 명령

Router(config-if)#ip nat inside source list 1 int f0/1 overload
# 192.168.1.0 /24의 내부 사설 출발지 주소들을 f0/1에 설정된 공인아이피로 변환
# 그방식은 PAT(하나의 IP에 존재하는 포트에 다수의 출발지 사설 IP를 매칭)

# PAT 설정후에 PC에서 R2로 통신이 되는걸 확인 가능

4. NAT 확인

Router(config) #do sh run

Router(config)#do sh ip nat tran
# NAT가 발생했는지 확인하는 명령어, 핑을 먼저 쳐서 NAT가 발생하도록 한 후 입력

# 1분이내에 쳐보면 NAT가 발생했는지 여부를 확인 가능

DNAT 설정 (R2)

# 접속 안됨

# DNAT 설정하기 전, 접속 안되고, 다른 사설 네트워크 내부로 진입하는것 자체가 말이 안되는 전제

1.1.1.200의 80번 포트를 목적지(Destination)로 찾아오는 상대를 내부의 웹서버로 들여보내줌

 

1. 내부, 외부를 명시

Router(config)#int f0/0
Router(config-if)#ip nat outside
Router(config-if)#int f0/1
Router(config-if)#ip nat inside

 

2. DNAT 명령어

Router(config-if)#ip nat inside source static tcp 172.16.101.80 80 1.1.1.200 80
# 내부: 172.16.101.80
# 외부: 1.1.1.200

# 접속 확인 가능
# 웹서버 접속 후 R1에서 PAT 확인 가능, R2에서 DNAT 확인 가능

호스트수 = 2^(32-SM) - 2

256 = 2^8

32-24 = 8, 32-23 = 9

 

10.20.0.0 /15

255.254.0.0 /15

 

255.255.255.0 /24

규모: 256

10.20.0.0 /24

10.20.1.0 /24

 

1.2.3.4 /30

255.255.255.252

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

Router(config-if)#int f0/1
Router(config-if)#ip add 1.2.3.10 255.255.255.252
Router(config-if)#no sh

Router(config-if)#access-list 1 permit 10.20.0.0 0.0.0.255
Router(config)#int f0/0
Router(config-if)#ip nat inside
Router(config-if)#int f0/1
Router(config-if)#ip nat outside
Router(config-if)#ip nat inside source list 1 int f0/1 overload

# 웹 서버 실행 후
Router(config)#do sh ip nat tran


# R2
Router(config)#int f0/0
Router(config-if)#ip add 1.2.3.20 255.255.255.252
Router(config-if)#no sh
Router(config-if)#int f0/1
Router(config-if)#ip add 10.20.1.200 255.255.255.0
Router(config-if)#no sh

Router(config-if)#int f0/0
Router(config-if)#ip nat outside
Router(config-if)#int f0/1
Router(config-if)#ip nat inside
Router(config-if)#ip nat inside source static tcp 10.20.1.80 80 1.2.3.20 80


# 웹 서버 실행 후
Router(config)#do sh ip nat tran