본문 바로가기

Linux

CentOS 에서 VLAN 설정하기

반응형

Redhet 운영체제와 거의 유사하게 만들어지고 있는

CentOS에서 VLAN을 설정하는 방법입니다.

 

1. VLAN을 설정할 서버로 직접 접속합니다.

 

 

Putty를 사용하여 원격으로 붙은 서버

 

2.  네트워크 인터페이스를 설정할 수 있는 경로로 이동합니다.

   

bash
 # cd /etc/sysconfig/network-scripts/ 
 # ls

     

network-scripts 아래 존재하는 파일들

 

3. vi 편집기를 통하여 ifcfg-eth0 파일을 편집

 

※ 각 서버별로 존재하는 네트워크 인터페이스에 따라

      ifcfg-eth0 ~ X의 파일의 개수가 다를 수 있습니다.

     

해당 서버는 ifcfg-eth0, ifcfg-eth1이 존재

4. ifcfg-eth0 파일의 내용을 아래와 같이 수정

   -> (insert키나 i키를 누른 후 해당 값처럼 수정)

 

bash
DEVICE=eth0  <- 파일 이름에 존재하는 인터페이스 명을 적어줌 (ifcfg-eth0
ONBOOT=yes  <- 서버 부팅 시 인터페이스를 자동으로 활성화할 것인지에 대한 옵션
TYPE=Ethernet
BOOTPROTO=static  <- IP설정을 직접 할 것인지 자동으로 할 것인지에 대한 옵션(이 경우 수동이며, none도 같은 옵션)
#IPADDR=X.X.X.X
#NETMASK=X.X.X.X
#GATEWAY=X.X.X.X
VLAN=yes  <- (VLAN 사용 여부 옵션)

 

IP, NETMASK, GATEWAY가 존재하면 #으로 주석처리

다른 값들은 무시 가능

 

(작성을 마친 후 esc키를 누른 후 :wq!를 사용하여 파일을 저장)

 

 

 

5.  ifcfg-eth0 파일을 ifcfg-eth0.100으로 복사

 

bash
 # cp ifcfg-eth0 ifcfg-eth0.100

인터페이스 파일 복사

 

6.  VLAN 네트워크 인터페이스 파일인 eth0.100을 수정

   (VLAN ID에 따라 파일명도 해당 ID로 설정)

bash
DEVICE=eth0.100
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.10.10.10                 -> 설정할 IP
NETMASK=255.255.255.0             -> 설정할 서브넷
GATEWAY=10.10.10.254               -> 통신할 게이트웨이 주소
VLAN=yes

(작성을 마친 후 esc키를 누른 후 :wq! 를 사용하여 파일을 저장)

 

vlan 인터페이스 파일

 

7.  Vlan ID를 추가

 bash
# vconfig add eth0 100

※ 100은 위에서 설정한 인터페이스 ID

 

vlan ID 추가

 

-----------------------------Cent OS 5의 경우 7번까지만 진행-----------------------

 

8. ip rule을 사용하기 위해 vlan ID를 등록

 

 bash
# cd /etc/iproute2
# vi rt_tables

rt_tables 위치

9. rt_tables 값 수정

 

rt_tables 값 수정

맨 아래에 값을 추가 (insert i를 사용하여 값 입력)

 

110 eth0.110

 

110(원하는 값을 지정, 필자는 110부터 10 단위로 올리면서 사용)

eth0.100(위에서 만들었던 인터페이스의 이름)

 

(작성을 마친 후 esc키를 누른 후 :wq! 를 사용하여 파일을 저장)

 

10. VLAN 네트워크 어댑터를 활성화 

 

방법 1 -> service network restart

 

 

방법 2 -> ifup eth0.100

 

 

11. 정상적인 인터페이스 값과 ip가 올라왔는지 확인

 

 bash
 # ifconfig

eth0.100이 활성화 된 모습

 

12. 라우팅 테이블 추가

     

     위와 같이만 설정해두면 CentOS 6 기준으로는 통신이 되지 않는다.

     아래와 같이 입력하여 통신하도록 추가 설정해야 합니다.

 

 bash
# route add -net 10.10.10.0 netmask 255.255.255.0 gw 10.10.10.254 dev eth0.100
# ip ro add default via 10.10.10.254 dev eth0.100 table eth0.100
# ip rule add from 10.10.10.10 lookup eth0.100 pref 110

route add -net (ip대역) netmask (서브넷마스크) gw (게이트웨이) dev (인터페이스 이름)

ip ro add default via (게이트웨이) dev (인터페이스 이름) table (인터페이스 이름)

ip rule add from (IP 주소) lookup (인터페이스 이름) pref (rt_table에서 지정한 값)

    

 

위와 같이 설정 후 정상적으로 통신이 되는 것을 확인할 수 있다.

 

 

 


 

 

추가로 라우팅 테이블 명령어를 자동으로 입력하게 하는 방법이 있다.

 

 bash
# cd /etc/rc.d/
# vi iprule.sh

위 명령어로 파일 생성

새로 만든 파일에 내용 추가

 

route add -net 10.10.10.0 netmask 255.255.255.0 gw 10.10.10.254 dev eth0.100
ip ro add default via 10.10.10.254 dev eth0.100 table eth0.100
ip rule add from 10.10.10.10 lookup eth0.100 pref 110

 

iprule.sh 파일 내용

 

 

 bash
# chmod 755 iprule.sh
# ll

ll 명령어를 통해 권한이 아래와 같이 적용된 것을 확인한다.

새로 만든 스크립트 파일

 

 bash
# vi /etc/rc.d/rc.local

rc.local 파일 내 맨 마지막 줄에 아래 내용을 추가해준다.

 

/etc/rc.d/iprule.sh

 

 

 

 

 


 

 

 

 

CentOS 7 이상부터는 네트워크 어뎁터 이름이

eth0, 1 형태로 만들어지지 않고

ens33, eno1 enp1s0 등으로 생성되는데

해당 이름을 eth0과 같은 부분에 그대로 넣어주면 CentOS 7 이상에서도 동일하게 설정할 수 있습니다.]

 

 

위 예시에서는 CentOS 6에서 Vlan을 설정하였습니다.

반응형