[Open Stack] [Contoller Node] โ‘จ-โ‘  Neutron - Network ์„œ๋น„์Šค ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ

2023. 9. 9. 23:13ใ†System ์ž‘์—…์‹ค/Server ๊ด€๋ จ

728x90
๋ฐ˜์‘ํ˜•

 

 

 

 

 

 

 

 

 

OpenStack for Architects - Second Edition Paperback

COUPANG

www.coupang.com

"์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค."

 

 




๐Ÿ—‚ ๋ชฉ์ฐจ

1. [Hyper-V] [Open Stack] Open Stack์ด๋ž€?
2. [Hyper-V] [Open Stack] [Controller Node] Hyper-V ๊ตฌ์„ฑ ๋ฐ Ubuntu 22.04.3 LTS Server ์„ค์น˜
3. [Hyper-V] [Open Stack] [Controller Node] โ‘  ์˜คํ”ˆ์Šคํƒ ํŒจํ‚ค์ง€ ์„ค์น˜
4. [Hyper-V] [Open Stack] [Controller Node] โ‘ก NTP Server ๊ตฌ์„ฑ
5. [Hyper-V] [Open Stack] [Controller Node] โ‘ข RabbitMQ - Message Queue ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ
6. [Hyper-V] [Open Stack] [Controller Node] โ‘ฃ Memcached ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ
7. [Hyper-V] [Open Stack] [Controller Node] โ‘ค Etcd ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ
8. [Hyper-V] [Open Stack] [Controller Node] โ‘ฅ Keystone - Identity ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ
9. [Hyper-V] [Open Stack] [Controller Node] โ‘ฆ Image Service - Glance ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ  
10. [Hyper-V] [Open Stack] [Controller Node] โ‘ง Compute Service - Nova ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ
11. [Hyper-V] [Open Stack] [Contoller Node] โ‘จ Neutron - Network ์„œ๋น„์Šค ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ
12. [Hyper-V] [Open Stack] [Controller Node] โ‘ โ“ช Horizon - Dashboard ์„œ๋น„์Šค ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ

11. [Hyper-V] [Open Stack] [Compute Node] ์ค€๋น„์ค‘

 

 

 

 

๐Ÿš€ Network ์„œ๋น„์Šค ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ

    ๐Ÿ”ฝ ๊ฐœ์š”

์ฃผ๋‹ˆ์˜ ์˜คํ”ˆ์Šคํƒ ๊ตฌ์„ฑ๋„

 

        ๐Ÿ“ฆ ์†Œ๊ฐœ

์ด๋ฒˆ์—๋Š” ๋„คํŠธ์›Œํ‚น ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” neutron์„ ์„ค์น˜ํ•˜๊ณ , ๊ตฌ์„ฑํ•ด ๋ณด๋ ค๊ณ  ํ•ด์š”.
๊ทธ๋ž˜์„œ provider networks ๋˜๋Š” self-service networks(์ด์šฉ์ž ๊ด€์ ) ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋„คํŠธ์›Œํ‚น ์„œ๋น„์Šค๋ฅผ ์„ค์น˜ํ•˜๊ณ , ๊ตฌ์„ฑํ•ด ๋ณผ๊ฒŒ์š”.

์˜คํ”ˆ์Šคํƒ์—์„œ ์ œ๊ณตํ•˜๋Š” Provider ๊ด€์ ์—์„œ์˜ ๋„คํŠธ์›Œํฌ์™€ ํด๋ผ์šฐ๋“œ๋ฅผ ์ด์šฉํ•˜๋Š” ์ด์šฉ์ž ๊ด€์ ์—์„œ์˜ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์–ด์š”.

OpenStack Network ๋ถ„๋ฅ˜


์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์˜คํ”ˆ์Šคํƒ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์–ด์š”.

Provider ๊ด€์ ์—์„œ์˜ ๋„คํŠธ์›Œํฌ์—์„œ๋Š” Management, Guest, External, API 4๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ์–ด์š”.

์ข…   ๋ฅ˜ ์ƒ ์„ธ ๋‚ด ์šฉ
Management Network ์˜คํ”ˆ์Šคํƒ์„ ๊ตฌ์„ฑํ•˜๋Š” ์„œ๋น„์Šค๋“ค์ด ์ด์šฉํ•˜๋Š” ๋„คํŠธ์›Œํฌ.

์ผ๋ฐ˜์ ์œผ๋กœ ๋…ธ๋“œ ์‚ฌ์ด์˜ ๋ฌผ๋ฆฌ ๋„คํŠธ์›Œํฌ(VLAN) ์ด์šฉ.
Guest Network ์ธ์Šคํ„ด์Šค ์‚ฌ์ด์— ํ†ต์‹ ์— ์‚ฌ์šฉ๋˜๋Š” ๋„คํŠธ์›Œํฌ.

์ผ๋ฐ˜์ ์œผ๋กœ VxLAN/GRE ๊ธฐ๋ฐ˜ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ๋ฅผ ์ด์šฉํ•˜๋‚˜, ๋ฌผ๋ฆฌ ๋„คํŠธ์›Œํฌ(VLAN)์œผ๋กœ๋„ ๊ตฌ์„ฑ ๊ฐ€๋Šฅ.
External Network ์ธ์Šคํ„ด์Šค๋“ค์ด ์™ธ๋ถ€์™€ ํ†ต์‹  ์‹œ ์ด์šฉ๋˜๋Š” ๋„คํŠธ์›Œํฌ.

์ผ๋ฐ˜์ ์œผ๋กœ ๋…ธ๋“œ ์‚ฌ์ด์˜ ๋ฌผ๋ฆฌ ๋„คํŠธ์›Œํฌ(VLAN) ์ด์šฉ.
API Network ์˜คํ”ˆ ์Šคํƒ์˜ ์„œ๋น„์Šค API๋ฅผ ์ด์šฉ์ž์—๊ฒŒ ๋…ธ์ถœ์‹œํ‚ค๋Š” ํ†ต๋กœ๊ฐ€ ๋˜๋Š” ๋„คํŠธ์›Œํฌ.

์ผ๋ฐ˜์ ์œผ๋กœ ๋…ธ๋“œ ์‚ฌ์ด์˜ ๋ฌผ๋ฆฌ ๋„คํŠธ์›Œํฌ(VLAN) ์ด์šฉ.


์ด์šฉ์ž ๊ด€์ ์—์„œ์˜ ๋„คํŠธ์›Œํฌ๋Š” Provider Network, Self-service Network๋กœ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ์–ด์š”.

์ข…   ๋ฅ˜ ์ƒ ์„ธ ๋‚ด ์šฉ
Provicer Network Provider(ํด๋ผ์šฐ๋“œ ๊ด€๋ฆฌ์ž)๊ฐ€ ์ƒ์„ฑํ•˜๋Š” ๋„คํŠธ์›Œํฌ.

Provider๋Š” ๋ฌผ๋ฆฌ ๋„คํŠธ์›Œํฌ(VLAN) ๊ธฐ๋ฐ˜์˜ ๋„คํŠธ์›Œํฌ๋‚˜, VxLAN/GRE ๊ธฐ๋ฐ˜์˜ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ๋ชจ๋‘ ์ƒ์„ฑ ๊ฐ€๋Šฅ.

Provider ๊ด€์ ์—์„œ์˜ Guest, External Network๊ฐ€ Provider Network๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ธ์Šคํ„ด์Šค๋“ค์ด ๋ฌผ๋ฆฌ ๋„คํŠธ์›Œํฌ(VLAN) ๊ธฐ๋ฐ˜์˜ Provider ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•ด๋‹น ๋ฌผ๋ฆฌ ๋„คํŠธ์›Œํฌ๊ฐ€ ์ปดํ“จํŠธ ๋…ธ๋“œ์—๋„ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด์•ผ ํ•จ.
Self-service Network ํด๋ผ์šฐ๋“œ ์ด์šฉ์ž๊ฐ€ ์ง์ ‘ ์ƒ์„ฑํ•œ ๊ฐ€์ƒ์˜ ๋„คํŠธ์›Œํฌ.

์ด์šฉ์ž๋Š” VxLAN/GRE ๊ธฐ๋ฐ˜์˜ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ๋งŒ ์ƒ์„ฑ ๊ฐ€๋Šฅ.

Provider ๊ด€์ ์—์„œ Guest Network๊ฐ€ Self-service Network๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Œ.

 

Neutorn Architecture



๋„คํŠธ์›Œํ‚น ์„œ๋น„์Šค์— ํฌํ•จ๋œ ๊ฐ€์ƒ ๋„คํŠธ์›Œํ‚น ๊ตฌ์„ฑ ์š”์†Œ, ๋ ˆ์ด์•„์›ƒ, ํŠธ๋ž˜ํ”ฝ ํ๋ฆ„์— ๋Œ€ํ•œ ๋” ๋งŽ์€ ์ •๋ณด๋Š” OpenStack Networking Guide๋ฅผ ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ์ข‹์„ ๊ฑฐ ๊ฐ™์•„์š”.

