Skip to main content

2 posts tagged with "maas-network"

View All Tags

· 5 min read

"MAAS 구축하기"를 통해 MAAS를 위한 network 설정,  구축 등을 해봤는데 정작 생성된 MAAS node에 바로 접근하는게 불가능하다. MAAS network이 NAT되어 MAAS network 내부에 있는 VM들이 외부 인터넷과 연결되는 것은 가능하지만 MAAS network으로 통하는 경로를 지정하지 않았기 때문인데 간단히 route 설정으로 처리한 방법을 정리해봤다.

 

1. Network 구성

현재 상태의 network 구성을 그려보면 아래 그림과 같다. (뭐든 그려봐야 명확해진다)

maas-vpn-network

 

정리를 해보면 192.168.100.0/24의 정체를 알고 있는 것은 NAT를 구성하고 있는 VyOS  하나 뿐인데, 집에서 사용하고 있는 공유기는 VyOS가 가지고 있는 두 개의 NIC 중 하나만 관리하고 있고 VyOS가 무엇을 하는 놈인지 관심도 없고 모르는 상태. 그렇기 때문에 공유기로부터 ip를 할당받아 내외부와 통신하고 있는 192.168.10.0/24 대역의 모든 장비도 192.168.100.0/24에 접근할 수가 없다. 단, "VyOS를 이용한 NAT network 구성"에서 설정했던 것처럼 192.168.10.0/24 대역에 있는 장비가 maas-network과 연결할 수 있는 NIC을 추가로 달고 있으면 VyOS에 의해 DHCP로 192.168.100.0/24 대역의 ip를 할당받을 수 있으니 접근이 가능하다. 하지만 연결하고자 하는 모든 장비에 NIC을 추가하는 것도 이상하고 더 나아가 VPN으로 연결된 외부에 있는 장비의 경우엔 내부망에 소프트웨어적으로 구성되어 있는 NIC을 다는 것은 불가능한 일이다. 이런 경우 MAAS node에 어떻게 연결되게 할 수 있을까?

 

2. Route to MAAS network

공유기 아래에 있는 192.168.10.0/24 대역의 장비들은 공유기를 gateway로 하고 있으니 공유기 라우팅 테이블에 설정해보기로 했다. Destination은 192.168.100.0, subnet mask는 255.255.255.0  (결국 192.168.100.0/24에 대한 요청)  을 가지는 LAN 내부에서의 트래픽이 VyOS의 eth0가 할당받은 ip를 gateway로 해서 흘러가게 설정했더니 끝. 192.168.10.x를 ip로 갖는 장비들에서 ping을 날려보니 정상 응답들이 넘어온다.

 

3. VPN route

공유기 내부에서의 접근은 공유기 라우팅 테이블에 하나 추가함으로써 문제는 해결이 되었는데 VPN은 약간 상황이 다르다. OpenVPN 서버 기능이 포함된 공유기를 사용하고 있는데, 기본 설정만으로 VPN client가 할당받는 10.8.0.0/24 대역의 ip에서 공유기 내부의 192.168.10.0/24 대역의 장비들이 보이는 상태였으나(원래는 별도로 설정을 추가해야  가능) 10.8.0.0/24에서는 192.168.100.0/24로 가는 길을 모르는 상태. 상황은 2와 약간 다르지만 어차피 경로만 추가하면 될 일이다. OpenVPN 설정에 아래 라우트 설정을 추가해서 해결할 수 있었다.

[bash]

push "route 192.168.100.0 255.255.255.0"

[/bash]

 

4. MAAS node에 연결

MAAS 구축시 ssh key (public)를 등록해두었기 때문에 MAAS node 배포시 등록한 public key도 함께 배포된다. 그렇기 때문에 node에 별도로 설정을 추가하지 않는 이상 이미 배포되어 있는 public key와 쌍을 이루는 private key를 가지고 있어야만 ssh 접속이 가능하다.  Network 대역이 달랐기 때문에 처음엔 접근 자체가 되지 않았지만 3까지의 과정까지 진행한 후 VPN으로 연결된 장비(private key를 가지고 있는)에서 ssh 접근을 시도하니 성공.

maas-node-login

· 7 min read

VyOS는 소프트웨어 라우터, VPN, 방화벽 등의 기능을 제공하는 Vyatta의 community fork 버전으로 라우터, 방화벽 등을 소프트웨어로 구현해서 설정 가능한 network 전용 OS라고 보면 된다. 가벼운 서버나 PC 같은 장비에 VyOS를 올리면 공유기를 대체해서 사용하는 것도 가능하다. (물론 LAN port 확장을 위해 랜카드가 추가로 필요하겠지만) 리눅스 기반이기 때문에 ssh 접속부터 일반적인 command 사용이 가능하고 network 전용 OS 답게 기능 설정을 위한 별도의 command set도 제공된다.

