서버에 사설 IP를 추가하고 싶을 때 NIC을 추가해야한다.
보통 클라우드 환경에서 다른 서브넷의 IP를 추가하기 위해 추가 사설 IP를 붙이는데, 이 때 하나의 NIC이 추가되는 것이라고 생각하면 된다.
추가한 IP를 사용하기 위해 서버에서 추가 설정이 필요한데, CentOS에서 어떤 설정이 필요한지 알아보자.
CIP 설정을 위해 크게 2개의 설정 파일을 작성해야한다.
1. ifcfg-eth1 파일
2. route-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
위의 설정을 적용하기 위해 network 서비스를 재실행한다.
systemctl restart network
위에서 추가한 네트워크 인터페이스(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와 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개의 파일을 작성해야한다.