복습
DHCP helper-address
dhcp server가 다른대역에 있는 경우,
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에서 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초
}
# ens32라는 인터페이스 갖고 있고, 그렇기때문에 10.10.2.0 /24인데, 그 대역에 대한 dhcp설정이 정의가 안되어있다.
= dhcp서버가 자기가 속한 대역만 뿌려줄 수 있다고 생각하고 있음.
= 가짜로 자신(ens32)이 속한 풀을 하나 임의로 만들어주면 된다.
[root@dhcp ~]# vi /etc/dhcp/dhcpd.conf
# dhcp서버에서 클라이언트 대역에 대한 풀 설정을 다시해준다.
subnet 10.10.2.0 netmask 255.255.255.0 { }
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초
}
클라이언트 서버
# dhcp client와 같은 네트워크의 GW가 되는 인터페이스에서 help-address를 설정해주면된다.
# helper-address = 너 ‘여기’가면 dhcp 서버가 있어! = dhcp 서버의 주소
# dhcp 서버의 주소.
# R1의 f0/0 와 dhcp서버가 서로 통신이 되어야 한다는 전제조건이 붙음. = 라우팅이 잘 되어있어야함.
R1(config-if)#int f0/0
R1(config-if)#ip helper-address 10.10.2.67
DNS(Domain Name System)
궁극적으로 물리적 주소(MAC) 필요 → 물리적 주소를 알기 위해 논리적 주소(IP) 필요
- ♨53 port, TCP/UDP 둘다 사용♨
- 영문 주소에 대한 IP를 안내해주는 시스템
query(질의): client가 "www.naver.com"을 알고 싶을 때
- 아는 경우, DNS server가 IP를 DNS server가 안내
- 모르는 경우, DNS server가 www.naver.com. ROOT 네임서버로 안내
.com, .net, .kr 같은 도메인을 관장하는 서버로 안내
→ .ROOT의 서버
- naver.com을 관장하는 서버로 안내
→ .com의 서버 - 자신의 영역(naver.com)에 대한 정보(www)를 안내
→ naver.com의 서버
☞ 실습할 내용
- naver.com을 관장하는 서버로 안내
DNS 서버 구축
VM 이름 - dns
2 core, 2GB, 20GB, vmnet8 대역
IP - 211.183.3.53
GW - 211.183.3.2
DNS - 8.8.8.8
# 호스트네임 변경하는법
[root@localhost ~]# hostnamectl set-hostname dns
[root@localhost ~]# su
# 바꾼 호스트네임으로 적용
# 초기설정
[root@dns ~]# systemctl stop firewalld
[root@dns ~]# systemctl disable firewalld
[root@dns ~]# vi /etc/selinux/config
# SELINUX=disabled
cat <<EOF > /etc/yum.repos.d/CentOS-Base.repo
# 레포 파일 내용 복붙
> EOF
https://eitherwho.tistory.com/29
10일차) 2025-01-09 (centos7 VM 초기 설정)
초기 셋팅앞으로 centos7 VM을 설정하면 이렇게 3개의 초기 셋팅하기!1. 방화벽 off[root@web ~]# systemctl stop firewalld [root@web ~]# systemctl disable firewalld2. 셀리눅스 off셀리눅스가 활성화 되어있으면, 나중에
eitherwho.tistory.com
리눅스 런레벨(run level)
부팅의 종류
init 0 : shutdown
init 1 : 네트워크x. 단일 사용자 모드
init 2 : 네트워크x. 멀 사용자 모드
init 3 : 네트워크o. 일반적 멀티 사용자 모드
init 4 : 네트워크o. 정의되지 않은 멀티 사용자 모드
init 5 : 네트워크o. 멀티 사용자 GUI(X11) 모드
init 6 : 재부팅(reboot)
# bind(서버), bind-utils(클라이언트) 설치
♨ GNS3 라우팅 + DNS 8.8.8.8로 연결된 상태에서 설치 가능 ♨
[root@dns ~]# yum install -y bind bind-utils
# 패키지 여러개 설치했을땐 명령을 한번 더 쳐서 already가 갯수만큼 있는지 확인
1. /etc/named.conf 수정을 통해 기능적인(수신포트(대기/Listen), 허용할 대상) 설정
[root@dns ~]# vi /etc/named.conf
# 아래 사진처럼 내용 수정
1) listen-on port 53: any로 수정
2) allow-query: any로 수정
2. 영역(zone) 생성
내가 만약 naver.com의 도메인을 관리하는 사람이라면, 내 영역은 naver.com일 것이고,
내 영역에 다양한 하위 도메인들 (www.naver.com, cafe.naver.com, blog.naver.com)이 있을 것이다.
[root@dns ~]# vi /etc/named.rfc1912.zones
# 아래 사진처럼 내용 추가
# 누군가 나에게 rapa.com에 대한 쿼리를 했을 때, rapa.com.db라는 파일의 내용을 토대로 안내해줄 예정
# 우리는 내가 생성한 영역에 대한 안내 파일인 /var/named/rapa.com db를 만들 예정
3. 영역(zone) 파일 생성
위에서 생성한 영역인 rapa.com에 대한 영역파일인 rapa.com.db를 만든다.
[root@dns ~]# vi /var/named/rapa.com.db
# 아래 내용 추가
$TTL 3H
@ SOA @ root (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS @
IN A 211.183.3.53
dns IN A 211.183.3.53
www IN A 211.183.3.80
# 이상 없는지 확인
[root@dns ~]# systemctl restart named
# 나는 현재 211.183.3.53에 dns서버를 구축했고, 이 서버가 잘 동작하는지 테스트해보고 싶다.
따라서 내 네임서버를, 내가 안내받을 서버를 변경해줘야 한다.
[root@dns ~]# nslookup server
# 내가 안내받고 싶은 서버를 수정
[root@dns ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens32
# 내가 안내받고 있는 서버 정보
# 안내해주고 있음을 확인
# 서버에서 스스로를 확인했기때문에 기능엔 문제가 없는것만 확인
외부 client에서 확인
실습
현재 나는 aws.com 도메인을 관리하는 직원이다.
나는 내부에 총 4대의 서버를 갖고 있다.
각각
dhcp(10.10.2.67)
www(10.10.2.80)
dns(10.10.3.53)
client(10.10.2.100)
이때 client는 영문주소로 각 서버에 접속 가능해야한다. 그리고 외부와도 통신이 됐으면 좋겠다. (ping 8.8.8.8)
curl www.aws.com을 쳤을때 웹서버에 접속 가능하도록 최소한의 토폴로지를 통해 직접 구성해보세요. (with GNS3)
- 토폴로지 구성
- 각 서버에 필요한 패키지 설치
전제조건) 외부통신, 레포수정, DNS가 8.8.8.8로 되어있어야 함
https://vault.centos.org/7.9.2009/os/x86_64/이 주소가 우리의 baseurl, 패키지를 다운받기 위한 사이트인데,
이 주소를 안내를 받으려면 구글의 DNS인 8.8.8.8의 안내받아야 하기 때문 - 패키지 설치 후엔 내가 구성한 DNS 서버로부터 안내받아야 하므로 DNS 수정
라우터 설정
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.3.250 255.255.255.0
R1(config-if)#no sh
R1(config-if)#int f1/0
R1(config-if)#ip add 211.183.3.250 255.255.255.0
R1(config-if)#no sh
R1(config-if)#do ping 211.183.3.2
R1(config-if)#do ping 10.10.2.67
R1(config-if)#do ping 10.10.2.80
R1(config-if)#do ping 10.10.3.53
라우팅
R1(config-if)#ip route 0.0.0.0 0.0.0.0 211.183.3.2
# 정해진 VMnet8의 GW: 211.183.3.2가 넥스트홉
NAT
R1(config)#access-list 1 per 10.10.2.0 0.0.1.255
# 10.10.2.0, 10.10.3.0에 대해
R1(config)#ip nat inside source list 1 int f1/0 over
R1(config)#int f0/0
R1(config-if)#ip nat inside
R1(config-if)#int f0/1
R1(config-if)#ip nat inside
R1(config-if)#int f1/0
R1(config-if)#ip nat outside
필요한 패키지 설치
1. DHCP 서버에서 필요한 패키지
[root@dhcp ~]# yum install -y dhcp bind-utils
- dhcpd.conf 파일 수정
[root@dhcp ~]# vi /etc/dhcp/dhcpd.conf
subnet 10.10.2.0 netmask 255.255.255.0 {
# 서브넷(풀) 정의. 부여받는 client입장을 고려.
range 10.10.2.100 10.10.2.180;
# IP 할당 범위
option routers 10.10.2.250;
# client의 GW
option domain-name-servers 8.8.8.8;
# DNS 서버 지정
default-lease-time 600;
# IP 대여 시간 600초
}
[root@dhcp ~]# systemctl stop firewalld
[root@dhcp ~]# systemctl disable firewalld
클라이언트에서 확인
vi /etc/sysconfig/network-scripts/ifcfg-ens32
# client에 필요한 패키지 설치
[root@vm ~]# yum install -y bind-utils
2. web 서버에서 필요한 패키지
[root@web ~]# yum install -y httpd bind-utils
[root@web ~]# systemctl restart httpd
[root@web ~]# systemctl stop firewalld
[root@web ~]# systemctl disable firewalld
3. dns 서버에서 필요한 패키지
[root@dns ~]# yum install -y bind bind-utils
- /etc/named.conf 수정을 통해 기능적인(수신포트, 허용할 대상) 설정
[root@dns ~]# vi /etc/named.conf
- 영역 생성
[root@dns ~]# vi /etc/named.rfc1912.zones
# 아래 내용 추가
- 존(zone) 파일 생성
[root@dns ~]# vi /var/named/aws.com.db
$TTL 3H
@ SOA @ root (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS @
IN A 10.10.3.53
dns IN A 10.10.3.53
www IN A 10.10.2.80
dhcp IN A 10.10.2.67
client IN A 10.10.2.100
[root@dns ~]# systemctl stop firewalld
[root@dns ~]# systemctl disable firewalld
DNS 수정
내가 구성한 DNS서버로부터 안내받아야 하므로
# client에서만 해도 되지만, DNS에서도 내 기능에 문제가 없는지 체크해보는게 좋으므로 DNS서버의 DNS설정도 변경
DHCP서버의 풀설정을 변경해서 client가 다시 dns서버를 내가 구축한 서버인 10.10.3.53의 안내를 받을 수 있도록 하자.
[root@dhcp ~]# vi /etc/dhcp/dhcpd.conf
# DHCP 서버의 풀설정
[root@dhcp ~]# systemctl restart dhcpd
# 클라이언트에서 네트워크를 재시작해서 새로운 DNS 서버값을 잘 받아오는지 확인
# 만약에 여러가지로 해봐도 계속 dns서버가 8.8.8.8로 남아있다면, /etc/resolv.conf를 10.10.3.53으로 수정
1.만약에 DNS 구성에 문제가 있다면 당연히 아래대로 쳤을 때 안된다.
[root@vm ~]# curl www.aws.com
2. web서버를 못찾아가는 경우, 직접 주소를 찍어보면 된다.
→ DNS 구성에 문제가 있을거라고 추측 가능
# 직접 주소를 찍었을 때, 되면 웹서버의 방화벽과 기능은 잘 동작하는걸 확인
[root@vm ~]# curl 10.10.2.80
3. 2도 안되는 경우,
→ web서버의 접근, 기능적인 문제로 추측 가능
# 웹서버의 firewalld이나 httpd의 설치나 동작이 잘구성됐는지 확인
'AWS Cloud School 8기 > GNS3 네트워크 에뮬레이터' 카테고리의 다른 글
11일차) 2025-01-10 (PAT, DHCP server) (1) | 2025.01.10 |
---|---|
10일차) 2025-01-09 (GNS3, Xshell 8 - 실습풀이) (4) | 2025.01.10 |
10일차) 2025-01-09 (GNS3, Xshell 8) (0) | 2025.01.09 |
9일차) 2025-01-08 (GNS3 네트워크 에뮬레이터) (1) | 2025.01.09 |