어디까지나 MAAS 구축을 위해 필요에 의해서 진행한 내용이고 (MAAS 구축하기 참조) 사실 network 분리, NAT 구성은 여러가지 방법이 있을 수 있지만 공부 혹은 연습을 위한 것이라 비효율적으로 보일 수 있겠다는 생각도 든다.

 

1. vSwitch / Port group 추가를 통한 network 분리 준비

ESXi 기준으로 보면 단순히 하나의 vSwitch에 port group만 추가해서 설정해도 network 분리는 가능할 것 같다. 아래 그림처럼 기본으로 존재하는 vSwitch0에 기존에 사용하는 VM Network 이란 port group이 있는 상태에서 maas-cluster-switch라는 vSwitch를 추가했다. 다시 maas-cluster-switch에는 VM 연결을 위한 maas-network이라는 port group을 추가했는데 vSwitch0와 달리 물리 어댑터에 연결된 상태가 아니기 때문에 maas-network에 붙은 VM들은 기본적으로 외부 인터넷과의 통신이 불가능하다.

vswitch

단절된 maas-network이 외부 인터넷과의 통신을 가능하게 하기 위해 NAT (Network Address Translation) 가 필요하다.

 

2. 설치

VyOS 설치를 위해 VM을 하나 생성하고 VyOS user guide에 기술된 대로 진행하면 설치는 간단하게 끝낼 수 있다. (설치에 필요한 ISO image는 VyOS wiki main에 링크되어 있음) 단, 설치 전이나 후에 VyOS VM에 VM Network과 maas-network과 연결하는 NIC 2개를 붙여주어야 한다.

 

3. NAT 구성

사실 user guide에 다 기술되어 있는 내용이지만 부분별로 나누어서 봤을 때 우선 interface 기본 설정을 해야 한다. Configuration mode로 진입해서 아래의 command를 입력한다. (eth0가 VM Network에 연결된 interface이고 eth1이 maas-network에 연결된 interface인 경우를 가정)

[bash]

set interfaces ethernet eth0 address dhcp

set interfaces ethernet eth0 description 'PUBLIC'

 

set interfaces ethernet eth1 address '192.168.100.1/24'

set interfaces ethernet eth1 description 'PRIVATE'

[/bash]

eth0는 공유기의 DHCP가 할당한 ip를 사용하기 때문에 dhcp를 지정했고 eht1의 경우에는 VyOS에서 dhcp로 할당할 ip 대역(192.168.100.0/24를 사용할 예정)의 gateway가 될 것이기 때문에 위와 같이 지정했다.

다음으로 NAT 구성을 위해 아래의 command를 입력한다.

[bash]

set nat source rule 100 outbound-interface 'eth0'

set nat source rule 100 source address '192.168.100.0/24'

set nat source rule 100 translation address masquerade

[/bash]

매우 간단하다. 여기까지 진행된 후에 commit을 입력하면 수정내용이 반영되고 save 명령을 실행하면 영구 저장된다.

 

4. DHCP 구성

maas-network에 연결될 VM들이 ip를 할당받아야 하기 때문에 dhcp 구성이 필요하다. 역시 아래의 command로 간단하게 처리할 수 있다.

[bash]

set service dhcp-server disabled 'false'

set service dhcp-server shared-network-name LAN subnet 192.168.100.0/24 default-router '192.168.100.1'

set service dhcp-server shared-network-name LAN subnet 192.168.100.0/24 dns-server '192.168.100.1'

set service dhcp-server shared-network-name LAN subnet 192.168.100.0/24 domain-name 'internal-network'

set service dhcp-server shared-network-name LAN subnet 192.168.100.0/24 lease '86400'

set service dhcp-server shared-network-name LAN subnet 192.168.100.0/24 start '192.168.100.10' stop '192.168.100.254'

[/bash]

다음은 DNS forwarder 설정.

[bash]

set service dns forwarding cache-size '0'

set service dns forwarding listen-on 'eth1'

set service dns forwarding name-server '8.8.8.8'

set service dns forwarding name-server '8.8.4.4'

[/bash]

위 command 들은 dhcp를 활성화시킨 후 dns, lease time 등의 기본적인 설정을 진행한 것인데 필요하다면 lease time, dhcp 할당 범위 등을 적당히 조절해서 설정하면 되겠다. 역시 저장을 위해 commit, save 명령을 실행하고 exit 명령으로 configuration mode를 빠져나오면 완료. VyOS user guide에서는 방화벽 등의 추가 설정을 하도록 되어있으니 필요한 경우 별도로 진행하면 될 것 같다.

 

5. 결과

간단하게 VyOS에서 몇가지 설정만 하는 것으로 결과적으로 내가 원하는 이런 그림이 되었는데, VyOS가 192.168.100.0/24 대역을 DHCP로 만들어주고, 물리적으로는 단절된 해당 네트웍 대역이 외부로 나가기 위해 192.168.10.0/24 대역에 연결된 NIC을 NAT로 거치게 됨으로써 이제 외부 인터넷과의 통신이 가능해졌다.

maas-network