복습

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 discover 메세지는 브로드캐스트 메세지기 때문에 안된다

# 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

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


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의 서버
        ☞ 실습할 내용

# www는 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

# 서식 파일
# www.rapa.com을 누군가 물어보면 211.183.3.80 이라는 IP를 안내

# 이상 없는지 확인

[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)

# 대역을 10.10.2.0 /24와  10.10.3.0 /24 을 쓰고있으므로 내부에는 총 두개의 vmnet을 가져가면 된다.

    1. 토폴로지 구성
    2. 각 서버에 필요한 패키지 설치
      전제조건) 외부통신, 레포수정, DNS가 8.8.8.8로 되어있어야 함
      https://vault.centos.org/7.9.2009/os/x86_64/이 주소가 우리의 baseurl, 패키지를 다운받기 위한 사이트인데,
      이 주소를 안내를 받으려면 구글의 DNS인 8.8.8.8의 안내받아야 하기 때문
    3. 패키지 설치 후엔 내가 구성한 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에 가서 dhcp로 아이피를 받아오도록 설정함

# 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의 설치나 동작이 잘구성됐는지 확인