VMnet5를 만들어서 192.168.50.0 /24를 사용하는 네트워크를 만들고 싶다.

네트워크 에디터에서 VMnet5를 추가한 후 그 대역 작성

IP: 192.168.50.0, SM: 255.255.255.0

host-connection 주소 = 192.168.50.1

 

VMnet6을 만들어서 192.168.50.64 /28를 사용하는 네트워크를 만들고 싶다.

네트워크 에디터에서 VMnet6을 추가한 후 그 대역 작성

IP: 192.168.50.64, SM: 255.255.255.240

host-connection 주소 = 192.168.50.65

 

host-connection 주소 = 네트워크 가용 IP 중 첫 번째 주소

 

주의) ncpa.cpl 의 장치 속성에도 IP가 잘 구성됐는지 확인

GNS3와 연동한다면, 컴퓨터를 재부팅해야 해당 VMnet과 GNS가 연동된다.

재부팅을 안하는 경우, GNS3의 클라우드에 선이 연결이 안되기 때문이다.

# VMnet8에 존재하는 서버는 원래 vmnet1과 통신되면 안된다.
   왜냐하면 VMnet8의 서버의 GW가 211.183.3.2로 되어있고, 애초에 R1에서 NAT가 걸려있기 때문이다.
# DNAT: 원하는 서비스를 받기 위해 특정한 경우에만 들여보내줌
              직접적인 통신을 위한 목적이 아닌, 릴레이를 목적으로 사용함

# host-connection이 되어있어야 GNS 연결이 가능함


추가실습)

VM1, VM2가 외부로 통신되도록 설정해보세요.

 

R1과 R2 사이의 대역은 어떻게 설정해야 하는가?

사실 GNS3에서의 네트워크 대역은 어차피 가짜기 때문에 내 마음대로 정해도 상관은 없다. 하지만 다른 vmnet과 겹치지 않고, 다른 내부의 네트워크과 묶어주기 편한 대역으로 정하면 나중에 슈퍼넷팅, PAT 같은걸 할때 편하게 할 수 있다.


사설대역이어야 한다만, VMnet에서 안쓰는 대역, 슈퍼넷팅을 위해 묶기 편한 대역이면 좋다!

ex. 10.10.7.0 /24, Access-list 1 10.10.0.0 /21로 설정한다면, PAT할때 편하다!


1. 기본설정

2. 라우팅

3. PAT: VM1과 VM2가 외부로 통신됐으면 좋겠기 때문 (DNAT는 필요없음) 

1. 기본설정

- R1 설정

R1#conf t
R1(config)#int f0/0
R1(config-if)#ip add 10.10.2.250 255.255.255.0
R1(config-if)#no sh
R1(config-if)#int f0/1
R1(config-if)#ip add 10.10.7.10 255.255.255.0
R1(config-if)#no sh

 

- R2 설정

R2#conf t
R2(config)#int f0/0
R2(config-if)#ip add 10.10.7.20 255.255.255.0
R2(config-if)#no sh
R2(config-if)#int f0/1
R2(config-if)#ip add 10.10.3.250 255.255.255.0
R2(config-if)#no sh

# 네트워크 에디터에서 확인

- VM 설정

VM에서 설정한 VMnet으로 Xshell과 같은 호스트(IP)로 연결되어 있는 상태
Xshell에서 아래의 명령어를 사용해 VM의 IP, GW로 수정

VM에서 필요한 VMnet으로 변경 후 systemctl restart network

Xshell에서 다시 연결

 

- VM1 설정

vi /etc/sysconfig/network-scripts/ifcfg-ens32

 

- VM2 설정

 

# 각 라우터와 통신되는지 확인

# VM1에서 R1으로 통신되는지 확인
# VM2에서 R2으로 통신되는지 확인

 

# R1 - R2 통신 확인

 

2. 라우팅

- R1의 라우팅

R1(config-if)#ip route 0.0.0.0 0.0.0.0 10.10.7.20

# 디폴트 라우팅. 이것만 해주면 R1의 라우팅은 끝이다.
# 왜냐하면 211.183.3.0 /24, 10.10.3.0 /24가 디폴트 라우팅과 같은 방향이니까, 다 포함되어있으니까,

 

- R2의 라우팅

R2(config-if)#ip route 0.0.0.0 0.0.0.0 211.183.3.2
# 디폴트 라우팅

R2(config)#ip route 10.10.2.0 255.255.255.0 10.10.7.10
# 디폴트 루트에 속하지 않는 네트워크를 따로 라우팅

R2에서 VM1로 통신이 되는걸 확인
R2에서 외부로 통신이 되는걸 확인

 

3. PAT

R2(config)#access-list 1 per 10.10.0.0 0.0.7.255
# 내부의 네트워크들을 전부 포함하는 액세스 리스트

R2(config)#int f0/0
R2(config-if)#ip nat in
R2(config-if)#
R2(config-if)#int f0/1
R2(config-if)#ip nat in
R2(config-if)#int f1/0
R2(config-if)#ip nat out

R2(config-if)#ip nat inside source list 1 int f1/0 over

DHCP 서버 구축

 

스펙 - 2 core, 2GB, 20GB
호스트네임 - dhcp
아이피 - 211.183.3.67 /24
기본설정 - 방화벽,셀리눅스 off, 레포지토리 설정

