路由器中的硬件IP路由表應(yīng)用解析
路由器配置前我們要知道路由器是信息網(wǎng)絡(luò)中實(shí)現(xiàn)網(wǎng)絡(luò)互聯(lián)的關(guān)鍵設(shè)備,它將不同網(wǎng)絡(luò)或網(wǎng)段之間的數(shù)據(jù)信息進(jìn)行“翻譯”,以實(shí)現(xiàn)網(wǎng)絡(luò)互聯(lián)和資源共享。下面就來看路由器的快速配置方法:
堵住安全漏洞
路由器同計(jì)算機(jī)及其他網(wǎng)絡(luò)設(shè)備一樣,自身也存在一些缺陷和漏洞。利用路由器自身缺點(diǎn)進(jìn)行網(wǎng)絡(luò)攻擊,是黑客常用的手段。因此,我們必須在堵住路由器安全漏洞上采取必要的措施。限制系統(tǒng)物理訪問是最有效的方法之一。它是將控制臺(tái)和終端會(huì)話路由器配置成在較短閑置時(shí)間后,自動(dòng)退出系統(tǒng),以堵住路由器的安全漏洞,保護(hù)整個(gè)網(wǎng)絡(luò)的安全。此外,應(yīng)避免將調(diào)制解調(diào)器連接到路由器的輔助端口。
避免身份危機(jī)
黑客常常利用弱口令或默認(rèn)口令進(jìn)行攻擊。加長口令,有助于防御這類攻擊。當(dāng)網(wǎng)絡(luò)管理人員調(diào)離或退出本崗位時(shí),應(yīng)立即更換口令。另外,還應(yīng)啟用路由器的口令加密功能。在大多數(shù)的路由器上,可以路由器配置一些協(xié)議,如遠(yuǎn)程驗(yàn)證撥入用戶服務(wù),結(jié)合驗(yàn)證服務(wù)器提供經(jīng)過加密、驗(yàn)證的路由器訪問,以加強(qiáng)路由器的安全系數(shù),提高整個(gè)網(wǎng)絡(luò)的安全性。
限制邏輯訪問
限制邏輯訪問,主要是借助于合理處置訪問控制列表,限制遠(yuǎn)程終端會(huì)話,有助于防止黑客獲得系統(tǒng)邏輯訪問。SSH是優(yōu)先的邏輯訪問方法,但如果無法避免TELNET,不妨使用終端訪問控制,以限制只能訪問可信主機(jī)。因此,需要給TELNET在路由器上使用的虛擬終端端口添加一份訪問列表。
控制消息協(xié)議ICMP有助于排除故障,但也為攻擊者提供了用來瀏覽網(wǎng)絡(luò)設(shè)備、確定時(shí)間戳和網(wǎng)絡(luò)掩碼以及對(duì)OS修正版本作出推測(cè)的信息。為了防止黑客搜集上述信息,只允許以下類型的ICMP流量進(jìn)入網(wǎng)絡(luò):ICMP網(wǎng)無法到達(dá)的、主機(jī)無法到達(dá)的、端口無法到達(dá)的、包太大的、源抑制的以及超出生存時(shí)間(TTL)的。此外,邏輯訪問控制還應(yīng)禁止ICMP流量以外的所有流量。
使用入站訪問控制,可將特定服務(wù)器引導(dǎo)至對(duì)應(yīng)的服務(wù)器。例如,只允許SMTP流量進(jìn)入郵件服務(wù)器;DNS流量進(jìn)入DNS服務(wù)器;通過安全套接協(xié)議層(SSL)的HTTP(HTTPS)流量進(jìn)入WEB服務(wù)器。為了避免路由器成為DoS攻擊目標(biāo),應(yīng)拒絕以下流量進(jìn)入:沒有IP地址的包,采用本地主機(jī)地址、廣播地址、多播地址以及任何假冒的內(nèi)部地址的包。還可以采取增加SYM ACK隊(duì)列長度、縮短ACK超時(shí)等措施,來保護(hù)路由器免受TCP SYN攻擊。
監(jiān)控路由器配置更改
在對(duì)路由器配置進(jìn)行改動(dòng)時(shí),需要對(duì)其進(jìn)行監(jiān)控。如果使用了SNMP,則一定要選擇功能強(qiáng)大的共用字符串,最好是使用提供消息加密功能的 SNMP。如果不通過SNMP管理而對(duì)設(shè)備進(jìn)行遠(yuǎn)程路由器配置,最好將SNMP設(shè)備路由器配置成只讀,拒絕對(duì)這些設(shè)備進(jìn)行寫訪問。這樣,能防止黑客改動(dòng)或關(guān)閉接口。此外,還要將系統(tǒng)日志信息從路由器發(fā)送至指定服務(wù)器。同時(shí),為進(jìn)一步確保安全管理,還可使用SSH等加密機(jī)制,利用SSH與路由器建立加密的遠(yuǎn)程會(huì)話。
實(shí)施路由器配置管理
配置管理的一個(gè)重要部分,就是確保網(wǎng)絡(luò)使用合理的路由器協(xié)議,避免使用路由信息協(xié)議(RIP)。因?yàn)镽IP很容易被欺騙而接受不合法的路由更新。所以,必須實(shí)施控制存放、檢索及更新路由器配置,以便在新配置出現(xiàn)問題時(shí)能更換、重裝或恢復(fù)到原先的路由器配置。
1. 路由器的體系結(jié)構(gòu)
圖1給出了一般路由器的邏輯體系結(jié)構(gòu)。它主要由下面幾部分組成 :路由引擎、轉(zhuǎn)發(fā)引擎、 路由表、網(wǎng)絡(luò)適配器和相關(guān)的邏輯電路等。轉(zhuǎn)發(fā)引擎負(fù)責(zé)把從一個(gè)網(wǎng)絡(luò)適配器來的數(shù)據(jù)包轉(zhuǎn)發(fā)到另一個(gè)網(wǎng)絡(luò)適配器出去。IP協(xié)議,包括對(duì)路由表的查找,構(gòu)成了轉(zhuǎn)發(fā)引擎中最主要的部分。由于每個(gè)通過路由器并需要其轉(zhuǎn)發(fā)的數(shù)據(jù)包都要對(duì)路由表進(jìn)行查找,所以路由表的查找效率如何往往決定了整個(gè)路由器的性能。路由引擎則包括了高層協(xié)議,特別是路由協(xié)議,它負(fù)責(zé)對(duì)路由表的更新。由于路由引擎不涉及通過路由器的數(shù)據(jù)通路,故它可用通用的CPU代替。
2.硬件路由表的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)
一般路由器中路由表的每一項(xiàng)至少有這樣的信息:目標(biāo)地址、網(wǎng)絡(luò)隱碼、下一跳地址。如果對(duì)每一個(gè)IP地址都要一個(gè)表項(xiàng),那么需要占用很大的2323*4字節(jié)的存儲(chǔ)器,而且其中必定有很多的表項(xiàng)沒有被使用,這就會(huì)造成極大的資源浪費(fèi)。
為了用硬件實(shí)現(xiàn)路由表的查找,查找算法需要滿足如下的條件:
1) 實(shí)時(shí)的實(shí)現(xiàn)路由表的查找;
2) 有效的實(shí)現(xiàn)路由表的插入和刪除;
3) 提供有效的最長前綴匹配;
4) 具有良好的可擴(kuò)展性;
5) 支持廣播和組播;
6) 有效的對(duì)Memory進(jìn)行利用;
7) 硬件上容易實(shí)現(xiàn),并具有良好的性能 。
我們考慮,如果在對(duì)路由表的查找中,把子網(wǎng)隱碼和IP地址結(jié)合起來,對(duì)IP地址進(jìn)行相應(yīng)的分段,并把它們相連。這樣在路由表的表項(xiàng)中,只有IP地址的一部分及其相應(yīng)的隱碼部分,可以實(shí)現(xiàn)良好的可擴(kuò)展性,只要對(duì)Memory進(jìn)行有效的管理,可以靈活的動(dòng)態(tài)的實(shí)現(xiàn)對(duì)路由的插入和刪除。鑒于此,我們?cè)O(shè)計(jì)該表的結(jié)構(gòu)(如下面的表一所示 ):
點(diǎn)擊查看大圖
它的思想是:把32位IPv4地址主要分成4部分,每部分8位。在該結(jié)構(gòu)中,Address-part[0-4]是IP地址中的一部分,Mask-part[0-4]是相應(yīng)的掩碼部分。Hit-next[0-4]是需要查找的目標(biāo)IP地址與掩碼部分相與后,與Address-part一致時(shí)所要查找的下一路由項(xiàng)所在地址的指針。,Miss-hit[0-4]則是相互不一致時(shí),下一路由項(xiàng)所在地址的指針。Shift位則用于判斷是否需要對(duì)IP地址中的下8位進(jìn)行查找和判斷。它只有在當(dāng)前的8位IP地址與目標(biāo)地址中相應(yīng)的8位一致時(shí),才會(huì)被置位。Stop位用于判斷是否還需進(jìn)行查找。它在IP地址查找結(jié)束時(shí)被置位,或沒有比當(dāng)前項(xiàng)所對(duì)應(yīng)的IP地址更長的路由表項(xiàng)時(shí)被置位。
圖2就是一個(gè)表1的例子 :
在該例子中,每一方框中上面一行表示相應(yīng)的IP地址部分和隱碼部分。下面一行表示相關(guān)的隱碼部分的二進(jìn)制表示。 相應(yīng)的查找算法如下:
/*查找算法開始 */
search = TRUE ;
WHILE ( search )
{
masked_key = key & ( entry ->mask_part ) ;
result = ( entry ->address_part ) = = masked_key
IF ( result = = TRUE ) {
best_match = entry ;
entryentry = entry ->hit_next;
}ELSE{ entryentry = entry ->miss_next;
IF ( entry ->stop = = TRUE ) search = FALSE;
}
}
RETURN best_match ;
/*查找算法結(jié)束 */
為了實(shí)現(xiàn)有效的插入和刪除,我們還要在路由表的數(shù)據(jù)結(jié)構(gòu)中再另外添加幾個(gè)域 :parent指針(指向本結(jié)點(diǎn)的父結(jié)點(diǎn)),路由信息(routeinfo)等。它們的用途是在路由表的查找過程中,特別是在指針的回溯(pointer reversal)中,可以大大的節(jié)省查找時(shí)間。由于IP路由的插入和刪除比較復(fù)雜。我們只是粗略得說明一下。
IP路由的插入:
/*插入算法開始 */
/* 先用上面提到的查找算法找出best-match */
best_match = search ( new_entry );
/* 確定需要加入的路由中沒有被best-match包括的那幾位 */
for ( count = first_unmatched_bit ; count <= sizeof ( new_entry) ;
count+= sizeof ( address_part ) {
/* 創(chuàng)建新的結(jié)點(diǎn) */
create new node ;
/* 將該結(jié)點(diǎn)連入best_match的hit_next */
link node into hit branch of best_match ;
}
/*插入算法結(jié)束 */
IP路由的刪除要分幾種情況討論 。如 best_match 是葉子結(jié)點(diǎn) ,best_match的hit_next指針為空, best_match的miss_next指針為空 和hit_next指針和miss_next指針都不為空等四種情況。這里就不再討論?! ×硗猓€可以通過兩種方法,將配置文檔存放在支持命令行接口(CLT)的路由器平臺(tái)上。一種是運(yùn)行腳本,腳本能在路由器配置服務(wù)器到路由器之間建立SSH會(huì)話、登錄系統(tǒng)、關(guān)閉控制器日志功能、顯示配置、保存路由器配置到本地文件以及退出系統(tǒng)。另一種是在路由器配置服務(wù)器到路由器之間建立IPSEC遂道,通過該安全遂道內(nèi)的TFTP,將路由器配置文件拷貝到服務(wù)器。同時(shí),還應(yīng)明確哪些人員可以更改路由器配置、何時(shí)進(jìn)行更改以及如何進(jìn)行更改,在進(jìn)行任何更改之前,制定詳細(xì)的逆序操作規(guī)程。
路由器配置的方法您通過以上的內(nèi)容應(yīng)該有所了解了,這些都是基礎(chǔ)知識(shí),很容易就會(huì)掌握的,希望讀者能夠掌握。
關(guān)鍵詞:路由器,硬件IP路由表
閱讀本文后您有什么感想? 已有 人給出評(píng)價(jià)!
- 0
- 0
- 0
- 0
- 0
- 0