์˜คํ”ˆ์Šคํƒ ๋„คํŠธ์›Œํ‚น (neutron)์€ ๋‹ค๋ฅธ ์˜คํ”ˆ์Šคํƒ ์„œ๋น„์Šค๋“ค์˜ ๋„คํŠธ์›Œํฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ธํ„ฐํŽ˜์ด์Šค ๋””๋ฐ”์ด์Šค์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์š”. Plugin(ํ”Œ๋Ÿฌ๊ทธ์ธ)์œผ๋กœ ์˜คํ”ˆ ์Šคํƒ ์•„ํ‚คํ…์ฒ˜์™€ ๋ฐฐํฌ์— ๋Œ€ํ•œ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ์žฅ๋น„์™€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ด์š”.

์˜คํ”ˆ์Šคํƒ ๋„คํŠธ์›Œํ‚น ์„œ๋น„์Šค๋Š” ์•„๋ž˜ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์š”.

๊ตฌ์„ฑ ์š”์†Œ ์ƒ์„ธ ๋‚ด์šฉ
neutron-server API ์š”์ฒญ์„ ์ˆ˜๋ฝํ•˜๊ณ , ์š”์ฒญ ์ˆ˜ํ–‰์„ ์œ„ํ•œ ์ ํ•ฉํ•œ OpenStack Networking Plugin์— ์ „๋‹ฌ.

์ปจํŠธ๋กค๋Ÿฌ ๋…ธ๋“œ์—์„œ ๋™์ž‘ํ•˜๋ฉฐ, Provider ๋˜๋Š” ์ด์šฉ์ž์—๊ฒŒ ๋„คํŠธ์›Œํฌ API ์ œ๊ณตํ•˜๊ณ , ์š”์ฒญ์— ๋”ฐ๋ผ ์ „๋ฐ˜์ ์ธ ์˜คํ”ˆ์Šคํƒ ๋„คํŠธ์›Œํฌ ์ œ์–ด ๋ฐ ๊ด€๋ฆฌ ์ˆ˜ํ–‰.

๋„คํŠธ์›Œํฌ ์ƒ์„ฑ, ์„œ๋ธŒ๋„ท ๋ฐ ๋ผ์šฐํ„ฐ ์ƒ์„ฑ ๋ฐ ์‚ญ์ œ, SQL Database ๊ด€๋ฆฌ ๋“ฑ์˜ ์š”์ฒญ์„ API๋ฅผ ์ด์šฉํ•˜์—ฌ ์„œ๋น„์Šค.

๋„คํŠธ์›Œํฌ ์ƒ์„ฑ, ์„œ๋ธŒ๋„ท ๋ฐ ๋ผ์šฐํ„ฐ ์ƒ์„ฑ ๋ฐ ์‚ญ์ œ, SQL Database ๊ด€๋ฆฌ ๋“ฑ์˜ ์š”์ฒญ์„ API๋ฅผ ์ด์šฉํ•˜์—ฌ ์„œ๋น„์Šค.
ML2 Plugin Agnet ๋„คํŠธ์›Œํฌ ๋…ธ๋“œ ํ˜น์€ ์ปดํ“จํŠธ ๋…ธ๋“œ์—์„œ ๋™์ž‘ํ•˜๋ฉฐ, neutron-server์˜ ์ง€์‹œ์— ๋”ฐ๋ผ VLAN, Bridge, OVS(Open vSwitch)์™€ ๊ฐ™์€ L2 ๊ณ„์ธต ์ œ์–ด.

๋กœ์ปฌ ๊ฐ€์ƒ ์Šค์œ„์น˜ ๊ตฌ์„ฑ ๋ฐ ๊ด€๋ฆฌ. ๋„คํŠธ์›Œํฌ ํฌํŠธ์— ๋Œ€ํ•ด ๋„คํŠธ์›Œํฌ ๋˜๋Š” ์„œ๋ธŒ๋„ท์„ ์ƒ์„ฑ, IP ์ฃผ์†Œ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ.

- L2 Agent: ์ผ๋ฐ˜์ ์œผ๋กœ ๋„คํŠธ์›Œํฌ์™€ ์ปดํ“จํŠธ ๋…ธ๋“œ์— ์„ค์น˜๋˜๋ฉฐ, RPC๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ neutron-server์™€ ํ†ต์‹ .
                        L2 Agent๋Š” Device ์ถ”๊ฐ€ ๋˜๋Š” ์‚ญ์ œ ์ƒํ™ฉ์„ Monitoring ํ•˜๋ฉฐ, ๋„์ค‘ ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ ์ด๋ฅผ
                        ์ „๋‹ฌํ•˜๊ณ , ํ˜ธ์ŠคํŠธ ์ƒ์˜ ๋„คํŠธ์›Œํฌ ์„ค์ • ์—ญํ•  ์ˆ˜ํ–‰.
                        ๋˜ํ•œ, linux brige, ovs(open vSwitch), ๋ณด์•ˆ ๊ทธ๋ฃน ๋ฐ vlan Tagging๋„ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ.

- L3 Agent: ๋„คํŠธ์›Œํฌ ๋…ธ๋“œ์—์„œ ๋™์ž‘ํ•˜๋ฉฐ, neutron-server์˜ ์ง€์‹œ์— ๋”ฐ๋ผ Router, Firewall๊ณผ ๊ฐ™์€
                        L3 ๊ณ„์ธต ์ œ์–ด ๋ฐ Floting IP์— ๋Œ€ํ•œ Message๋ฅผ ๋ฐ›์•„ ๊ด€๋ฆฌ.
                        ๊ฐ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ณ , ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ ์ •๋ณด๋ฅผ ๋ฐ›์•„ ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ๋กœ ์ „๋‹ฌํ•˜๋Š”
                        ์—ญํ•  ์ˆ˜ํ–‰.

- DHCP Agent: ์ธ์Šคํ„ด์Šค์—๊ฒŒ IP๋ฅผ ๋ถ€์—ฌํ•˜๊ธฐ ์œ„ํ•œ DHCP Server ์ œ์–ดํ•˜๋ฉฐ, Router์˜ Meta Proxy๋ฅผ
                              ๋Œ€์‹ ํ•˜๋Š” ๋ณ„๋„ Meta Proxy๋ฅผ ๊ด€๋ฆฌํ•˜๋ฉฐ, neutron-server๋กœ ๋ถ€ํ„ฐ ๋„คํŠธ์›Œํฌ ์ƒ์„ฑ ๋ฐ
                              ์‚ญ์ œ์— ๋Œ€ํ•œ Message๋ฅผ ๋ฐ›์œผ๋ฉด dnsmasq ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜์—ฌ DHCP ์„œ๋ฒ„๋กœ ์‚ฌ์šฉ.
                              DHCP Agent์˜ Meta Proxy๋Š” ์ธ์Šคํ„ด์Šค๊ฐ€ Router์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€ ์•Š์€
                              ๊ณ ๋ฆฝ๋œ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ, ๊ณ ๋ฆฝ๋œ ๋„คํŠธ์›Œํฌ ID์™€ VM Metadata ์š”์ฒญ
                              Packet์— ์žˆ๋Š” ์ธ์Šคํ„ด์Šค IP ์ •๋ณด๋ฅผ Meta Agent์—๊ฒŒ ์ „๋‹ฌํ•˜์—ฌ Meata Agent๊ฐ€
                              VM Metadata๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋„๋ก ํ•จ.

- Meta Agent: ์ธ์Šคํ„ด์Šค ๋‚ด๋ถ€์—์„œ ์ธ์Šคํ„ด์Šค ์ดˆ๊ธฐํ™”๋ฅผ ์ง„ํ–‰ํ•˜๋Š” Cloud-Init ๋˜๋Š” Cloudbase์—๊ฒŒ ์ธ์Šคํ„ด์Šค                              ์ดˆ๊ธฐํ™”์— ํ•„์š”ํ•œ ์ธ์Šคํ„ด์Šค VM Metadata๋ฅผ Nova์—๊ฒŒ ์–ป์–ด์™€ ์ „๋‹ฌ.
                            Cloud-Init ๋˜๋Š” Cloudbase๋กœ ๋ถ€ํ„ฐ ์ „๋‹ฌ๋œ VM Metadata ์š”์ฒญ์€ Router์˜
                            Routing Rule ๋ฐ ๊ฐ Router์— ํ•œ๊ฐœ์”ฉ ์กด์žฌํ•˜๋Š” Meta Proxy๋ฅผ ํ†ตํ•ด Meta Agent์—๊ฒŒ
                            ์ „๋‹ฌ.

                            Meta Agent๋Š” VM Metadata ์š”์ฒญ์ด ์˜จ Router์˜ ID์™€ VM Metadata ์š”์ฒญ
                            Packet์— ์žˆ๋Š” ์ธ์Šคํ„ด์Šค IP ์ •๋ณด๋ฅผ neutron-server์—๊ฒŒ ์ „๋‹ฌํ•˜์—ฌ ์ธ์Šคํ„ด์Šค ID ํš๋“ํ•œ ๋’ค                                Meta Agent๋Š” ์ธ์Šคํ„ด์Šค ID๋ฅผ ์ด์šฉํ•˜์—ฌ Nova์—๊ฒŒ ์–ป์€ VM Metadata๋ฅผ
                            ํ•ด๋‹น ์ธ์Šคํ„ด์Šค์˜ Cloud-Init ๋˜๋Š” Cloudbase์— ์ „๋‹ฌ.
                            ์ผ๋ฐ˜์ ์œผ๋กœ ๋„คํŠธ์›Œํฌ ๋…ธ๋“œ์— ์„ค์น˜๋˜๋ฉฐ, RPC๋ฅผ ํ†ตํ•ด neutron-server์™€ ํ†ต์‹ ํ•˜๊ณ , IP ์ฃผ์†Œ,
                            ํ˜ธ์ŠคํŠธ ์ด๋ฆ„, ํ”„๋กœ์ ํŠธ์™€ ๊ฐ™์ด ์ธ์Šคํ„ด์Šค๊ฐ€ ์š”์ฒญํ•œ ์ •๋ณด ์ œ๊ณต.

