콘텐츠로 이동

NetworkManager 네트워크 구성 도구 모음

2004년 레드햇은 NetworkManager 프로젝트를 시작했습니다. 이 프로젝트는 특히 무선 네트워크 관리를 포함한 현재 네트워크 관리의 요구에 보다 쉽게 대응할 수 있도록 리눅스 사용자를 지원하는 것을 목표로 합니다. 오늘날 이 프로젝트는 GNOME에서 관리되고 있습니다. NetworkManager의 홈페이지는 여기에서 찾을 수 있습니다: https://networkmanager.dev/

공식 소개 - NetworkManager는 표준 Linux 네트워크 구성 도구 모음입니다. 데스크톱에서 서버 및 모바일 장치에 이르기까지 다양한 네트워크 설정을 지원하며 널리 사용되는 데스크톱 환경 및 서버 구성 관리 도구와 완벽하게 통합됩니다.

제품군에는 주로 두 가지 명령줄 도구가 포함되어 있습니다:

  • nmtui. 그래픽 인터페이스에서 네트워크를 구성합니다.
shell > dnf -y install NetworkManager NetworkManager-tui
shell > nmtui
NetworkManager TUI
연결 편집
연결 활성화
시스템 호스트 이름 설정
종료
OK
  • nmcli. 명령줄을 사용하여 순수 명령줄 또는 대화형 명령줄 중 하나를 사용하여 네트워크를 구성합니다.
Shell > nmcli connection show                                                                                                        
NAME    UUID                                  TYPE      DEVICE                                                                              
ens160  25106d13-ba04-37a8-8eb9-64daa05168c9  ethernet  ens160

RockyLinux 8.x의 경우 여기에서 네트워크를 구성하는 방법을 소개했습니다. vim을 사용하여 /etc/sysconfig/network-script/ 디렉토리의 네트워크 카드 구성 파일을 편집하거나 nmcli/nmtui를 사용할 수 있으며 둘 다 허용됩니다.

udev 장치 관리자의 이름 지정 규칙

RockyLinux 9.x의 경우 /etc/sysconfig/network-scripts/ 디렉토리로 이동하면 /etc/NetworkManager/system-connections/ 디렉토리로 이동하라는 readme-ifcfg-rh.txt 설명 텍스트가 있습니다.

Shell > cd /etc/NetworkManager/system-connections/  && ls 
ens160.nmconnection

여기서 ens160은 시스템의 네트워크 카드 이름을 나타냅니다. 이름이 왜 그렇게 이상하게 보이는지 궁금하실 수 있습니다. 이것은 udev 장치 관리자 때문입니다. 이는 다양한 네이밍 스키마를 지원합니다. 기본적으로 펌웨어, 토폴로지 및 위치 정보에 따라 고정된 이름이 할당됩니다. 이의 장점은 다음과 같습니다.

  • 장치 이름은 완전히 예측 가능합니다.
  • 하드웨어를 추가하거나 제거해도 장치 이름이 변경되지 않습니다.
  • 결함이 있는 하드웨어는 원활하게 교체할 수 있습니다.

RHEL 9 및 해당 커뮤니티 버전 운영 체제에서는 일관된 장치 이름 지정이 기본적으로 활성화됩니다. udev 장치 관리자는 다음 체계에 따라 장치 이름을 생성합니다.

체계 설명 예시
1 장치 이름에는 온보드 장치에 대한 펌웨어 또는 BIOS 제공 색인 번호가 통합되어 있습니다. 이 정보를 사용할 수 없거나 적용할 수 없는 경우 udev는 체계 2를 사용합니다. eno1
2 장치 이름에는 펌웨어 또는 BIOS 제공 PCI Express(PCIe) 핫 플러그 슬롯 색인 번호가 통합되어 있습니다. 이 정보를 사용할 수 없거나 적용할 수 없는 경우 udev는 체계 3을 사용합니다. ens1
3 장치 이름에는 하드웨어 커넥터의 물리적 위치가 포함됩니다. 이 정보를 사용할 수 없거나 적용할 수 없는 경우 udev는 체계 5를 사용합니다. enp2s0
4 장치 이름에는 MAC 주소가 포함됩니다. Red Hat Enterprise Linux는 기본적으로 이 체계를 사용하지 않지만 관리자는 선택적으로 사용할 수 있습니다. enx525400d5e0fb
5 기존의 예측할 수 없는 커널 명명 체계. udev가 다른 체계를 적용할 수 없는 경우 장치 관리자는 이 체계를 사용합니다. eth0

