Red Hat Enterprise Linux 에서 네트워킹 구성하기

Red Hat Enterprise LinuxBeginner
지금 연습하기

소개

이 랩에서는 Red Hat Enterprise Linux 시스템에서 네트워크 인터페이스와 호스트 이름 설정을 구성하는 실습을 진행합니다. 시스템의 네트워크 연결 및 식별을 관리하기 위한 필수적인 명령줄 도구와 기술을 배우게 됩니다.

이 랩을 통해 기존 네트워크 인터페이스 상태와 IP 주소를 확인하고, 정적 IP 구성을 사용하여 새로운 네트워크 연결을 추가하며, 이러한 연결을 활성화 및 비활성화하는 연습을 할 것입니다. 또한, 기존 네트워크 설정을 수정하고, 시스템의 호스트 이름과 이름 확인을 구성하며, 마지막으로 네트워크 연결 및 이름 확인을 테스트하여 모든 구성이 예상대로 작동하는지 확인할 것입니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 86%입니다.학습자들로부터 99%의 긍정적인 리뷰율을 받았습니다.

네트워크 인터페이스 상태 및 IP 주소 확인

이 단계에서는 명령줄 도구를 사용하여 Red Hat Enterprise Linux 시스템에서 네트워크 인터페이스 상태와 IP 주소를 확인하는 방법을 배웁니다. 네트워크 구성을 이해하는 것은 연결 문제를 해결하고 네트워크 서비스를 관리하는 데 매우 중요합니다.

먼저, 시스템에서 사용 가능한 모든 네트워크 인터페이스를 나열하는 ip link 명령을 살펴보겠습니다. 이 명령은 네트워크 어댑터의 상태 (UP/DOWN), MAC 주소 및 MTU(Maximum Transmission Unit, 최대 전송 단위) 를 포함한 개략적인 정보를 제공합니다.

터미널을 엽니다. [labex@host ~]$와 유사한 프롬프트가 표시되어야 합니다.

ip link show

lo(loopback, 루프백) 인터페이스, eth0eth1(대체 이름이 있는 이더넷 인터페이스) 와 같은 인터페이스를 보여주는 다음과 유사한 출력을 보게 됩니다.

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:16:3e:0f:9e:4e brd ff:ff:ff:ff:ff:ff
    altname enp0s6
    altname ens6
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:16:3e:0f:9e:51 brd ff:ff:ff:ff:ff:ff
    altname enp0s7
    altname ens7

시스템에 두 개의 이더넷 인터페이스 (eth0eth1) 가 있고 대체 이름 (enp0s6/ens6enp0s7/ens7 각각) 이 있음을 확인하십시오. qdisc mq는 더 나은 성능을 위해 다중 큐 네트워크 스케줄러가 사용되고 있음을 나타냅니다.

다음으로, ip addr 명령을 사용하여 특정 네트워크 인터페이스에 대한 자세한 장치 및 주소 정보를 확인합니다. 이 명령은 할당된 IP 주소 (IPv4 및 IPv6), 브로드캐스트 주소 및 서브넷 마스크에 대한 정보를 제공합니다.

eth0 인터페이스에 대한 세부 정보를 확인해 보겠습니다.

ip addr show eth0

출력은 eth0에 할당된 IP 주소를 표시하며, 구성된 경우 IPv4 및 IPv6 주소를 모두 포함합니다.

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:16:3e:0f:9e:4e brd ff:ff:ff:ff:ff:ff
    altname enp0s6
    altname ens6
    inet 172.16.50.116/24 brd 172.16.50.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::216:3eff:fe0f:9e4e/64 scope link
       valid_lft forever preferred_lft forever

eth0172.16.50.116/24 IP 주소를 가지고 있으며 noprefixroute 플래그가 있음을 확인하십시오. 이는 NetworkManager 가 이 인터페이스에 대한 라우팅을 관리하고 있음을 나타냅니다.

ip -s link show 명령은 네트워크 트래픽에 대한 빠른 확인을 위해 전송 및 수신된 바이트 및 패킷 수, 오류 또는 삭제된 패킷 수를 포함한 네트워크 성능에 대한 통계를 표시할 수도 있습니다.

ip -s link show eth0

