Open vSwitch (네트워크어댑터추가, 브릿지만들어이용)
OpenVSwitch
(장현정 작가님의 "오픈스택을 다루는 기술" 서적을 참고하였음을 밝힙니다.)
Open vSwitch(이하 OVS)는 클라우드 서비스 내(內) 가상의 Network Bridge와 Flow rule을 사용하여
효율적으로 가상머신에 패킷을 포워딩하기 위한 가상의 스위치
참고링크 https://m.blog.naver.com/love_tolty/220237750951
네트워크 어댑터 추가하기 (host only, no dhcp, eth2)
브릿지 만들어 이용해보기
1. ovs-vsctl add-br [브릿지이름] #브릿지만들기
작업] ovs-vsctl add-br br-eth2
2. ovs-vsctl add-port [브릿지이름] [인터페이스카드이름] #브릿지 포트에 eth1을 추가
작업] ovs-vsctl add-port br-eth2 eth2
3. 레이어2 에이전트 설정( vi /etc/neutron/plugins/ml2/ml2_conf.ini )
마지막 줄에 추가(다른 섹션과 겹치지 않게)
[ml2_type_flat]
flat_networks = physnet1
4. OSV 에이전트 설정( vi /etc/neutron/plugins/ml2/openvswitch_agent.ini )
마지막 줄에 추가(다른 섹션과 겹치지 않게)
[ovs]
bridge_mappings = physnet1:br-eth2
5. 가상 네트워크 생성
openstack network create --project [project ID] --share \
--provider-network-type flat
--provider-physical-network [ovs에 설정된 브릿지네트워크ID] \
[가상 네트워크 이름]
작업1] projectID=$(openstack project list | grep service | awk '{print $2}')
-> service project의 두번째 필드 값을 추출해 변수에 저장(첫번째 필드는 |(파이프))
awk는 필드값을 추출해 표시하는 명령어 입니다. 작은 따옴표를 이용해 패턴을 표현하거나 표준입력함수를 이용합니다.
$0은 모든 필드값을 나타내며, 이후 1,2,3,4 이런식으로 필드 값을 정해 줄 수 있습니다.
예를 들어 ls -al을 사용했다라고 한다면
-rw-------. 1 root root 13889 12월 11 16:25 .bash_history
요런 형태로 나타나게 되는데,
ls -al | awk '{ print $3 }' 이라고 입력하면 3번째 필드인 root만 표시되게 됩니다.
물론 awk '{ print $3,4 }' 와 같이 콤마를 이용해 한번에 여러필드를 출력하는 것도 가능합니다.
위의 작업은 service라는 이름의 프로젝트를 검색해 ID만 추출하여 변수 projectID에 넣는 과정입니다.
작업2] openstack network create --project $projectID \
--share --provider-network-type flat \
--provider-physical-network physnet1 sharednet1
6. 서브넷 10.0.0.0/24를 만들어 둔 네트워크(sharednet1)에다가 만들어 넣습니다.
openstack subnet create subnet1 \
--network sharednet1 --project $projectID --subnet-range 10.0.0.0/24 \
--allocation-pool start=10.0.0.200,end=10.0.0.254 \
--gateway 10.0.0.2 --dns-nameserver 10.0.0.2
=> 10.0.0.0/24 대역대의 네트워크인 subnet1 이라는 서브넷을 만들어 sharednet1 이라는 이름으로 미리 정의해 두었던 가상의 네트워크에 넣어 주고 있습니다.
7. 여기까지가 기본적인 세팅의 완료. 이제 인스턴스 생성가능