f rp_filter 對Oracle RAC Interconnect 的影響 ~ 迪貝之家

Pages

rp_filter 對Oracle RAC Interconnect 的影響

為了redundancy,特意加了一張網卡,結果就發生只能活著一個instance的狀況,我在工作週報上是這麼寫的
"加了網卡之後造成資料庫Instance只能啟動一個的狀況,問題是出在
該網卡的kernel 參數rp_filter未調成2,預設值為1。rp 兩字表示
reverse path,當一張網卡收到封包,作業系統核心的網路模組在1的
模式下會嚴謹地判斷收到的封包是否合理,不合理時,作業系統會把
封包丟掉,因而造成Oracle RAC Instance彼此間要溝通時出現
timeout,導致其中一個instance被踢掉;透過tcpdump查看封
包的來往時,有發現HAIP 不同網段封包的傳遞,原本以為是網路
swtich 上的設定問題,把作業系統相應網路介面的rp_filter值調成2
後,RAC Instance間無法溝通的問題就解決了,第二個instance也就
能順利開啟。2表示loose模式,作業系統核心會去判斷封包來源網段
在系統本身是否存在,1只收自身網卡綁定網段的IP封包。
這個機制是作業系統為了防範網路攻擊所衍生出來的行為。"

其實case一開始我就去看了trace file,只是建置之前就找了原廠來consult,說是HAIP 不同網段間不用通,就只能用其他的工具來交叉比對了
[grid@dbha1 ~]$ grep  169\.254 /u01/app/oracle/diag/rdbms/cdb/cdb1/trace/cdb1_lck0_20207.trc
IPCLW:[0.3]{-}[WAIT]:UTIL: [1564046613337096]      Local Address: 169.254.126.69:33097 Remote Address: 169.254.251.45:49917
[oracle@dbha1 trace]$ grep 169\.254  /u01/app/oracle/diag/rdbms/cdb/cdb1/trace/cdb1_lck0_14232.trc
IPCLW:[0.3]{-}[WAIT]:UTIL: [1563946449680871]      Local Address: 169.254.187.150:40852 Remote Address: 169.254.119.30:64953