네트워킹은 서버 관리의 기본적인 측면이며, 특히 Ubuntu Server로 작업할 때 중요합니다. 클라우드 환경에서 서버를 설정하든 온프레미스 인프라를 관리하든, 네트워크 인터페이스 구성, 고정 IP 주소 할당, 네트워킹 서비스 관리, 연결 문제 해결 방법을 이해하는 것이 중요합니다. 이 가이드에서는 Ubuntu Server 네트워킹의 기본 사항을 다루며, 여기에는 Netplan (Ubuntu 22.04의 기본 네트워크 구성 도구) 사용, cloud-init에서 생성된 구성 처리, 네트워킹 서비스 관리 및 일반적인 문제 해결이 포함됩니다.
이전 문서:
01. Ubuntu Server 소개 – SysOSX: AI & Cloud
02. 첫 Ubuntu Server 설정 방법: 초보자 가이드 – SysOSX: AI & Cloud
03. Ubuntu Server용 Linux 명령줄 마스터하기 – SysOSX: AI & Cloud
04. Ubuntu Server에서 사용자 및 권한 관리: 종합 가이드 – SysOSX: AI & Cloud
1. Ubuntu Server 네트워킹 소개
Ubuntu Server는 Netplan를 Ubuntu 17.10부터 기본 네트워크 구성 도구로 사용합니다. Netplan은 YAML 파일을 사용하여 네트워크 구성을 정의하는 과정을 단순화합니다. Ubuntu Server 22.04에서는 systemd-networkd가 네트워킹 관리를 위한 기본 백엔드 서비스이며, NetworkManager는 일반적으로 데스크톱 환경이나 고급 네트워크 관리가 필요한 특정 서버 구성에서 사용됩니다.
기본 네트워킹 백엔드
- Ubuntu Server 22.04: systemd-networkd를 기본 네트워킹 서비스로 사용합니다.
- Ubuntu Desktop 22.04: NetworkManager를 기본 네트워킹 서비스로 사용합니다.
Ubuntu Desktop을 사용하거나 Ubuntu Server에 NetworkManager를 수동으로 설치한 경우 이를 사용하여 네트워크 인터페이스를 관리할 수 있습니다. 그러나 NetworkManager는 기본적으로 Ubuntu Server 에디션에 설치되어 있지 않습니다.
2. Netplan을 사용한 네트워크 인터페이스 구성(Cloud-Init 업데이트)
클라우드 환경에서 Netplan 구성 파일의 이름은 보통 /etc/netplan/50-cloud-init.yaml입니다. 이 파일은 cloud-init에서 생성되며, cloud-init의 네트워크 구성 기능을 비활성화하지 않으면 변경 사항이 인스턴스 재부팅 후에도 유지되지 않습니다.
Cloud-Init 네트워크 구성 비활성화
cloud-init의 네트워크 구성 기능을 비활성화하려면 다음 위치에 파일을 만듭니다. /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg:
sudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
다음 내용을 추가합니다.
network: {config: disabled}
cloud-init의 네트워크 구성을 비활성화한 후 영구 Netplan 구성 파일을 수동으로 만들고 관리할 수 있습니다.
예: Netplan을 사용한 고정 IP 주소 구성
Netplan 구성 파일이 /etc/netplan/50-cloud-init.yaml인 경우 직접 수정하거나 새 구성 파일(예: /etc/netplan/01-netcfg.yaml)을 만들어 영구 설정할 수 있습니다.
- Netplan 구성 파일을 엽니다.
sudo nano /etc/netplan/50-cloud-init.yaml
- 고정 IP 주소를 설정하도록 내용을 수정합니다.
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.1.100/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
eth0: 네트워크 인터페이스 이름으로 바꿉니다(ip a를 사용하여 인터페이스를 나열합니다).addresses: 고정 IP 주소를 할당합니다.routes:to: default: 기본 경로를 지정합니다.via: 192.168.1.1: 게이트웨이 주소를 정의합니다.
nameservers: DNS 서버를 지정합니다.
- 구성을 적용합니다.
sudo netplan apply
- 구성을 확인합니다.
ip a
3. 고정 IP 주소 설정
Netplan이 권장 도구이긴 하지만 고정 IP 주소를 수동으로 구성할 수도 있습니다. 이전 Ubuntu 버전에서 사용된 /etc/network/interfaces이나 명령줄 도구를 통해 수동으로 구성할 수 있습니다.
ip 명령 사용
ip 명령은 네트워크 인터페이스를 관리하기 위한 다용도 도구입니다. 다음은 고정 IP 주소를 임시로 할당하는 예입니다.
sudo ip addr add 192.168.1.100/24 dev eth0
sudo ip route add default via 192.168.1.1
ip addr add: 네트워크 인터페이스에 IP 주소를 할당합니다.ip route add: 기본 게이트웨이를 설정합니다.
참고: 이러한 변경 사항은 임시적이며 재부팅 후 사라집니다. 영구 구성에는 Netplan을 사용하세요.
4. 네트워킹 서비스 관리
Ubuntu는 systemd-networkd를 서버 환경의 기본 네트워킹 서비스로 사용합니다. 이 서비스를 효과적으로 관리하는 것은 안정적인 네트워크 연결을 보장하는 데 중요합니다.
네트워킹 서비스 상태 확인
네트워킹 서비스 상태를 확인하려면 다음 명령을 사용합니다.
sudo systemctl status systemd-networkd
이렇게 하면 현재 상태와 systemd-networkd 서비스와 관련된 오류가 표시됩니다.
네트워킹 서비스 다시 시작
구성을 변경한 후 네트워킹 서비스를 다시 시작해야 하는 경우:
sudo systemctl restart systemd-networkd
네트워킹 서비스 활성화 또는 비활성화
네트워킹 서비스를 부팅 시 자동으로 시작하도록 활성화하려면:
sudo systemctl enable systemd-networkd
네트워킹 서비스를 비활성화하려면:
sudo systemctl disable systemd-networkd
NetworkManager 사용(선택 사항)
NetworkManager를 systemd-networkd 대신 사용하는 경우 다음과 같이 서비스를 관리할 수 있습니다.
- 상태 확인:
sudo systemctl status NetworkManager
- 서비스 다시 시작:
sudo systemctl restart NetworkManager
- NetworkManager 활성화 또는 비활성화:
sudo systemctl enable NetworkManager
sudo systemctl disable NetworkManager
5. Netplan의 알려진 문제 및 경고
Netplan을 사용하여 Ubuntu 22.04 서버에서 고정 IP를 구성할 때 다음과 같은 경고가 표시될 수 있습니다.
경고: Cannot call Open vSwitch: ovsdb-server.service is not running
이 경고는 Netplan이 Open vSwitch(클라우드 및 가상화 환경에서 자주 사용되는 가상 네트워킹 스위치)를 감지하려고 시도하기 때문에 발생합니다. Open vSwitch가 설치되어 있지 않으면 Netplan이 경고를 생성합니다.
경고 해결
Open vSwitch를 사용하지 않는 경우 이 경고를 무시해도 됩니다. 그러나 경고를 제거하려면 openvswitch-switch-dpdk 패키지를 설치할 수 있으며, 이 패키지는 Open vSwitch에 필요한 구성 요소를 제공합니다.
다음 명령을 실행합니다.
sudo apt install openvswitch-switch-dpdk
설치되면 Netplan이 Open vSwitch의 존재를 감지하고 경고 생성을 중단합니다.
알려진 버그 참조
이 문제는 Netplan의 버그로 공식 보고되었습니다.
https://bugs.launchpad.net/ubuntu/+source/netplan.io/+bug/2041727
6. 네트워크 관리를 위한 명령줄 도구
Ubuntu는 네트워크 구성을 관리하고 문제를 해결하기 위한 다양한 도구를 제공합니다. 가장 일반적으로 사용되는 도구는 다음과 같습니다.
6.1 ip 명령
ip 명령은 이전 ifconfig 도구를 대체하며 더 강력하고 유연합니다.
- 네트워크 인터페이스 보기:
ip a - 경로 확인:
ip route - 인터페이스 활성화/비활성화:
sudo ip link set eth0 up
sudo ip link set eth0 down
6.2 ping 명령
ping 명령은 다른 호스트에 대한 연결을 테스트하는 데 사용됩니다.
ping google.com
6.3 traceroute 명령
traceroute 명령은 대상까지의 네트워크 경로를 식별합니다.
sudo apt install traceroute
traceroute google.com
6.4 Curl 명령
curl 명령은 HTTP 연결을 테스트합니다.
curl http://example.com
7. 일반적인 네트워크 문제 해결
네트워크 문제는 서버 환경에서 흔합니다. 몇 가지 시나리오와 문제 해결 단계는 다음과 같습니다.
시나리오 1: 네트워크 인터페이스가 작동하지 않음
- 인터페이스 상태 확인:
ip a
- 인터페이스 활성화:
sudo ip link set eth0 up
시나리오 2: 외부 호스트에 Ping할 수 없음
- 기본 게이트웨이 확인:
ip route - DNS 확인:
nslookup google.comDNS가 확인되지 않으면 Netplan 구성에서 네임서버를 업데이트합니다.
시나리오 3: Netplan 구성 문제
- Netplan YAML 파일 검증:
sudo netplan try이렇게 하면 구성을 영구적으로 적용하지 않고 테스트할 수 있습니다. - 구성 다시 적용:
sudo netplan apply
시나리오 4: 네트워킹 서비스 확인
네트워크 연결 문제가 지속되면 네트워킹 서비스 상태를 확인합니다.
sudo systemctl status systemd-networkd
오류가 보고되면 서비스를 다시 시작합니다.
sudo systemctl restart systemd-networkd
시나리오 5: 방화벽이 트래픽 차단
- 방화벽 규칙 확인:
sudo ufw status
- 필요한 트래픽 허용:
sudo ufw allow 22/tcp sudo ufw allow 80/tcp
시나리오 6: 패킷 손실 또는 지연 문제
ping를 사용하여 패킷 손실을 확인합니다.
ping -c 10 google.com
traceroute를 사용하여 네트워크 병목을 식별합니다.
traceroute google.com
8. 결론
네트워킹은 Ubuntu Server 관리자에게 중요한 기술입니다. 이 가이드에서는 네트워크 인터페이스 구성, 네트워킹 서비스 관리, Netplan 경고 처리, 고정 IP 설정, 명령줄 도구 사용 및 일반적인 문제 해결의 기본 사항을 다뤘습니다. Netplan, ip 및 ping 등의 도구를 숙달하면 서버의 네트워크 관련 문제를 효율적으로 관리하고 해결할 수 있습니다.
자세한 내용은 공식 Ubuntu 설명서에서 Netplan 및 네트워킹 기초.
다음 단계: 패치, 패키지 관리 및 보안
이 시리즈의 다음 섹션에서는 Ubuntu Server 관리의 중요한 측면을 더 깊이 다루며, 중점은 패치, 패키지 관리 및 보안입니다. 이러한 주제는 안전하고 안정적이며 효율적인 서버 환경을 유지하는 데 필수적입니다.
1. 소프트웨어 설치 및 관리
Ubuntu Server에서 apt 및 기타 패키지 관리 도구를 사용하여 소프트웨어를 설치, 업데이트 및 관리하는 기본 사항을 익힙니다. 종속성과 리포지토리를 효율적으로 관리하여 서버에 필요한 소프트웨어가 갖춰지도록 하는 방법을 알아봅니다.
2. Ubuntu Server 패치 및 업데이트
- 보안과 안정성에 패치가 중요한 이유.
- apt를 사용하여 서버를 업데이트하고 업그레이드합니다.
- 다음의 차이 이해: apt update, apt upgrade 및 apt full-upgrade.
- 업데이트 자동화: unattended-upgrades.
- 커널 업데이트 처리 및 정상적인 재부팅: reboot-required.
3. Ubuntu Server 보호
- 방화벽 구성(ufw)를 포함하여 SSH를 안전하게 설정하고 fail2ban와 같은 도구를 사용하여 공격으로부터 보호하는 실용적인 단계.
- 취약점과 무단 액세스로부터 서버를 강화하는 방법을 알아봅니다.
4. Ubuntu Server 감사 및 로깅
- 시스템 감사 소개 및 로그의 중요성.
- auditd를 사용하여 시스템 이벤트를 추적하고 기록합니다.
- 로그 순환 구성: logrotate.
/var/log디렉터리를 모니터링하여 중요한 이벤트를 확인하고 사전 예방적 서버 관리를 보장합니다.
4 thoughts on “05. Networking Basics for Ubuntu Server: A Comprehensive Guide”