udev 장치 관리자는 인터페이스 유형에 따라 NIC의 접두사를 지정합니다.

  • en은 Ethernet - 이더넷.
  • wl은 wireless LAN (WLAN) - 무선 랜.
  • ww은 wireless wide area network (WWAN) - 무선 광대역 네트워크.
  • ib, InfiniBand 네트워크.
  • sl, Serial Line Internet Protocol (slip) - 직렬 회선 인터넷 프로토콜.

접두사에 일부 접미사를 추가할 수 있습니다:

  • o on-board_index_number
  • s hot_plug_slot_index_number [f] function [d] device_id
  • x MAC_address
  • [P] domain number p bus s slot [f] function [d] device_id
  • [P] domain number p buss s slot [f] function [u] usb port [c] config [i] interface

man 7 systemd.net-naming-scheme을 사용하여 더 자세한 정보를 얻을 수 있습니다.

nmcli 명령(권장)

사용자는 순수 명령 줄 모드로 네트워크를 구성할 수도 있고 대화식 명령을 사용하여 네트워크를 구성할 수도 있습니다.

nmcli connection

nmcli connection 명령은 보기, 삭제, 추가, 수정, 편집, 활성화, 비활성화 등을 할 수 있습니다.

구체적인 사용법은 nmcli connection add --help, nmcli connection edit --help, nmcli connection modify --help 등을 참조하십시오.

예를 들어 순수 명령 줄을 사용하여 새로운 ipv4 정적 IP 연결을 구성하고 자동으로 시작하도록 설정할 수 있습니다:

Shell > nmcli  connection  add  type  ethernet  con-name   CONNECTION_NAME  ifname  NIC_DEVICE_NAME   \
ipv4.method  manual  ipv4.address "192.168.10.5/24"  ipv4.gateway "192.168.10.1"  ipv4.dns "8.8.8.8,114.114.114.114" \
ipv6.method  disabled  autoconnect yes

ipv4 주소를 가져오기 위해 DHCP를 사용하는 경우 다음과 같이 설정할 수 있습니다:

Shell > nmcli  connection  add  type ethernet con-name CONNECTION_NAME  ifname  NIC_DEVICE_NAME \
ipv4.method  auto  ipv6.method  disabled  autoconnect  yes

위의 구성으로는 연결이 활성화되지 않습니다. 다음 작업을 수행해야 합니다:

Shell > nmcli connection up  NIC_DEVICE_NAME

기존 연결을 기반으로 edit 키워드를 통해 대화형 인터페이스를 입력하고 수정합니다.

Shell > nmcli connection  edit  CONNECTION_NAME
nmcli > help

modify 키워드를 사용하여 명령 줄에서 연결의 하나 이상의 속성을 직접 수정할 수도 있습니다. 예를 들어:

Shell > nmcli connection modify CONNECTION_NAME autoconnect yes ipv6.method dhcp

정보

nmcli 또는 nmtui를 통한 작업은 임시가 아닌 영구적으로 저장됩니다.

링크 집계

일부는 링크 통합을 위해 여러 네트워크 카드를 사용합니다. 초기에는 bonding 기술을 사용하여 7개의 작동 모드(0~6)가 있었고 본드 모드는 최대 2개의 네트워크 카드만 지원했습니다. 나중에 teaming 기술은 점차 대안으로 사용되며, 5가지 작업 모드가 있으며 팀 모드는 최대 8개의 네트워크 카드를 사용할 수 있습니다. bonding 과 teaming 간의 비교 링크——https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-comparison_of_network_teaming_to_bonding

예를 들어 본딩의 0 모드는 다음과 같습니다:

Shell > nmcli  connection  add  type  bond  con-name  BOND_CONNECTION_NAME   ifname  BOND_NIC_DEVICE_NAME  mode 0  
Shell > nmcli  connection  add  type  bond-slave   ifname NIC_DEVICE_NAME1   master  BOND_NIC_DEVICE_NAME
Shell > nmcli  connection  add  type  bond-slave   ifname NIC_DEVICE_NAME2   master  BOND_NIC_DEVICE_NAME

