우리 회사는 본사-지사간 WAN으로 연결
본사, 지사는 공인주소 211.183.3.0/24를 사용할 수 있다.
211.183.3.2가 ISP 주소
211.183.3.3은 라우터 주소
211.183.3.1은 ISP-우리라우터 간 연결된 스위치 주소
본사 내부에 있는 서버의 주소 172.16.1.100은 외부 통신시 211.183.3.100과 1:1로 정적 매핑 됨
본사 내부 PC들은 211.183.3.101 하나를 이용하여 인터넷을 사용한다.
지사 내부 PC들은 211.183.3.102 하나를 이용하여 인터넷을 사용한다.
→ 동적 PAT
DSW1-DSW2에 연결된 서버들은 vlan 10에 할당, PC들은 vlan 20에 할당된다.
본사와 지사의 위치한 PC들은 DHCP를 통하여 IP 주소를 할당 받는다. DHCP 서버는 본사에서 통합, 관리 한다. (HQ 라우터가 DHCP 서버로 동작한다)
IP설정 → VLAN 구성 → 라우팅(본-지사 통신) → NAT(인터넷(외부)와 연결 설정) & PAT → 필터링, 보안 (지정된 트래픽만 이동하도록)
[HQ 라우터] - 인터페이스 구성
conf t
# 인터넷 연결 부분
int fa0/0
ip add 211.183.3.3 255.255.255.0
no sh
# HQ - BR 연결 부분
int fa1/0
ip add 10.10.10.1 255.255.255.252
no sh
# 밑 연결 부분 - Encapsulation dot1q
int fa0/1
no sh
int fa0/1.10
encap dot1q 10
ip add 172.16.1.2 255.255.255.0
int fa0/1.20
encap dot1q 20
ip add 172.16.2.2 255.255.255.0
# 확인
do show ip int br
[BR 라우터] - 인터페이스 구성
BR#conf t
Enter configuration commands, one per line. End with CNTL/Z.
BR(config)#int fa0/0
BR(config-if)#ip add 10.10.10.2 255.255.255.252
BR(config-if)#no sh
BR(config-if)#
*Mar 1 00:09:37.991: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Mar 1 00:09:38.991: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
BR(config-if)#int fa0/1
BR(config-if)#ip add 192.168.114.2 255.255.255.0
BR(config-if)#no sh
BR(config-if)#
[HQ 라우터] - 통신 확인
#우리 회사에서 ISP와 연결 확인
do ping 211.183.3.2
# 본사-지사 연결 확인
do ping 10.10.10.2
[DSW1]
# vlan 생성하기
DSW1#vlan dat
DSW1(vlan)#vlan 10 name SERVER
VLAN 10 added:
Name: SERVER
DSW1(vlan)#vlan 20 name PC
VLAN 20 added:
Name: PC
DSW1(vlan)#exit
APPLY completed.
Exiting....
# Trunk Port와 Access 구성
conf t
# Trunk Port 구성
int fa1/10
sw mode trunk
int fa1/15
sw mode trunk
# 확인
do show int trunk
# Access Port 구성
int fa1/1
sw mode access
sw access vlan 10
# 확인
do show vlan-sw br
[DSW2]
위와 동일, int fa1/2의 Access Port를 vlan 20으로
# VLAN 구성
vlan dat
vlan 10 name SERVER
vlan 20 name PC
exit
conf t
# Trunk Port 구성
int fa1/15
sw mode trunk
# Access Port 구성
int fa1/2
sw mode access
sw access vlan 20
라우터는 기본적으로 직접 연결되는 네트워크에 대하여 통신이 가능하다. 떨어져 있는 네트워크에 대하여 해당 정보를 라우터에 입력이 되도록 해 주어야 한다.
정적 라우팅
<일반적인 구성 방법>
ip route 2.2.2.0 255.255.255.9 3.3.3.3
“2.2.2.0” : 목적지 네트워크 주소 or 목적지 IP 주소
“255.255.255.0” : 서브넷 마스크, 만약 1대만 지정하고 싶다면 255.255.255.255
“3.3.3.3” : 목적지 네트워크로 찾아가기 위해 선택할 다음(바로 옆) 라우터 주소
동적 라우팅
동일 목적지에 대하여 서로 다른 방법으로 도달이 가능한 경우 이에 대한 우선 순위가 결정되어 있다.
connected(직접연결) : 0
static route : 1
routing protocol : 프로토콜 별로 다름
HQ 라우터
BR 라우터
확인
HQ에서
ping 192.168.X.2 source 172.16.1.2 (vlan10쪽에서 보내기)
ping 192.168.X.2 source 172.16.2.2 (vlan20쪽에서 보내기)
[HQ 라우터]
# 인터넷 통신 default route / HQ에서 모든 IP를 ISP주소로 보냄
ip route 0.0.0.0 0.0.0.0 211.183.3.2
# static route / HQ에서 지사와의 통신 , 지사PC쪽에서 오는 것은 10.10.10.2로
ip route 192.168.114.0 255.255.255.0 10.10.10.2
[BR 라우터]
# 알지 못하는 모든 것은 10.10.10.1(HQ 라우터)로 보냄
ip route 0.0.0.0 0.0.0.0 10.10.10.1
하지만 현재까지는 지사에서 인터넷 연결은 X → NAT, PAT를 통해 연결 할 수 있음
VXLAN 정리
오픈스택이 뭔지정도 정리
공인주소와 사설주소 매핑 1 : 1 - NAT , 1:N - PAT
[HQ] - NAT
# 공인주소 pool에 담기, 여기서는 1개 이므로 범위를 211.183.3.100 211.183.3.100
ip nat pool HQSRV 211.183.3.100 211.183.3.100 prefix-length 24
# 정적으로 매핑 - IP 주소를 1:1로 매핑 할 것임
# 172.16.1.100(사설주소)로 접근한다면 211.183.3.100(공인주소)로
# 여기서는 1:1이라 공인주소 IP를 그냥 써줬음. Pool 써도되고, 안써도 됨
ip nat inside so static 172.16.1.100 211.183.3.100
# outside 1개, inside는 총3개(오른쪽에서 오는거 한개, 밑에서 2개(10,20))
int fa0/0
ip nat outside
int fa1/0
ip nat inside
int fa0/1.10
ip nat inside
int fa0/1.20
ip nat outside
# nat 확인
do show ip nat tr
리눅스 centOS1의 웹서버 켜져 있는 지 확인
켜져있지 않다면
systemctl enable httpd —now
systemctl disable firewalld —now
putty 접속해서 211.183.3.100의 22번 포트로 접속 시도 하면 172.16.1.100:22로 넘겨줌 (SSH연결)
이후에 지정된 IP의 접속만 허용할 것임
VM에서 제공하는 DHCP 말고, 우리가 만든 서버로 부터 해야하므로 vm에서 vmnet2,3번 dhcp는 꺼줌
DHCP 서비스
서버-DHCP-클라이언트
클라이언트는 부팅시 DHCP 프로토콜 내에 discover 메시지를 포함하여 목적지 MAC FF:FF:FF:FF:FF:FF (L2 broadcast 주소, 동일 네트워크)로 전송한다.
[HQ 라우터]
# 본사(HQ)를 위한 dhcp 서버 구성
# 해당 주소는 제외
ip dhcp excluded-address 172.16.2.1 172.16.2.100
ip dhcp excluded-address 192.168.114.1 192.168.114.100
# 본사를 위한 주소 pool
ip dhcp pool HQ
network 172.16.2.0 /24
# default router (PC 입장에서는 default gateway)
default-router 172.16.2.2
lease 0 2 # 임대기간 2시간
dns 8.8.8.8 # dns 서버 8.8.8.8
[BR]
ip helper-address 10.10.10.1 # 10.10.10.1에게 유니캐스트에게 가서 요청하면 BR에게 전달하고 받아서 클라이언트에게 전송
[HQ 라우터]
# 지사(BR)를 위한 dhcp 서버 구성
ip dhcp pool BR
network 192.168.114.0 /24
default-router 192.168.114.2
lease 0 2
dns 8.8.8.8
현재는 NAT로 인터넷을 해서 인터넷이 연결되지만, 원래는 WAN, 본사PC,지사PC에서 인터넷이 안되어야 함(현재까지)
[HQ]
ip nat pool HQPC 211.183.3.101 211.183.3.101 pre 24 # 본사 공인주소
ip nat pool BRPC 211.183.3.102 211.183.3.102 pre 24 # 지사 공인주소
do show run | in ip nat pool # ip nat pool 포함 된 것만 보여줌
# 출발지IP만 보면 되니까 standard로
# 본사 내부 주소 분류
ip access-list standard hqadd # 본사 사설 주소
permit 172.16.2.0 0.0.0.255
# 지사 내부 주소 분류
ip access-list standard bradd # 지사 사설 주소
permit 192.168.114.0 0.0.0.255
exit
# 내부 주소(사설주소:hqadd) 를 pool HQPC(공인주소)로. 사설주소가 더 많으니 overload (PAT)
ip nat inside so list hqadd pool HQPC overload
# 마찬가지로 bradd를 BRPC로 overload
ip nat inside so list bradd pool BRPC overload
exit
# nat를 이용했을 때, 어떤 주소가 어떤 주소를 이용해 빠져나가는 지 확인
show ip nat tr | in 172.16.2.101
show ip nat tr | in 192.168.114.101
NACL
aws와 같은 클라우드 환경에서의 기본보안 사항
NAT없이 빠져나가려는 것 들을 막아야함
주소변경 후 빠져나가게 할 것
Quiz1. 회사 내에 있는 IP 주소들이 NAT 되지 않은 상태에서 외부로 빠져나가려고 한다면 이는 모두 차단해야 한다. (172.16.1.0/24, 172.16.2.0/24, 192.168.114.0/24, 10.0.0.0/8 → 출발지 주소, 목적지 주소는 any)
[HQ]
# 출발지와 도착지의 IP 주소를 확인하고 못나가게 할 것
HQ(config)#access-list 101 deny ip 172.16.1.0 0.0.0.255 any
HQ(config)#access-list 101 deny ip 172.16.2.0 0.0.0.255 any
HQ(config)#access-list 101 deny ip 192.168.114.0 0.0.0.255 any
HQ(config)#access-list 101 deny ip 10.0.0.0 0.255.255.255 any
HQ(config)#
HQ(config)#int fa0/0
HQ(config-if)#ip access-group 101 out
CentOs1,2,3 DNS로 나가는 것 자체가 안됨
주소 변경 된 애들도 못나가고 있음 (맨 밑 줄에 deny ip any any가 생략되어 있기 때문에)
해당 명령어 추가
access-list 101 permit any any
10.10.10.2에서 오는건 되지 않음 (여기서 설정안해서)
U가 뜨는 이유는 Destination Unreachable 방화벽이나 ACL등에 의해 차단되는 경우
Quiz2. fa0/1.10 아래에는 우리 회사 본사에 있는 웹서버가 위치하고 있다. 이 웹서버는 원격 관리를 위하여 SSH를 사용중인데 아무나 접속해서는 안된다. 오직 외부(인터넷)에 있는 211.183.3.1(퇴근한 서버관리자의 집 IP 주소) 와 본사 내부에 있는 172.16.2.100에서는 SSH 연결이 가능하다. 다른 곳으로 부터의 SSH 연결은 모두 차단 SSH를 제외한 나머지 모든 접근(172.16.1.0/24)은 허용된다. 이를 fa0/1.10에 적용하라.
참고 예시)
access-list 112 permit tcp any host 2.2.2.2 eq 80 # 외부에 있는 모든 IP로부터 2.2.2.2:80로 접속 하는 것 허용
access-list 112 permit tcp host 3.3.3.3 host 4.4.4.4 eq 22 # host 3.3.3.3이 host 4.4.4.4:22로 ssh연결 하는 것을 허용
access-list 112 permit ip any any # 외부에 있는 모든 사용자들이 내부 어디든 전부 접속 가능
확인
access-list 102 permit tcp host 211.183.3.1 host 172.16.1.100 eq 22
access-list 102 permit tcp host 172.16.2.100 host 172.16.1.100 eq 22
access-list 102 deny tcp any host 172.16.1.100 eq 22
access-list 102 permit ip any any
int fa0/1.10
ip access-group 102 out
centOs2에서 ping 172.16.1.100 하면 됨, ssh -l root 172.16.1.100은 안됨
만약 172.16.2.100/24에서 접속하면 되어야함
외부에서 연결 putty에서 172.16.1.100에 22로 접속하면 됨