티스토리 뷰
CentOS 강좌 PART 1. 7 네트워크 구성
[ 일반 네트워크 구성 ]
CentOS7에서는 기존 하위 버전과 달리 ifconfig,netstat 등 네트워크 관리 유틸리티 도구를 기본 탑재하여 제공하지 않는다.
대신 RedHat에서 제공하는 nmcli 가 메인이며, 수동 설정방법 또는 nmtui 와 같은 도구로 설정 관리를 할 수 있다.
하위버전의 ifconfig, netstat 등을 사용하기 위해서는 "net-tools"를 yum을 통해 다운로드 설치하면 된다.
여기에서는 수동설정 방법, nmcli 명령어 기반 구성 방법과 모니터링, nmtui 기반의 구성방법등을 소개한다.
[수동 설정방법 - /etc/sysconfig/network-script/ifcfg ]
network-scripts 파일을 수정하여, 네트워크를 설정하는 방법이다.
/etc/sysconfig/network-scripts/ifcfg-eth 에 네트워크 구성 파일들이 위치해 있다.
아래 예제와 같이 수동으로 IP 주소와 Gateway 주소, DNS, Netmask등을 설정할 수 있으며, 필요에 따라 옵션들을 수정할 수 있다.
만약 DHCP를 설정한다면, BOOTPROTO 값을 dhcp 로 설정하면 된다.
[whchoi@CentOS154 ~]$ ls /etc/sysconfig/network-scripts/
ifcfg-ens192 ifdown-eth ifdown-post ifdown-Team ifup-aliases ifup-ipv6 ifup-post ifup-Team init.ipv6-global
ifcfg-lo ifdown-ippp ifdown-ppp ifdown-TeamPort ifup-bnep ifup-isdn ifup-ppp ifup-TeamPort network-functions
ifdown ifdown-ipv6 ifdown-routes ifdown-tunnel ifup-eth ifup-plip ifup-routes ifup-tunnel network-functions-ipv6
ifdown-bnep ifdown-isdn ifdown-sit ifup ifup-ippp ifup-plusb ifup-sit ifup-wireless
# network-scripts 파일과 디렉토리들
# ens 로 표기되어 있는것이 NIC Card
[whchoi@CentOS154 ~]$ nmcli device status
DEVICE TYPE STATE CONNECTION
ens192 ethernet connected ens192
lo loopback unmanaged --
# ens192가 정상적으로 연결되었고, Ethernet Type임을 확인
[whchoi@CentOS154 ~]$ sudo -s vi /etc/sysconfig/network-scripts/ifcfg-ens192
HWADDR=00:50:56:8f:0a:74
NAME=ens192
GATEWAY=10.72.78.129
DNS1=8.8.8.8
DOMAIN="8.8.8.8"
DEVICE=ens192
ONBOOT=yes
USERCTL=no
BOOTPROTO=static
NETMASK=255.255.255.128
IPADDR=10.72.78.154
PEERDNS=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
check_link_down() {
return 1;
}
# HWADDR : 이더넷 카드의 MAC 주속
# NAME : 이더넷 카드의 이름
# GATEWAY : Gateway IP 주소
# DNS1 : DNS IP 주소
# DOMAIN : 도메인 주소
# DEVICE : 이더넷 카드의 장치명
# ONBOOT : yes , no / 이더넷 카드가 시스템 부팅시 Enable 시킬 것인지 설정
# USERCTL : yes , no / 일반 사용자계정이 이더넷 카드 제어를 허용할 것인지 설정
# BOOTPROTO : static,none,DHCP 설정 여부 , static과 none은 동일하게 static ip 주소설정으로 사용
# NETMASK : 넷마스크 주소
# IPADDR : 이더넷 카드의 IP 주소
# PEERDNS :yes, no / DNS resolution에 사용되는 etc/resolv.conf 파일이 DHCP 서버로 부터 정보를 얻는 것을 허용할지에 대한 여부
# IPV6INIT : yes, no / IPV6 사용여부
# IPV6_AUTOCONF : yes , no / IPV6 자동 구성여부
# NM_CONTROLLED : 이더넷카드가 Network Manager로 부터 제어될 것인지 여부
# PEERROUTES : 이더넷 카드에 Default Gateway를 정의하는 라우팅 테이블 정보를 DHCP로 부터 수신 할 것인지에 대한 여부.
|
[nmtui를 사용하는 방법 ]
network-scripts 파일을 수정하여, 네트워크를 설정하는 방법이다.
/etc/sysconfig/network-scripts/ifcfg-eth 에 네트워크 구성 파일들이 위치해 있다.
아래 예제와 같이 수동으로 IP 주소와 Gateway 주소, DNS, Netmask등을 설정할 수 있으며, 필요에 따라 옵션들을 수정할 수 있다.
만약 DHCP를 설정한다면, BOOTPROTO 값을 dhcp 로 설정하면 된다.
[root@CentOS154 whchoi]# nmtui
# nmtui 유틸리티를 통해 이더넷 카드, 네트워크 정보 설정
|
Network Manager TUI를 설정하는 첫 화면이다.
이더넷 카드에 대한 구성 및 정보 변경과 연결에 대한 설정, HostName 설정등을 할 수 있다.
- Edit a Connection - /etc/sysconfig/network-scripts/ifcfg 에 대한 설정 변경과 동일
- Activate a Connection - 이더넷 카드 연결 또는 비활성화
- Set system hostname - 호스트 네임 설정
Edit a Connection 선택을 통해서, 이더넷 카드의 구성 정보를 변경 할 수 있다.
메뉴 이동은 [Tab] Key를 통해 이동 가능하다.
[nmcli 기반의 네트워크 설정]
nmcli (Network Manager CLI)는 다양한 네트워크 설정 정보를 출력하기도 하지만, 네트워크 설정도 가능하다.
네트워크 설정은 개인적으로는 /etc/sysconfig/network-scripts/ifcfg 또는 nmtui 유틸리티로 변경하는 것을 권고한다.
다만 nmcli는 모니터링 도구로는 매우 유용하기 때문에 , 주로 네트워크 설정 정보를 보는 데 사용하는 것이 좋다.
[명령어 요약]
nmcli conn show |
이더넷 카드 연결 정보 출력 |
nmcli dev status |
이더넷 카드 상태 출력 |
nmcli dev show |
이더넷 카드 상세 정보 출력 |
nmcli con mod ens192 ipv4.method manual ipv4.addr "10.72.78.155/25" |
이더넷 IP 주소 설정 |
systemctl restart network |
네트워크 서비스 재구동 |
/etc/rc.d/init.d/network restart |
네트워크 서비스 재구동 |
nmcli con down device |
이더넷 카드 down |
nmcli con up device |
이더넷 카드 up |
ifdown device |
이더넷 카드 down |
ifup device |
이더넷 카드 up |
ip a |
ip 주소 출력 |
[whchoi@CentOS154 ~]$ nmcli -h
Usage: nmcli [OPTIONS] OBJECT { COMMAND | help }
OPTIONS
-o[verview] overview mode (hide default values)
-t[erse] terse output
-p[retty] pretty output
-m[ode] tabular|multiline output mode
-c[olors] auto|yes|no whether to use colors in output
-f[ields] <field1,field2,...>|all|common specify fields to output
-g[et-values] <field1,field2,...>|all|common shortcut for -m tabular -t -f
-e[scape] yes|no escape columns separators in values
-a[sk] ask for missing parameters
-s[how-secrets] allow displaying passwords
-w[ait] <seconds> set timeout waiting for finishing operations
-v[ersion] show program version
-h[elp] print this help
OBJECT
g[eneral] NetworkManager's general status and operations
n[etworking] overall networking control
r[adio] NetworkManager radio switches
c[onnection] NetworkManager's connections
d[evice] devices managed by NetworkManager
a[gent] NetworkManager secret agent or polkit agent
m[onitor] monitor NetworkManager changes
# nmcli 명령어들에 대한 정보출력
[whchoi@CentOS154 ~]$ nmcli c --help
Usage: nmcli connection { COMMAND | help }
COMMAND := { show | up | down | add | modify | clone | edit | delete | monitor | reload | load | import | export }
[whchoi@CentOS154 ~]$ nmcli c s
NAME UUID TYPE DEVICE
ens192 03da7500-2101-c722-2438-d0d006c28c73 ethernet ens192
# nmcli connection 명령을 통해 현재 네트워크 연결 정보들을 확인할 수 있다.
[whchoi@CentOS154 ~]$ nmcli device --help
Usage: nmcli device { COMMAND | help }
COMMAND := { status | show | set | connect | reapply | modify | disconnect | delete | monitor | wifi | lldp }
[whchoi@CentOS154 ~]$ nmcli device show
GENERAL.DEVICE: ens192
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:50:56:8F:0A:74
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: ens192
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 10.72.78.154/25
IP4.GATEWAY: 10.72.78.129
IP4.ROUTE[1]: dst = 10.72.78.128/25, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 10.72.78.129, mt = 100
IP4.DNS[1]: 8.8.8.8
IP6.ADDRESS[1]: fe80::250:56ff:fe8f:a74/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE[2]: dst = ff00::/8, nh = ::, mt = 256, table=255
GENERAL.DEVICE: lo
GENERAL.TYPE: loopback
GENERAL.HWADDR: 00:00:00:00:00:00
GENERAL.MTU: 65536
GENERAL.STATE: 10 (unmanaged)
GENERAL.CONNECTION: --
GENERAL.CON-PATH: --
IP4.ADDRESS[1]: 127.0.0.1/8
IP4.GATEWAY: --
IP6.ADDRESS[1]: ::1/128
IP6.GATEWAY: --
# nmcli device show 명령을 통해 현재 이더넷/무선카드들에 대한 상세 정보를 확인해 볼 수 있다.
[whchoi@CentOS154 ~]$ nmcli device st
DEVICE TYPE STATE CONNECTION
ens192 ethernet connected ens192
lo loopback unmanaged --
[whchoi@CentOS154 ~]$ nmcli dev sh -a | awk '/IP4/'
IP4.ADDRESS[1]: 10.72.78.154/25
IP4.GATEWAY: 10.72.78.129
IP4.ROUTE[1]: dst = 10.72.78.128/25, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 10.72.78.129, mt = 100
IP4.DNS[1]: 8.8.8.8
IP4.ADDRESS[1]: 127.0.0.1/8
IP4.GATEWAY: --
[whchoi@CentOS154 ~]$ sudo -s nmcli con mod ens192 ipv4.method manual ipv4.addr "10.72.78.155/25"
[whchoi@CentOS154 ~]$ sudo -s systemctl restart network
# nmcli connection mode 명령을 통해 현재 /etc/sysconfig/network-scripts/ifcfg 에 설정된 정보를 변경할 수 있다.
# ip 주소를 변경 10.72.78.154 에서 155를 변경한다.
# network 정보 변경이후 곧바로 적용되지 않으므로, 반드시 systemctl restart network를 통해 network 서비스를 재구동한다.
# /etc/rc.d/init.d/network restart 와 동일한 명령이다.
[whchoi@CentOS154 ~]$ nmcli dev sh -a | awk '/IP4/'
IP4.ADDRESS[1]: 10.72.78.155/25
IP4.GATEWAY: 10.72.78.129
IP4.ROUTE[1]: dst = 10.72.78.128/25, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 10.72.78.129, mt = 100
IP4.DNS[1]: 8.8.8.8
IP4.ADDRESS[1]: 127.0.0.1/8
IP4.GATEWAY: --
# IP 주소가 정상적으로 변경된 것을 확인 할 수 있다.
[whchoi@CentOS154 ~]$ sudo -s nmcli con mod ens192 ipv4.method manual ipv4.addr "10.72.78.154/25"
[whchoi@CentOS154 ~]$ sudo -s nmcli con down ens192
[whchoi@CentOS154 ~]$ sudo -s nmcli con up ens192
# nmcli conn down ens192, nmcli conn up ens192 를 통해서도 IP 변경 이후 적용 시킬 수 있다.
# interface up , down관련 명령이다.
|
[기타 유용한 명령 팁]
ip add 명령을 통해 기존 ifconfig 와 동일한 정보를 확인 할 수 있다.
[whchoi@CentOS154 ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:8f:0a:74 brd ff:ff:ff:ff:ff:ff
inet 10.72.78.154/25 brd 10.72.78.255 scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet6 fe80::250:56ff:fe8f:a74/64 scope link noprefixroute
valid_lft forever preferred_lft forever
# ip add 명령 - 이더넷 카드의 ip 정보 관련 출력
[whchoi@CentOS154 ~]$ ifdown ens192
[whchoi@CentOS154 ~]$ ifup ens192
# nmcli con down/up 과 동일한 효과를 제공해 주는 명령이다.
|
CentOS7에서 하위버전과 네트워크 관련 명령 중에 가장 크게 변경된 사항은 이더넷 카드의 이름이 eth에서 ens로 변경된 것과, ifconfig , netstat 등과 같은 유틸리티가 기본제공되지 않는 다는 것이다.
ifconfig, netstat 등은 net-tools 라는 패키지로 별도로 제공된다.
yum을 통해 추가로 설치하게 되면 하위버전에서 제공되던 ifconfig, netstat 등을 사용할 수 있다.
ip add 보다는 ifconfig의 출력정보가 가시성 측면에서 뛰어나므로 설치하는 것이 좋다.
[whchoi@CentOS154 ~]$ sudo yum -y install net-tools
[whchoi@CentOS154 ~]$ ifconfig
ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.72.78.154 netmask 255.255.255.128 broadcast 10.72.78.255
inet6 fe80::250:56ff:fe8f:a74 prefixlen 64 scopeid 0x20<link>
ether 00:50:56:8f:0a:74 txqueuelen 1000 (Ethernet)
RX packets 3516811 bytes 232203923 (221.4 MiB)
RX errors 0 dropped 1359 overruns 0 frame 0
TX packets 5146 bytes 827109 (807.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 4 bytes 336 (336.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4 bytes 336 (336.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[whchoi@CentOS154 ~]$ netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 CentOS154.centos1:43176 freedom.itsc.cuhk.:http TIME_WAIT
tcp 0 0 CentOS154.centos1:39650 babylon.castlegem.:http TIME_WAIT
tcp 0 96 CentOS154.centos154:ssh 10.70.232.173:63498 ESTABLISHED
tcp 0 0 CentOS154.centos1:33034 11310176100.static:http TIME_WAIT
|
'운영체제 > CentOS 강좌' 카테고리의 다른 글
CentOS 강좌 PART 1. 9 YUM 소개와 YUM repository mirror 사이트 구축 (0) | 2019.03.18 |
---|---|
CentOS 강좌 PART 1. 8 스토리지 관리 LVM (1) | 2019.03.14 |
CentOS 강좌 PART 1. 6 시스템 프로세스와 자원 (0) | 2019.03.07 |
CentOS 강좌 PART 1. 5 사용자 권한 (0) | 2019.03.07 |
CentOS 강좌 PART 1. 4 리눅스 기본 명령어 3편 (0) | 2019.03.06 |
공지사항