41654


Container-Linux を KVM 上で運用しようと考えておりますが,  
構築時のネットワーク疎通でつまづいています.

ゲストである Container-Linux から KVM ホストへの ping 疎通はありますが,  
KVM ホストから ゲストへの ping 疎通が `Destination Host unreachable` となってしまいます.  
また, ゲストから外部セグメントへの疎通も行えませんでした.

ゲストのルーティングテーブルを確認(`ip route show`)したところ, 下記の出力を得ました.

[code]

    default via 192.168.101.126 dev lo proto static 
    default via 192.168.101.126 dev ens2 proto static 
    192.168.101.0/25 dev ens2 proto kernel scope link src 192.168.101.2 
    
[/code]

デフォルトルートの出力デバイスに `lo` が使われていると推測しております.  
`ip route del default via 192.168.101.126 dev lo` を実行することで,  
ゲストから外部セグメントへの ping 疎通は行えるようになりましたが,  
同セグメントの別ホスト及び KVM ホストからゲストへの疎通は行えません.  
しかし, 別セグメントのホストからゲストへの ping 疎通は得られました.

[code]

    (外部ホスト)192.168.64.4/24 -> (ゲスト)192.168.101.2/25 : OK!
    (KVMホスト)192.168.101.1/25 -> (ゲスト)192.168.101.2/25 : Unreachable
    (ゲスト)192.168.101.2 -> (KVMホスト)192.168.101.1 : OK!
    
[/code]

KVM ホスト, ゲスト共に iptables や firewalld の設定は無効化しています.  
以下よろしければご回答いただけますでしょうか.

  * この場合, 他に障害要因として考えられる要素は何でしょうか?
  * ゲストOSにて登録されている `lo` デバイスを利用するデフォルトルートエントリの登録要因として考えられる要素はございますか?

以上  
ご回答いただければ幸いです.  
どうぞよろしくお願いいたします.


CC BY-SA 3.0
2018-02-11T12:56:58.003
41653
2018-02-11T14:30:28.227
24423
question
linux network
Linux におけるデフォルトルートについて


自己解決しました.  
ゲストOSで `ip addr` を確認したところ, `lo` に本来のインターフェイスに設定されるべきアドレスが設定されていました.  
systemd-networkd の設定ファイルの内の `[Match]` 項を空白にしていたため,  
設定が `lo` デバイスにも適用されていたことが原因でした.  
`[Match]` 項に `MACAddress=` を追記した所, 想定外のルーティングテーブルエントリは解消され, KVMホストからの ping
も通るようになりました.

お騒がせしました.  
この質問についてはクローズとさせていただきます.


CC BY-SA 3.0
2018-02-11T14:30:28.227
41654
2018-02-11T14:30:28.227
24423
41653
answer