-Core Plugin: Network, Subnet๊ณผ ์—ฐ๊ด€๋œ ๊ธฐ๋Šฅ ์ˆ˜ํ–‰. neurton API๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ , ๋„คํŠธ์›Œํฌ, ํฌํŠธ,
                           ์„œ๋ธŒ๋„ท์ด ํ‘œํ˜„ํ•˜๋Š” ๋…ผ๋ฆฌ์  ๋„คํŠธ์›Œํฌ๋ฅผ L2 Agent ๋ฐ IP ์ฃผ์†Œ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์— ์˜ํ•ด ์ ์šฉ๋˜๋„๋ก
                           ํ•˜๋Š” ์—ญํ• .

- Service Plugin: Router, Load balancer, Firewall ๊ฐ™์€ L3 ๊ณ„์ธต ์—ฐ๊ด€ ์—ญํ•  ์ˆ˜ํ–‰.
                                  Routing, Firewall ๊ทธ๋ฆฌ๊ณ , Load balancer์™€ ๊ฐ™์€ ๋„คํŠธ์›Œํฌ ์„œ๋น„์Šค ์ถ”๊ฐ€.
OpenStack Networking Plugin & Agent Port ์—ฐ๊ฒฐ, Unplug, Network ํ˜น์€ Subnet ์ƒ์„ฑ ๋ฐ IP ์ฃผ์†Œ ํ• ๋‹น.
ํ•ด๋‹น Plugin๊ณผ Agent๋“ค์€ ํŠน์ • ํด๋ผ์šฐ๋“œ์— ์‚ฌ์šฉ๋œ Vender ๋˜๋Š” ๊ธฐ์ˆ  ๋ฐฉ์‹์— ๋”ฐ๋ผ ์ฐจ์ด์ ์ด ์žˆ์Œ.

OpenStack Networking์€ Cisco์˜ ๊ฐ€์ƒ ๋ฐ ๋ฌผ๋ฆฌ ์Šค์œ„์น˜, NEC์˜ OpenFlow ์ œํ’ˆ, Open vSwitch, Linux Bridge, ๊ทธ๋ฆฌ๊ณ  VMware NSX ์ œํ’ˆ์„ ์œ„ํ•œ Plugin๊ณผ Agent๋“ค์„ ํฌํ•จ.

๊ณตํ†ต์ ์ธ Agent๋กœ L3(Layer 3), DHCP (๋™์  ํ˜ธ์ŠคํŠธ IP ์ฃผ์†Œ), ๊ทธ๋ฆฌ๊ณ  Plugin Agent ์กด์žฌ.
Message Queue neutron-server์™€ ๋‹ค์–‘ํ•œ Agent ๊ฐ„ ์ •๋ณด ์ „๋‹ฌ์„ ์œ„ํ•ด OpenStack Networking์—์„œ ์‚ฌ์šฉ.

ํŠน์ • Plugin๋“ค์„ ์œ„ํ•œ Networking ์ƒํƒœ ์ €์žฅ Data Base๋กœ๋„ ์ด์šฉ.

OpenStack Networking์€ ์ฃผ๋กœ OpenStack Compute Node์™€ ์—ฐ๋™๋˜์–ด ์ธ์Šคํ„ด์Šค๋ฅผ ์œ„ํ•œ Network ์—ฐ๊ฒฐ ์ œ๊ณต.
๋ฐ˜์‘ํ˜•

 

Ml2 Plugin์€ ๊ตฌ์ฒด์ ์œผ๋กœ ์–ด๋–ค๊ฒƒ์ผ๊นŒ์š”?

- Ml2 Network Driver: ์˜คํ”ˆ์Šคํƒ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•ด ๋‹ค์–‘ํ•œ ๋„คํŠธ์›Œํฌ 2๊ณ„์ธต ๊ธฐ์ˆ ์„ ๋™์‹œ์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” Framework(ํ”„๋ ˆ์ž„์›Œํฌ)

- Ml2 Plugin: LOCAL, FLAT, VLAN, GRE, VxLAN ๋„คํŠธ์›Œํฌ ํƒ€์ž…์— ๋Œ€ํ•œ Driver(๋“œ๋ผ์ด๋ฒ„) ์ง€์›.

   โˆ™ LOCAL: ๋‹จ์ผ ๋…ธ๋“œ์—์„œ ํ…Œ์ŠคํŠธ ์šฉ์œผ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, ํ˜ธ์ŠคํŠธ ๊ฐ„ ์—ฐ๊ฒฐ ์ง€์›ํ•˜์ง€ ์•Š์Œ.
   โˆ™ FLAT: ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๋“ค์€ ๋™์ผ ๋„คํŠธ์›Œํฌ์— ์œ„์น˜ํ•˜๋ฉฐ, ์—ฌ๋Ÿฌ ํ˜ธ์ŠคํŠธ์™€ ๊ณต์œ  ๊ฐ€๋Šฅ. ๋„คํŠธ์›Œํฌ๋ฅผ ๋ถ„๋ฆฌํ•ด์„œ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Œ.
   โˆ™ VLAN: ๊ฐ™์€ ์Šค์œ„์น˜์—์„œ ์‹คํ–‰์ค‘์ธ ์ธ์Šคํ„ด์Šค์˜ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ ๋ถ„ํ•  ์œ„ํ•ด ์‚ฌ์šฉ. ์‚ฌ์šฉ์ž์˜ ํ•„์š”์— ๋”ฐ๋ผ
       ์—ฌ๋Ÿฌ Provider(ํ”„๋กœ๋ฐ”์ด๋”) ๋˜๋Š” Project(ํ”„๋กœ์ ํŠธ) ๋„คํŠธ์›Œํฌ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ฉฐ, ์ธ์Šคํ„ด์Šค ๊ฐ„ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๊ณ ,
       Layer 2 (2๊ณ„์ธต)์— ์œ„์น˜ํ•œ Firewall(๋ฐฉํ™”๋ฒฝ), Load Balancer(๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ)์™€๋„ ํ†ต์‹  ๊ฐ€๋Šฅ.
   โˆ™ GRE: ์ธ์Šคํ„ด์Šค ์ƒํ˜ธ ๊ฐ„ ๋„คํŠธ์›Œํฌ ํ„ฐ๋„์„ ์ด์šฉํ•˜์—ฌ ์‚ฌ์„ค ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๊ธฐ์ˆ .
   โˆ™ VxLAN: ๋„คํŠธ์›Œํฌ Overlay(์˜ค๋ฒ„๋ ˆ์ด) ๊ธฐ์ˆ  ์ค‘ ํ•˜๋‚˜๋กœ, L2 ๋„คํŠธ์›Œํฌ์˜ ํ™•์žฅ๋œ ๊ธฐ์ˆ (Mac over IP/UDP).

์˜คํ”ˆ์Šคํƒ ๋„คํŠธ์›Œํ‚น (neutron)์€ ๊ฐ€์ƒ ๋„คํŠธ์›Œํ‚น ์ธํ”„๋ผ (VNI)์— ๋Œ€ํ•œ ๋ชจ๋“  ๋„คํŠธ์›Œํ‚น ์ธก๋ฉด๊ณผ ์˜คํ”ˆ์Šคํƒ ํ™˜๊ฒฝ์—์„œ ๋ฌผ๋ฆฌ ๋„คํŠธ์›Œํ‚น ์ธํ”„๋ผ(PNI)์˜ ์ ‘๊ทผ ๊ณ„์ธต ์ธก๋ฉด์œผ๋กœ ๊ด€๋ฆฌ๋œ๋‹ค๊ณ  ํ•ด์š”.

์˜คํ”ˆ์Šคํƒ ๋„คํŠธ์›Œํ‚น์€ firewall(๋ฐฉํ™”๋ฒฝ), Load balancer(๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ), private network(VPN) ๊ฐ™์€ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ , ํ”„๋กœ์ ํŠธ์—์„œ ๊ณ ๊ธ‰ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ํ† ํด๋ฆฌ์ง€๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๋„คํŠธ์›Œํ‚น์—์„œ๋Š” ๊ฐ์ฒด ์ถ”์ƒํ™”๋ฅผ ํ†ตํ•ด ๋„คํŠธ์›Œํฌ, Subnet(์„œ๋ธŒ๋„ท), Router(๋ผ์šฐํ„ฐ)๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ๊ณ , ๊ฐ ์ถ”์ƒ ๋ฌผ๋ฆฌ ๊ตฌ์„ฑ๊ณผ ๋™์ผํ•œ ๊ฐ€์ƒํ™” ๊ธฐ๋Šฅ๋“ค์ด ์žˆ๋‹ค๊ณ  ํ•ด์š”.

