kuroの覚え書き

96の個人的覚え書き

CentOS7に仮想環境(続き)

f:id:k-kuro:20200620122334p:plain
こうなっているNAT接続を
f:id:k-kuro:20200620122434p:plain
こういうBridge接続に変える方法。

もともとKVMホストeno0にあてがっていた192.168.0.40をブリッジにあてがう。

# nmcli d
DEVICE      TYPE      STATE     CONNECTION 
eno0        ethernet  接続済み  有線接続 1 
virbr0      bridge    接続済み  virbr0     
eno1        ethernet  利用不可  --         
lo          loopback  管理無し  --         
virbr0-nic  tun       管理無し  --    

初期状態ではこうなっているはず。

# nmcli c a type bridge ifname br0
# nmcli c m bridge-br0 bridge.stp no
# nmcli c m bridge-br0 ipv4.method manual ipv4.address "192.168.0.40/24" ipv4.gateway "192.168.0.1" ipv4.dns 8.8.8.8
# nmcli c a type bridge-slave ifname eno0 master bridge-br0

ここまでやると

$ nmcli d
DEVICE      TYPE      STATE     CONNECTION 
eno0        ethernet  接続済み  有線接続 1 
br0         bridge    接続済み  bridge-br0 
virbr0      bridge    接続済み  virbr0     
eno1        ethernet  利用不可  --         
lo          loopback  管理無し  --         
virbr0-nic  tun       管理無し  --         
kkuro@kkuro-E5800-T110f-E:~$ nmcli c show
NAME               UUID                                  TYPE      DEVICE 
bridge-br0         46996087-e60a-4480-97bb-68eed1c0c354  bridge    br0    
virbr0             70df80ad-997e-4e47-9997-1ad9508861f8  bridge    virbr0 
有線接続 1         f32a9ca5-f080-307d-bc96-d24dd34c6432  ethernet  eno0   
bridge-slave-eno1  783fc200-6155-496b-8c39-09f1b03c8aec  ethernet  --     
有線接続 2         159a4b96-7520-3f02-8584-8d92dc89e7f7  ethernet  --   

この様になっているはず。
最後に不要となった物理NICのアドレス(有線接続 1)を削除する。

# nmcli c delete 有線接続\ 1
$ nmcli d
DEVICE      TYPE      STATE     CONNECTION        
br0         bridge    接続済み  bridge-br0        
virbr0      bridge    接続済み  virbr0            
eno0        ethernet  接続済み  bridge-slave-eno0 
eno1        ethernet  利用不可  --                
lo          loopback  管理無し  --                
virbr0-nic  tun       管理無し  -- 

$ nmcli c show
NAME               UUID                                  TYPE      DEVICE 
bridge-br0         46996087-e60a-4480-97bb-68eed1c0c354  bridge    br0    
bridge-slave-eno0  783fc200-6155-496b-8c39-09f1b03c8aec  ethernet  eno0   
virbr0             70df80ad-997e-4e47-9997-1ad9508861f8  bridge    virbr0 
有線接続 2         159a4b96-7520-3f02-8584-8d92dc89e7f7  ethernet  --


ここまではいいはず。
この状態でsshで192.168.0.40にアクセスするとKVMホストにログインできる。

仮想マシン

# virt-install --name kvm2 --memory 1024 --disk size=20 --vcpu 4 --location /tmp/CentOS-7-x86_64-DVD-1908.iso --network bridge=br0 --graphics none --extra-args='console=tty0 console=ttyS0'

で作成する。(sshで接続してインストールしているのでgraphics noneとしているが、実機でやっていたり、vnc環境なら--graphics以降はいらない)
インストールが始まったらNATを使う場合に空欄にしておいたnetworkの設定項目も入力する。
DHCPも使えるが、わざわざブリッジにするならやはりここはstaticアドレスを入れておきたい。
ネット空間はホストと同じ192.168.0.xxでOKだ。

これにて無事、仮想マシンに直接sshでログインできるようになった。
さて、ちゃんとできるになったことだしメインのサーバにも仮想マシンを立てて、通常の作業はそちらで行うのが良いだろうな。

# virt-clone --original kvm1 --name centos7template --file /home/kvm/images/centos7template.img

インストールした仮想環境をコピーしてテンプレートにしておけば環境をいくらでも増やしていける。disk imgはバックアップとしてすげ替えることも可能。

ここからは既存の仮想環境のネットワーク設定を変える試み。しかしうまくいっていない。普通に仮想環境を作り直したほうが早そうだ。

# nano host-bridge.xml
# cat host-bridge.xml
<network>
  <name>host-bridge</name>
  <forward mode="bridge" />
  <bridge name="br0"/>
</network>

# virsh net-define --file host-bridge.xml
# virsh net-autostart host-bridge

# virsh edit kvm1
<source network='default'/>

<source network='host-bridge'/>

に書き換える。