eth0 인터페이스에 대한 통계를 보게 됩니다.

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:16:3e:0f:9e:4e brd ff:ff:ff:ff:ff:ff
    RX:  bytes packets errors dropped  missed   mcast
         90512     884      0       0       0       0
    TX:  bytes packets errors dropped carrier collsns
       1430185    1069      0       0       0       0
    altname enp0s6
    altname ens6

마지막으로, ip route 명령을 사용하여 라우팅 테이블을 확인해 보겠습니다. 라우팅 테이블은 네트워크 트래픽이 대상에 어떻게 전달되는지 결정합니다.

ip route

이 명령은 IPv4 라우팅 테이블을 표시하여 기본 경로 및 특정 네트워크에 대한 경로를 보여줍니다. 두 개의 네트워크 인터페이스가 있으므로 여러 경로가 표시됩니다.

default via 172.16.50.253 dev eth0 proto dhcp src 172.16.50.116 metric 100
default via 172.16.50.253 dev eth1 proto dhcp src 172.16.50.117 metric 200
172.16.50.0/24 dev eth0 proto kernel scope link src 172.16.50.116 metric 100
172.16.50.0/24 dev eth1 proto kernel scope link src 172.16.50.117 metric 200

두 개의 기본 경로가 서로 다른 메트릭 (100 및 200) 을 가지고 있음을 확인하십시오. 즉, eth0은 더 낮은 메트릭 값으로 인해 우선 순위가 있습니다. 두 인터페이스 모두 동일한 네트워크 세그먼트 (172.16.50.0/24) 에 연결되어 있으며 동일한 게이트웨이 (172.16.50.253) 를 사용합니다. eth0 인터페이스는 IP 주소 172.16.50.116/24를 가지고 있고 eth1172.16.50.117/24를 가지고 있습니다.

IPv6 라우팅 테이블을 보려면 ip -6 route 명령을 사용하십시오.

ip -6 route

두 인터페이스에 대한 IPv6 라우팅 항목을 보게 됩니다.

::1 dev lo proto kernel metric 256 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
fe80::/64 dev eth1 proto kernel metric 256 pref medium

정적 IP 를 사용하여 새 네트워크 연결 추가

이 단계에서는 nmcli 명령줄 도구를 사용하여 정적 IP 주소를 가진 새로운 네트워크 연결을 추가하는 방법을 배웁니다. nmcli는 Red Hat Enterprise Linux 에서 네트워크 연결을 관리하는 NetworkManager 를 제어하기 위한 강력한 유틸리티입니다.

먼저, 사용 가능한 인터페이스를 식별하기 위해 현재 네트워크 장치 상태를 확인해 보겠습니다. 이를 통해 구성할 인터페이스를 선택하는 데 도움이 됩니다.

nmcli dev status

eth0eth1과 같은 장치와 해당 연결 이름이 표시되는 다음과 유사한 출력을 보게 됩니다.

DEVICE  TYPE      STATE                   CONNECTION
eth0    ethernet  connected               System eth0
eth1    ethernet  connected               System eth1
lo      loopback  connected (externally)  lo

이 랩에서는 eth0 인터페이스를 사용하여 새로운 정적 연결을 생성합니다. 시스템에는 이미 NetworkManager 에서 자동 생성된 System eth0System eth1이라는 활성 연결이 있습니다.

이제 eth0 인터페이스에 static-eth0이라는 새로운 네트워크 연결을 추가해 보겠습니다. 정적 IPv4 주소, 서브넷 마스크 및 게이트웨이로 구성합니다. 현재 네트워크 환경 (172.16.50.0/24) 을 기반으로 다음 세부 정보를 사용합니다.

  • 연결 이름: static-eth0
  • 인터페이스 이름: eth0
  • IPv4 주소: 172.16.50.200/24 (이는 IP 주소 172.16.50.200 과 24 비트 서브넷 마스크를 의미합니다.)
  • 게이트웨이: 172.16.50.253 (현재 게이트웨이와 동일)

새 연결을 추가하려면 다음 명령을 실행합니다. 네트워크 구성 변경에는 root 권한이 필요하므로 sudo를 사용해야 합니다. 암호를 묻지 않습니다.

