linux内核路由反向检查,反向路径过滤
第13章 內核網絡參數
13.1. 反向路徑過濾
缺省情況下,路由器路由一切包,即使某些數據包“明顯地”不屬于你的網絡。一個簡單的例子就是私有IP空間溢出到了Internet上。如果你有一個網卡 帶有去往195.96.96.0/24的路由,你不會期望從這里收到來自212.64.94.1的數據包。
很多人都希望關掉這個功能,所以內核作者們按照這種要求做了。你可以利用/proc下的一些文件來配置內核是否使用這個功能。這種方法就叫“反向路徑過 濾”。基本上說,就是如果一個數據包的回應包不是從它來的網卡發出去,就認為這是一個偽造包,應該丟棄。
下面的片段將在所有的(包括將來的)網卡上啟用這個功能:
# for i in /proc/sys/net/ipv4/conf/*/rp_filter ;?do
> echo 2?> $i
> done
依照上面的例子,如果一個源地址是來自office+isp子網的數據包,卻從Linux路由器的eth1口到達,那么它將被丟棄。同理,如果一個來自 office子網的數據包卻聲明它來自防火墻外面的某個地方,也會被丟棄。
上面說的是完整的反向路徑過濾。卻省情況是只基于直接與網卡相接的子網地址進行過濾。這是因為完整的反向路徑過濾會破壞非對稱路由(就是說數據包從一條路 來而從另一條路離開——比如你在網絡中使用了動態路由(bgp、ospf、rip)或者比如衛星通訊,數據從衛星下行到路由器,上行數據則經過地面線路傳 輸。)。
如果你有這些情況,就可以簡單地關掉衛星下行數據要進入那塊網卡的rp_filter。如果你想看一看丟棄了哪些包,可以通過相同目錄下的 log_martians文件通知內核向你的syslog中寫日志。
# echo 1 >/proc/sys/net/ipv4/conf//log_martians
求助: is setting the conf/[default,all]/* files enough? -?martijn
總結
以上是生活随笔為你收集整理的linux内核路由反向检查,反向路径过滤的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 8g内存 swap,linu
- 下一篇: linux中进程的控制总结,Linux中