[Linux] CentOS NIC 추가

괭이밥·2024년 4월 4일

linux

목록 보기
1/2
post-thumbnail

개요

서버에 사설 IP를 추가하고 싶을 때 NIC을 추가해야한다.
보통 클라우드 환경에서 다른 서브넷의 IP를 추가하기 위해 추가 사설 IP를 붙이는데, 이 때 하나의 NIC이 추가되는 것이라고 생각하면 된다.
추가한 IP를 사용하기 위해 서버에서 추가 설정이 필요한데, CentOS에서 어떤 설정이 필요한지 알아보자.


CIP 설정을 위해 크게 2개의 설정 파일을 작성해야한다.
1. ifcfg-eth1 파일
2. route-eth1 파일


1. ifcg-eth1

추가한 NIC을 서버에서 인식하도록 설정하는 것이다.
여기서는 추가한 NIC의 이름을 eth1로 하겠다.

ifcg-eth1 설정 파일은 /etc/sysconfig/network-scripts경로에 있다.
먼저 이곳으로 이동하자.

cd /etc/sysconfig/network-scripts

이후 기존에 있던 설정을 cp 명령어로 복사한 뒤 설정해주자.

cp ifcfg-eth0 ifcfg-eth1

vim ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
  • DEVICE - 네트워크 인터페이스 이름 지정
  • BOOTPROTO - 부팅 시 네트워크 구성 방법을 지정, none으로 설정 시 수동으로 IP 주소 할당 가능
  • ONBOOT - 시스템 부팅 시 인터페이스 활성화 여부 지정
  • IPADDR - 해당 인터페이스 IPv4 주소 지정
  • NETMASK - 해당 인터페이스 서브넷 마스크 지정
  • GATEWAY - 게이트웨이의 IP 주소 지정

위의 설정을 적용하기 위해 network 서비스를 재실행한다.

systemctl restart network



2. route-eth1

위에서 추가한 네트워크 인터페이스(eth1)에 대한 라우팅 규칙 설정 파일이다.
추가한 eth1 NIC을 사용하기 위한 rotue rule 추가라고 생각하면 된다.
해당 설정 파일 역시 위와 동일한 /etc/sysconfig/network-scripts에 위치하고 있다.

cd /etc/sysconfig/network-scripts

이후 파일을 생성하여 규칙을 추가해주자.

vim route-eth1
ADDRESS0=192.168.1.100
NETMASK0=255.255.255.0
GATEWAY0=192.168.1.1
  • ADDRESS0 - 대상 네트워크의 IP 주소
  • NETMASK0 - 대상 네트워크의 서브넷 마스크
  • GATEWAY0 - 패킷이 해당 네트워크로 전송될 때 사용할 게이트웨이의 IP 주소

ADDRESS0와 NETMASK0을 AND 연산하였을 때 목적지 주소의 범위가 된다.
위의 예시에서는 192.168.1.0/24가 목적지 주소의 범위인 것이다.
192.168.1.0/24가 목적지인 패킷이 나갈 때는 eth1을 타고 나가도록 라우팅 규칙을 추가해준 것이다.


route 명령을 통해 설정이 적용되었는지 확인해보자.

route [-n]
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    0      0        0 eth0
192.168.1.100     192.168.1.1      255.255.255.0   UG    0      0        0 eth1

만약 설정이 적용되지 않았다면, 아래 명령어를 통해 추가해주자.

route add -net <destination_network> netmask <netmask> gw <gateway_IP> dev <interface_name>

route add -net 192.168.1.100 netmask 255.255.255.0 gw 192.168.1.1 dev eth1
  • <destination_network> - 목적지 네트워크 또는 서브넷 주소
  • <netmask> - 해당 네트워크 또는 서브넷의 서브넷 마스크
  • <gateway_IP> - 패킷이 목적지로 전송될 때 다음 호스트의 IP 주소
  • <interface_name> - 패킷이 통과할 인터페이스 이름

이 명령어는 바로 적용되지만, 재부팅 시에 사라지는 규칙이다.
만약 재부팅 후에도 설정이 유지되고 싶다면 위의 2개의 파일을 작성해야한다.

profile
개발도 하고 싶은 클라우드 엔지니어

0개의 댓글