참고: 이미 다른 IP 범위 (예: 192.168.1.10/24)로 static-eth0 연결을 생성한 경우, 먼저 삭제하고 이 환경에 맞는 올바른 IP 범위로 다시 생성해야 합니다.

## Delete the existing connection if it exists with wrong IP range
sudo nmcli con delete static-eth0
## Add the new connection with correct IP range
sudo nmcli con add con-name static-eth0 type ethernet ifname eth0 ipv4.addresses 172.16.50.200/24 ipv4.gateway 172.16.50.253 ipv4.method manual

명령을 실행한 후 연결이 성공적으로 추가되었음을 나타내는 확인 메시지가 표시됩니다.

Connection 'static-eth0' (d4c42169-4134-4d3a-9b31-e837d62601bd) successfully added.

명령을 자세히 살펴보겠습니다.

  • sudo nmcli con add: 새 NetworkManager 연결을 추가하는 기본 명령입니다.
  • con-name static-eth0: 새 연결 프로필에 static-eth0 이름을 할당합니다.
  • type ethernet: 이가 이더넷 유형 연결임을 지정합니다.
  • ifname eth0: 이 연결 프로필을 eth0 네트워크 인터페이스에 바인딩합니다.
  • ipv4.addresses 172.16.50.200/24: 정적 IPv4 주소와 서브넷 마스크를 설정합니다.
  • ipv4.gateway 172.16.50.253: 이 연결에 대한 기본 게이트웨이를 설정합니다.
  • ipv4.method manual: IPv4 주소 할당 방식을 수동 (정적) 으로 구성하여 DHCP 를 통해 IP 주소를 얻으려고 시도하는 것을 방지합니다.

이제 새 연결 프로필이 생성되었는지 확인해 보겠습니다. nmcli con show를 사용하여 사용 가능한 모든 연결을 나열할 수 있습니다.

nmcli con show

연결 목록에 static-eth0이 표시되어야 합니다. 시스템에서 생성된 연결이 활성 상태인 반면, 아직 활성 상태가 아닙니다 (장치가 할당되지 않음).

NAME         UUID                                  TYPE      DEVICE
System eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0
System eth1  9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04  ethernet  eth1
lo           9eac3150-dd39-47e6-a375-f7165442a8eb  loopback  lo
static-eth0  d4c42169-4134-4d3a-9b31-e837d62601bd  ethernet  --

다음 단계에서는 새로 생성된 이 연결을 활성화하는 방법을 배웁니다.

네트워크 연결 활성화 및 비활성화

이 단계에서는 nmcli 명령을 사용하여 네트워크 연결을 활성화 및 비활성화하는 방법을 배웁니다. 연결을 활성화하면 네트워크 인터페이스가 활성화되고 연결 프로필에 정의된 구성이 적용됩니다. 연결을 비활성화하면 인터페이스가 비활성화됩니다.

먼저, 현재 상태를 확인하기 위해 모든 네트워크 연결을 나열해 보겠습니다. 이를 통해 eth0에서 어떤 연결이 활성 상태인지 식별하는 데 도움이 됩니다.

nmcli con show

다음과 유사한 출력을 보게 됩니다. 현재 System eth0eth0에서 활성 상태이고 static-eth0은 활성 상태가 아님을 확인하십시오.

NAME         UUID                                  TYPE      DEVICE
System eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0
System eth1  9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04  ethernet  eth1
lo           8fe3e894-2a2e-446f-9abc-cdf612f0d973  loopback  lo
static-eth0  66094d3b-f21a-44f9-b1ef-3b2b2659e487  ethernet  --

이제 이전 단계에서 생성한 static-eth0 연결을 활성화해 보겠습니다.

중요 참고 사항: 원격 환경에서 작업하고 있으므로, 기본 인터페이스 (eth0) 에서 다른 IP 주소로 연결을 활성화하면 원격 연결이 중단될 수 있습니다. 프로덕션 환경에서는 일반적으로 다음을 수행합니다.

  1. 테스트를 위해 보조 인터페이스를 사용합니다.
  2. 머신에 대한 콘솔 액세스 권한을 갖습니다.
  3. 현재 연결과 동일한 IP 범위를 사용하도록 연결을 구성합니다.