๋„คํŠธ์›Œํฌ๋Š” ์„œ๋ธŒ๋„ท์ด ํฌํ•จ๋˜์–ด ์žˆ๊ณ , ๋‹ค๋ฅธ ์„œ๋ธŒ๋„ท๊ณผ ๋„คํŠธ์›Œํฌ ๊ฐ„ ํŠธ๋ž˜ํ”ฝ์€ ๋ผ์šฐํ„ฐ๋ฅผ ํ†ตํ•˜์—ฌ ๋‚˜๋ˆ ์ง„๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ, ์ž„์˜๋กœ ์ฃผ์–ด์ง„ ๋„คํŠธ์›Œํ‚น์€ ํ•˜๋‚˜ ์ด์ƒ์˜ ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ฐ–๊ณ  ์žˆ์„ ์ˆ˜ ์žˆ์–ด์š”.
๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์™€ ๋‹ฌ๋ฆฌ ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ๋Š” ๋‹จ์ง€ ๊ฐ€์ƒ์œผ๋กœ ์ •์˜๋œ ๋„คํŠธ์›Œํฌ๋ฅผ ์˜๋ฏธํ•˜์ง€ ์•Š์•„์š”.
ํ•˜์ง€๋งŒ, ์˜คํ”ˆ ์Šคํƒ ํ™˜๊ฒฝ ์™ธ๋ถ€๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ฌผ๋ฆฌ, ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•œ ํ™”๋ฉด์„ ์ œ๊ณตํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ์˜ IP ์ฃผ์†Œ๋Š” ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ ์ƒ์˜ ์ž„์˜์˜ ๋ฌผ๋ฆฌ์ ์ธ ๊ฐ์ฒด์—์„œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ด์š”.

์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ ๋ฟ ์•„๋‹ˆ๋ผ, ์ž„์˜์˜ ๋„คํŠธ์›Œํ‚น์€ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ฐ–๊ฒŒ ํ•ด์ฃผ์–ด์•ผ ํ•ด์š”.
์ด๋Ÿฌํ•œ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ๋“ค์€ ๊ฐ€์„ฑ ๋จธ์‹ ์— ์ง์ ‘ ์—ฐ๊ฒฐ๋˜๊ณ , ์ž„์˜์˜ ์ฃผ์–ด์ง„ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ ๋˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๋น„์Šทํ•œ ๋ผ์šฐํ„ฐ์— ์—ฐ๊ฒฐ๋œ ์„œ๋ธŒ๋„ท ์ƒ์˜ ๊ฐ€์ƒ๋จธ์‹ ์—์„œ๋งŒ ๋Œ€์ƒ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ๊ฐ€์ƒ๋จธ์‹ ์— ์—ฐ๊ฒฐ์ด ๊ฐ€๋Šฅํ•ด์š”.

์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ์—์„œ ๊ฐ€์ƒ๋จธ์‹ ์— ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜, ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ ๋„คํŠธ์›Œํฌ ์‚ฌ์ด์˜ ๋ผ์šฐํ„ฐ๋ผ๋Š” ์žฅ๋น„๊ฐ€ ํ•„์š”ํ•ด์š”.
๊ฐ ๋ผ์šฐํ„ฐ๋Š” ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ํ•˜๋‚˜์˜ Gateway(๊ฒŒ์ดํŠธ์›จ์ด)์™€ ํ•˜๋‚˜ ์ด์ƒ์˜ ์ธํ„ฐํŽ˜์ด์Šค์— ์—ฐ๊ฒฐ๋œ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด์š”.

๋ฌผ๋ฆฌ์  ๋ผ์šฐํ„ฐ์™€ ๊ฐ™์ด ๋™์ผํ•œ ๋ผ์šฐํ„ฐ์— ์—ฐ๊ฒฐ๋œ ๋‹ค๋ฅธ ์„œ๋ธŒ๋„ท ๊ฐ€์ƒ ๋จธ์‹ ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ณ , ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ๋ผ์šฐํ„ฐ์˜ ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ์— ์ ‘์†๋„ ํ•  ์ˆ˜ ์žˆ์–ด์š”.

๋˜ํ•œ, ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ๋ฅผ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ์™€ ์—ฐ๊ฒฐํ•˜๋„๋ก IP ์ฃผ์†Œ๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์–ด์š”. ํ•˜์œ„ ๋„คํŠธ์›Œํฌ์— ์–ด๋–ค Port(ํฌํŠธ)๊ฐ€ ์—ฐ๊ฒฐ๋˜์—ˆ๊ฑด ๊ฐ„์— ๋ง์ด์ง€์š”. ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ IP ์ฃผ์†Œ๋ฅผ ๊ฐ€์ƒ ๋จธ์‹ ์— ํฌํŠธ์™€ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์–ด์š”.
์ด ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•ด์„œ ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ์—์„œ ๊ฐ€์ƒ ๋จธ์‹ ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„คํŠธ์›Œํ‚น์€ Security Group(๋ณด์•ˆ ๊ทธ๋ฃน)์„ ์ง€์›ํ•œ๋‹ค๊ณ  ํ•ด์š”.
๋ณด์•ˆ ๊ทธ๋ฃน์€ ๊ทธ๋ฃน๋‚ด ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์„ ์ •์˜ํ•˜๊ณ , ๊ด€๋ฆฌํ•˜๋Š” ๊ด€๋ฆฌ์ž๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์–ด์š”.
๊ฐ€์ƒ ๋จธ์‹ ์€ ํ•˜๋‚˜์—์„œ ์—ฌ๋Ÿฌ ๋ณด์•ˆ ๊ทธ๋ฃน์— ์†ํ•  ์ˆ˜ ์žˆ๊ณ , ๋ณด์•ˆ ๊ทธ๋ฃน์—์„œ ํฌํŠธ๋ฅผ ๋ง‰๊ฑฐ๋‚˜ ์—ด๊ณ , ํฌํŠธ ๋ฒ”์œ„, ๊ฐ€์ƒ ๋จธ์‹ ์— ๋Œ€ํ•œ ํŠธํŒจํ”ฝ Type(ํƒ€์ž…) ๋“ฑ์˜ ๊ทœ์น™์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์–ด์š”.

๋„คํŠธ์›Œํ‚น์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๊ฐ์ž๋งŒ์˜ ๋ฐฉ์‹๋“ค์„ ๊ฐ–๊ณ  ์žˆ๋Š”๋ฐ, VNI ๋ฐ ์˜คํ”ˆ ์Šคํƒ ํ™˜๊ฒฝ์„ ์šด์˜ํ•˜๋Š”๋ฐ, ํ•„์ˆ˜ ์‚ฌํ•ญ์€ ์•„๋‹ˆ์ง€๋งŒ, ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์— ๋Œ€ํ•œ ์ดํ•ด๋Š” ๋„คํŠธ์›Œํ‚น ํ™˜๊ฒฝ ๊ตฌ์„ฑ์— ๋„์›€์ด ๋ ๊ฑฐ์—์š”.
๋ชจ๋“  ๋„คํŠธ์›Œํ‚น ์„ค์น˜๋Š” ํ•ต์‹ฌ ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ๋ณด์•ˆ ๊ทธ๋ฃน ํ”Œ๋Ÿฌ๊ทธ์ธ (๋˜๋Š” ์‚ฐ์ˆœ No-Op ๋ณด์•ˆ ๊ทธ๋ฃน ํ”Œ๋Ÿฌ๊ทธ์ธ)์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ด์š”.
๋ถ€๊ฐ€์ ์œผ๋กœ Firewall-as-aServer(FWaas) ๋ฐ Load-Balancer-asa-Service (LBaas)๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ด์š”.

 

 

 

 

 

    ๐Ÿ”ฝ ๊ตฌ์„ฑ ์š”์†Œ ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ

       ๐Ÿ“ฆ ๊ตฌ์„ฑ ์š”์†Œ ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ - Controller Node

์˜คํ”ˆ ์Šคํƒ ๋„คํŠธ์›Œํ‚น (neutron) ์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์ „ Data Base(๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค), ์„œ๋น„์Šค credential, endpoint(์—”๋“œํฌ์ธํŠธ)๋ฅผ ์ƒ์„ฑํ•ด ์ฃผ์–ด์•ผ ํ•ด์š”.

๋จผ์ € ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑํ•ด ๋ณด๋„๋ก ํ• ๊ฒŒ์š”.

MariaDB root ๊ณ„์ •์œผ๋กœ ์œ„์™€ ๊ฐ™์ด DB๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๊ณ„์ •์„ ๋งŒ๋“ค๊ณ , ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด ์ค๋‹ˆ๋‹ค.


๊ทธ๋Ÿฐ ๋’ค ์ด์ „์— keystone ์ž‘์—…์„ ํ†ตํ•ด ๋งŒ๋“ค์—ˆ๋˜ admin-openrc ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•ด ์ค„๊ฒŒ์š”.
ํ•ด๋‹น ๋‚ด์šฉ์— ๋Œ€ํ•ด์„œ๋Š” ์ด ๊ณณ์„ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”.

. admin-openrc


์ด์ œ ์„œ๋น„์Šค credential ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์•„๋ž˜ ๋‹จ๊ณ„๋ฅผ ์ง„ํ–‰ํ•ด ๋ณผ๊ฒŒ์š”.

