1.基礎(chǔ)知識1.1 路由 (Routing)1.1.1 路由策略 (使用 ip rule 命令操作路由策略數(shù)據(jù)庫)基于策略的路由比傳統(tǒng)路由在功能上更強大,使用更靈活,它使網(wǎng)絡(luò)管理員不僅能夠根據(jù)目的地址而且能夠根據(jù)報文大小、應(yīng)用或IP源地址等屬性來選擇轉(zhuǎn)發(fā)路徑。 ip rule 命令:
例子:
在 Linux 系統(tǒng)啟動時,內(nèi)核會為路由策略數(shù)據(jù)庫配置三條缺省的規(guī)則:
不要混淆路由表和策略:規(guī)則指向路由表,多個規(guī)則可以引用一個路由表,而且某些路由表可以沒有策略指向它。如果系統(tǒng)管理員刪除了指向某個路由表的所有規(guī)則,這個表就沒有用了,但是仍然存在,直到里面的所有路由都被刪除,它才會消失。 (資料來源) 1.1.2 路由表 (使用 ip route 命令操作靜態(tài)路由表)所謂路由表,指的是路由器或者其他互聯(lián)網(wǎng)網(wǎng)絡(luò)設(shè)備上存儲的表,該表中存有到達(dá)特定網(wǎng)絡(luò)終端的路徑,在某些情況下,還有一些與這些路徑相關(guān)的度量。路由器的主要工作就是為經(jīng)過路由器的每個數(shù)據(jù)包尋找一條最佳的傳輸路徑,并將該數(shù)據(jù)有效地傳送到目的站點。由此可見,選擇最佳路徑的策略即路由算法是路由器的關(guān)鍵所在。為了完成這項工作,在路由器中保存著各種傳輸路徑的相關(guān)數(shù)據(jù)——路由表(Routing Table),供路由選擇時使用,表中包含的信息決定了數(shù)據(jù)轉(zhuǎn)發(fā)的策略。打個比方,路由表就像我們平時使用的地圖一樣,標(biāo)識著各種路線,路由表中保存著子網(wǎng)的標(biāo)志信息、網(wǎng)上路由器的個數(shù)和下一個路由器的名字等內(nèi)容。路由表根據(jù)其建立的方法,可以分為動態(tài)路由表和靜態(tài)路由表。 linux 系統(tǒng)中,可以自定義從 1-252個路由表,其中,linux系統(tǒng)維護了4個路由表:
路由表的查看可有以下二種方法:
路由表序號和表名的對應(yīng)關(guān)系在 /etc/iproute2/rt_tables 文件中,可手動編輯。路由表添加完畢即時生效,下面為實例:
以下面的路由表為例: Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.123.254 192.168.123.88 1 #缺省路由,目的地址不在本路由表中的數(shù)據(jù)包,經(jīng)過本機的 192.168.123.88 接口發(fā)到下一個路由器 192.168.123.254 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 #發(fā)給本機的網(wǎng)絡(luò)包 192.168.123.0 255.255.255.0 192.168.123.68 192.168.123.68 1 #直連路由。目的地址為 192.168.123.0/24 的包發(fā)到本機 192.168.123.88 接口 192.168.123.88 255.255.255.255 127.0.0.1 127.0.0.1 1 #目的地址為 192.168.123.88的包是發(fā)給本機的包 192.168.123.255 255.255.255.255 192.168.123.88 192.168.123.88 1 #廣播包的網(wǎng)段是 192.168.123.0/24,經(jīng)過 192.168.123.88 接口發(fā)出去 224.0.0.0 224.0.0.0 192.168.123.88 192.168.123.88 1 #多播包,經(jīng)過 192.168.123.88 接口發(fā)出去 255.255.255.255 255.255.255.255 192.168.123.68 192.168.123.68 1 #全網(wǎng)廣播包 Default Gateway: 192.168.123.254 各字段說明:
根據(jù)子網(wǎng)掩碼,可以將路由分為三種類型:
Destination Gateway Genmask Flags Metric Ref Use Iface ----------- ------- ------- ----- ------ --- --- ----- 10.0.0.10 192.168.1.1 255.255.255.255 UH 0 0 0 eth0
Destination Gateway Genmask Flags Metric Ref Use Iface ----------- ------- ------- ----- ----- --- --- ----- 192.19.12 192.168.1.1 255.255.255.0 UN 0 0 0 eth0
Destination Gateway Genmask Flags Metric Ref Use Iface ----------- ------- ------- ----- ------ --- --- ----- default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 設(shè)置和查看路由表都可以用 route 命令,設(shè)置內(nèi)核路由表的命令格式是:route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If] 其中:
比如:
關(guān)于 src 屬性: 當(dāng)一個主機有多個網(wǎng)卡配置了多個 IP 的時候,對于它產(chǎn)生的網(wǎng)絡(luò)包,可以在路由選擇時設(shè)置源 IP 地址。比如:
要注意的是,src 選項只會影響該 host 上產(chǎn)生的網(wǎng)絡(luò)包。如果是一個被路由的外來包,明顯地它已經(jīng)帶有了一個源 IP 地址,這時候,src 參數(shù)的配置對它沒有任何影響,除非你使用 NAT 來改變它。對 Neutron 來說,qrouter 和 qif namespace 中的路由表中的 src 都沒有實際意義,因為它們只會處理外來的網(wǎng)絡(luò)包。 1.1.3 路由分類之靜態(tài)路由靜態(tài)路由是指由用戶或網(wǎng)絡(luò)管理員手工配置的路由信息。當(dāng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)或鏈路的狀態(tài)發(fā)生變化時,網(wǎng)絡(luò)管理員需要手工去修改路由表中相關(guān)的靜態(tài)路由信息。靜態(tài)路由信息在缺省情況下是私有的,不會傳遞給其他的路由器。當(dāng)然,網(wǎng)管員也可以通過對路由器進行設(shè)置使之成為共享的。靜態(tài)路由一般適用于比較簡單的網(wǎng)絡(luò)環(huán)境,在這樣的環(huán)境中,網(wǎng)絡(luò)管理員易于清楚地了解網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),便于設(shè)置正確的路由信息。 以上面的拓?fù)浣Y(jié)構(gòu)為例,在沒有配置路由的情況下,計算機1 和 2 無法互相通信,因為 1 發(fā)給 2 的包在到達(dá)路由器 A 后,它不知道怎么轉(zhuǎn)發(fā)它。B 也同樣。管理員可以配置如下的靜態(tài)路由來實現(xiàn) 1 和 2 之間的通信: 計算機配置默認(rèn)網(wǎng)關(guān):
路由器配置:
或者
(來源:http://baike.baidu.com/view/911.htm) 1.1.4 路由分類之動態(tài)路由動態(tài)路由是指路由器能夠自動地建立自己的路由表,并且能夠根據(jù)實際情況的變化適時地進行調(diào)整。它是與靜態(tài)路由相對的一個概念,指路由器能夠根據(jù)路由器之間的交換的特定路由信息自動地建立自己的路由表,并且能夠根據(jù)鏈路和節(jié)點的變化適時地進行自動調(diào)整。當(dāng)網(wǎng)絡(luò)中節(jié)點或節(jié)點間的鏈路發(fā)生故障,或存在其它可用路由時,動態(tài)路由可以自行選擇最佳的可用路由并繼續(xù)轉(zhuǎn)發(fā)報文。 常見的動態(tài)路由協(xié)議有以下幾個:路由信息協(xié)議(RIP)、OSPF(Open Shortest Path First開放式最短路徑優(yōu)先)、IS-IS(Intermediate System-to-Intermediate System,中間系統(tǒng)到中間系統(tǒng))、邊界網(wǎng)關(guān)協(xié)議(BGP)是運行于 TCP 上的一種自治系統(tǒng)的路由協(xié)議。 (來源:http://baike.baidu.com/view/897.htm) 1.1.5 ip rule,ip route,iptables 三者之間的關(guān)系以一例子來說明:公司內(nèi)網(wǎng)要求192.168.0.100 以內(nèi)的使用 10.0.0.1 網(wǎng)關(guān)上網(wǎng) (電信),其他IP使用 20.0.0.1 (網(wǎng)通)上網(wǎng)。
因為 mangle 的處理是優(yōu)先于 nat 和 fiter 表的,所以在數(shù)據(jù)包到達(dá)之后先打上標(biāo)記,之后再通過 ip rule 規(guī)則,對應(yīng)的數(shù)據(jù)包使用相應(yīng)的路由表進行路由,最后讀取路由表信息,將數(shù)據(jù)包送出網(wǎng)關(guān)。 (來源:使用 ip route , ip rule , iptables 配置策略路由。這里 有一個更詳細(xì)的例子) 這里可以看出 Netfilter 處理網(wǎng)絡(luò)包的先后順序:接收網(wǎng)絡(luò)包,先 DNAT,然后查路由策略,查路由策略指定的路由表做路由,然后 SNAT,再發(fā)出網(wǎng)絡(luò)包。 1.1.6 Traceroute 工具我們在 linux 機器上,使用 traceroute 來獲知從你的計算機到互聯(lián)網(wǎng)另一端的主機是走的什么路徑。當(dāng)然每次數(shù)據(jù)包由某一同樣的出發(fā)點(source)到達(dá)某一同樣的目的地(destination)走的路徑可能會不一樣,但基本上來說大部分時候所走的路由是相同的。在 MS Windows 中該工具為 tracert。 在大多數(shù)情況下,我們會在linux主機系統(tǒng)下,直接執(zhí)行命令行:traceroute hostname;而在Windows系統(tǒng)下是執(zhí)行tracert的命令: tracert hostname。
(1)例子 [root@localhost ~]# traceroute www.baidu.com traceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets 1 192.168.74.2 (192.168.74.2) 2.606 ms 2.771 ms 2.950 ms 2 211.151.56.57 (211.151.56.57) 0.596 ms 0.598 ms 0.591 ms 3 211.151.227.206 (211.151.227.206) 0.546 ms 0.544 ms 0.538 ms 4 210.77.139.145 (210.77.139.145) 0.710 ms 0.748 ms 0.801 ms 5 202.106.42.101 (202.106.42.101) 6.759 ms 6.945 ms 7.107 ms 6 61.148.154.97 (61.148.154.97) 718.908 ms * bt-228-025.bta.net.cn (202.106.228.25) 5.177 ms 7 124.65.58.213 (124.65.58.213) 4.343 ms 4.336 ms 4.367 ms 8 202.106.35.190 (202.106.35.190) 1.795 ms 61.148.156.138 (61.148.156.138) 1.899 ms 1.951 ms 9 * * * 30 * * * 說明:
(2)原理 Traceroute 程序的設(shè)計是利用 ICMP 及 IP header 的 TTL(Time To Live)欄位(field)。
Traceroute 在送出 UDP datagrams 到目的地時,它所選擇送達(dá)的 port number 是一個一般應(yīng)用程序都不會用的號碼(30000 以上),所以當(dāng)此 UDP datagram 到達(dá)目的地后該主機會送回一個「ICMP port unreachable」的消息,而當(dāng)traceroute 收到這個消息時,便知道目的地已經(jīng)到達(dá)了。所以traceroute 在Server端也是沒有所謂的Daemon 程式。Traceroute提取發(fā) ICMP TTL 到期消息設(shè)備的 IP 地址并作域名解析。每次 ,Traceroute 都打印出一系列數(shù)據(jù),包括所經(jīng)過的路由設(shè)備的域名及 IP地址,三個包每次來回所花時間。 (以上資料來自互聯(lián)網(wǎng)) |
|
|
來自: just_person > 《待分類》