본문 바로가기

OS

Linux - Ubuntu KVM 네트워크 설정

VM들을 네트워크로 연결하려면 버츄얼 브릿지를 사용하여야 한다.

 

호스트서버에서 다음과 같이 설정한다.

vi /etc/network/interfaces

auto virbr1
iface virbr1 inet static
        address 90.1.1.1
        netmask 255.255.255.0
        network 90.1.1.0
        broadcast 90.1.1.255
        #bridge_ports eth1 up
        pre-up brctl addbr virbr1
        post-down brctl delbr virbr1

​auto virbr2
iface virbr2 inet static
        address 30.1.1.1
        netmask 255.255.255.0
        network 30.1.1.0
        broadcast 30.1.1.255
        bridge_ports eth2 up
        # pre-up brctl addbr virbr2
        # post-down brctl delbr virbr2

 

 

bridge_ports eth2 up 이는 호스트서버의 물리적인 eth2 포트와 virbr2를 연결한다는 의미이다.

물리적인 이더넷 포트를 사용하지 않을때는 아래 두 줄을 추가한다.

pre-up brctl addbr virbr1
post-down brctl delbr virbr1

 

이렇게 설정하고 네트워크를 재시작하면 버츄얼 브릿지 생성이 완료된다.

 

이제 각 네트워크를 연결하려면,

 

virsh 로 진입해서 "edit [VM명]" 치면, 해당 VM에 대한 설정이 정의되어 있는 xml파일이 열린다.

 

최초 기본 정보는 다음과 같이 되어 있을 것이고,

<interface type='network'>
      <mac address='52:54:00:6b:53:62'/>
      <source network='default'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

 

추가로 아래 줄을 삽입한다.

<interface type='bridge'>
      <source bridge='virbr1'/>
</interface>

 

기본 정보부터 시작해서 eth0, eth1 ~~~ 으로 매핑된다.

매핑 시키고 싶은 virbr를 적으면 되겠다. 저렇게 쓰고나서 VM을 실행하면 자동으로 아래와 같이 바뀐다.

<interface type='bridge'>
      <mac address='52:54:00:d3:06:87'/>
      <source bridge='virbr5'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</interface>

 

 

VM의 eth 정보들 개수와 여기 추가하는 source bridge 개수가 일치해야 한다.

 

VM에서 사용하지 않는 eth는 dummy로 아무 IP나 구성한다. virbr 또한 dummy 인터페이스를 만들어 안쓰는 VM eth들은 dummy로 할당한다.

 

그리고 나서 각 VM에 접속하여 인터페이스별 IP를 셋팅하고, VM을 재시작 한다.

 

VM 시작전에 설정파일 적용을 위해 virsh에서 아래 명령 입력. (변경한 모든 파일에 대해)

define /etc/libvirt/qemu/QUAGGA1.xml

 

여기서 VM을 재시작하기 전에 인터페이스 정보 꼬이는걸 방지하기 위해 아래의 파일을 삭제후 재부팅한다.

 

/etc/udev/rules.d/70-persistent-net.rules

 

다시 VM을 시작시키고 접속하여 인터페이스 정보를 확인하고, 매핑한 네트워크에 핑테스트를 실시한다.

 

cf. virbr의 IP주소와 VM의 eth IP주소가 다른 대역이여도 같은 브릿지에 매핑하면 전부 통신이 가능한것 같다.

헷갈리니까 더미 인터페이스가 아니라면 각각 매핑되는 virbr를 생성하여 연결하자.

 

 

 

정리해 보자면,

 

1. 사용할 VM에 접속하여 인터페이스 정보 변경.

vi /etc/network/interfaces


2. HOST서버(VM을운용하는서버)에서 VM 종료.
virsh
shutdown QUAGGA


3. HOST서버에서 virbr 인터페이스 정보를 확인한다.
vi /etc/network/interfaces


4. HOST서버에서 virbr와 VM 매핑 정보 변경.
vi /etc/libvirt/qemu/QUAGGA.xml


5. 설정파일 로드.
virsh
define /etc/libvirt/qemu/QUAGGA.xml


6. VM 실행
virsh
start QUAGGA


7. VM에서 인터페이스 확인 및 연결된 VM으로 ping 테스트
telnet QUAGGA
ifconfig

'OS' 카테고리의 다른 글

Linux - .run 확장명 사용  (0) 2016.09.01
Linux - 리눅스 라우터 QUAGGA 사용법  (0) 2016.09.01
Linux - 용량 확인 명령  (0) 2016.09.01
Ubuntu - 패키지 관련 명령 (apt-get)  (0) 2016.09.01
Linux - cpan, perl  (0) 2016.09.01