์ตœ์ดˆ neutron ์‚ฌ์šฉ์ž๋ฅผ ๋งŒ๋“ค์–ด ๋ณผ๊ฒŒ์š”.

openstack user create --domain default --project service --password servicepassword neutron



์œ„์™€ ๊ฐ™์ด ๊ณ„์ •์„ ๋งŒ๋“ค๊ณ , servicepassword์—๋Š” neutron ๊ณ„์ •์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋“ฑ๋กํ•ด ์ฃผ์—ˆ์–ด์š”.


openstack role add --project service --user neutron admin


๊ทธ๋ฆฌ๊ณ  ์œ„์™€ ๊ฐ™์ด neutron ๊ณ„์ •์— ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด ์ฃผ์—ˆ์–ด์š”.

 

openstack service create --name neutron --description "OpenStack Networking service" network

 

์ด๋ฒˆ์—๋Š” neutron ์„œ๋น„์Šค Entity(์—”ํ‹ฐํ‹ฐ)๋ฅผ ์ƒ์„ฑํ•ด ์ฃผ์—ˆ์–ด์š”.

 

openstack endpoint create --region RegionOne network public http://{Controller Node IP}:9696

 

openstack endpoint create --region RegionOne network internal http://{Controller Node IP}:9696



openstack endpoint create --region RegionOne \ network admin http://{Controller Node IP}:9696

 

์ด๋ฒˆ์—๋Š” ๋„คํŠธ์›Œํ‚น ์„œ๋น„์Šค API ์—”๋“œํฌ์ธํŠธ๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ์—ˆ์–ด์š”.

 

 

 

 

       ๐Ÿ“ฆ ๋„คํŠธ์›Œํ‚น ์˜ต์…˜ ๊ตฌ์„ฑ

์˜ต์…˜ 1,  2์— ์˜ํ•ด ํ‘œํ˜„๋˜๋Š” ๋‘ ์•„ํ‚คํ…์ฒ˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„คํŠธ์›Œํ‚น ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์–ด์š”.

์˜ต์…˜ 1์€ ํ”„๋กœ๋ฐ”์ด๋”(์™ธ๋ถ€) ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•œ ์ธ์Šคํ„ด์Šค ์—ฐ๊ฒฐ๋งŒ์„ ์ง€์›ํ•˜๋Š” ๊ฐ€๋Šฅํ•œ ๋‹จ์ˆœ ์•„ํ‚คํ…์ฒ˜๋กœ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. Self-Service (์…€ํ”„ ์„œ๋น„์Šค) ์‚ฌ์„ค ๋„คํŠธ์›Œํฌ, ๋ผ์šฐํ„ฐ ๋˜๋Š” ํ”Œ๋กœํŒ… IP ์ฃผ์†Œ๋Š” ์—†์–ด์š”.

๊ด€๋ฆฌ์ž ๋˜๋Š” ๊ธฐํƒ€ ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž๋งŒ ํ”„๋กœ๋ฐ”์ด๋” ๋„คํŠธ์›Œํฌ๋ฅผ ๊ด€๋ฆฌํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์–ด์š”.

์˜ต์…˜ 2๋Š” ์˜ต์…˜ 1์— ์…€ํ”„ ์„œ๋น„์Šค ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•œ ์ธ์Šคํ„ด์Šค ์—ฐ๊ฒฐ์„ ์ง€์›ํ•˜๋Š” layer-3 ์„œ๋น„์Šค๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์–ด์š”.
demo ๋˜๋Š” ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์„ ๊ฐ–์ง€ ์•Š์€ ์‚ฌ์šฉ์ž๊ฐ€ ์…ํ”„ ์„œ๋น„์Šค์™€ ํ”„๋กœ๋ฐ”์ด๋” ๋„คํŠธ์›Œํฌ ๊ฐ„ ์—ฐ๊ฒฐ์„ ์ œ๊ณตํ•˜๋Š” ๋ผ์šฐํ„ฐ๋ฅผ ํฌํ•จํ•œ ์…€ํ”„ ์„œ๋น„์Šค ๋„คํŠธ์›Œํฌ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค.

๋ถ€๊ฐ€์ ์œผ๋กœ ํ”Œ๋กœํŒ… IP ์ฃผ์†Œ๋Š” ์ธํ„ฐ๋„ท๊ณผ ๊ฐ™์€ ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ๋กœ๋ถ€ํ„ฐ ์…€ํ”„ ์„œ๋น„์Šค ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์„ ์ œ๊ณตํ•ด์š”.

์…€ํ”„ ์„œ๋น„์Šค ๋„คํŠธ์›Œํฌ๋Š” ๋ณดํ†ต Overlay(์˜ค๋ฒ„๋ ˆ์ด) ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•ด์š”. VXLAN๊ณผ ๊ฐ™์€ ์˜ค๋ฒ„๋ ˆ์ด ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ์€ Over Head(์˜ค๋ฒ„ํ—ค๋“œ)๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๊ณ  Payload(ํŽ˜์ด๋กœ๋“œ) ๋˜๋Š” ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์šฉ๋Ÿ‰์„ ๊ฐ์†Œ ์‹œํ‚ค๋Š” ์ถ”๊ฐ€์ ์ธ Packet Header(ํŒจํ‚ท ํ—ค๋”)๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์–ด์š”.

๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ์ธํ”„๋ผ์— ๋Œ€ํ•œ ์ง€์‹์ด ์—†๋”๋ผ๋„ ๊ธฐ๋ณธ Ethernet(์ด๋”๋„ท)์— ๋Œ€ํ•œ 1500 Byte(๋ฐ”์ดํŠธ)์˜ maxinum transmission unit(MTU)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ท ์ „์†ก์„ ํ•  ์ˆ˜ ์žˆ์–ด์š”.

๋„คํŠธ์›Œํ‚น ์„œ๋น„์Šค๋Š” DHCP๋ฅผ ํ†ตํ•ด ์ธ์Šคํ„ด์Šค์— ์•Œ๋งž์€ MTU ๊ฐ’์„ ์ž๋™์œผ๋กœ ์ œ๊ณตํ•˜๊ณ  ์žˆ์–ด์š”. ๊ทธ๋Ÿฌ๋‚˜, ๋ช‡๋ช‡ ํด๋ผ์šฐ๋“œ ์ด๋ฏธ์ง€๋Š” DHCP๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฑฐ๋‚˜, DHCP MTU ์˜ต์…˜์„ ๋ฌด์‹œํ•˜๋ฉฐ, ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•œ ๊ตฌ์„ฑ์„ ํ•„์š”๋กœ ํ•œ๋‹ค๊ณ  ํ•ด์š”.

์ฃผ๋‹ˆ๋Š” ์˜ต์…˜ 2 ๋ฐฉ์‹์˜ ์…€ํ”„ ์„œ๋น„์Šค ๋„คํŠธ์›Œํฌ ๋ฐฉ์‹์„ ์ด์šฉํ•˜์—ฌ ๊ตฌ์„ฑํ•˜๋ ค๊ณ  ํ•ด์š”.
๋งŒ์•ฝ ์˜ต์…˜ 1 ๋ฐฉ์‹์˜ ํ”„๋กœ๋ฐ”์ด๋” ๋„คํŠธ์›Œํฌ ๋ฐฉ์‹์„ ์ด์šฉํ•˜์—ฌ ๊ตฌ์„ฑํ•˜๊ณ  ์‹ถ์œผ์‹œ๋‹ค๋ฉด ์ด ๊ณณ์„ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”.

 

OpenStack Docs: ๋„คํŠธ์›Œํ‚น ์˜ต์…˜ 1: ํ”„๋กœ๋ฐ”์ด๋” ๋„คํŠธ์›Œํฌ

๋„คํŠธ์›Œํ‚น ์˜ต์…˜ 1: ํ”„๋กœ๋ฐ”์ด๋” ๋„คํŠธ์›Œํฌ ๋„คํŠธ์›Œํ‚น ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์ปจํŠธ๋กค๋Ÿฌ ๋…ธ๋“œ์— ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ์š”์†Œ ์„ค์น˜ # apt install neutron-server neutron-plugin-ml2 \ neutron-linuxbridge-agent neutron-dhcp-agent \ neutron

docs.openstack.org

 

 

 

       ๐Ÿ“ฆ ๋„คํŠธ์›Œํ‚น ์˜ต์…˜ 2: ์…€ํ”„ ์„œ๋น„์Šค ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ - neutron.conf

์ตœ์ดˆ ํŒจํ‚ค์ง€ ์„ค์น˜ ์ž‘์—…์„ ์ง„ํ–‰ํ•ด ๋ณผ๊ฒŒ์š”.

apt install neutron-server neutron-metadata-agent neutron-plugin-ml2 python3-neutronclient -y

 

ํŒจํ‚ค์ง€ ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ตฌ์„ฑํ•ด ๋ณด๋„๋ก ํ• ๊ฒŒ์š”.

vim /etc/neutron/neutron.conf [DEFAULT] ๋ณ€๊ฒฝ ์ „

 

vim /etc/neutron/neutron.conf [DEFAULT] ๋ณ€๊ฒฝ ๋’ค

  