네트워크 카드의 구성 파일(vim 등으로 수정하는 것을 권장하지 않음)

주의

vim이나 다른 편집자를 사용하여 이를 변경하지 않는 것이 좋습니다.

자세한 내용은 man 5 NetworkManager.confman 5 nm-settings-nmcli를 통해 확인하실 수 있습니다.

NetwrokManager 네트워크 카드의 구성 파일 내용은 초기화 스타일 키 파일입니다. 예시:

Shell > cat /etc/NetworkManager/system-connections/ens160.nmconnection                                                               
[connection]                                                                                                                                
id=ens160                                                                                                                                   
uuid=5903ac99-e03f-46a8-8806-0a7a8424497e                                                                                                   
type=ethernet                                                                                                                               
interface-name=ens160                                                                                                                       
timestamp=1670056998                                                                                                                        

[ethernet]                                                                                                                                  
mac-address=00:0C:29:47:68:D0                                                                                                               

[ipv4]                                                                                                                                      
address1=192.168.100.4/24,192.168.100.1                                                                                                     
dns=8.8.8.8;114.114.114.114;                                                                                                                
method=manual                                                                                                                               

[ipv6]                                                                                                                                      
addr-gen-mode=default                                                                                                                       
method=disabled                                                                                                                             

[proxy] 
  • 으로 시작하는 줄과 빈 줄은 주석으로 간주됩니다.

  • [ 과 ] 안에는 제목을 선언하려는 섹션이 있으며 그 아래에는 포함된 특정 키-값 쌍이 있습니다. 선언된 각 제목과 해당 키-값 쌍은 구문 세그먼트를 형성합니다.
  • .nmconnection 접미사가 있는 모든 파일은 NetworkManager에서 사용할 수 있습니다.

ipv4 제목 이름에는 다음과 같은 공통 키-값 쌍이 포함될 수 있습니다.

키 이름 설명
id con-name의 별칭이며, 이 이름의 값은 문자열입니다.
uuid 값이 문자열인 범용 고유 식별자입니다.
type 이더넷, Bluetooth, vpn, vlan 등의 값을 사용할 수 있는 연결 유형입니다. man nmcli를 사용하여 지원되는 모든 유형을 볼 수 있습니다.
interface-name 이 연결이 바인딩된 네트워크 인터페이스의 이름으로, 이 이름의 값은 문자열입니다.
timestamp Unix 타임스탬프(초)입니다. 여기서 값은 1970년 1월 1일 이후의 초 수입니다.
autoconnect 시스템 시작 시 자동으로 시작되는지 여부입니다. 값은 부울 유형입니다.

connection 제목 이름에는 다음과 같은 공통 키-값 쌍이 포함될 수 있습니다.

키 이름 설명
mac-address MAC 물리적 주소.
mtu Maximum Transmission Unit - 최대 전송 단위.
auto-negotiate 자동 협상 여부입니다. 값은 부울 유형입니다.
duplex 값은 반이중(half-duplex), 전이중(full-duplex)일 수 있습니다.
speed 네트워크 카드의 전송 속도를 지정합니다. 100은 100Mbit/s입니다. auto-negotiate=false인 경우 speed 키 및 duplex ** 키를 설정해야 합니다. auto-negotiate=true인 경우 사용되는 속도는 협상된 속도이며 여기에 쓰는 것은 적용되지 않습니다(이는 BASE-T 802.3 사양에만 적용 가능함); 0이 아닌 경우 duplex** 키에 값이 있어야 합니다.

ethernet 제목 이름에는 다음과 같은 공통 키-값 쌍이 포함될 수 있습니다.

키 이름 설명
addresses 할당된 IP 주소 assigned
gateway 인터페이스의 게이트웨이(다음 홉)
dns 사용 중인 도메인 이름 서버use
method IP로 획득하는 방법. 값은 문자열 유형입니다. 값은 auto, disabled, link-local, manual, shared일 수 있습니다.

Author: tianci li

Contributors: Steven Spencer