KVM虛擬機(jī)不能訪問(wèn)網(wǎng)關(guān)問(wèn)題排查
問(wèn)題的解決常常都會(huì)感覺(jué)很簡(jiǎn)單,但是排查的過(guò)程比較復(fù)雜和漫長(zhǎng),有時(shí)候簡(jiǎn)單的一個(gè)配置問(wèn)題需要花費(fèi)超出預(yù)期很長(zhǎng)的時(shí)間才能定位到。本文針對(duì)之前遇到的KVM虛擬機(jī)不能訪問(wèn)網(wǎng)關(guān)問(wèn)題排查的過(guò)程記錄下來(lái),供大家進(jìn)行參考!
背景介紹
實(shí)驗(yàn)室有個(gè)CentOS7的服務(wù)器,上面創(chuàng)建了若干個(gè)虛擬機(jī)。這些虛擬機(jī)之前使用都很正常。虛擬機(jī)通過(guò)網(wǎng)絡(luò)橋接模式,可以上外網(wǎng),訪問(wèn)同網(wǎng)段的其它節(jié)點(diǎn)。然而,當(dāng)某次下電之后,噩夢(mèng)就開(kāi)始了。宿主機(jī)上電之后,宿主機(jī)的網(wǎng)絡(luò)一切正常,訪問(wèn)外網(wǎng),其它節(jié)點(diǎn)機(jī)器都很正常。虛擬機(jī)啟動(dòng)也很正常,但是就是虛擬機(jī)的網(wǎng)絡(luò)異常:
虛擬機(jī)有時(shí)候能夠ping通宿主機(jī),有時(shí)候ping不通宿主機(jī);
虛擬機(jī)ping不通網(wǎng)關(guān)地址,同樣也不能訪問(wèn)同網(wǎng)段的其它地址;
宿主機(jī)可以ping通虛擬機(jī),也可以在宿主機(jī)上ssh登錄虛擬機(jī);
排查過(guò)程
因?yàn)樵谒拗鳈C(jī)下電之前,所有的使用都是正常的,因此配置方面不大可能出現(xiàn)問(wèn)題。根據(jù)現(xiàn)象,可以判斷是網(wǎng)橋的配置出現(xiàn)問(wèn)題,但是到底是哪個(gè)部分的問(wèn)題?為什么重新啟動(dòng)之后就發(fā)生變化了?
重啟節(jié)點(diǎn)或者網(wǎng)絡(luò)
稍微檢查了一下網(wǎng)絡(luò)之后,照例將宿主機(jī)重啟了一下,發(fā)現(xiàn)并沒(méi)有解決問(wèn)題。
(實(shí)踐證明,重啟宿主機(jī)或者虛擬機(jī)來(lái)解決問(wèn)題的可能性不大)
檢查網(wǎng)橋的網(wǎng)絡(luò)配置
因?yàn)樵趩?wèn)題出現(xiàn)前后并沒(méi)有做手動(dòng)配置的更改,因此這個(gè)方面的可能性幾乎不存在。為了穩(wěn)妥起見(jiàn),還是把宿主機(jī)上的配置檢查了一下
確認(rèn)網(wǎng)絡(luò)配置文件中沒(méi)有錯(cuò)別字或者書寫錯(cuò)誤;
確認(rèn)宿主機(jī)上網(wǎng)絡(luò)連接都是正常的(命令參考nmcli device 或者nmcli connection);
檢查路由的配置
在宿主機(jī)或者虛擬機(jī)中檢查路由的信息,配置都是正常的。
(命令參考route)
檢查網(wǎng)絡(luò)的狀態(tài)
檢查網(wǎng)橋的狀態(tài)(命令參考brctl show),這個(gè)時(shí)候就看到虛擬機(jī)啟動(dòng)之后生成的那些虛擬機(jī)網(wǎng)卡設(shè)備(vnetx)并沒(méi)有附著在網(wǎng)橋上。
使用命令brctl addif brx vnety 將目前啟動(dòng)的2個(gè)虛擬機(jī)的網(wǎng)卡附著在網(wǎng)橋上。
奇怪的是,現(xiàn)在再啟動(dòng)其它虛擬機(jī),對(duì)應(yīng)網(wǎng)卡就自動(dòng)附著在網(wǎng)橋上了,不需要手動(dòng)進(jìn)行添加操作。