์ตœ์ดˆ [DEFAULT] ์„น์…˜์— Modular Layer 2(ML2) ํ”Œ๋Ÿฌ๊ทธ์ธ, ๋ผ์šฐํ„ฐ ์„œ๋น„์Šค ๋ฐ overlapping IP ์ฃผ์†Œ(4 ~ 5, 8๋ฒˆ์งธ ์ค„)๋ฅผ ํ™œ์„ฑํ™” ๋ฐ RabbitMQ ๋ฉ”์‹œ์ง€ ํ ์•ก์„ธ์Šค ๊ตฌ์„ฑ(12๋ฒˆ์งธ ์ค„), Identity ์„œ๋น„์Šค ์•ก์„ธ์Šค ๊ตฌ์„ฑ(6๋ฒˆ์งธ ์ค„), ๋„คํŠธ์›Œํฌ ํ† ํด๋กœ์ง€ ๋ณ€๊ฒฝ ๋ฐœ์ƒ ์‹œ Compute์— ์•Œ๋ ค์ฃผ๋Š” ๋„คํŠธ์›Œํ‚น ๊ตฌ์„ฑ(9 ~ 10๋ฒˆ์žฌ ์ค„) ํ™œ์„ฑํ™” ์„ค์ •์„ ํ•ด ์ค„๊ฑฐ์—์š”.

 

vim /etc/neutron/neutron.conf [agent]

 

 

vim /etc/neutron/neutron.conf [database] ๋ณ€๊ฒฝ ์ „


์ด๋ฒˆ์—๋Š” 876๋ฒˆ์งธ ์ค„์„ ์ˆ˜์ •ํ•  ๊ฑฐ์—์š”.

vim /etc/neutron/neutron.conf [database] ๋ณ€๊ฒฝ ๋’ค


์œ„์™€ ๊ฐ™์ด Maria DB ์—ฐ๊ฒฐ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์—ˆ์–ด์š”.
์ฐธ๊ณ ๋กœ PASSWORD ๋ถ€๋ถ„์—๋Š” DB neutron ๊ณ„์ •์˜ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ๋ฉด ๋œ๋‹ต๋‹ˆ๋‹ค.

 

vim /etc/neutron/neutron.conf [keystone_authtoken] ๋ณ€๊ฒฝ ์ „


์ด๋ฒˆ์—๋Š” Identity ์„œ๋น„์Šค ์•ก์„ธ์Šค๋ฅผ ๊ตฌ์„ฑํ•ด ์ค„๊ฑฐ์—์š”.

vim /etc/neutron/neutron.conf [keystone_authtoken] ๋ณ€๊ฒฝ ๋’ค

 

password ์ค„์—๋Š” neutron ๊ณ„์ •์˜ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์–ด์•ผ ํ•ด์š”.



vim /etc/neutron/neutron.conf [database]

 

vim /etc/neutron/neutron.conf [nova] ๋ณ€๊ฒฝ ์ „


์ด๋ฒˆ์—๋Š” ๋„คํŠธ์›Œํฌ ํ† ํด๋กœ์ง€ ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ, Compute์— ์•Œ๋ ค์ฃผ๋„๋ก ๋„คํŠธ์›Œํ‚น์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ถ€๋ถ„์ด์—์š”.

vim /etc/neutron/neutron.conf [nova] ๋ณ€๊ฒฝ ๋’ค


password ์ค„์—๋Š” Compute Node์— ์„ค์น˜ํ•œ Nova ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ๋Š” ๋ถ€๋ถ„์ด์—์š”.

 

vim /etc/neutron/neutron.conf [oslo_concurrency] ๋ณ€๊ฒฝ ์ „



vim /etc/neutron/neutron.conf [oslo_concurrency] ๋ณ€๊ฒฝ ๋’ค

 

 

vim /etc/neutron/neutron.conf [experimental]


์—ฌ๊ธฐ๊นŒ์ง€ ๋˜์—ˆ๋‹ค๋ฉด ์ €์žฅ ํ•ด ์ค๋‹ˆ๋‹ค.

 

chmod 640 /etc/neutron/neutron.conf; chgrp neutron /etc/neutron/neutron.conf


๊ทธ๋ฆฌ๊ณ , ์„ค์ • ํŒŒ์ผ์— ๊ถŒํ•œ๊ณผ ์†Œ์œ  ๊ทธ๋ฃน์„ ๋ณ€๊ฒฝํ•ด ์ฃผ์—ˆ์–ด์š”.

 

 

vim /etc/neutron/metadata_agent.ini

์œ„์™€ ๊ฐ™์ด ์ž…๋ ฅํ•˜๊ณ , ์ €์žฅํ•˜๊ณ  ๋‚˜์˜ต๋‹ˆ๋‹ค.

 

 

 

 

 

       ๐Ÿ“ฆ ๋„คํŠธ์›Œํ‚น ์˜ต์…˜ 2: ์…€ํ”„ ์„œ๋น„์Šค ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ - ml2_conf.ini

์ด๋ฒˆ์—๋Š” Modular Layer 2(ML2) ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋Œ€ํ•ด ๊ตฌ์„ฑํ•ด ๋ณผ๊ฒŒ์š”.

ML2 ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ Layer-2 (๋ธŒ๋ฆฌ์ง•๊ณผ ์Šค์œ„์นญ) ๊ฐ€์ƒ ๋„คํŠธ์›Œํ‚น ์ธํ”„๋ผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ๋ฆฌ๋ˆ…์Šค ๋ธŒ๋ฆฟ์ง€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

vim /etc/neutron/plugins/ml2/ml2_conf.ini [ml2]

 

chmod 640 /etc/neutron/plugins/ml2/ml2_conf.ini; chgrp; neutron /etc/neutron/plugins/ml2/ml2_conf.ini


๊ทธ๋ฆฌ๊ณ , ์œ„์™€ ๊ฐ™์ด ๊ถŒํ•œ๊ณผ ์†Œ์œ ๊ถŒ์„ ๋ณ€๊ฒฝํ•ด ์ฃผ์—ˆ์–ด์š”.


 

 

vim /etc/nova/nova.conf [neutron]


Nova ์„ค์ • ํŒŒ์ผ์— Neutron๊ณผ ๊ด€๋ จํ•œ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•ด ์ฃผ์—ˆ์–ด์š”.
Password์—๋Š” neutron ๊ณ„์ •์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์–ด์•ผ ํ•ด์š”.

๊ทธ๋ฆฌ๊ณ , ์ €์žฅํ•˜๊ณ , ๋‚˜์™€์ค๋‹ˆ๋‹ค.




vim /etc/nginx/nginx.conf


์œ„ ์„ค์ • ํŒŒ์ผ์— neutron-api ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•ด ์ฃผ์—ˆ์–ด์š”.

 

 

ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini; su -s /bin/bash neutron -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini upgrade head"

 

systemctl restart neutron-server neutron-metadata-agent nova-api nginx; systemctl enable neutron-server neutron-metadata-agent


์œ„์™€ ๊ฐ™์ด neutron ๊ด€๋ จ ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•ด ์ฃผ์—ˆ์–ด์š”.

 

 

 

 

 

 

       ๐Ÿ“ฆ ๋„คํŠธ์›Œํ‚น ์˜ต์…˜ 2: ์…€ํ”„ ์„œ๋น„์Šค ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ - neutron_ovn_metadata_agent.ini

vim  /etc/neutron/neutron_ovn_metadata_agent.ini [DEFAULT] ์ถ”๊ฐ€

 

 

vim  /etc/neutron/neutron_ovn_metadata_agent.ini [ovs] ๋ณ€๊ฒฝ ์ „

 

vim  /etc/neutron/neutron_ovn_metadata_agent.ini [ovs] ๋ณ€๊ฒฝ ๋’ค



vim  /etc/neutron/neutron_ovn_metadata_agent.ini ๋งจ ์•„๋ž˜์ค„์— ์ถ”๊ฐ€


์—ฌ๊ธฐ๊นŒ์ง€ ๋˜์—ˆ์œผ๋ฉด ์ €์žฅํ•˜๊ณ , ๋‚˜์™€ ์ค๋‹ˆ๋‹ค.

 

 

       ๐Ÿ“ฆ ๋„คํŠธ์›Œํ‚น ์˜ต์…˜ 2: ์…€ํ”„ ์„œ๋น„์Šค ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ - openvswitch-switch

vim /etc/default/openvswitch-switch 8 ~ 9๋ฒˆ์งธ ์ค„ ๋ณ€๊ฒฝ ์ „

 

vim /etc/default/openvswitch-switch 8 ~ 9๋ฒˆ์งธ ์ค„ ๋ณ€๊ฒฝ ๋’ค

 

์—ฌ๊ธฐ๊นŒ์ง€ ๋˜์—ˆ์œผ๋ฉด ์ €์žฅํ•˜๊ณ , ๋‚˜์™€ ์ค๋‹ˆ๋‹ค.

 

 

       ๐Ÿ“ฆ ๋„คํŠธ์›Œํ‚น ์˜ต์…˜ 2: ์…€ํ”„ ์„œ๋น„์Šค ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ - nova.conf

์ด๋ฒˆ์—๋Š” ๋„คํŠธ์›Œํ‚น ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด Compute ์„œ๋น„์Šค ๊ตฌ์„ฑ ์ง„ํ–‰ํ•ด ๋ณผ๊ฒŒ์š”.

