自分用メモ。
KVM 仮想マシン作成の続き。
KVMマシン 起動
$ sudo virsh list --all
Id 名前 状態
----------------------------------------------------
- openstack_cmpt_1 シャットオフ
- openstack_cmpt_2 シャットオフ
- openstack_cmpt_3 シャットオフ
- openstack_cmpt_4 シャットオフ
- openstack_ctrl シャットオフ
$ sudo virsh start openstack_ctrl
ドメイン openstack_ctrl が起動されました
$ sudo virsh console openstack_ctrl
ドメイン openstack_ctrl に接続しました
エスケープ文字は ^] です
[ 9.703133] intel_rapl: no valid rapl domains found in package 0
[ 9.712187] intel_rapl: no valid rapl domains found in package 0
CentOS Linux 7 (Core)
Kernel 3.10.0-514.el7.x86_64 on an x86_64
localhost login:
設計
↑これを
↓こうじゃ!
外向けIF 設定
localhost login: root
パスワード:
[root@localhost ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 52:54:00:51:cc:92 brd ff:ff:ff:ff:ff:ff
[root@localhost ~]# nmcli device
デバイス タイプ 状態 接続
eth0 ethernet 切断済み --
lo loopback 管理無し --
[root@localhost ~]# nmcli connection add type ethernet ifname eth0 con-name eth0
接続 'eth0' (47162d81-5bb7-45f6-b487-d98c6d6e109d) が正常に追加されました。 eth0
[root@localhost ~]# nmcli device
デバイス タイプ 状態 接続
eth0 ethernet 接続中(IP 設定を取得中) eth0
lo loopback 管理無し --
[root@localhost ~]# nmcli con show
名前 UUID タイプ デバイス
eth0 47162d81-5bb7-45f6-b487-d98c6d6e109d 802-3-ethernet eth0
eth0 8f0894b1-1857-49e6-b3c5-da64ecac0f84 802-3-ethernet --
コレが Access Port
に接続するIFなら以下でOK
[root@localhost ~]# nmcli connection modify enp0s9 \
connection.autoconnect yes \
ipv4.method manual \
ipv4.addresses "192.168.10.121/16"
しかし今回は接続先が Trunk Port
なので VLAN
を作る必要がある。
先に internal_lan
つなげれば楽だったのに。。
参考:10.3. コマンドラインツール nmcli を使った 802.1Q VLAN タグの設定
[root@localhost ~]# nmcli con add type vlan con-name eth0.10 dev eth0 id 10
接続 'eth0.10' (5f995a1a-29b4-4366-96f0-d2f00f5e8051) が正常に追加されました。
[root@localhost ~]# nmcli con show
名前 UUID タイプ デバイス
eth0.10 5f995a1a-29b4-4366-96f0-d2f00f5e8051 vlan eth0.10
eth0 8f0894b1-1857-49e6-b3c5-da64ecac0f84 802-3-ethernet --
eth0 47162d81-5bb7-45f6-b487-d98c6d6e109d 802-3-ethernet --
ちなみに おじさん達 のために、作成された ifcfg-eth0.10
を見るとこんな感じ。
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0.10
VLAN=yes
TYPE=Vlan
PHYSDEV=eth0
VLAN_ID=10
REORDER_HDR=yes
GVRP=no
MVRP=no
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0.10
UUID=5f995a1a-29b4-4366-96f0-d2f00f5e8051
ONBOOT=yes
作成した IF に IP アドレスを割り当てるぞ。
[root@localhost ~]# nmcli con modify eth0.10 \
> connection.autoconnect yes \
> ipv4.method manual \
> ipv4.address "192.168.10.121/16"
[root@localhost ~]# nmcli con show
名前 UUID タイプ デバイス
eth0.10 5f995a1a-29b4-4366-96f0-d2f00f5e8051 vlan eth0.10
eth0 8f0894b1-1857-49e6-b3c5-da64ecac0f84 802-3-ethernet --
eth0 47162d81-5bb7-45f6-b487-d98c6d6e109d 802-3-ethernet --
[root@localhost ~]# nmcli dev
デバイス タイプ 状態 接続
eth0.10 vlan 接続済み eth0.10
eth0 ethernet 切断済み --
lo loopback 管理無し --
[root@localhost ~]# ping 192.168.10.120
PING 192.168.10.120 (192.168.10.120) 56(84) bytes of data.
64 bytes from 192.168.10.120: icmp_seq=1 ttl=64 time=0.737 ms
64 bytes from 192.168.10.120: icmp_seq=2 ttl=64 time=0.244 ms
--- 192.168.10.120 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.244/0.490/0.737/0.247 ms
[root@localhost ~]# ping 192.168.200.98
PING 192.168.200.98 (192.168.200.98) 56(84) bytes of data.
64 bytes from 192.168.200.98: icmp_seq=1 ttl=128 time=61.8 ms
64 bytes from 192.168.200.98: icmp_seq=2 ttl=128 time=30.9 ms
--- 192.168.200.98 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 30.955/46.413/61.871/15.458 ms
ホストOS にも ぱそこん にも疎通がとれる。
C:\Users\Administrator>ping 192.168.10.121
192.168.10.121 に ping を送信しています 32 バイトのデータ:
要求がタイムアウトしました。
要求がタイムアウトしました。
しかし ぱそこん → ゲストOS に疎通が届かない。
[root@localhost ~]# ssh 192.168.10.120 -l udon
udon@192.168.10.120's password:
Last login: Fri Dec 13 09:37:48 2019 from 192.168.200.98
[udon@kvm_host ~]$ who
udon pts/0 2019-12-13 09:30 (192.168.200.98)
udon pts/2 2019-12-13 10:37 (192.168.100.96)
ゲストOS → ホストOS に接続して who
を実行するとゲストOSのIPが 192.168.100.96
になっている。
[root@localhost ~]# ip addr show eth0.10
4: eth0.10@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 52:54:00:51:cc:92 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.96/16 brd 192.168.255.255 scope global dynamic eth0.10
valid_lft 42269sec preferred_lft 42269sec
inet6 fe80::f152:b35b:5f06:6c6/64 scope link
valid_lft forever preferred_lft forever
OOPS
そうか、静的 IP (ipv4.method manual
)を設定する前に DHCP
で IP とってきてたか。
該当の IF を再起動する。
[root@localhost ~]# nmcli con down eth0.10
接続 'eth0.10' が正常に非アクティブ化されました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/5)
[root@localhost ~]# nmcli dev
デバイス タイプ 状態 接続
eth0 ethernet 接続中(IP 設定を取得中) eth0
lo loopback 管理無し --
[root@localhost ~]# nmcli con up eth0.10
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/17
[root@localhost ~]# nmcli dev
デバイス タイプ 状態 接続
eth0.10 vlan 接続済み eth0.10
eth0 ethernet 接続中(IP 設定を取得中) eth0
lo loopback 管理無し --
[root@localhost ~]# ip addr show eth0.10
5: eth0.10@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 52:54:00:51:cc:92 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.121/16 brd 192.168.255.255 scope global eth0.10
valid_lft forever preferred_lft forever
inet6 fe80::f152:b35b:5f06:6c6/64 scope link
valid_lft forever preferred_lft forever
めでたく。
C:\Users\Administrator>ping 192.168.10.121
192.168.10.121 に ping を送信しています 32 バイトのデータ:
192.168.10.121 からの応答: バイト数 =32 時間 =62ms TTL=64
192.168.10.121 からの応答: バイト数 =32 時間 =31ms TTL=64
192.168.10.121 からの応答: バイト数 =32 時間 =31ms TTL=64
192.168.10.121 からの応答: バイト数 =32 時間 =31ms TTL=64
192.168.10.121 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 31ms、最大 = 62ms、平均 = 38ms
ぱそこんからも届く。
内向けIF 設定
仮想マシンに IF を追加するため一度停止する。
[root@localhost ~]# shutdown -h now
Powering off.
[ 4726.878587] Power down.
$ sudo virsh list --all
Id 名前 状態
----------------------------------------------------
- openstack_cmpt_1 シャットオフ
- openstack_cmpt_2 シャットオフ
- openstack_cmpt_3 シャットオフ
- openstack_cmpt_4 シャットオフ
- openstack_ctrl シャットオフ
仮想マシンに IF を追加する。
[udon@kvm_host ~]$ sudo ls -l /etc/libvirt/qemu/openstack_ctrl.xml
-rw-------. 1 root root 3718 12月 12 11:48 /etc/libvirt/qemu/openstack_ctrl.xml
[udon@kvm_host ~]$ sudo vim /etc/libvirt/qemu/openstack_ctrl.xml
----------------------------------------------------------------------
:(省略)
<interface type='bridge'>
<mac address='52:54:00:51:cc:92'/>
<source bridge='br2'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
+ <interface type='network'>
+ <source network='internal_lan'/>
+ <model type='virtio'/>
+ </interface>
:(省略)
----------------------------------------------------------------------
[udon@kvm_host ~]$ sudo virsh define /etc/libvirt/qemu/openstack_ctrl.xml
ドメイン openstack_ctrl が /etc/libvirt/qemu/openstack_ctrl.xml から定義されました
[udon@kvm_host ~]$ sudo virsh start openstack_ctrl
ドメイン openstack_ctrl が起動されました
ssh
などで先に作成した外部 IF に接続。
[root@localhost ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 52:54:00:51:cc:92 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 52:54:00:0b:e8:0a brd ff:ff:ff:ff:ff:ff
4: eth0.10@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT qlen 1000
link/ether 52:54:00:51:cc:92 brd ff:ff:ff:ff:ff:ff
IF が追加されていることを確認。
あとの設定は同じ。
[root@localhost ~]# nmcli con
名前 UUID タイプ デバイス
eth0.10 5f995a1a-29b4-4366-96f0-d2f00f5e8051 vlan eth0.10
eth0 47162d81-5bb7-45f6-b487-d98c6d6e109d 802-3-ethernet --
有線接続 1 ccebedd6-fc9b-34db-8534-3886fe815009 802-3-ethernet --
新たに接続した eth1
が 有線接続 1
という名前になっている。
一度削除して再作成する。
[root@localhost ~]# nmcli con del "有線接続 1"
接続 '有線接続 1' (ccebedd6-fc9b-34db-8534-3886fe815009) が正常に削除されました。
[root@localhost ~]# nmcli con
名前 UUID タイプ デバイス
eth0.10 5f995a1a-29b4-4366-96f0-d2f00f5e8051 vlan eth0.10
eth0 47162d81-5bb7-45f6-b487-d98c6d6e109d 802-3-ethernet --
[root@localhost ~]# nmcli con add type ethernet ifname eth1 con-name eth1
接続 'eth1' (4977f7ab-0e84-4cae-8a6d-a9e050880f3b) が正常に追加されました。
[root@localhost ~]# nmcli con
名前 UUID タイプ デバイス
eth0.10 5f995a1a-29b4-4366-96f0-d2f00f5e8051 vlan eth0.10
eth1 4977f7ab-0e84-4cae-8a6d-a9e050880f3b 802-3-ethernet eth1
eth0 47162d81-5bb7-45f6-b487-d98c6d6e109d 802-3-ethernet --
[root@localhost ~]# nmcli dev
デバイス タイプ 状態 接続
eth0.10 vlan 接続済み eth0.10
eth1 ethernet 接続中(IP 設定を取得中) eth1
eth0 ethernet 切断済み --
lo loopback 管理無し --
[root@localhost ~]# nmcli con mod eth1 \
connection.autoconnect yes \
ipv4.method manual \
ipv4.address "172.19.1.1/23"
[root@localhost ~]# nmcli con down eth1
接続 'eth1' が正常に非アクティブ化されました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/30)
[root@localhost ~]# nmcli con up eth1
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/31)
[root@localhost ~]# nmcli dev
デバイス タイプ 状態 接続
eth1 ethernet 接続済み eth1
eth0.10 vlan 接続済み eth0.10
eth0 ethernet 接続中(IP 設定を取得中) eth0
lo loopback 管理無し --
[root@localhost ~]# nmcli con
名前 UUID タイプ デバイス
eth0 47162d81-5bb7-45f6-b487-d98c6d6e109d 802-3-ethernet eth0
eth0.10 5f995a1a-29b4-4366-96f0-d2f00f5e8051 vlan eth0.10
eth1 4977f7ab-0e84-4cae-8a6d-a9e050880f3b 802-3-ethernet eth1
[root@localhost ~]# ip addr show eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:0b:e8:0a brd ff:ff:ff:ff:ff:ff
inet 172.19.1.1/23 brd 172.19.1.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::535f:d425:c0bb:93cd/64 scope link
valid_lft forever preferred_lft forever
[root@localhost ~]# ping 172.19.0.1
PING 172.19.0.1 (172.19.0.1) 56(84) bytes of data.
64 bytes from 172.19.0.1: icmp_seq=1 ttl=64 time=0.275 ms
64 bytes from 172.19.0.1: icmp_seq=2 ttl=64 time=0.125 ms
64 bytes from 172.19.0.1: icmp_seq=3 ttl=64 time=0.104 ms
^C
--- 172.19.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.104/0.168/0.275/0.076 ms
再起動
設定した値が正しいことを確認するため、一度ゲスト OS を再起動してみる。
再起動時のブートログが見たいので、ホスト OS からコンソール接続する。
[udon@kvm_host ~]$ sudo virsh console openstack_ctrl
ドメイン openstack_ctrl に接続しました
エスケープ文字は ^] です
root
パスワード:
最終ログイン: Fri Dec 13 05:36:02 192.168.10.120 から
[root@localhost ~]# shutdown -r now
Rebooting.
[ 1696.516847] Restarting system.
:(省略)
CentOS Linux 7 (Core)
Kernel 3.10.0-514.el7.x86_64 on an x86_64
localhost login:
コンソールから抜けるときは Ctrl + ]
を押下。
SSHで接続してIFを確認する。
[root@localhost ~]# nmcli dev
デバイス タイプ 状態 接続
eth1 ethernet 接続済み eth1
eth0.10 vlan 接続済み eth0.10
eth0 ethernet 接続中(IP 設定を取得中) 有線接続 1
lo loopback 管理無し --
[root@localhost ~]# nmcli con
名前 UUID タイプ デバイス
eth0.10 5f995a1a-29b4-4366-96f0-d2f00f5e8051 vlan eth0.10
eth1 4977f7ab-0e84-4cae-8a6d-a9e050880f3b 802-3-ethernet eth1
有線接続 1 6df789a5-c226-3f68-b5d1-2280a0a55c60 802-3-ethernet eth0
あれ、今度は eth0
が 有線接続
になってしまった。
[root@localhost ~]# nmcli con del "有線接続 1"
接続 '有線接続 1' (6df789a5-c226-3f68-b5d1-2280a0a55c60) が正常に削除されました。
[root@localhost ~]# nmcli con add type ethernet ifname eth0 con-name eth0
接続 'eth0' (1e5c6e1e-4fc5-427c-99fe-c164501b2748) が正常に追加されました。
[root@localhost ~]# nmcli con mod eth0 connection.autoconnect no
再度コンソールから再起動
[udon@kvm_host ~]$ sudo virsh console openstack_ctrl
ドメイン openstack_ctrl に接続しました
エスケープ文字は ^] です
root
パスワード:
最終ログイン: Fri Dec 13 05:36:02 192.168.10.120 から
[root@localhost ~]# shutdown -r now
Rebooting.
[ 1696.516847] Restarting system.
:(省略)
CentOS Linux 7 (Core)
Kernel 3.10.0-514.el7.x86_64 on an x86_64
localhost login:root
パスワード:
最終ログイン: Fri Dec 13 06:08:02 ttyS0 上
[root@localhost ~]# nmcli con
名前 UUID タイプ デバイス
eth0.10 5f995a1a-29b4-4366-96f0-d2f00f5e8051 vlan eth0.10
eth1 4977f7ab-0e84-4cae-8a6d-a9e050880f3b 802-3-ethernet eth1
eth0 1e5c6e1e-4fc5-427c-99fe-c164501b2748 802-3-ethernet --
[root@localhost ~]# nmcli dev
デバイス タイプ 状態 接続
eth1 ethernet 接続済み eth1
eth0.10 vlan 接続済み eth0.10
eth0 ethernet 切断済み --
lo loopback 管理無し --
完了。
その他気にした方がいいDoc
-
19.11. 物理インターフェースに直接に接続する
- ホストの物理 IF を エミュレートしてられないぐらい帯域・品質が求められる場合に使用するのかな?