ko ko ko ko ko ko ko ko ko ko ko ko ko pt fr en it ko ko en it en it en it ko ko ko ko ko ko ko ko en en ko ko ko ko ko ko en ko ko ko ko en en ko ko fr ko ko ko en ko ko ko ko ko en ko ko en en ko ko en en en en en en en ko ko en ko ko ko ko en ko ko ko en en ko ko en en en en ko ko ko en en ko ko ko ko en en en ko en ko en en ko ko ko en ko ko ko en ko ko ko ko en en ko en en ko en ko ko ko ko ko ko en ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko de ko ko ko ko ko en ko ko ko ko ko ko ko ko ko ko ko en ko ko ko ko ko ko en hbs_lat ca ko en en
Openstack Network 구축 과정 이해 – LinuxBridge :: 작은 병아리의 꿈
작은 병아리의 꿈 작은 병아리의 꿈
그림1. Openstack Mitaka 설치가이드의 네트워크 구성도
Ubuntu 14.04 Openstack Mitaka Install Guide 에서는 위의 네트워크 구성도를 기반으로 설정을 진행합니다.. 이 그림만 봐서는 Provider Network 의 역할이 무엇인지, 그리고 대부분의 오픈스택의 네트워크 구성도와는 다른 모습이여서 이해하는데 많은 어려움이 있었습니다.
이 포스트에서는 Install Guide 에서 제시하는 네트워크 구성도에 대한 이해와, 그것이 내부적으로 어떻게 구성되는지 명령어단위로 하나하나 분석하면서 알아보도록 하겠습니다.
많이 공개된 오픈스택 네트워크 구성도를 보면 크게 아래와 같이 3가지 네트워크로 구성됩니다.
Management Network : 관리용 네트워크. 각 컴포넌트(Nova, Neutron 등)이 서로 API 를 호출하는데 사용됩니다.
Tunnel Network : vm instance 간 네트워크를 구축하는데 사용되는 네트워크입니다. GRE, VXLAN 등의 기술이 사용됩니다. Overlay Network 라고도 부릅니다.
External Network : vm instance 가 인터넷과 통신하기 위한 네트워크.
Host 머신에 오픈스택을 설치하기 위한 인터넷 연결으로는 별도의 네트워크를 연결하거나, Management Network 를 인터넷에 연결되도록 구성합니다.
설치 가이드 문서의 Neutron 설정부분에서 네트워킹 서비스를 설정하기 위해서 2가지 옵션 중 한가지를 선택해야합니다.
Provider Network : 오픈스택을 서비스하는 사람이 구축한 네트워크가 vm instance 에 할당되는 네트워크입니다. 서비스하는 사람이 ‘제공’ 하는 네트워크라는 의미에서 Provider Network 라고 합니다. 이 네트워크는 인터넷에 연결이 되어있는 네트워크입니다. (그렇다고 public ip 를 반드시 가진다는 것은 아닙니다.)
Self-Service Network : 오픈스택을 사용하는 사용자(Tenant)가 직접 자신만의 vm instance 를 위한 네트워크를 구축할 수 있는 네트워크입니다. 이 네트워크는 provider network 를 기반으로 GRE, VXLAN 등의 터널링을 통해 구축됩니다.
이 두 가지 옵션과 위에서 설명한 3가지 네트워크 종류와의 연관성을 정리하면 다음과 같습니다.
Provider Network = External Network
Self-Service Network = Tunnel Network + External Network
이제 오픈스택을 설치하기 위해, virtualbox 로 네트워크를 구성해보도록 하겠습니다.
IP : Controller / Compute 가 동일하게 10.0.2.15
virtualbox 의 bridge 인터페이스
공유기와 연결된 인터넷을 사용할 수 있는 네트워크
Controller IP : 할당하지 않음
Compute IP : 할당하지 않음
IP 대역 : 172.32.0.0/24
virtualbox 의 host-only network
host에서 virtualbox 의 vm 에 접속할 수 있는 네트워크
Controller IP : 192.168.56.101/24
Compute IP : 192.168.56.102/24
Neutron 설정은 Mitaka 설치 가이드의 Self-Service Network 부분대로 진행하였지만, 기록을 위해 주요 설정 부분을 보여드립니다.
[linux_bridge] physical_interface_mappings = provider:eth1 [vxlan] enable_vxlan = True local_ip = 192.168.56.101 l2_population = True
[linux_bridge] physical_interface_mappings = provider:eth1 [vxlan] enable_vxlan = True local_ip = 192.168.56.101 l2_population = True
[linux_bridge] physical_interface_mappings = provider:eth1 [vxlan] enable_vxlan = True local_ip = 192.168.56.102 l2_population = True
Self-Service 네트워크가 구축되는 과정
그림 2. Self-Service networks 개요도
그림 3. Self-Service networks 연결도
설치 가이드 문서의 Launch Instance 의 인스턴스를 위한 네트워크 구축 – Self-Service 파트 에서 위와 같은 구성도를 보여주고 있습니다.
이제 neutron 에서 네트워크, 서브넷, 라우터를 생성하면서 그림 3의 연결도가 어떤 명령어로 어떻게 생성되는지 하나하나 살펴보도록 하겠습니다.
Self-Service Network 는 provider network 를 통해 인터넷과 통신하기에, neutron에 provider network를 사용할 수 있도록 설정해주어야 합니다.
Create the provider network
# 모든 오픈스택 사용자가 사용할 수 있도록 shared 네트워크를 생성. neutron net-create --shared --provider:physical_network provider \ --provider:network_type flat provider # 위에서 생성한 네트워크에 서브넷을 생성. neutron subnet-create --name provider --allocation-pool start=172.32.0.100,end=172.32.0.200 --dns-nameserver 8.8.8.8 --gateway 172.32.0.1 provider 172.32.0.0/24
위 작업을 하고 나면 Controller 노드에 아래와 같이 구성됩니다.
Controller 노드에서 bridge 와 네임스페이스는 아래와 같이 구성되어있다.
# 리눅스 bridge 확인 $ brctl show bridge name bridge id STP enabled interfaces brqc1997735-77 8000.08002772b679 no eth1 tape9fb1eac-9b # 리눅스 네트워크 네임스페이스 확인 $ ip netns qdhcp-c1997735-771e-463c-b64f-7724800bbb1a $ sudo ip netns exec qdhcp-c1997735-771e-463c-b64f-7724800bbb1a ip a 1: lo:   mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ns-e9fb1eac-9b@if7:   mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether fa:16:3e:07:a8:82 brd ff:ff:ff:ff:ff:ff inet 172.32.0.100/24 brd 172.32.0.255 scope global ns-e9fb1eac-9b valid_lft forever preferred_lft forever inet 169.254.169.254/16 brd 169.254.255.255 scope global ns-e9fb1eac-9b valid_lft forever preferred_lft forever inet6 fe80::f816:3eff:fe07:a882/64 scope link valid_lft forever preferred_lft forever
어떤 명령어들이 저런 구성을 완성했는지, neutron 서비스들의 디버그 메세지를 통해 확인해보겠습니다.
아래 내용은 구성을 위한 필수 명령어들만 정리한 내용입니다.
# 먼저 어디에선가 tape9fb1eac-9b 인터페이스가 만들어집니다 (어디서 만들어지는지 찾지 못했습니다. 명령어도..) # DHCP Agent 에서 DHCP Namespace 생성하는 작업을 진행합니다. ip netns add qdhcp-c1997735-771e-463c-b64f-7724800bbb1a ip netns exec qdhcp-c1997735-771e-463c-b64f-7724800bbb1a ip link set lo up # 이때 ns-e9 인터페이스가 생성되고, tape9fb 랑 연결됩니다. ip link add tape9fb1eac-9b type veth peer name ns-e9fb1eac-9b netns qdhcp-c1997735-771e-463c-b64f-7724800bbb1a ip netns exec qdhcp-c1997735-771e-463c-b64f-7724800bbb1a ip link set ns-e9fb1eac-9b address fa:16:3e:07:a8:82 ip link set tape9fb1eac-9b up ip netns exec qdhcp-c1997735-771e-463c-b64f-7724800bbb1a ip link set ns-e9fb1eac-9b up # dhcp 서버에 172.32.0.100 을 할당합니다. ip netns exec qdhcp-c1997735-771e-463c-b64f-7724800bbb1a ip -4 addr add 172.32.0.100/24 scope global dev ns-e9fb1eac-9b brd 172.32.0.255 ip netns exec qdhcp-c1997735-771e-463c-b64f-7724800bbb1a ip -4 route replace default via 172.32.0.1 dev ns-e9fb1eac-9b # dhcp 를 구성합니다. ip netns exec qdhcp-c1997735-771e-463c-b64f-7724800bbb1a dnsmasq --no-hosts --no-resolv --strict-order --except-interface=lo --pid-file=/var/lib/neutron/dhcp/c1997735-771e-463c-b64f-7724800bbb1a/pid --dhcp-hostsfile=/var/lib/neutron/dhcp/c1997735-771e-463c-b64f-7724800bbb1a/host --addn-hosts=/var/lib/neutron/dhcp/c1997735-771e-463c-b64f-7724800bbb1a/addn_hosts --dhcp-optsfile=/var/lib/neutron/dhcp/c1997735-771e-463c-b64f-7724800bbb1a/opts --dhcp-leasefile=/var/lib/neutron/dhcp/c1997735-771e-463c-b64f-7724800bbb1a/leases --dhcp-match=set:ipxe175 --bind-interfaces --interface=ns-e9fb1eac-9b --dhcp-range=set:tag0172.32.0.0static86400s --dhcp-option-force=option:mtu1500 --dhcp-lease-max=256 --conf-file= --domain=openstacklocal
# 새로운 bridge 생성 brctl addbr brqc1997735-77 ip link set brqc1997735-77 up # 인터페이스 추가 brctl addif brqc1997735-77 eth1 brctl addif brqc1997735-77 tape9fb1eac-9b
여기까지가 provider 네트워크를 생성했을 때 일어나는 일입니다. 여기서 compute 노드에 vm instance 를 생성하면, compute 쪽에서 provider bridge 가 생성되고 instance 와 연결되는 작업이 이루어집니다
이 부분은 self-service 네트워크를 생성 후, vm instance 를 만드는 것과 비슷한 작업이기에 아래에서 알아보도록 하겠습니다.
Create the Self Service Network
$ neutron net-create selfservice $ neutron subnet-create --name selfservice --dns-nameserver 8.8.4.4 --gateway 172.16.1.1 selfservice 172.16.1.0/24
위와 같이 self-service network 와 서브넷을 생성하면 아래와 같이 구성됩니다.
그림을 보면 vxlan-70 이 eth0에 연결되어있는 것을 볼 수 있습니다. eth0 은 Management Network 로 할당된 인터페이스입니다.
이걸 통해서 Openstack Mitaka 설치 가이드에서는 Management Network 를 Tunnel Network와 같이 사용한다는 것을 알 수 있습니다.
사실 이것을 설명드리고 싶어서 이 문서를 작성한 것이 가장 큽니다. Management Network 를 통해서 Tunnel Network 를 사용하고 있었습니다.
[DHCP Agent] self-service dhcp namespace 생성
# 마찬가지로 tapb5ab7d31-e1 가 생성됩니다. 어디에선가.. ip netns add qdhcp-34078f0c-3e23-46d5-a03c-4c9af2778899 ip netns exec qdhcp-34078f0c-3e23-46d5-a03c-4c9af2778899 ip link set lo up # ns-b5ab7d31-e1를 생성하고 tabb5ab7d31-e1 와 연결합니다. ip link add tapb5ab7d31-e1 type veth peer name ns-b5ab7d31-e1 netns qdhcp-34078f0c-3e23-46d5-a03c-4c9af2778899 ip netns exec qdhcp-34078f0c-3e23-46d5-a03c-4c9af2778899 ip link set ns-b5ab7d31-e1 address fa:16:3e:76:6d:74 ip link set tapb5ab7d31-e1 up ip netns exec qdhcp-34078f0c-3e23-46d5-a03c-4c9af2778899 ip link set ns-b5ab7d31-e1 up # dhcp 서버 ip를 172.16.1.2 로 설정합니다. ip netns exec qdhcp-34078f0c-3e23-46d5-a03c-4c9af2778899 ip -4 addr add 172.16.1.2/24 scope global dev ns-b5ab7d31-e1 brd 172.16.1.255 ip netns exec qdhcp-34078f0c-3e23-46d5-a03c-4c9af2778899 ip -4 addr add 169.254.169.254/16 scope global dev ns-b5ab7d31-e1 brd 169.254.255.255 ip netns exec qdhcp-34078f0c-3e23-46d5-a03c-4c9af2778899 ip -4 route replace default via 172.16.1.1 dev ns-b5ab7d31-e1 # dhcp 기능을 활성화합니다. ip netns exec qdhcp-34078f0c-3e23-46d5-a03c-4c9af2778899 dnsmasq --no-hosts --no-resolv --strict-order --except-interface=lo --pid-file=/var/lib/neutron/dhcp/34078f0c-3e23-46d5-a03c-4c9af2778899/pid --dhcp-hostsfile=/var/lib/neutron/dhcp/34078f0c-3e23-46d5-a03c-4c9af2778899/host --addn-hosts=/var/lib/neutron/dhcp/34078f0c-3e23-46d5-a03c-4c9af2778899/addn_hosts --dhcp-optsfile=/var/lib/neutron/dhcp/34078f0c-3e23-46d5-a03c-4c9af2778899/opts --dhcp-leasefile=/var/lib/neutron/dhcp/34078f0c-3e23-46d5-a03c-4c9af2778899/leases --dhcp-match=set:ipxe175 --bind-interfaces --interface=ns-b5ab7d31-e1 --dhcp-range=set:tag0172.16.1.0static86400s --dhcp-option-force=option:mtu1450 --dhcp-lease-max=256 --conf-file= --domain=openstacklocal
# vxlan-70 인터페이스를 생성하고, vxlan id 는 70로 설정하고 eth0 과 연결되도록 합니다. ip link add vxlan-70 type vxlan id 70 dev eth0 ip link set vxlan-70 up # 새로운 bridge 를 생성합니다. brctl addbr brq34078f0c-3e brctl stp brq34078f0c-3e off ip link set brq34078f0c-3e up # 인터페이스들을 추가합니다. brctl addif brq34078f0c-3e vxlan-70 brctl addif brq34078f0c-3e tapb5ab7d31-e1 ip link set tapb5ab7d31-e1 up
self-service network 와 provider network 를 연결해주는 라우터를 생성합니다.
$ neutron net-update provider --router:external $ neutron router-create router $ neutron router-interface-add router selfservice
위 작업을 하고 나면 아래와 같은 구성이 만들어집니다.
[l3-agent] router namespace 생성
# tap19d1547d-a0 가 어디에선가 생성됩니다. # 새로운 namespace 를 만듭니다. ip netns add qrouter-594a2a7a-c79b-42f2-9011-8373f3186cb8 ip netns exec qrouter-594a2a7a-c79b-42f2-9011-8373f3186cb8 ip link set lo up ip netns exec qrouter-594a2a7a-c79b-42f2-9011-8373f3186cb8 sysctl -w net.ipv4.ip_forward=1 # qr-19d1547d-a0 인터페이스를 만들고 tap19d1547d-a0 와 연결합니다 ip link add tap19d1547d-a0 type veth peer name qr-19d1547d-a0 netns qrouter-594a2a7a-c79b-42f2-9011-8373f3186cb8 ip netns exec qrouter-594a2a7a-c79b-42f2-9011-8373f3186cb8 ip link set qr-19d1547d-a0 address fa:16:3e:02:b0:b9 ip netns exec qrouter-594a2a7a-c79b-42f2-9011-8373f3186cb8 ip link set qr-19d1547d-a0 up # qr-19d1547d-a0 인터페이스에 self-service 네트워크의 게이트웨이로 설정하기 위해 172.16.1.1 를 할당합니다. ip netns exec qrouter-594a2a7a-c79b-42f2-9011-8373f3186cb8 ip -4 addr add 172.16.1.1/24 scope global dev qr-19d1547d-a0 brd 172.16.1.255
[neutron-linuxbridge-agent] brq34078f0c-3e bridge 에 새로운 인터페이스 추가
# 이전에 만들어져있는 bridge에 router 와 연결되는 인터페이스를 추가합니다. brctl addif brq34078f0c-3e tap19d1547d-a0 ip link set tap19d1547d-a0 up
‘router’ 이름의 라우터를 provide 네트워크의 gateway 로 설정
neutron router-gateway-set router provider
이 작업을 하고 나면 본격적으로 self-service 네트워크와 provider 네트워크가 연결되어, self-service 네트워크에서 인터넷으로 트래픽이 나갈 수 있게 됩니다.
구성은 아래와 같이 됩니다.
여기까지 왔을 때, controller 노드의 네트워크 인터페이스 구성은 아래와 같이 됩니다.
$ brctl show bridge name bridge id STP enabled interfaces brq34078f0c-3e 8000.7aa146e736c5 no tap19d1547d-a0 tapb5ab7d31-e1 vxlan-70 brqc1997735-77 8000.08002772b679 no eth1 tape01914d2-a0 tape9fb1eac-9b $ sudo ip netns exec qrouter-594a2a7a-c79b-42f2-9011-8373f3186cb8 ip a 1: lo:   mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: qr-19d1547d-a0@if13:   mtu 1450 qdisc pfifo_fast state UP group default qlen 1000 link/ether fa:16:3e:02:b0:b9 brd ff:ff:ff:ff:ff:ff inet 172.16.1.1/24 brd 172.16.1.255 scope global qr-19d1547d-a0 valid_lft forever preferred_lft forever inet6 fe80::f816:3eff:fe02:b0b9/64 scope link valid_lft forever preferred_lft forever // 새로 생성 3: qg-e01914d2-a0@if14:   mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether fa:16:3e:04:32:27 brd ff:ff:ff:ff:ff:ff inet 172.32.0.101/24 brd 172.32.0.255 scope global qg-e01914d2-a0 valid_lft forever preferred_lft forever inet6 fe80::f816:3eff:fe04:3227/64 scope link valid_lft forever preferred_lft forever
[l3-agent] router namespace 에 인터페이스 추가
# tape01914d2-a0 가 어디에선가 생성 # qg-e01914d2-a0 를 생성하고, tape01914d2-a 와 연결합니다. ip link add tape01914d2-a0 type veth peer name qg-e01914d2-a0 netns qrouter-594a2a7a-c79b-42f2-9011-8373f3186cb8 ip netns exec qrouter-594a2a7a-c79b-42f2-9011-8373f3186cb8 ip link set qg-e01914d2-a0 address fa:16:3e:04:32:27 ip link set tape01914d2-a0 up ip netns exec qrouter-594a2a7a-c79b-42f2-9011-8373f3186cb8 ip link set qg-e01914d2-a0 up # qg-e01914d2-a0에 provide 라우터 인터페이스 ip로 172.32.0.101 을 할당합니다. ip netns exec qrouter-594a2a7a-c79b-42f2-9011-8373f3186cb8 ip -4 addr add 172.32.0.101/24 scope global dev qg-e01914d2-a0 brd 172.32.0.255 ip netns exec qrouter-594a2a7a-c79b-42f2-9011-8373f3186cb8 ip -4 route replace default via 172.32.0.1 dev qg-e01914d2-a0
[neutron-linuxbridge-agent] brqc1997735-77에 인터페이스 추가
ip link set brqc1997735-77 up brctl addif brqc1997735-77 tape01914d2-a0 ip link set tape01914d2-a0 up
여기까지 neutron 에서 provider / self-service 네트워크를 생성 및 설정할 경우 controller 노드에서 물리적(?)으로 어떤 작업을 통해 네트워크들이 구성되는지 확인해보았습니다.
이제 self-service 네트워크에 vm instance 를 생성해보고, 어떤 일이 일어나는지 확인해보겠습니다.
Self-service 네트워크에 vm instance 생성
vm instance 를 생성하면, controller 와 compute 에 작은 변화가 생깁니다. 우선 vm instance 를 생성하면 어떻게 구성되는지 아래 그림으로 확인해보겠습니다.
여기서 중요한 것은, compute 노드에서 vxlan70 인터페이스가 생성되고 그것을 통해 controller 노드와 연결이 되고 있는 것입니다.
이제부터 bridge 구성을 포함해서 어떻게 리눅스에서 vxlan 설정이 들어가는지 알아보도록 하겠습니다.
[compute node 의 neutron-linuxbridge-agent] etables 설정 / 새로운 bridge 생성 / vxlan 설정
# tap66aa1ee8-9b 이 생성된다. # etables 설정 (이더넷 프레임에 대한 테이블) ebtables -N neutronMAC-tap66aa1ee8-9b -P DROP ebtables -A FORWARD -i tap66aa1ee8-9b -j neutronMAC-tap66aa1ee8-9b ebtables -A neutronMAC-tap66aa1ee8-9b -i tap66aa1ee8-9b --among-src fa:16:3e:3f:4b:28 -j RETURN ebtables -N neutronARP-tap66aa1ee8-9b -P DROP ebtables -F neutronARP-tap66aa1ee8-9b ebtables -A neutronARP-tap66aa1ee8-9b -p ARP --arp-ip-src 172.16.1.3 -j ACCEPT ebtables -A FORWARD -i tap66aa1ee8-9b -j neutronARP-tap66aa1ee8-9b -p ARP # vxlan-70 인터페이스를 생성하고 vxlan id 를 70으로 할당 후 eth0 에 연결되도록 설정 ip link add vxlan-70 type vxlan id 70 dev eth0 ip link set vxlan-70 up # bridge 생성 및 인터페이스 추가 brctl addbr brq34078f0c-3e brctl addif brq34078f0c-3e vxlan-70 brctl addif brq34078f0c-3e tap66aa1ee8-9b # 여기에서 vxlan 터널링을 설정합니다. # vxlan-70 의 모든 l2 트래픽의 목적지를 192.168.56.101 으로 설정 bridge fdb add 00:00:00:00:00:00 dev vxlan-70 dst 192.168.56.101 # 172.16.1.1 에 대한 목적지 ip 는 192.168.56.101, mac address 는 fa:16:3e:02:b0:b9 로 설정 # fa:16:3e:02:b0:b9 는 qrouter-594a2a7a-c79b-42f2-9011-8373f3186cb8 의 qr-19d1547d-a0@if13 인터페이스 mac address ip -4 neigh replace 172.16.1.1 lladdr fa:16:3e:02:b0:b9 nud permanent dev vxlan-70 bridge fdb replace fa:16:3e:02:b0:b9 dev vxlan-70 dst 192.168.56.101 # 172.16.1.2 에 대한 목적지 ip 는 192.168.56.101, mac address 는 fa:16:3e:76:6d:74 로 설정 # fa:16:3e:76:6d:74 는 qdhcp-34078f0c-3e23-46d5-a03c-4c9af2778899 의 ns-b5ab7d31-e1@if10 # 172.16.1.2 는 self-service dhcp 서버 주소 ip -4 neigh replace 172.16.1.2 lladdr fa:16:3e:76:6d:74 nud permanent dev vxlan-70 bridge fdb replace fa:16:3e:76:6d:74 dev vxlan-70 dst 192.168.56.101
[controller node 의 neutron-linuxbridge-agent]
# vxlan-70 의 모든 l2 트래픽의 목적지를 192.168.56.102로 설정 bridge fdb add 00:00:00:00:00:00 dev vxlan-70 dst 192.168.56.102 # 172.16.1.3 은 instance ip # 172.16.1.3 으로 가는 트래픽을 fa:16:3e:3f:4b:28 로 가도록 설정 # fa:16:3e:3f:4b:28 는 compute 노드의 tap66aa1ee8-9b 인터페이스 mac address ip -4 neigh replace 172.16.1.3 lladdr fa:16:3e:3f:4b:28 nud permanent dev vxlan-70 // fa:16:3e:3f:4b:28 로 가는 트래픽의 목적지 ip 를 192.168.56.102 로 설정 bridge fdb replace fa:16:3e:3f:4b:28 dev vxlan-70 dst 192.168.56.102
여기까지 아주 긴 과정을 거쳐 provider network / self-service network 를 생성 및 설정이 이루어지는 방법을 알아보았습니다.
내용은 많지만 중요한 것만 정리하면 다음과 같습니다.
linuxbridge 를 이용하여 네트워크를 구축할 경우, linux bridge, namespace 를 이용해서 가상 네트워크를 구축한다.
linuxbridge 는 vxlan 만 지원하는데 이는, bridge 라는 명령어를 통해 vxlan 을 설정한다.
self-service 네트워크는 provider 네트워크를 통해 외부와 통신한다.
두서없이 정리하느냐 틀린 내용이나 누락된 내용이 있을 수 있습니다. 혹 발견하시면 댓글로 남겨주시면 감사하겠습니다.
구독하기 작은 병아리의 꿈
'오픈스택' 카테고리의 다른 글
클라우드 인스턴스에서 devstack 구축하기  (0)
클라우드 인스턴스에서 devstack 구축하기
댓글 접기 댓글 펼치기
설명을 잘해놓으신거 같아요 ^^...
실례가 안된다면 한 가지 여쭤보고 싶은게 있습니다.
사설 IP를 할당받아도 NAT을 통해 인터넷이 가능하다면 External Network 로 봐야 되는건지요?
삐야악이 2020.03.05 07:16 신고
네 사설 IP여도 인터넷이 가능하다면 external network로 등록할 수 있고 그렇게 설정해서 사용해도 큰 무리는 없습니다.
다만 테스트 환경에서만 위와 같이 구성해야합니다. 사설 IP의 external network를 FIP로 붙일 경우 외부에서 접속이 안되기 때문입니다.