이 랩에서는 연결 중단을 방지하기 위해 eth0 대신 eth1을 사용합니다. 먼저 eth1에 대한 정적 연결을 생성해 보겠습니다.

sudo nmcli con add con-name static-eth1 type ethernet ifname eth1 ipv4.addresses 172.16.50.201/24 ipv4.gateway 172.16.50.253 ipv4.method manual

이제 static-eth1 연결을 활성화합니다.

sudo nmcli con up static-eth1

연결이 성공적으로 활성화되었음을 나타내는 확인 메시지가 표시됩니다.

Connection 'static-eth1' successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/X)

static-eth1을 활성화한 후에는 장치당 하나의 연결만 활성 상태일 수 있으므로 원래의 System eth1 연결이 자동으로 비활성화됩니다. 네트워크 장치 및 연결의 상태를 다시 확인해 보겠습니다.

nmcli dev status

이제 eth1static-eth1 연결과 연결되어 있고 eth0은 원래 연결을 유지하는 것을 볼 수 있습니다.

DEVICE  TYPE      STATE      CONNECTION
eth0    ethernet  connected  System eth0
eth1    ethernet  connected  static-eth1
lo      loopback  connected  lo

그리고 static-eth1이 활성 상태인지 확인하기 위해 연결 목록을 다시 확인해 보겠습니다.

nmcli con show --active

다른 활성 연결과 함께 static-eth1이 활성 연결로 나열되는 것을 볼 수 있습니다.

NAME         UUID                                  TYPE      DEVICE
System eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0
lo           9eac3150-dd39-47e6-a375-f7165442a8eb  loopback  lo
static-eth1  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  ethernet  eth1

이제 eth1 인터페이스에 구성한 정적 IP 주소가 있는지 확인해 보겠습니다.

ip addr show eth1

출력은 이제 eth1의 IPv4 주소로 172.16.50.201/24를 표시해야 합니다.

3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:16:3e:0f:9e:51 brd ff:ff:ff:ff:ff:ff
    altname enp0s7
    altname ens7
    inet 172.16.50.201/24 brd 172.16.50.255 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::216:3eff:fe0f:9e51/64 scope link
       valid_lft forever preferred_lft forever

마지막으로, 네트워크 연결을 비활성화하는 방법을 배우겠습니다. 장치를 연결 해제하여 해당 장치에서 활성 연결을 중단할 수 있습니다.

sudo nmcli dev disconnect eth1

확인 메시지가 표시됩니다.

Device 'eth1' successfully disconnected.

장치 상태를 다시 확인합니다. 이제 eth1disconnected 상태여야 합니다.

nmcli dev status
DEVICE  TYPE      STATE         CONNECTION
eth0    ethernet  connected     System eth0
eth1    ethernet  disconnected  --
lo      loopback  connected     lo

장치를 연결 해제하면 이전에 활성 상태였던 연결도 비활성화됩니다. 원래의 System eth1 연결을 다시 활성화하려면 sudo nmcli con up "System eth1"을 사용하여 다시 활성화합니다 (연결 이름에 공백이 있으므로 따옴표 사용). 이 랩에서는 eth1을 당분간 연결 해제된 상태로 둡니다.

기존 네트워크 연결 설정 수정

이 단계에서는 nmcli 명령을 사용하여 기존 네트워크 연결의 설정을 수정하는 방법을 배웁니다. IP 주소, DNS 서버 또는 기타 네트워크 매개변수를 업데이트해야 할 때 흔히 사용되는 작업입니다.

먼저, static-eth1 연결이 활성 상태인지 확인합니다. 설정을 수정할 것이기 때문입니다. 활성 상태가 아니면 지금 활성화하십시오.

sudo nmcli con up static-eth1

활성화된 경우 확인 메시지가 표시되거나 이미 활성 상태임을 나타내는 메시지가 표시됩니다.

Connection 'static-eth1' successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/X)

이제 static-eth1 연결의 현재 설정을 살펴보겠습니다. 이 명령은 연결에 대해 구성된 모든 속성을 표시합니다.

nmcli con show static-eth1

연결 속성에 대한 자세한 출력을 보게 됩니다. ipv4.addressesipv4.gateway 줄에 주의하십시오.

