linux 進階路由即基於策略的路由比傳統路由在功能上更強大,使用也更靈活,它不僅能夠根據目的地址來轉寄路徑而且也能夠根據報文大小、應用或ip源地址來選擇路由轉寄路徑從而讓系統管理員能輕鬆做到:
1、 管制某台電腦的頻寬。
2、 管制通向某台電腦的頻寬
3、 協助你公平地共用頻寬
4、 保護你的網路不受DOS的攻擊
5、 保護你的Internet不受到你的客戶的攻擊
6、 把多台伺服器虛擬成一台,並進行負載平衡或者提高可用性
7、 限制你的使用者訪問某些電腦
8、 限制對你的電腦的訪問
9、 基於使用者帳號、MAC地址、源IP地址、連接埠、QOS《TOS》、時間或者content等進行路由
一、進階路由的基礎IP ROUTE2
基本命令:
ip link list 顯示ip鏈路狀態資訊
ip address show 除顯示所有網路地址
ip route show 顯示主路由表資訊
ip neigh show 顯示鄰居表
linux系統路由表
linux可以自訂從1-252個路由表,
linux系統維護了4個路由表:
0#表 系統保留表
253#表 defulte table 沒特別指定的預設路由都放在改表
254#表 main table 沒指明路由表的所有路由放在該表
255#表 locale table 儲存本地介面地址,廣播位址、NAT地址 由系統維護,使用者不得更改
路由表的查看可有以下二種方法:
ip route list table table_number
ip route list table table_name
路由表序號和表名的對應關係在/etc/iproute2/rt_tables中,可手動編輯
路由表添加完畢即時生效,下面為執行個體
ip route add default via 192.168.1.1 table 1 在一號表中添加預設路由為192.168.1.1
ip route add 192.168.0.0/24 via 192.168.1.2 table 1 在一號表中添加一條到192.168.0.0網段的路由為192.168.1.2
注:各路由表中應當指明預設路由,盡量不回查路由表.路由添加完畢,即可在路由規則中應用..
二、進階路由重點之一路由規則 ip rule
進行路由時,根據路由規則來進行匹配,按優先順序(pref)從低到高匹配,直到找到合適的規則.所以在應用中配置預設路由是必要的..
ip rule show 顯示路由規則
路由規則的添加
ip rule add from 192.168.1.10/32 table 1 pref 100
如果pref值不指定,則將在已有規則最小序號前插入
註:建立完路由規則若需立即生效須執行#ip route flush cache;重新整理路由緩衝
可參數解析如下: &n
From -- 源地址
To -- 目的地址(這裡是選擇規則時使用,尋找路由表時也使用)
Tos -- IP包頭的TOS(type of sevice)域Linux進階路由-
Dev -- 物理介面
Fwmark -- iptables標籤
採取的動作除了指定路由表外,還可以指定下面的動作:
Table 指明所使用的表
Nat 透明網關
Prohibit 丟棄該包,並發送 COMM.ADM.PROHIITED的ICMP資訊
Reject 單純丟棄該包
Unreachable丟棄該包, 並發送 NET UNREACHABLE的ICMP資訊
具體格式如下:更強大,使用更靈活,它使網路系統管理員不僅能
Usage: ip rule [ list | add | del ] SELECTOR ACTION
SELECTOR := [ from PREFIX ] [ to PREFIX ] [ tos TOS ][ dev STRING ] [ pref NUMBER ]
ACTION := [ table TABLE_ID ] [ nat ADDRESS ][ prohibit | reject | unreachable ]
[ flowid CLASSID ]
TABLE_ID := [ local | main | default | new | NUMBER ]
1.策略路由
基於策略的路由比傳統路由在功能上更強大,使用更靈活,它使網路系統管理員不僅能夠根據目的地址而且能夠根據報文大小、應用或IP源地址來選擇轉寄路徑...
#/etc/iproute2/rt_tables 此檔案存有linux 系統路由表預設表有255 254 253三張表
255 local 本地路由表存有本地介面地址,廣播位址,已及NAT地址.
local表由系統自動維護..管理員不能操作此表...
254 main 主路由表 傳統路由表,ip route若沒指定表亦動作表254.一般存所有的路由..
注:平時用ip ro sh查看的亦是此表設定的路由.
253 default 預設路由表一般存放預設路由...
註:rt_tables檔案中表以數字來區分表0保留最多支援255張表
路由表的查看可有以下二種方法:
#ip route list table table_number #ip route list table table_name 路由表添加完畢,即可在策略路由表內添加路由例: #ip route add 192.168.1.0/24 dev eth0 via 192.168.1.66 realm 4 注:發往子網192.168.1.0/24的資料包通過分類4轉寄配合tc使用,後文有介紹講解... #ip route add default via 192.168.1.1 table int1 #ip route add 192.168.1.0/24 via 192.168.1.1 table int2 #ip route add 172.16.0.2/16 via 172.16.0.1 table int3 注:各路由表中應當指明預設路由,盡量不回查路由表.路由添加完畢,即可在路由規則中應用..
#ip rule sh 顯示路由規則
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
進行路由時,正是根據路由規則來進行匹配,按優先順序(pref後數值)從高到低匹配,直到找到合適的規則.所以在應用中配置預設路由是必要的..
策略路由一般手工添加路由表,路由表的添加只需編輯rt_tables檔案,規定表序號,表名即可..
ip rule規則添加樣本:
#ip rule add from 192.168.1.112/32 [tos 0x10] table test2 pref 999 prohibit
#ip rule add to 192.168.1.2 pref 1000 table test1
#ip rule add from 192.168.1.0/24 pref 1001 table test1
#ip rule add [from 0/0] table test1 pref 1003
#ip rule add fwmark 1 pref 1002 table test2 此句型配合iptables -t mangle應用.如先對資料 包作標記: #iptables -t mangle -A PREROUTING -p tcp -m multiport --dports 80,8080,20,21 -s 192.168.1.0/24 -j MARK --set-mark 1
註:建立完路由規則若需立即生效須執行#ip route flush cache;重新整理路由緩衝
可參數解析如下:
From -- 源地址
To -- 目的地址(這裡是選擇規則時使用,尋找路由表時也使用)
Tos -- IP包頭的TOS(type of sevice)域
Dev -- 物理介面
Fwmark -- 防火牆參數
採取的動作除了指定路由表外,還可以指定下面的動作:
Table 指明所使用的表
Nat 透明網關 Prohibit 丟棄該包,並發送 COMM.ADM.PROHIITED的ICMP資訊
Reject 單純丟棄該包
Unreachable丟棄該包, 並發送 NET UNREACHABLE的ICMP資訊
具體格式如下:
Usage: ip rule [ list | add | del ] SELECTOR ACTION
SELECTOR := [ from PREFIX ] [ to PREFIX ] [ tos TOS ][ dev STRING ] [ pref NUMBER ]
ACTION := [ table TABLE_ID ] [ nat ADDRESS ][ prohibit | reject | unreachable ]
[ flowid CLASSID ]
TABLE_ID := [ local | main | default | new | NUMBER ] 2.網卡捆綁(網關linux+多網卡) #modprobe bonding mod=1 miimon=200 primary=eth1 建立bond0,模式為1,主網卡eth1.. #ip addr add dev bond$ 10.0.0.1/24 設定bond0的IP #ifenslave bond0 eth1 eth2 添加綁定的dev 注:mode=0 輪轉均衡(預設模式),此模式MAC頻繁切換導致交換器負載大.. mode=1 主備模式 用primary指定網卡 mode=4 常用 802.3ad模式,動態鏈路採集模式.此模式要求SWITCH捆綁.. miimon=ms 每隔多少毫秒查詢鏈路是否有效. 其它參數如: arp_interval=ms arp_ip_target=*.*.*.* 另一種網卡捆綁固化方式: #vi /etc/modules.conf 加入以下行 alias bond0 bonding 系統在啟動時載入bonding模組,對外虛擬網路介面裝置為 bond0.. #cd /etc/sysconfig/network-scripts #vi ifcfg-bond0 DEVICE=bond0
IPADDR=11.0.0.1
NETMASK=255.0.0.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
ONBOOT=yes
BOOTPROTO=none
USERCTL=no #vi ifcfg-eth0
DEVICE=eth0
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none #vi ifcfg-eth1
DEVICE=eth0
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none #/etc/init.d/network restart 重啟網路服務驗證網卡的配置資訊備份網卡被加上了NOARP標記 #cat /proc/net/bond0/info 查看bond資訊 3.橋接器(Linux+多網卡) 組態工具 brctl http://bridge.sourceforge.net/ 源碼包名:bridge-utils-*形式 安裝第一步:autoconf 後類同於源碼包安裝.. 例.linu+二網卡eth0 eth1 配置成橋接器 配置前去除加入橋接器的eth0 eth1的IP #ifconfig eth0/eth1 down #ifconfig eth0/eth1 0.0.0.0 up #brctl addbr br0 #brctl addif br0 eth0 eth1 #ip li set dev br0 up #brctl showmacs br0 顯示橋接器MAC
撤橋接器: #ip li set dev br0 down #brctl delif br0 eth0 eth1 #brctl delbr br0 橋接器介面處亦可進行流量控制,無Ip的linux橋接器可有效防禦外界的功擊,對linux橋接器機的總控安全性高... 貼上一篇橋接器應用執行個體,此執行個體是橋接器的一種擴張應用... 指令碼名:start_bridge.sh #!/bin/sh brctl addbr net1
brctl addif net1 eth0
ifconfig eth0 down
ifconfig eth0 0.0.0.0 up
ifconfig net1 192.168.5.1 up
#ip ro del 192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.28 ip ro del 192.168.1.0/24
#route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.5.2 ip route add default via 192.168.5.2
echo "1" > /proc/sys/net/ipv4/ip_forward Linux進階路由需結合iptables才能充分體現其功能的強大,實際工作中的應用多半基於此,當然要熟練掌握Linux進階路由+iptables 還需進一步的加強學習和實踐的應用... -------------------------------------------------------------- ip rule
IP基本命令:
ip link list 顯示ip鏈路狀態資訊
ip address show 除顯示所有網路地址
ip route show 顯示主路由表資訊
ip neigh show 顯示鄰居表
linux系統路由表
linux可以自訂從1-252個路由表,
linux系統維護了4個路由表:
0#表 系統保留表
253#表 defulte table 沒特別指定的預設路由都放在改表
254#表 main table 沒指明路由表的所有路由放在該表
255#表 locale table 儲存本地介面地址,廣播位址、NAT地址 由系統維護,使用者不得更改
路由表的查看可有以下二種方法:
ip route list table table_number
ip route list table table_name
路由表序號和表名的對應關係在/etc/iproute2/rt_tables中,可手動編輯
路由表添加完畢即時生效,下面為執行個體
ip route add default via 192.168.1.1 table 1 在一號表中添加預設路由為192.168.1.1
ip route add 192.168.0.0/24 via 192.168.1.2 table 1 在一號表中添加一條到192.168.0.0網段的路由為192.168.1.2
注:各路由表中應當指明預設路由,盡量不回查路由表.路由添加完畢,即可在路由規則中應用..
二、進階路由重點之一路由規則 ip rule
進行路由時,根據路由規則來進行匹配,按優先順序(pref)從低到高匹配,直到找到合適的規則.所以在應用中配置預設路由是必要的..
ip rule show 顯示路由規則
路由規則的添加
ip rule add from 192.168.1.10/32 table 1 pref 100
如果pref值不指定,則將在已有規則最小序號前插入
註:建立完路由規則若需立即生效須執行#ip route flush cache;重新整理路由緩衝
可參數解析如下: &n
From — 源地址
To — 目的地址(這裡是選擇規則時使用,尋找路由表時也使用)
Tos — IP包頭的TOS(type of sevice)域Linux進階路由-
Dev — 物理介面
Fwmark — iptables標籤
採取的動作除了指定路由表外,還可以指定下面的動作:
Table 指明所使用的表
Nat 透明網關
Prohibit 丟棄該包,並發送 COMM.ADM.PROHIITED的ICMP資訊
Reject 單純丟棄該包
Unreachable丟棄該包, 並發送 NET UNREACHABLE的ICMP資訊
具體格式如下:更強大,使用更靈活,它使網路系統管理員不僅能
Usage: ip rule [ list | add | del ] SELECTOR ACTION
SELECTOR := [ from PREFIX ] [ to PREFIX ] [ tos TOS ][ dev STRING ] [ pref NUMBER ]
ACTION := [ table TABLE_ID ] [ nat ADDRESS ][ prohibit | reject | unreachable ]
[ flowid CLASSID ]
TABLE_ID := [ local | main | default | new | NUMBER ]
ip ruel 配置執行個體:
ip route del default
ip route add default via 192.168.33.1
ip rule add from 192.168.2.6 pref 1000 lookup cnline
ip rule add from 192.168.2.4 pref 1000 lookup cnline
ip rule add from 192.168.2.32 pref 1000 lookup cnline
ip rule add from 192.168.2.227 pref 1000 lookup cnline
ip rule add from 192.168.2.100 pref 1000 lookup cnline
ip rule add from 192.168.2.101 pref 1000 lookup cnline
ip rule add from 192.168.2.107 pref 1000 lookup cnline
ip rule add from 192.168.2.55 pref 1000 lookup cnline
ip rule add from 192.168.2.56 pref 1000 lookup cnline
ip rule add from 192.168.2.189 pref 1000 lookup cnline
ip rule add from 192.168.2.190 pref 1000 lookup cnline
ip rule add from 192.168.2.191 pref 1000 lookup cnline
ip rule add from 192.168.2.192 pref 1000 lookup cnline
ip rule add from 192.168.2.193 pref 1000 lookup cnline
ip rule add from 192.168.2.194 pref 1000 lookup cnline
ip rule add from 192.168.2.195 pref 1000 lookup cnline
ip rule add from 192.168.2.196 pref 1000 lookup cnline
ip rule add from 192.168.2.197 pref 1000 lookup cnline
ip rule add from 192.168.2.198 pref 1000 lookup cnline
#ip route add 192.168.0.0/24 via 192.168.33.1 table cnline
ip route add 58.14.0.0/15 via 192.168.33.1 table cnline
ip route add 58.16.0.0/16 via 192.168.33.1 table cnline
轉自:http://www.unixnotes.net/ip-rule.html?replytocom=25