vim /etc/nova/nova.conf [DEFAULT] ์ถ”๊ฐ€


์ด ์ „์— ์ถ”๊ฐ€ํ–ˆ๋˜ ๋‚ด์šฉ ๋ฐ‘์— ์œ„ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•ด ์ฃผ์—ˆ์–ด์š”.

 

 

vim /etc/nova/nova.conf [neutron] ๋ณ€๊ฒฝ ์ „

 

vim /etc/nova/nova.conf [neutron] ๋ณ€๊ฒฝ ๋’ค


์œ„ ๋‚ด์šฉ์„ ํ†ตํ•ด neutron์—์„œ ์ ‘๊ทผ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ , ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ ํ”„๋ก์‹œ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ , ์•”ํ˜ธ๋ฅผ ๊ตฌ์„ฑํ•ด ์ฃผ์—ˆ์–ด์š”.


Identity ์„œ๋น„์Šค์—์„œ neutron ์‚ฌ์šฉ์ž ๊ณ„์ •์˜ ์•”ํ˜ธ๋ฅผ servicepassword (3700 ๋ฒˆ์งธ ์ค„)์— ์ž…๋ ฅํ•ด ์ฃผ์–ด์•ผํ•ด์š”.

์—ฌ๊ธฐ๊นŒ์ง€ ๋˜์—ˆ๋‹ค๋ฉด ์ €์žฅํ•˜๊ณ , ๋‚˜์˜ต๋‹ˆ๋‹ค.




       ๐Ÿ“ฆ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ - nginx.conf

vim /etc/nginx/nginx.conf


์ด ์ „์— ์ž‘์„ฑํ–ˆ๋˜ ๋‚ด์šฉ์— 105 ~ 112๋ฒˆ์งธ ์ค„ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•ด ์ฃผ์—ˆ์–ด์š”.

๊ทธ๋Ÿฐ ๋’ค ์ €์žฅํ•˜๊ณ , ๋‚˜์™€ ์ฃผ์—ˆ์–ด์š”.

 

 

 

       ๐Ÿ“ฆ ์„ค์น˜ ๋งˆ๋ฌด๋ฆฌ

systemctl enable openvswitch-switch; systemctl enable openvswitch-switch

728x90


์ตœ์ดˆ ์œ„์™€ ๊ฐ™์ด ์„œ๋น„์Šค๋ฅผ ๋“ฑ๋กํ•˜๊ณ , ์žฌ ๊ธฐ๋™ ์‹œ์ผœ ์ฃผ์—ˆ์–ด์š”.


ovs-vsctl add-br br-int


์œ„ ๋ช…๋ น์–ด๋กœ ๊ฐ€์ƒ ๋ธŒ๋ฆฟ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋ ค ํ–ˆ๋Š”๋ฐ, ์ด๋ฏธ ์žˆ๋‹ค๊ณ  ํ•˜๋„ค์š”.


ln  -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini



 

su -s /bin/bash neutron -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini upgrade head"

 

 

 

์œ„ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด DB์— Data๋ฅผ ๋„ฃ์–ด ์ฃผ์—ˆ์–ด์š”.



 

systemctl enable ovn-central ovn-northd ovn-controller ovn-host; systemctl enable ovn-central ovn-northd ovn-controller ovn-host


์œ„์™€ ๊ฐ™์ด ์„œ๋น„์Šค ๋“ฑ๋ก ๋ฐ ์žฌ ๊ธฐ๋™ ํ•ด ์ฃผ์—ˆ์–ด์š”.




 

root@dlp ~(keystone)# ovn-nbctl set-connection ptcp:6641:10.0.0.30 -- set connection . inactivity_probe=60000
root@dlp ~(keystone)# ovn-sbctl set-connection ptcp:6642:10.0.0.30 -- set connection . inactivity_probe=60000
root@dlp ~(keystone)# ovs-vsctl set open . external-ids:ovn-remote=tcp:10.0.0.30:6642
root@dlp ~(keystone)# ovs-vsctl set open . external-ids:ovn-encap-type=geneve
root@dlp ~(keystone)# ovs-vsctl set open . external-ids:ovn-encap-ip=10.0.0.30



์œ„ ๋ช…๋ น์–ด๋Š” OVN(Open Virutal Network) ๊ตฌ์„ฑ ๋ช…๋ น์–ด์—์š”.

OVN์€ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ์ œ์–ดํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์˜คํ”ˆ์†Œ์Šค ๋„คํŠธ์›Œํฌ ์†”๋ฃจ์…˜์ด์—์š”.

์œ„ ๋ช…๋ น์–ด์— ์ƒ์„ธ ๋‚ด์šฉ์€ ์•„๋ž˜์™€ ๊ฐ™์•„์š”.

๋ช…๋ น์–ด ๋‚ด   ์šฉ
ovn-nbctl set-connection ptcp:6641:{Controller Node IP} -- set connection . inactivity_probe=60000 OVN ์ปจํŠธ๋กค๋Ÿฌ(ovn-northd)์™€ OVN ๋„คํŠธ์›Œํฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(ovn-nb) ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ณ  ์—ฐ๊ฒฐ์˜ ๋น„ํ™œ๋™์„ฑ ๊ฐ์ง€ ์‹œ๊ฐ„์„ 60000๋ฐ€๋ฆฌ์ดˆ(60์ดˆ)๋กœ ์„ค์ •.

ํฌํŠธ
6641์„ ์‚ฌ์šฉํ•˜์—ฌ TCP ์—ฐ๊ฒฐ ์„ค์ • ๋ฐ ํ˜ธ์ŠคํŠธ IP Controller Node๋กœ ์—ฐ๊ฒฐ.
ovn-sbctl set-connection ptcp:6642:{Controller Node IP} -- set connection . inactivity_probe=60000 OVN ์ปจํŠธ๋กค๋Ÿฌ(ovn-controller)์™€ OVN ์Šค์œ„์น˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(ovn-sb) ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ณ  ์—ฐ๊ฒฐ์˜ ๋น„ํ™œ๋™์„ฑ ๊ฐ์ง€ ์‹œ๊ฐ„์„ 60000๋ฐ€๋ฆฌ์ดˆ(60์ดˆ)๋กœ ์„ค์ •.

ํฌํŠธ
6642๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ TCP ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ณ  ํ˜ธ์ŠคํŠธ IP Controller Node IP๋กœ ์—ฐ๊ฒฐ.
ovs-vsctl set open . external-ids:ovn-remote=tcp:{Controller Node IP}:6642 Open vSwitch(OVS) ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ์˜ต์…˜์„ ์„ค์ •.

external-ids ์„น์…˜์— ovn-remote ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๊ฐ’์„ tcp:Controller Node IP:6642๋กœ ์„ค์ •ํ•˜์—ฌ OVN ์Šค์œ„์น˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ์›๊ฒฉ ์—ฐ๊ฒฐ์„ ์ •์˜.
ovs-vsctl set open . external-ids:ovn-encap-type=geneve OVN ์—”์บก์Š๋ ˆ์ด์…˜ ์œ ํ˜•์„ ์„ค์ •.

external-ids ์„น์…˜์— ovn-encap-type ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๊ฐ’์„ geneve๋กœ ์„ค์ •ํ•˜์—ฌ Geneve ์—”์บก์Š๋ ˆ์ด์…˜์„ ์‚ฌ์šฉ ์„ค์ •.
ovs-vsctl set open . external-ids:ovn-encap-ip={Controller Node IP} OVN ์—”์บก์Š๋ ˆ์ด์…˜์— ์‚ฌ์šฉํ•  IP ์ฃผ์†Œ๋ฅผ ์„ค์ •.

external-ids ์„น์…˜์— ovn-encap-ip ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๊ฐ’์„ Controller Node IP๋กœ ์„ค์ •ํ•˜์—ฌ Geneve ์—”์บก์Š๋ ˆ์ด์…˜์— ์‚ฌ์šฉํ•  IP ์ฃผ์†Œ๋ฅผ ์ง€์ •.

 

 

systemctl  restart neutron-server neutron-ovn-metadata-agent nova-api nova-compute nginx


๊ทธ๋Ÿฐ ๋’ค ๋‰ดํŠธ๋ก  ๊ด€๋ จ ๋ฐ๋ชฌ๊ณผ nova ๊ด€๋ จ ๋ฐ๋ชฌ์„ ์žฌ๊ธฐ๋™ํ•˜์—ฌ ์ฃผ์—ˆ์–ด์š”.

 

 

openstack network agent list



์œ„ ๋ช…๋ น์–ด๋กœ ๋„คํŠธ์›Œํฌ ์—์ด์ „ํŠธ ๋ชฉ๋ก์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.



 

 

       ๐Ÿ“ฆ ์„ค์ •

ํ˜„์žฌ ์ปจํŠธ๋กค๋Ÿฌ ๋…ธ๋“œ์—๋Š” ๋‘ ๊ฐœ์˜ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋‹ฌ๋ ค ์žˆ์–ด์š”.
์ด์ œ FLAT ์œ ํ˜•์˜ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์„ฑํ•ด ๋ณผ๊ฒŒ์š”.


vim /etc/systemd/network/eth1.network


