2014년 12월 20일 토요일

CentOS 6.5에 Open vSwitch 설치

잘 정리된 설명서가 있으면,10분이면 할 일을 하루 종일 자료 찾느라 시간을 허비하고 있다.
다음에 빠르게 Open vSwitch를 설치하기 위해서 메모를 해두어야겠다.

* Open vSwitch Source Code 다운로드 하기
 wget 명령으로 openvswitch source를 다운로드한다.
  # wget http://openvswitch.org/releases/openvswitch-2.3.1.tar.gz

* 압출을 풀고, openvswitch-2.3.1 디렉토리에서 아래의 명령을 수행한다.
  # boot.sh
  # configure--with-linux=/usr/modules/`uname -r`/build    (중요: 이 경로가 잘못되면, 나중에 kernel module이 설치되지 않는다)

  # make
  # make install 
  # ln -s /usr/src/kernels/`uname -r`/include/linux generated   (중요: 이 부분이 매뉴얼에는 없다. 원래 필요없는 작업인데, make 파일이 잘못만들어져서 임의로 수작업을 해야 한다. generated 디렉토리를 만들지 않으면, 아래의 make modules_install 명령이 실패한다.)
  # make modules_install
  # rmmod  openvswitch    (참고: 꼭 필요한 절차는 아니다. Old Version을 remove하기 위해서)
  # modprobe  openvswitch

* kernel module이 잘 insert되었는지 확인한다.
  # dmesg
    ... ( 중간 생략 ) ...
    openvswitch: Open vSwitch switching datapath 2.3.1, built Dec 20 2014 16:33:44

* 새로 빌드한 kernel module의 정보를 확인한다.
 # modinfo openvswitch
    filename:       /lib/modules/2.6.32-431.1.2.0.1.el6.x86_64/extra/openvswitch.ko
    version:        2.3.1
    license:        GPL
    description:    Open vSwitch switching datapath
    srcversion:     B6EF1BA3A4922A40ED09655
    depends:        libcrc32c
    vermagic:       2.6.32-431.1.2.0.1.el6.x86_64 SMP mod_unload modversions
    parm:           vlan_tso:Enable TSO for VLAN packets (int)


* Open vSwitch가 사용할 DB를 초기화한다.
  # mkdir -p /usr/local/etc/openvswitch
  # ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema   (위에서 make 명령을 수행했던 source package directory에서 수행해야 한다. 안 그러면, 실패한다.)


* Open vSwitch의 설정 DB를 기동한다.
  # ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \
                 --remote=db:Open_vSwitch,Open_vSwitch,manager_options \
                 --private-key=db:Open_vSwitch,SSL,private_key \
                 --certificate=db:Open_vSwitch,SSL,certificate \
                 --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert \
                 --pidfile --detach

  (참고로, 위와 같이 옵션을 추가하면 SSL을 사용하겠다는 것이다)

* DB를 처음 생성했으므로, 초기화한다.
  # ovs-vsctl  --no-wait  init

* Open vSwitch 데몬을 기동한다.
  # ovs-vswitchd --pidfile --detach
  2014-12-20T08:26:52Z|00001|reconnect|INFO|unix:/usr/local/var/run/openvswitch/db.sock: connecting...
  2014-12-20T08:26:52Z|00002|reconnect|INFO|unix:/usr/local/var/run/openvswitch/db.sock: connected


여기까지하면, Open vSwitch가 동작한다. 단, 구체적인 switch 설정을 하지 않았기 때문에 일을 하지는 않는다.
아래와 같이 간단하게 bridge network을 구성해보자.

* Bridge br0 라는 것을 생성한다. 그리고 Bridge br0에 물리적 NIC를 binding한다.
  # ovs-vsctl add-br br0
  # ovs-vsctl add-port br0 em1
  # ovs-vsctl add-port br0 vmnet8
  # ovs-vsctl show
    Bridge "br0"
        Port "vmnet8"
            Interface "vmnet8"
        Port "br0"
            Interface "br0"
                type: internal
        Port "em1"
            Interface "em1"


 이것으로 간단한 Bridge Network까지 구성했다.

댓글 없음:

댓글 쓰기