[Error] The IP address configured for the host-only network is not within the allowed ranges. Please update the address used to be within the allowed ranges and run the command again.
vagrant up 명령어를 쳤을 때 뜨는 에러입니다. 맥이나 리눅스 환경에서 사용할 수 있는 Private Network Address 범위에 맞지 않게 VagrantFile 에 작성되어 있어서 발생하는 에러입니다.
이를 해결하는 방법으로는 여러가지가 있습니다.
주소 바꾸기
가장 간단한 방법으로는 VagrantFile 에 명시한 주소 값을 허용된 범위 내의 주소로 바꿔주는 것입니다. 저의 VagrantFile 은 아래와 같이 작성되어 있습니다.
Vagrant.configure("2") do |config|
config.vm.define HOST_NAME do |subconfig|
subconfig.vm.box = BOX_IMAGE
subconfig.vm.hostname = HOST_NAME
subconfig.vm.network :private_network, ip: "192.168.104.2"
subconfig.vm.provider "virtualbox" do |v|
v.memory = 1536
v.cpus = 2
end
subconfig.vm.provision "shell", inline: $pre_install
end
end
192.168.104.2 를 허용된 범위 내의 주소로 바꿔주는 것입니다. 허용된 범위란 192.168.56.0/21 입니다. 이는 192.168.56.0 ~ 192.168.63.255 를 의미합니다. 위의 VagrantFile 내용을 아래와 같이 바꿔주면 정상 작동합니다.
Vagrant.configure("2") do |config|
config.vm.define HOST_NAME do |subconfig|
subconfig.vm.box = BOX_IMAGE
subconfig.vm.hostname = HOST_NAME
subconfig.vm.network :private_network, ip: "192.168.58.2"
subconfig.vm.provider "virtualbox" do |v|
v.memory = 1536
v.cpus = 2
end
subconfig.vm.provision "shell", inline: $pre_install
end
end
networks.conf 파일 편집(가장 추천~)
/etc/vbox/networks.conf 파일은 Virtual Box 의 네트워크를 설정할 수 있는 Configuration 파일입니다. 이 파일은 이미 존재하거나, 존재하지 않을 수도 있습니다. 편집 혹은 생성으로 아래의 내용을 추가해줍니다.
* 10.0.0.0/8 192.168.0.0/16
* 2001::/64
별표 * 도 무조건 같이 작성해주셔야 합니다. 위 내용을 작성 후 저장하고, 다시 VagrantFile 이 위치한 디렉토리에서 vagrant up 을 해주면 정상적으로 진행됩니다.
혹시 vi(m) 으로 파일 작성 후 저장이 되지 않는다면, 아래의 명령어로 디렉터리를 생성 후 다시 시도해보시길 바랍니다.
mkdir -p /etc/vbox # networks.conf 가 위치할 디렉터리 생성
vim /etc/vbox/networks.conf # 작성
위 방법들 말고도,, VirtualBox 의 버전을 낮추는 다운그레이드로 해결이 된다는 글도 몇 개 있었습니다. 다만.. 추천하지 않을뿐..