connection.id:                          static-eth1
connection.uuid:                        xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
connection.interface-name:              eth1
...
ipv4.addresses:                         { ip = 172.16.50.201/24, gw = 172.16.50.253 }
ipv4.gateway:                           172.16.50.253
...

static-eth1의 IPv4 주소를 172.16.50.221/24로 수정하고 동일한 게이트웨이 172.16.50.253을 유지해 보겠습니다.

sudo nmcli con mod static-eth1 ipv4.addresses 172.16.50.221/24 ipv4.gateway 172.16.50.253

이 명령은 연결 프로필을 수정합니다. 그러나 변경 사항을 적용하려면 연결을 비활성화한 다음 다시 활성화해야 합니다.

먼저 eth1 장치를 비활성화합니다.

sudo nmcli dev disconnect eth1

다음과 같은 메시지가 표시됩니다.

Device 'eth1' successfully disconnected.

그런 다음 static-eth1 연결을 다시 활성화합니다.

sudo nmcli con up static-eth1

다음과 같은 메시지가 표시됩니다.

Connection 'static-eth1' successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/X)

이제 IP 주소와 게이트웨이가 업데이트되었는지 확인해 보겠습니다.

ip addr show eth1

출력은 이제 새 IP 주소 172.16.50.221/24를 반영해야 합니다. 이전 구성에서 보조 IP 주소도 볼 수 있습니다.

3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:16:3e:0f:a2:70 brd ff:ff:ff:ff:ff:ff
    altname enp0s7
    altname ens7
    inet 172.16.50.221/24 brd 172.16.50.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
    inet 172.16.50.122/24 brd 172.16.50.255 scope global secondary noprefixroute eth1
       valid_lft forever preferred_lft forever

그리고 게이트웨이를 확인하기 위해 라우팅 테이블을 확인합니다.

ip route

두 인터페이스 모두에 대한 경로가 표시되어야 하며, eth1은 새 IP 주소를 갖습니다. 보조 IP 주소가 있는 경우 추가 경로가 표시될 수 있습니다.

default via 172.16.50.253 dev eth0 proto dhcp src 172.16.50.121 metric 100
default via 172.16.50.253 dev eth1 proto static metric 101
172.16.50.0/24 dev eth0 proto kernel scope link src 172.16.50.121 metric 100
172.16.50.0/24 dev eth1 proto kernel scope link src 172.16.50.221 metric 101
172.16.50.0/24 dev eth1 proto kernel scope link src 172.16.50.122 metric 101

DNS 서버와 같이 다중 값 설정에서 특정 값을 추가하거나 제거할 수도 있습니다. static-eth1 연결에 DNS 서버 8.8.8.8을 추가해 보겠습니다.

sudo nmcli con mod static-eth1 +ipv4.dns 8.8.8.8

이 변경 사항을 적용하려면 연결을 다시 비활성화하고 다시 활성화해야 합니다. 이러한 명령을 별도의 줄에서 실행하거나 결합할 수 있습니다.

sudo nmcli dev disconnect eth1
sudo nmcli con up static-eth1

DNS 설정을 확인합니다.

nmcli con show static-eth1 | grep ipv4.dns

8.8.8.8이 DNS 서버로 나열되는 것을 볼 수 있습니다.

ipv4.dns:                               8.8.8.8

시스템 호스트 이름 및 이름 확인 설정

이 단계에서는 시스템의 호스트 이름을 구성하고 이름 확인 설정을 관리하는 방법을 배웁니다. 호스트 이름은 네트워크에서 시스템을 식별하는 고유한 이름이며, 이름 확인은 호스트 이름을 IP 주소로, IP 주소를 호스트 이름으로 변환하는 프로세스입니다.

먼저, hostname 명령을 사용하여 시스템의 현재 호스트 이름을 확인해 보겠습니다.

hostname

host 또는 localhost.localdomain과 같은 기본값일 수 있는 현재 호스트 이름을 볼 수 있습니다.

host

정적 호스트 이름을 설정하려면 hostnamectl 명령을 사용합니다. 이 명령은 재부팅 시에도 호스트 이름을 유지하는 /etc/hostname 파일을 수정합니다. 호스트 이름을 server.labex.example.com으로 설정해 보겠습니다.

