KVM내에서 가상머신 끼리만 네트워크를 추가 하고자 할 경우에 대한 설정 방법이다.
설정하기에 앞서 virsh 커맨더 내 네트워크 커맨더는 아래와 같다.
Usage) virsh [option] [command]
net-autostart | 네트워크 자동 시작 |
net-create | XML 파일에서 네트워크 생성 및 네트워크 활성화 시킴 |
net-define | define an inactive persistent virtual network or modify an existing persistent one from an XML file, 네트워크 목록에만 추가하고 활성화 하지 않음 |
net-destroy | 네트워크 삭제 (중지) |
net-dhcp-leases | print lease info for a given network |
net-dumpxml | XML에 있는 네트워크 정보 |
net-edit | 네트워크를 위한 XML 설정을 편집 |
net-event | Network Events |
net-info | 네트워크 정보 |
net-list | 네트워크 목록 |
net-name | 네트워크 UUID를 네트워크 이름으로 변환 |
net-start | (기존에 정의된) 비활성화 네트워크 시작 |
net-undefine | undefine a persistent network |
net-update | 기존 네트워크 설정의 일부분을 업데이트합니다 |
net-uuid | 네트워크 이름을 네트워크 UUID로 변환 |
-
등록할 XML파일 생성
먼저 KVM내 네트워크를 생성 하기 위한 파일을 만들어야 하는데 파일 관리를 위해 Directory를 생성한다.
[root@cronus kvmimg]# mkdir kvm_net
[root@cronus kvmimg]# cd kvm_net/
[root@cronus kvm_net]# pwd
/var/kvmimg/kvm_net
새로 생성할 네트워크 인터페이스는 virbr1이다.
아직 생성전이기에 네트워크 인터페이스는 보이지 않는다.
[root@cronus kvm_net]# ifconfig virbr1
virbr1: error fetching interface information: Device not found
KVM에서 추가할 네트워크 xml파일을 생성한다.
파일 생성은 아래 방법 중 하나를 사용한다.
방법1) IP를 미지정하기
[root@cronus kvm_net]# cat internal_virbr1.xml
<network>
<name>internal</name>
<bridge name='virbr1' stp='on' delay='0'/>
</network>
방법2) IP를 지정하기
[root@cronus kvm_net]# cat internal_virbr1.xml
<network>
<name>internal</name>
<bridge name='virbr1' stp='on' delay='0'/>
<ip address='10.255.255.1' netmask='255.255.255.0'>
<dhcp>
<range start='10.255.255.2' end='10.255.255.254'/>
</dhcp>
</ip>
</network>
생성된 네트워크 파일을 KVM 네트워크에 반영하는데 반영 방법이 영구적으로 반영하는 방법이 있는가 반면에 일시적으로 등록하는 방법이 있다.
1. XML파일을 생성하여 영구적으로 네트워크 생성/추가
이 방법은 해당 네트워크를 종료해도 목록에서 삭제 되지 않는다.
먼저 등록된 네트워크를 확인한다.
[root@cronus kvm_net]# virsh net-list --all
이름 상태 자동 시작 Persistent
----------------------------------------------------------
default 활성화 예 예
* Filed 정의
filed name | 정의 |
이름 (name) | 정의된 네트워크 이름 (interface이름 아니다.) |
상태 | 활성화/비활성화, 즉 동작 상태 표시 |
자동시작 | KVM동작시 자동으로 실행 여부 |
Persistent | 영구 등록인지 일시적인지 여부이며, No(아니오) 일 경우 net-destroy할 경우 없어진다. |
생성한 XML파일을 목록에 업로드 한다.
[root@cronus kvm_net]# virsh net-define internal_virbr1.xml
internal1에서 정의된 internal_virbr1.xml 네트워크
[root@cronus kvm_net]# virsh net-list ## 비활성화된 네트워크 목록은 안보인다. --all옵션을 추가해야 확인이 가능하다.
이름 상태 자동 시작 Persistent
----------------------------------------------------------
default 활성화 예 예
[root@cronus kvm_net]# virsh net-list --all
이름 상태 자동 시작 Persistent
----------------------------------------------------------
default 활성화 예 예
internal1 비활성화 아니요 예
[root@cronus kvm_net]#
등록은 했지만 해당 네트워크를 시작하지 않아 아직 Hostmachine내 인터페이스에는 반영되지 않는다.
[root@cronus kvm_net]# ifconfig virbr1
virbr1: error fetching interface information: Device not found
추가한 네트워크를 시작한다.
<해당 인터페이스에 IP를 미지정 했을경우>
[root@cronus kvm_net]# virsh net-start internal2
internal2 네트워크 시작
[root@cronus kvm_net]# ifconfig virbr2 ## 생성 여부 확인
virbr2: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 52:54:00:b7:10:ce txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
<해당 인터페이스에 IP를 지정했을 경우>
[root@cronus kvm_net]# virsh net-start internal1
internal1 네트워크 시작
[root@cronus kvm_net]# ifconfig virbr1 ## 생성 여부 확인
virbr1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 10.255.255.1 netmask 255.255.255.0 broadcast 10.255.255.255
ether 52:54:00:cb:af:2d txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
** 시작한 네트워크를 종료 하고자할 경우에는 아래와 같이 실행한다.
[root@cronus kvm_net]# virsh net-destroy internal1
internal1 네트워크 강제 종료
** 추가한 네트워크를 목록에서 삭제하고자 할 경우
[root@cronus kvm_net]# virsh net-list --all
이름 상태 자동 시작 Persistent
----------------------------------------------------------
default 활성화 예 예
internal1 비활성화 아니요 예
[root@cronus kvm_net]# virsh net-undefine internal1
internal1 네트워크가 정의되지 않음
[root@cronus kvm_net]# virsh net-list --all
이름 상태 자동 시작 Persistent
----------------------------------------------------------
default 활성화 예 예
2. XML파일을 생성하여 일시적으로 네트워크 생성/추가
이 방법은 해당 네트워크를 종료해도 목록에서 삭제 된며, Autostart설정을 할수 없다.
[root@cronus kvm_net]# virsh net-create internal_virbr3.xml
internal3 에서 생성된 internal_virbr3.xml 네트워크
[root@cronus kvm_net]# virsh net-list
이름 상태 자동 시작 Persistent
----------------------------------------------------------
default 활성화 예 예
internal1 활성화 예 예
internal3 활성화 아니요 아니요
net-autostart 를 설정하려 할 경우 설정되지 않는다.
[root@cronus kvm_net]# virsh net-autostart internal3
오류:자동 시작으로 internal3 네트워크를 표시하기 실패
오류:요청한 동작이 바르지 않습니다: 임시 네트워크에 대해 autostart를 설정할 수 없음
주의 : 영구적으로 등록 또는 net-autostart 설정하려면 종료/삭제 후 net-define을 다시 생성해야 한다.
[root@cronus kvm_net]# virsh net-define internal_virbr3.xml
오류:internal_virbr3.xml에서 네트워크 정의하기 실패
오류:작업 실패: uuid internal3를 갖는 네트워크 '9ff7a1af-9b01-499a-a5be-6361b29ca91a'가 이미 존재합니다
이미 생성된 KVM VM에 네트워크 추가 하기
'운영체제 > RHEL&CENTOS' 카테고리의 다른 글
[Linux] KVM에서 생성한 VM의 Memory변경 (CLI방법) (0) | 2019.07.02 |
---|---|
[Linux] KVM VM에 네트워크 인터페이스 추가 하기 (0) | 2019.06.26 |
[Linux] KVM GUI가상머신 관리자에서 생성한 VM에 virsh console로 접속하기 (0) | 2019.06.25 |
[Centos/RHEL] HAcluster - pacemaker (1) (0) | 2019.06.25 |
[Linux] KVM(for Kernel-based Virtual Machine) (2) - GUI 배포 (0) | 2019.06.25 |