✅ 리눅스 네트워크 관리
✅ 네트워크 진단 명령어
ifconfig
ifconfig는 interface config의 약자로 네트워크 인터페이스 관련 명령어로 설정하거나 직접 확인하는 명령어이다.
ifconfig 명령으로 설정한 것은 시스템을 재부팅하면 그 정보가 사라진다. 따라서 지속적으로 유지하려면 /etc/rc.d/rc.local 파일에 위의 설정을 입력해놓거나 /etc/sysconfig/network-scripts/ifcfg-eth0 파일에 설정해놓아야 한다.
ifconfig [interface] [address] [up/down] [옵션]
옵션 | 설명 |
interface | NIC (Network Interface Card)를 말하며, 보통 랜(LAN) 카드 또는 이더넷 (Ethernet) 카드라 한다. |
address | 보통 IP가 부여된다. |
up/down | 네트워크를 활성화/비활성화 시킨다. |
option | netmask, broadcast 등을 설정할 수 있다. |
✅ 네트워크 설정 파일 항목
항목 | 설명 |
TYPE=[네트워크 인터페이스 타입] | 네트워크 인터페이스 타입 설정 |
NM_CONTROLLED=[ yes | no ] | 네트워크 인터페이스 장치가 Network Manager 에 의해 컨트롤 되는지에 대한 설정 |
BOOTPROTO=[ none | dhcp | static ] | 부팅할 때 사용할 프로토콜 설정 none - bootstrap 프로토콜 사용 dhcp - 동적 할당, 자동으로 IP 할당받아 사용 static - 정적 할당, 고정 IP를 사용 * bootstrap 프로토콜 부팅 호스트가 사용자의 관리 없이 동적으로 구성할 수 있게 해주는 UDP/IP 기반 프로토콜 |
BROADCAST=[addr] | 브로드캐스트 주소 설정 |
ONBOOT=[ yes | no ] | 부팅할 때 인터페이스를 활성화 시킬 것인지 설정 |
IPADDR=[ip addr] | IP 주소 설정 |
IPV4_FAILURE_FATAL=[ yes | no ] | IPv4 설정이 실패했을 때 그 장치를 비활성화할지에 대한 설정 |
IPV6INIT=[ yes | no ] | 인터페이스의 IPv6 를 활성화할지에 대한 설정 |
IPV6_FAILURE_FATAL=[ yes | no ] |
IPv6 설정이 실패했을 때 그 장치를 비활성화할지에 대한 설정 |
NETMASK=[netmask addr] |
NETMASK 주소 설정 |
PREFIX=[subnet mask(bit)] |
서브넷 마스크 값 설정, bit 값으로 설정 예) 16, 24 |
DEVICE=[네트워크 인터페이스 디바이스 이름] |
물리적인 네트워크 인터페이스 이름 설정 |
PEERDNS=[ yes | no ] |
DNS resolution에 사용되는 /etc/resolv.conf 파일이 dhcp 서버로부터 정보를 얻는 것을 허용하는지에 대한 설정 PEERDNS 지시자가 no 로 설정되지 않는다면 주소는 /etc/resolv.conf 에 적힌 네임서버주소가 된다. yes: 기본값, DNS 지시자가 설정되고 DHCP 를 사용하면 /etc/resolv.conf 를 수정한다. no: /etc/resolv.conf 를 수정하지 않는다. |
PEERROUTES=[ yes | no ] |
인터페이스에 대한 default gateway 를 정의하는 라우팅테이블 정보를 dhcp 서버로부터 얻을지에 대한 설정 |
GATEWAY=[gateway addr] |
게이트웨이 주소 설정 |
DNS1=[DNS addr] |
주 DNS 주소 설정 |
DNS2=[DNS addr] |
보조 DNS 주소 설정 |
LINKDELAY=[time] |
장치를 설정하기 전에 링크 교섭에서 대기하는 시간 기본 값은 5초 예를 들어, STP에 의해 발생하는 지연은 이 값을 증가시켜 해결할 수 있다. * STP(Spanning Tree Protocol) 스위치나 브리지에서 발생하는 루핑을 막아주기 위한 프로토콜 스위치나 브리지 구성에서 출발지에서 목적지까지 경로가 두 개 이상 존재할 때 한 개의 경로만 남겨주고 나머지는 모두 끊어두었다가 사용하던 경로에 문제가 발생하면 그때 끊어두었던 경로를 하나씩 살린다. 이 때, 끊어둔 경로를 다시 살리는 동안 약간의 지연이 될 수 있는데 LINKDELAY 의 값을 설정해 대기시간을 주면 이 부분이 해결된다. |
✅ 네트워크 관리자(NetworkManager)란
- 네트워크와 관련된 모든 설정을 관리하고 모니터링 하는 서비스이다.
- 네트워크 관리자는 /etc/sysconfig/network-scripts 디렉토리에 설정 파일을 저장한다.
✅ 네트워크 관리자가 제공하는 명령어
도구이름 | 설명 |
nmcli | 커맨드라인 도구 |
nmtui | 텍스트 유저 인터페이스 도구 |
nm-connection-editor | 그래픽 도구 |
✅ 인터페이스 이름
- 기존은 eth0, eth1과 같이 ethX 형식이었지만 최신 리눅스에서는 그렇지 않음
- 장치유형, 어댑터유형, 번호순으로 조합된 이름으로 만들어 짐
분류 | 설명 |
장치 유형 | en(이더넷), wl(WLAN), ww(WWAN) |
어댑터 유형 | o(on-board), s(hot-plug-slot), p(PCI위치), b(BCMA bus core) |
✅ 네트워크 관리자 도구
① nmcli (Network Manager Command Line Interface)
- 연결 목록 확인
nmcli connection show [connection-name] - 연결 생성
nmcli connection add [con-name, ifname, type] 설정해야함 ip4 ‘IP/sb’ gw4 ‘GW’ 설정도 가능
nmcli connection up connection-name 해주어야 활성화 됨 - 연결 제거
nmcli connection delete connection-name
(/etc/sysconfig/network-scripts/ 안의 파일도 같이 삭제됨) - 연결설정 수정
nmcli connection modify connection-name subcommand argument
+ipv4.addresses 하면 아이피를 여러 개 두어 문제 생길 시 다른 아이피로 통신 가능
ipv4.addresses는 아이피/서브넷 같이 설정해 주어야함
수정 후 반드시 method 설정 manual로 해주어야 함 (정적할당), method를 auto(동적할당)
CentOS 7.0 버전에서는 ipv4.gateway 부분이 따로 없음, ipv4.addresses에 같이 써주어야 함
con reload 후 con up 해주어야 적용됨
명령어 | 설명 | 기타 |
nmcli con show | 네트워크 연결 목록 확인 | |
nmcli con add | 네트워크 연결 생성 | con-name, ifname, type 설정해야함 |
nmcli con up | 설정 활성화 | |
nmcli con down | 설정 비활성화 | |
nmcli con reload | 설정을 다시 불러옴 | |
nmcli con delete | 연결설정 삭제 | /etc/sysconfig/network-scripts/ 안의 파일도 같이 삭제됨 |
nmcli con modify | 연결설정 수정 |
② nmtui(NetworkManager Text User Interface)
- 텍스트 상자 형식의 설정 도구를 사용함
- yum –y install NetworkManager-tui 로 설치 가능
③ nm-connetcion-editor
- 시스템이 그래픽 환경을 지원해야 사용가능
- 활성화 버튼이 없어서 nmcli cond up으로 활성화 해 주어야함
④ 설정 파일을 직접 수정하기
- 오타 발생이 있어 권장하지 않는 방법
- vi 에디터를 열어서 수정하면 된다.
✅ 호스트명(hostname) 설정
- hostname, hostnamectl : 호스트에 대한 정보 출력
- hostnamectl set-hostname 변경할이름 : 호스트명 변경
- hostnamectl set-hostname “” : 호스트명 삭제
- 호스트이름 분류
분류 | 설명 |
static hostname | 사용자가 지정한 호스트명 /etc/hostname 파일에 저장 |
transient hostname | 커널이 임의로 부여한 호스트명 |
pretty hostname | 특수문자가 포함된 호스트명 |
✅ 네트워크 관리 명령어 실습
[root@localhost ~]# systemctl status NetworkManager.service
IP 설정
어떠한 인터페이스 연결할건지
네트워크 통신 방식은 무엇을 쓸 것인지 (wifi, ethernet, bluetooth)
실습에 사용할 인터페이스 카드는 enp0s9이다.
enp0s3 => nat - 외부용
enp0s8 => 원격으로 사용하기 위한 내부용
[root@localhost ~]# ifconfig
[root@localhost ~]# ifconfig enp0s8
[root@localhost ~]# ip addr show enp0s3
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:33:29:ef brd ff:ff:ff:ff:ff:ff
inet 10.0.2.10/24 brd 10.0.2.255 scope global noprefixroute dynamic enp0s3
valid_lft 479sec preferred_lft 479sec
inet6 fe80::790d:b8a3:2326:1e15/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@encore ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s9
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s9
UUID=509b32f3-83fd-443a-b4eb-b5e32db2e3ae
DEVICE=enp0s9
ONBOOT=no
[root@localhost ~]# nmcli
agent device help networking
connection general monitor radio
[root@localhost ~]# nmcli dev
DEVICE TYPE STATE CONNECTION
enp0s3 ethernet 연결됨 enp0s3
enp0s8 ethernet 연결됨 enp0s8
virbr0 bridge 연결됨 virbr0
enp0s9 ethernet 연결 끊겼음 --
lo loopback 관리되지 않음 --
virbr0-nic tun 관리되지 않음 --
[root@localhost ~]# ls /etc/sysconfig/network-scripts/ifcfg*
/etc/sysconfig/network-scripts/ifcfg-enp0s3
/etc/sysconfig/network-scripts/ifcfg-enp0s8
/etc/sysconfig/network-scripts/ifcfg-enp0s9
/etc/sysconfig/network-scripts/ifcfg-lo
[root@localhost ~]# nmcli con
NAME UUID TYPE DEVICE
enp0s3 3d6d0ae5-78a1-4dad-b92b-2ab0c67cc40d ethernet enp0s3
enp0s8 8eff3d00-cb32-4591-b471-4c46e2a0da4d ethernet enp0s8
virbr0 0692e694-5e12-464f-882a-5b57d2db2aba bridge virbr0
enp0s9 509b32f3-83fd-443a-b4eb-b5e32db2e3ae ethernet --
[root@localhost ~]# nmcli connection
add delete edit help load monitor show
clone down export import modify reload up
[root@localhost ~]# nmcli connection add
* ip 설정 방법 *
nmcli con add 입력 후 tab 2번
1. con-name (== connection.id) - 연결 이름
2. if-name (== connection.interface) - 연결할 인터페이스
3. type (== connection.type) - 통신 방식
4. autoconnect (== connection.autoconnect) - 부팅시 자동연결 설정
------------------------유동 ip 설정 가능 (dhcp) ------------------------
고정 ip 설정은 아래 내용을 추가
5. ip4 (==ipv4.addresses) - ip주소
6. gw4 (==ipv4.gateway) - gateway 주소
연결 실습
[root@localhost ~]# nmcli con add con-name dhcp ifname enp0s9 type
802-11-olpc-mesh cdma macsec team
802-11-wireless dummy macvlan tun
802-3-ethernet ethernet olpc-mesh vlan
adsl generic ovs-bridge vpn
bluetooth gsm ovs-interface vxlan
bond infiniband ovs-port wifi
bridge ip-tunnel pppoe wimax
[root@localhost ~]# nmcli con add con-name dhcp ifname enp0s9 type ethernet autoconnect yes
연결 'dhcp' (365887a9-5bc7-48fd-8969-73a54f8bc31e)이 성공적으로 추가되었습니다.
[root@localhost ~]# nmcli con
NAME UUID TYPE DEVICE
dhcp 365887a9-5bc7-48fd-8969-73a54f8bc31e ethernet enp0s9
enp0s3 3d6d0ae5-78a1-4dad-b92b-2ab0c67cc40d ethernet enp0s3
enp0s8 8eff3d00-cb32-4591-b471-4c46e2a0da4d ethernet enp0s8
virbr0 0692e694-5e12-464f-882a-5b57d2db2aba bridge virbr0
enp0s9 509b32f3-83fd-443a-b4eb-b5e32db2e3ae ethernet --
dhcp가 추가된 것을 확인할 수 있다.
[root@localhost ~]# nmcli con reload
[root@localhost ~]# nmcli con show dhcp
connection.id: dhcp
....
고정 ip 만들기
[root@localhost ~]# nmcli con add con-name static1 ifname enp0s9 type ethernet ip4 192.168.56.201/24 gw4 192.168.56.1
연결 'static1' (a47ac268-f989-42ca-b6e7-0ffce169ce18)이 성공적으로 추가되었습니다.
[root@localhost ~]# nmcli con
NAME UUID TYPE DEVICE
....
static1 a47ac268-f989-42ca-b6e7-0ffce169ce18 ethernet --
[root@localhost ~]# ls /etc/sysconfig/network-scripts/ifcfg*
....
/etc/sysconfig/network-scripts/ifcfg-static1
해당 연결이 설정된다.
[root@localhost ~]# nmcli con show static1
connection.id: static1
....
connection.interface-name: enp0s9
....
[root@localhost ~]# ip addr show enp0s9
[root@localhost ~]# nmcli con up static1
연결이 성공적으로 활성화되었습니다 (D-Bus 활성 경로: /org/freedesktop/NetworkManager/ActiveConnection/6)
[root@localhost ~]# nmcli con
NAME UUID TYPE DEVICE
....
static1 a47ac268-f989-42ca-b6e7-0ffce169ce18 ethernet enp0s9
....
[root@localhost ~]# ip addr show enp0s9
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:56:a9:69 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.201/24 brd 192.168.56.255 scope global noprefixroute enp0s9
valid_lft forever preferred_lft forever
inet6 fe80::f5d8:8cc2:d20c:ee39/64 scope link noprefixroute
valid_lft forever preferred_lft forever
# 192.168.56.201/24 ip주소 뒤에는 반드시 prefix를 붙여줘야 한다.
[root@localhost ~]# nmcli con down static1
연결 'static1'이(가) 성공적으로 비활성화되었습니다(D-Bus 활성 경로: /org/freedesktop/NetworkManager/ActiveConnection/6).
[root@localhost ~]# nmcli con
NAME UUID TYPE DEVICE
dhcp 365887a9-5bc7-48fd-8969-73a54f8bc31e ethernet enp0s9
enp0s3 3d6d0ae5-78a1-4dad-b92b-2ab0c67cc40d ethernet enp0s3
enp0s8 8eff3d00-cb32-4591-b471-4c46e2a0da4d ethernet enp0s8
virbr0 0692e694-5e12-464f-882a-5b57d2db2aba bridge virbr0
enp0s9 509b32f3-83fd-443a-b4eb-b5e32db2e3ae ethernet --
static1 a47ac268-f989-42ca-b6e7-0ffce169ce18 ethernet --
nmcli con mod[ify] dhcp connection.id static2
연결 이름 수정 항목 수정 내용
내가 수정하고자 하는 연결의 이름을 써준다.
[root@localhost ~]# nmcli con mod dhcp connection.id static2
[root@localhost ~]# nmcli con
NAME UUID TYPE DEVICE
...
static2 365887a9-5bc7-48fd-8969-73a54f8bc31e ethernet enp0s9
...
[root@localhost ~]# nmcli con mod static2 connection.autoconnect no
[root@localhost ~]# nmcli con mod static2 ipv4.method manual
오류: 연결 'static2' 수정 실패: ipv4.addresses: 이 속성은 'method=manual'에 대해 비어 있을 수 없습니다.
# ip를 먼저 부여해야 한다.
[root@localhost ~]# nmcli con mod static2 ipv4.addresses 192.168.56.220/24
[root@localhost ~]# nmcli con show static2
[root@localhost ~]# nmcli con mod static2 ipv4.method manual
[root@localhost ~]# nmcli con mod static2 ipv4.gateway 192.168.56.1
[root@localhost ~]# nmcli con mod static2 ipv4.dns 8.8.8.8
[root@localhost ~]# nmcli con mod static2 +ipv4.addresses 192.168.56.221/24
[root@localhost ~]# nmcli con reload
[root@localhost ~]# nmcli con up static2
연결이 성공적으로 활성화되었습니다 (D-Bus 활성 경로: /org/freedesktop/NetworkManager/ActiveConnection/8)
nmcli con mod static2 connection.id static3 connection.autoconnect yes ipv4.addresses 192.168.56.2111/24 +ipv4.address 192.168.56.151/24 +ipv4.dns 192.168.56.1
nmcli con reload
nmcli con show static3
[root@localhost ~]# ls /etc/sysconfig/network-scripts/ifcfg*
/etc/sysconfig/network-scripts/ifcfg-dhcp
/etc/sysconfig/network-scripts/ifcfg-enp0s3
/etc/sysconfig/network-scripts/ifcfg-enp0s8
/etc/sysconfig/network-scripts/ifcfg-enp0s9
/etc/sysconfig/network-scripts/ifcfg-lo
/etc/sysconfig/network-scripts/ifcfg-static1
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-dhcp
직접 수정하면 show로 확인했을 때 이름이 변경되어 있다.
그러나 설정 파일을 열어서 수정하는 것은 오타의 문제가 있어 추천하지 않는다.
ifcfg-연결명
BOOTPROTO => none / dhcp
ipv4.method manual auto
[root@localhost ~]# hostname
localhost.localdomain
[root@localhost ~]#
[root@localhost ~]# cat /etc/hostname
localhost.localdomain
[root@localhost ~]# hostnamectl set-hostname encore.class4
[root@localhost ~]# hostname
encore.class4
[root@localhost ~]# su -
마지막 로그인: 금 3월 4 09:29:19 KST 2022 192.168.56.1에서 시작 일시 pts/0
[root@encore ~]#
참고
https://seamless.tistory.com/12
https://flightsim.tistory.com/154
https://haker.tistory.com/55?category=967816
'Linux' 카테고리의 다른 글
[Linux] 방화벽 (firewall) (0) | 2022.03.07 |
---|---|
[Linux] SSH (Secure Shell) (0) | 2022.03.07 |
[Linux] 패키지 관리 도구 (RPM & YUM) (0) | 2022.03.04 |
[Linux] root 비번 초기화 방법 (0) | 2022.03.04 |
[Linux] GRUB의 이해 (0) | 2022.03.04 |
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!