sudo hostnamectl set-hostname server.labex.example.com

호스트 이름을 설정한 후에는 hostnamectl status를 사용하여 확인할 수 있습니다.

hostnamectl status

새 정적 호스트 이름이 나열되는 것을 볼 수 있습니다.

 Static hostname: server.labex.example.com
       Icon name: computer-vm
         Chassis: vm 🖴
      Machine ID: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
         Boot ID: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  Virtualization: kvm
Operating System: Red Hat Enterprise Linux 9.6 (Plow)
     CPE OS Name: cpe:/o:redhat:enterprise_linux:9::baseos
          Kernel: Linux 5.14.0-xxx.el9.x86_64
    Architecture: x86-64
 Hardware Vendor: Alibaba Cloud
  Hardware Model: Alibaba Cloud ECS

/etc/hostname 파일의 내용을 직접 확인할 수도 있습니다.

cat /etc/hostname

그러면 새 호스트 이름이 표시됩니다.

server.labex.example.com

다음으로, 이름 확인을 구성해 보겠습니다. Linux 시스템은 일반적으로 DNS 서버를 쿼리하기 전에 로컬 호스트 이름-IP 주소 매핑에 /etc/hosts 파일을 사용합니다. IP 주소가 192.168.1.100인 가상의 서버 webserver.labex.example.com에 대한 항목을 /etc/hosts에 추가해 보겠습니다.

sudo nano를 사용하여 /etc/hosts 파일을 편집합니다.

sudo nano /etc/hosts

파일 끝에 다음 줄을 추가합니다.

192.168.1.100   webserver.labex.example.com

Ctrl+X를 누른 다음 Y를 눌러 저장하고 Enter를 눌러 파일 이름을 확인합니다.

이제 /etc/hosts에 항목이 있는지 확인해 보겠습니다.

cat /etc/hosts

추가한 항목이 표시됩니다.

127.0.0.1       localhost localhost.localdomain localhost4 localhost4.localdomain4
::1             localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.100   webserver.labex.example.com

/etc/hosts 파일을 사용하여 호스트 이름 확인을 테스트하려면 getent hosts 명령을 사용할 수 있습니다. 이 명령은 /etc/hosts를 포함하는 Name Service Switch (NSS) 구성을 쿼리합니다.

getent hosts webserver.labex.example.com

/etc/hosts 파일에서 확인된 IP 주소를 볼 수 있습니다.

192.168.1.100   webserver.labex.example.com

마지막으로, DNS 쿼리가 수행되는 방식을 제어하는 /etc/resolv.conf 파일을 살펴보겠습니다. NetworkManager 는 일반적으로 이 파일을 관리합니다. 이전 단계에서 8.8.8.8static-eth1 연결에 DNS 서버로 추가했습니다. /etc/resolv.conf에 나타나는지 확인해 보겠습니다.

cat /etc/resolv.conf

다른 시스템 네임서버와 함께 nameserver 8.8.8.8이 나열되는 것을 볼 수 있습니다.

## Generated by NetworkManager
search labex.example.com
nameserver 100.100.2.136
nameserver 100.100.2.138
nameserver 8.8.8.8

참고: search 지시어 및 시스템 네임서버는 환경에 따라 다를 수 있습니다. 중요한 것은 8.8.8.8이 목록에 나타난다는 것입니다.

네트워크 연결 및 이름 확인 테스트

이 마지막 단계에서는 다양한 명령줄 도구를 사용하여 네트워크 연결 및 이름 확인을 테스트합니다. 이를 통해 네트워크 구성이 예상대로 작동하는지 확인할 수 있습니다.

먼저, ping 명령을 사용하여 알려진 IP 주소에 대한 기본적인 네트워크 연결을 테스트해 보겠습니다. 이전 단계에서 구성한 게이트웨이 172.16.50.253에 ping 을 보낼 것입니다. -c3 옵션은 3 개의 패킷만 보냅니다.

ping -c3 172.16.50.253

게이트웨이에 대한 연결을 나타내는 성공적인 응답을 볼 수 있습니다.