์œ„ ํŒŒ์ผ์„ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด ์œ„์™€ ๊ฐ™์ด ์ž‘์„ฑํ•ด ์ฃผ์—ˆ์–ด์š”.

์ด๊ฒƒ์€ ์ต๋ช… ์ธํ„ฐํŽ˜์ด์Šค ์„ค์ • ํŒŒ์ผ ์ƒ์„ฑ์„ ํ•œ ๊ฒƒ์ด๊ณ , [eth1] ์ด๋ฆ„์„ ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์œผ๋กœ ๋ฐ”๊พผ ๋ถ€๋ถ„์ด์—์š”.

 

ip link set eth1 up


์œ„ ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด์„œ eth1 ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ™œ์„ฑํ™” ํ•˜์—ฌ ์ฃผ์—ˆ์–ด์š”.



ovs-vsctl add-br br-eth1


๊ทธ๋ฆฌ๊ณ  ์œ„ ๋ช…๋ น์–ด๋กœ bridge(๋ธŒ๋ฆฟ์ง€)๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ์—ˆ๋Š”๋ฐ, br-eth1 ์ด๋ผ๋Š” ์ด๋ฆ„์€ ์ž์œ ๋กญ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด์š”.



ovs-vsctl add-port br-eth1 eth1


๊ทธ๋ฆฌ๊ณ  ์œ„ ๋ช…๋ น์–ด๋กœ ๋ธŒ๋ฆฟ์ง€ ํฌํŠธ๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ์—ˆ์–ด์š”.

์ด๊ฒƒ์€ [eth1]์„ ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์— ๋งž์ถฐ์ฃผ๋ฉด ๋˜๋Š” ๋ถ€๋ถ„์ด์—์š”.


ovs-vsctl set open . external-ids:ovn-bridge-mappings=physnet1:br-eth1


Open vSwitch(OVS) ๊ตฌ์„ฑ์„ ์„ค์ •ํ•˜๋Š” ๋ช…๋ น์–ด์—์š”.
์ด ๋ช…๋ น์–ด๋Š” OVN (Open Virtual Network)์˜ ๋ธŒ๋ฆฌ์ง€ ๋งคํ•‘ ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๊ณ ,
๋ฌผ๋ฆฌ ๋„คํŠธ์›Œํฌ์™€ OVN ๋ธŒ๋ฆฌ์ง€ ๊ฐ„์˜ ๋งคํ•‘์„ ์ •์˜ํ•ด ์ค€ ๋ถ€๋ถ„์ด์—์š”.

์ด ๋ช…๋ น์–ด๋Š” OVN๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋ฌผ๋ฆฌ ๋„คํŠธ์›Œํฌ์™€ ๋…ผ๋ฆฌ์ ์ธ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ด์š”. ๋ธŒ๋ฆฌ์ง€ ๋งคํ•‘์€ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ์™€ ๋ฌผ๋ฆฌ ๋„คํŠธ์›Œํฌ ๊ฐ„์˜ ๋งคํ•‘์„ ์ง€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ,
OVN์˜ ๋„คํŠธ์›Œํฌ ๊ฐ€์ƒํ™” ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์ง€์›ํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ด์š”.


{"originWidth":1780,"originHeight":118,"style":"alignCenter","caption":"projectID=$(openstack project list


projectID ๋ณ€์ˆ˜์— service๋ผ๋Š” ์ด๋ฆ„์„ ๊ฐ€์ง„ ํ”„๋กœ์ ํŠธ์˜ ID ๊ฐ’์„ ๋„ฃ์–ด์ฃผ์—ˆ์–ด์š”.

 

openstack network create --project $projectID --share --provider-network-type flat --provider-physical-network physnet1 sharednet1


์œ„ ๋ช…๋ น์–ด๋กœ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ๋ฅผ ๋งŒ๋“ค์–ด ์ค€๊ฑด๋ฐ, ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ์˜ ์ด๋ฆ„์€ sharednet1์œผ๋กœ ํ•ด ์ฃผ์—ˆ์–ด์š”.



์ด๋ฒˆ์—๋Š” 10.0.0๋ฒˆ ๋Œ€์—ญ์œผ๋กœ subnet์„ ๋งŒ๋“ค์–ด ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ์— ๋„ฃ์–ด๋ณผ๊ฒŒ์š”.

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.1 --dns-nameserver 10.0.0.10


์œ„ ๋ช…๋ น์–ด๋Š” ๋„คํŠธ์›Œํฌ ์„œ๋ธŒ๋„ท์„ ๋งŒ๋“œ๋Š” ๋ช…๋ น์–ด์ธ๋ฐ, ์˜ต์…˜์€ ์•„๋ž˜์™€ ๊ฐ™์•„์š”.

๐Ÿค” Option ๋‚ด์šฉ
1. openstack subnet create subnet1: subnet1์ด๋ผ๋Š” ์„œ๋ธŒ๋„ท์„ ์ƒ์„ฑํ•˜๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. subnet1์€ ์ƒˆ๋กœ์šด ์„œ๋ธŒ๋„ท์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ํ•„์š”์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. --network sharednet1: ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ์„œ๋ธŒ๋„ท์„ ์–ด๋–ค ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐํ•  ๊ฒƒ์ธ์ง€๋ฅผ ์ง€์ •ํ•˜๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค. sharednet1์€ ์—ฐ๊ฒฐํ•  ๋„คํŠธ์›Œํฌ์˜ ์ด๋ฆ„ ๋˜๋Š” ID์ž…๋‹ˆ๋‹ค.

3. --project $projectID: ์„œ๋ธŒ๋„ท์„ ์–ด๋–ค ํ”„๋กœ์ ํŠธ์— ์†ํ•˜๋„๋ก ๋งŒ๋“ค ๊ฒƒ์ธ์ง€๋ฅผ ์ง€์ •ํ•˜๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค. $projectID๋Š” ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์˜ ID์ž…๋‹ˆ๋‹ค.

4. --subnet-range 10.0.0.0/24: ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ์„œ๋ธŒ๋„ท์˜ IP ์ฃผ์†Œ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•˜๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” 10.0.0.0/24๋กœ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ด ์„œ๋ธŒ๋„ท์€ 10.0.0.0๋ถ€ํ„ฐ 10.0.0.255๊นŒ์ง€์˜ IP ์ฃผ์†Œ ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

5. --allocation-pool start=10.0.0.200,end=10.0.0.254: ์„œ๋ธŒ๋„ท์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ IP ์ฃผ์†Œ ๋ฒ”์œ„๋ฅผ ์„ค์ •ํ•˜๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” 10.0.0.200๋ถ€ํ„ฐ 10.0.0.254๊นŒ์ง€์˜ IP ์ฃผ์†Œ๊ฐ€ ํ• ๋‹น ๊ฐ€๋Šฅํ•œ ๋ฒ”์œ„๋กœ ์ง€์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

6. --gateway 10.0.0.1: ์„œ๋ธŒ๋„ท์˜ ๊ฒŒ์ดํŠธ์›จ์ด IP ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•˜๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” 10.0.0.1๋กœ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ด IP ์ฃผ์†Œ๊ฐ€ ์„œ๋ธŒ๋„ท์˜ ๊ฒŒ์ดํŠธ์›จ์ด ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

7. --dns-nameserver 10.0.0.10: ์„œ๋ธŒ๋„ท์—์„œ ์‚ฌ์šฉํ•  DNS ๋„ค์ž„ ์„œ๋ฒ„๋ฅผ ์ง€์ •ํ•˜๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” 10.0.0.10์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ด DNS ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ๋‚ด์—์„œ DNS ์กฐํšŒ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.


์ด ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด OpenStack์—์„œ subnet1์ด๋ผ๋Š” ์ƒˆ๋กœ์šด ์„œ๋ธŒ๋„ท์„ ์ƒ์„ฑํ•˜๊ณ  ์ง€์ •ํ•œ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐํ•˜๋ฉฐ, ์„œ๋ธŒ๋„ท์˜ IP ์ฃผ์†Œ ๋ฒ”์œ„, ํ• ๋‹น ๊ฐ€๋Šฅํ•œ IP ์ฃผ์†Œ ๋ฒ”์œ„, ๊ฒŒ์ดํŠธ์›จ์ด ๋ฐ DNS ๋„ค์ž„ ์„œ๋ฒ„๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ ๋ฐ ๊ฐ€์ƒ ๋จธ์‹  ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ IP ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์–ด์š”.



openstack network list; openstack subnet list


๋„คํŠธ์›Œํฌ์™€ ์„œ๋ธŒ๋„ท์ด ์ž˜ ๋งŒ๋“ค์–ด์ง„๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

 

 

 

Openstack Essentials Second Edition Paperback

COUPANG

www.coupang.com

"์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค."

 

 

๐Ÿง ์ฐธ๊ณ  ์ž๋ฃŒ

 

Ubuntu 22.04 LTS : OpenStack Zed : Configure Neutron #1 : Server World

root@dlp ~(keystone)# mysql Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 132 Server version: 10.6.7-MariaDB-2ubuntu1.1 Ubuntu 22.04 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;

www.server-world.info

 

OpenStack Docs: ๋„คํŠธ์›Œํ‚น ์„œ๋น„์Šค

 

docs.openstack.org

 

 

 

728x90
๋ฐ˜์‘ํ˜•