# 서버를 설치하면 통신여부,방화벽-셀리눅스 비활성화, DNS서버 지정여부 확인, 레포수정

[root@dhcp ~]# yum install dhcp

# dhcp 관련 패키지 설치

[root@dhcp ~]# vi /etc/dhcp/dhcpd.conf

[root@dhcp ~]# vi /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
# 예시파일, 4.2.5는 그때그때 달라질 수 있음
[root@dhcp ~]# vi /etc/dhcp/dhcpd.conf

# 들어간 후 주석 지우고 아래 내용 추가

subnet 211.183.3.0 netmask 255.255.255.0 {
# 서브넷(풀) 정의, 부여받는 client 입장 고려

range 211.183.3.150 211.183.3.180;
# IP 할당 범위
option routers 211.183.3.2;
# client의 GW
option domain-name-servers 8.8.8.8;
# DNS 서버 지정

default-lease-time 600;
# IP 대여 시간 600초
}
[root@dhcp ~]#systemctl restart dhcpd
[root@dhcp ~]# systemctl status dhcpd

# conf 파일 구성에 문제가 있는 경우

# 어느정도 문제 원인이 뭔지 알려주지만, 다 알려주는건 아님

 

설정을 다했다면 잘 되는지 테스트를 해본다.

# 서버 하나 켜서 vmnet8 대역에 둔다.

→ VMnet8에서 VMnet2로 변경


이유) 라우터의 NAT 설정 충돌

라우터에서 NAT를 설정하는 경우, 인터페이스의 NAT 설정(inside, outside)에 따라 통신이 차단될 수 있습니다.
VMnet8은 VMware Workstation에서 NAT를 제공하므로, 라우터에서 NAT를 또 설정하면 충돌이 발생할 가능성이 있습니다. 라우터의 NAT 인터페이스를 잘못 설정하면 내부 네트워크와 외부 네트워크 간의 통신이 끊길 수 있습니다.

vi /etc/sysconfig/network-scripts/ifcfg-ens32

# 네트워크 설정파일 수정

# dhcp로 받아올 정보들을 주석처리하고, BOOTPROTO=dhcp로 하여 dhcp-client로 동작하게끔 바꿔준다.

systemctl restart network

# 변경사항 반영

# 아이피를 잘 받아왔는지 확인

# dhcp-client가 외부와도 통신이 잘 되는지 확인

# dhcp 클라이언트에서 GW 잘 잡혔는지 확인

# dhcp 서버에서 systemctl status dhcpd를 보면 누군가 받아간것도 확인가능하다.

 

R1 설정

R1#conf t
R1(config)#int f0/0
R1(config-if)#ip add 10.10.1.150 255.255.255.0
R1(config-if)#no sh

R1(config-if)#int f0/1
R1(config-if)#ip add 10.10.2.200 255.255.255.0
R1(config-if)#no sh
R1(config)#int f0/0
R1(config-if)#ip nat in
R1(config-if)#int f0/1 
R1(config-if)#ip nat out
# 내부(inside) 외부(outside)를 구분

# R1에서 dhcp서버로 핑을 칠때 출발지를 지정하고 싶다면,

R1(config-if)#do ping 10.10.2.67 source 10.10.1.150

# nat inside, outside 때문에 혹시 몰라서

root@dhcp ~]# vi /etc/dhcp/dhcpd.conf

# dhcp서버에서 클라이언트 대역에 대한 풀 설정을 다시해준다.

subnet 10.10.1.0 netmask 255.255.255.0 {
# 서브넷(풀) 정의, 부여받는 client입장을 고려

range 10.10.1.200 10.10.1.250;
# IP 할당 범위
option routers 10.10.1.150;
# client의 GW
option domain-name-servers 8.8.8.8;
# DNS 서버 지정

default-lease-time 600;
# IP 대여시간 600초
}

# 잘한거 같은데 에러가 뜬다면 systemctl status dhcpd로 확인

# ens32라는 인터페이스 갖고 있고, 그렇기때문에 10.10.2.0 /24인데, 그 대역에 대한 dhcp설정이 정의가 안되어있다.

   = dhcp서버가 자기가 속한 대역만 뿌려줄 수 있다고 생각하고 있음
   = 가짜로 자신(ens32)이 속한 풀을 하나 임의로 만들어주면 된다.

subnet 10.10.2.0 netmask 255.255.255.0 { }

# dhcp 서버에서 클라이언트 대역에 대한 풀 설정을 추가해준다.

 

클라이언트로 사용할 서버를 하나 켜서 대역대를 변경해준다.

# 서버 하나 켜서 vmnet1 대역에 둔다.

# 안되는 이유: dhcp discover 메세지는 브로드캐스트 메세지이기 때문

# dhcp client와 같은 네트워크의 GW가 되는 인터페이스에서 help-address를 설정해주면 된다.

# helper-address = 너 ‘여기’가면 dhcp 서버가 있어!

# dhcp 서버의 주소

 

라우터 (GNS)

R1(config-if)#int f0/0
R1(config-if)#ip helper-address 10.10.2.67

 

클라이언트 서버 (VM)

systemctl restart dhcpd
systemctl restart network

# 변경사항 반영

# dhcp client에서 잘 받아오는걸 확인 가능