PING 172.16.50.253 (172.16.50.253) 56(84) bytes of data.
64 bytes from 172.16.50.253: icmp_seq=1 ttl=64 time=0.052 ms
64 bytes from 172.16.50.253: icmp_seq=2 ttl=64 time=0.049 ms
64 bytes from 172.16.50.253: icmp_seq=3 ttl=64 time=0.045 ms

--- 172.16.50.253 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.045/0.049/0.052/0.003 ms

참고: 필요한 경우 Ctrl+C를 눌러 언제든지 ping 명령을 중단할 수 있습니다.

다음으로, /etc/hosts에 추가한 webserver.labex.example.com 항목에 대한 이름 확인을 테스트해 보겠습니다. /etc/hosts를 먼저 참조하므로 getent hosts를 다시 사용합니다.

getent hosts webserver.labex.example.com

IP 주소 192.168.1.100이 반환되는 것을 볼 수 있습니다.

192.168.1.100   webserver.labex.example.com

이제 host 명령을 사용하여 google.com과 같은 외부 호스트 이름에 대한 DNS 확인을 테스트해 보겠습니다. 이 명령은 구성된 DNS 서버 (이것은 static-eth0 연결에서 8.8.8.8을 포함해야 함) 를 쿼리합니다.

host google.com

google.com의 IP 주소를 볼 수 있습니다.

google.com has address 142.251.46.174
google.com has IPv6 address 2607:f8b0:4005:802::200e
google.com mail is handled by 10 smtp.google.com.

dig 명령은 DNS 네임 서버를 쿼리하기 위한 또 다른 강력한 도구입니다. DNS 쿼리에 대한 자세한 정보를 제공합니다.

dig google.com

DNS 서버가 응답한 내용과 쿼리 세부 정보를 포함하는 더 자세한 출력을 볼 수 있습니다.

; <<>> DiG 9.16.23-RH <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21983
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com.                    IN      A

;; ANSWER SECTION:
google.com.             1       IN      A       142.251.46.174

;; Query time: 1 msec
;; SERVER: 100.100.2.136#53(100.100.2.136)
;; WHEN: Mon Jun 16 10:18:26 CST 2025
;; MSG SIZE  rcvd: 44

마지막으로, ss 명령을 사용하여 소켓 통계를 표시하고 활성 네트워크 연결을 확인해 보겠습니다. TCP 소켓의 경우 -t를, 모든 (수신 및 설정된) 소켓의 경우 -a를 사용합니다.

ss -ta

시스템의 TCP 연결 및 수신 포트 목록을 볼 수 있습니다.

State                                Recv-Q                                Send-Q                                                               Local Address:Port                                                                      Peer Address:Port
LISTEN                               0                                     128                                                                        0.0.0.0:exlm-agent                                                                     0.0.0.0:*
LISTEN                               0                                     128                                                                        0.0.0.0:ssh                                                                            0.0.0.0:*
ESTAB                                0                                     0                                                                    172.16.50.121:exlm-agent                                                               172.16.50.251:36354
LISTEN                               0                                     128                                                                           [::]:ssh                                                                               [::]:*

이것으로 네트워킹 관리 실습을 마칩니다. 네트워크 구성을 성공적으로 검증하고, 연결을 추가 및 수정하고, 호스트 이름 및 이름 확인을 구성하고, 연결을 테스트했습니다.

요약

이 실습에서는 Red Hat Enterprise Linux 시스템에서 네트워크 인터페이스 및 호스트 이름 구성을 관리하는 실질적인 경험을 얻었습니다. ip linkip addr 명령을 사용하여 네트워크 인터페이스 상태와 IP 주소를 검증하는 것으로 시작하여 네트워크 진단을 위해 해당 출력을 해석하는 방법을 이해했습니다.

이어서, 정적 IP 주소를 사용하여 새로운 네트워크 연결을 추가하고, 이러한 연결을 활성화 및 비활성화하고, 기존 네트워크 설정을 수정하는 방법을 배웠으며, 네트워크 관리를 위한 nmcli의 숙련도를 보여주었습니다. 마지막으로, 시스템 호스트 이름과 이름 확인을 구성하고, 네트워크 연결 및 이름 확인을 확인하여 필수적인 Linux 네트워킹 개념에 대한 이해를 굳혔습니다.