Better Technology, Better Tomorrow.

Cloud 기술팀 개인 포스팅 자료

Linux General

Multiple Gateway 설정

ProLinux 2020. 11. 17. 08:45

RHEL 기준 7버전 부터는 NetworkManager 서비스는 Network 구성에 있어서 많은 부분에 관여하게 되었습니다. 8버전 부터는 NetworkManager가 선택이 아니라 필수적인 서비스로 자리를 잡았는데요.

 

현재 대부분의 실 운영은 RHEL 7을 주로 사용하고 있기에, 7버전에서 Bonding을 통해 네트워크 이중화 및 클라우드 네트워크 구성 등의 사유로 Network Manager 서비스를 중지하고 작업하는 경우가 있습니다.

 

그러나 2개 대역을 사용하는 경우 Network Manager 서비스가 없다면, 게이트웨이를 자동으로 찾지 못하여 1개의 대역만 네트워크를 사용할 수 있는 현상이 발생하는데요. 다음 과정을 통해 Route를 수동으로 설정하여 2개 대역의 망을 사용할 수 있습니다.

 

본 포스팅은 NetworkManager가 기동 중지한 채로 운영할 수 밖에 없는 상황에서의 조치 내용입니다.

 

본딩을 통해 네트워크 이중화 및 2개의 대역을 사용중인 모습

 

현재는 NetworkManager가 기동중인 모습

정상적으로 네트워크매니저 서비스가 기동중이라면, 각 bond0, bond1 장치의 게이트웨이 설정을 확인하여 자동으로 라우팅 테이블에 추가가 됩니다.

 

 

하지만 NetworkManager 서비스 기동을 중지한 후 Network 서비스를 재기동하여 라우팅 테이블을 다시 작성하게되면, 보시다시피 먼저 인식되는 게이트웨이 하나만을 인식하는 것을 확인할 수 있습니다. 이렇게되면 외부망인 192.168.207.0 의 네트워크는 사용할 수 없게 됩니다.

 

이 경우 다음과 같은 명령으로 라우팅 테이블에 게이트웨이 라우터를 수동으로 추가할 수 있습니다.

route add default gw <게이트웨이 IP> dev <해당 게이트웨이를 설정한 NIC 장치명>

위 명령으로 수동으로 추가하게 되면 네트워크 매니저 없이도 두개의 게이트웨이를 설정할 수 있습니다. 그러나, 위 명령은 일회성이므로 재부팅하게되면 다시 처음과 같은 상황으로 한개의 대역만 사용하게 되는데요. 그래서 부팅 시에 읽어들일수 있도록 rc.local 파일에 위 명령을 입력해주면 됩니다.

 

CentOS, RHEL 7.5에서 테스트한 결과 route-eth route-bond 혹은 rule-eth rule-bond 형태의 파일은

network를 재기동한다하여서 라우트가 고정되지 않는다는 것을 확인하였습니다.

 

 

#vi /etc/rc.local

 

 

#chmod +x /etc/rc.d/rc.local
#systemctl restart rc-local.service
#reboot

 

 

만일, systemctl restart rc-local.service 명령 실행 시 다음과 같은 메세지 출력 시

Warning: rc-local.service changed on disk. Run 'systemctl daemon-reload' to reload units.

#systemctl daemon-reload 명령을 통해 데몬을 다시 로드 시키면 문제가 해결됩니다.