각 노드에는 인터페이스가 두 개 필요하다. 모든 노드에서 동일하게 설정한다.
| 인터페이스 | 용도 | IP |
|---|---|---|
| 첫 번째 (관리용) | 패키지 설치 · DNS · NTP · 서비스 간 통신 | 고정 IP. 예: controller 10.0.0.11, compute1 10.0.0.31, block1 10.0.0.41 |
| 두 번째 (공급자) | 인스턴스 외부 통신. Neutron 이 브리지에 붙인다 | IP 를 주지 않고 링크만 올린다 |
공식 가이드의 예제 대역은 관리 10.0.0.0/24 (게이트웨이 10.0.0.1), 공급자 203.0.113.0/24 (게이트웨이 203.0.113.1) 다. 인터페이스 이름은 배포판마다 다르므로 ip link 로 확인해 INTERFACE_NAME 자리에 넣는다.
/etc/netplan/01-openstack.yaml
network:
version: 2
ethernets:
eth0:
addresses: [10.0.0.11/24]
routes:
- to: default
via: 10.0.0.1
nameservers:
addresses: [10.0.0.1]
eth1:
dhcp4: false
dhcp6: false
optional: true
netplan apply
공식 가이드는 /etc/network/interfaces 형식만 싣고 있다. 그 형식을 쓰는 경우 공급자 인터페이스는 다음과 같이 둔다.
# The provider network interface
auto INTERFACE_NAME
iface INTERFACE_NAME inet manual
up ip link set dev $IFACE up
down ip link set dev $IFACE down
nmcli connection modify eth0 ipv4.method manual ipv4.addresses 10.0.0.11/24 ipv4.gateway 10.0.0.1 ipv4.dns 10.0.0.1 connection.autoconnect yes
nmcli connection modify eth1 ipv4.method disabled ipv6.method disabled connection.autoconnect yes
nmcli connection up eth0
nmcli connection up eth1
ip -br addr
ping -c 3 10.0.0.1
관리용 인터페이스에 IP 가 잡히고 공급자 인터페이스는 UP 상태로 IP 없이 보이면 된다.
CentOS Stream 8 · Rocky Linux 8 의 ifcfg 형식이다.
/etc/sysconfig/network-scripts/ifcfg-eth0 (관리용)
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV6_DEFROUTE=yes
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.1.71
PREFIX=24
GATEWAY=192.168.1.1
DNS1=192.168.1.254
DNS2=8.8.8.8
/etc/sysconfig/network-scripts/ifcfg-eth1 (공급자)
DEVICE=INTERFACE_NAME
TYPE=Ethernet
ONBOOT="yes"
BOOTPROTO="none"