1. 程式人生 > >linux中路由策略rule和路由表table

linux中路由策略rule和路由表table

1.linux系統中路由表tablelinux最多可以支援255張路由表,每張路由表有一個table id和table name。其中有4張表是linux系統內建的:(1)table id = 0系統保留。(2)table id = 255稱為本地路由表,表名為local。像本地介面地址,廣播地址,以及NAT地址都放在這個表。該路由表由系統自動維護,管理員不能直接修改。(3)table id = 254稱為主路由表,表名為main。如果沒有指明路由所屬的表,所有的路由都預設都放在這個表裡。一般來說,舊的路由工具(如route)所新增的路由都會加到這個表。main表中路由記錄都是普通的路由記錄。而且,使用ip route配置路由時,如果不明確制定要操作的路由表,預設情況下也是主路由表(表254)進行操作。備註:我們使用ip route list 或 route -n 或 netstat -rn檢視的路由記錄,也都是main表中記錄。(4)table id = 253稱為預設路由表,表名為default。一般來說預設的路由都放在這張表。備註:A)系統管理員可以根據需要自己新增路由表,並向路由表中新增路由記錄。B)可以通過/etc/iproute2/rt_tables檔案檢視table id和table name的對映關係。C)如果管理員新增了一張路由表,需要在/etc/iproute2/rt_tables檔案中為新路由表新增table id和table name的對映。
2.路由表的配置3.路由策略rule基於策略的路由比傳統路由在功能上更強大,使用更靈活,它使網路管理員不僅能夠根據目的地址而且能夠根據報文大小、應用或IP源地址等屬性來選擇轉發路徑。簡單地來說,linux系統有多張路由表,而路由策略會根據一些條件,將路由請求轉向不同的路由表。例如源地址在某些範圍走路由表A,另外的資料包走路由表,類似這樣的規則是有路由策略rule來控制。在linux系統中,一條路由策略rule主要包含三個資訊,即rule的優先順序,條件,路由表。其中rule的優先順序數字越小表示優先順序越高,然後是滿足什麼條件下由指定的路由表來進行路由。在linux系統啟動時,核心會為路由策略資料庫配置三條預設的規則,即rule 0,rule 32766, rule 32767(數字是rule的優先順序),具體含義如下:(1)rule 0匹配任何條件的資料包,查詢路由表local(table id = 255)。rule 0非常特殊,不能被刪除或者覆蓋。 (2)rule 32766匹配任何條件的資料包,查詢路由表main(table id = 254)。系統管理員可以刪除或者使用另外的策略覆蓋這條策略。(3)rule 32767匹配任何條件的資料包,查詢路由表default(table id = 253)(ID 253) 。對於前面的預設策略沒有匹配到的資料包,系統使用這個策略進行處理。這個規則也可以刪除。備註:在linux系統中是按照rule的優先順序順序依次匹配。假設系統中只有優先順序為0,32766及32767這三條規則。那麼系統首先會根據規則0在本地路由表裡尋找路由,如果目的地址是本網路,或是廣播地址的話,在這裡就可以找到匹配的路由;如果沒有找到路由,就會匹配下一個不空的規則,在這裡只有32766規則,那麼將會在主路由表裡尋找路由;如果沒有找到匹配的路由,就會依據32767規則,即尋找預設路由表;如果失敗,路由將失敗。在linux系統中可以使用ip rule命令來配置路由策略。ip rule命令使用格式為:
Usage: ip rule [ list | add | del ] SELECTOR ACTION (add 新增;del 刪除; llist 列表)
SELECTOR := [ from PREFIX 資料包源地址] [ to PREFIX 資料包目的地址] [ tos TOS 服務型別][ dev STRING 物理介面] [ pref NUMBER ] [fwmark MARK iptables 標籤]
ACTION := [ table TABLE_ID 指定所使用的路由表] [ nat ADDRESS 網路地址轉換][ prohibit 丟棄該表| reject 拒絕該包| unreachable 丟棄該包]
[ flowid CLASSID ]
TABLE_ID := [ local | main | default | new | NUMBER ]
舉例來說:
ip rule add [from 0/0] table 1 pref 32800  #增加一條規則,規則匹配的物件是所有的資料包,動作是選用路由表1的路由,這條規則的優先順序是32800
ip rule add from 192.168.3.112/32 [tos 0x10] table 2 pref 1500 prohibit  #增加一條規則,規則匹配的物件是IP為192.168.3.112, tos等於0x10的包,使用路由表2,這條規則的優先順序是1500,動作是丟棄。
可以通過命令ip rule或ip rule list來檢視系統中所有的路由策略rule。另外使用ip rule命令配置的路由策略rule只在記憶體中有效,機器重啟後,就會失效。可以將路由策略配置到檔案/etc/sysconfig/network-scripts/rule-ethX中,這樣機器重啟後仍然有效。4.關於路由表和路由策略的聯絡和區別路由策略rule指定滿足一定條件的資料包有指定的路由表來路由,多個策略rule可以指向同一張路由表。某些路由表可以沒有策略指向它。值得注意的是,如果系統管理員刪除了指向某個路由表的所有策略rule,那麼這個路由表是沒有用的,但它在系統中仍然存在,直到路由表中的所有路由記錄被刪除,它才會消失。5.其他閒雜知識點(1)檢視指定路由表的內容
ip route list table table_id
ip route list table table_name

ip route show table table_id
ip route show table table_name
(2)檢視系統中所有的路由策略rule
ip rule
ip rule list
(3)使用ip rule,ip route,route等命令進行網路配置,只在記憶體中有效,重啟機器或網路服務就會失效。因此,我們需要通常需要將網路相關的配置寫入到配置檔案中,這樣重啟機器或網路服務時,會從配置檔案中載入網路相關的配置資訊。(4)關於路由配置及路由策略配置的一點問題我們知道路由表和路由策略可以寫入配置檔案/etc/sysconfig/network-scripts/route-ethX和/etc/sysconfig/network-scripts/rule-ethX中,這類配置檔案是針對每個網絡卡單獨配置的靜態路由或路由策略。route-ethX中如果不明確指定哪張路由表,預設是新增到main路由表的,因此route-ethX中配置規則,不僅僅只有對應的網絡卡可以看到,其他的網絡卡也會看到哦。rule-ethX中配置的路由策略rule是全域性的,我們通過ip rule list可以檢視所有rule-ethX中的路由策略,因此rule-ethX中的策略不僅僅只有相應的網絡卡才能看到,其他的網絡卡也會看到哦。學習資料參考於:

相關推薦

linux路由策略rule路由table

1.linux系統中路由表tablelinux最多可以支援255張路由表,每張路由表有一個table id和table name。其中有4張表是linux系統內建的:(1)table id = 0系統保留。(2)table id = 255稱為本地路由表,表名為local。像

linux oracle 建立使用者空間以及授權

1、建立臨時表空間 select name from v$tempfile;          查出當前資料庫臨時表空間,主要是使用裡面的存放路徑; 建立臨時表空間:create temporary tablespace teest_temp tempfile '

linux的if用法簡單的循環

linux if if用法來一波今天來一波在linux總if的簡單用法,實用與否還需要自己來判定。上一次在for中沒有提及shell腳本中格式問題,今天來補一下如若知道的,略過就好。。。在linux中,shell開頭一般是很重要的,但是卻又都是註釋要不要都行!這是為什麽呢?在上圖中顯示第一行#!/bin/ba

LinuxShell的知識用法

腳本用法Shell腳本顧名思義就是為了Shell編寫的腳本程序,只要有一個編寫文本編輯器和一個能執行腳本的解釋器就可以做到。Linux 的 Shell 種類眾多,我們可以打開文本編輯器(可以使用 vi/vim 命令來創建文件),新建一個文件 test.sh,擴展名為 sh(sh代表shell),擴展名並不影響

LINUX的用戶

mage 密碼 包括 加載 很多 root c11 inux .com 目錄 一,用戶和組 二,Linux用戶和組的主要配置文件 三,關於用戶維護的一些常見命令 四,組帳號維護命令 用戶和組  在linux中當UID(用戶編號)為0的是root用戶,因為系統也需要一些進

linuxmysql配置檔案jdk環境變數

mysql配置檔案 [client]default-character-set = utf8mb4 [mysql]socket = /var/lib/mysql/mysql.sockdefault-character-set = utf8mb4 [mysqld]skip-name-resolveport

linux使用訊號--sigwait pthread sigmask

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Linux修改使用者UID組GID的方法

我在部署nfs的時候,共享了一個資料夾。為了讓遠端nfs客戶端掛載這個資料夾的時候都有可讀寫許可權,我需要把伺服器上的使用者uid、gid設定成nfs服務端資料夾一樣的許可權。不過因為之前新建的使用者uid、gid都是系統自動生成的,幾臺伺服器之前某個使用者的uid、gid可能都不一樣,所以現在需要把這個ui

Linuxip地址結構ip地址的轉換

class \n image nbsp toa shel string linux .com ip地址結構 struct sockaddr_in { sa_family_t sin_family; /* address family: AF_INET *

Linuxcut,sort,uniqwc的用法

一.cut是一個選取命令,就是將一段資料經過分析,取出我們想要的。一般來說,選取資訊通常是針對“行”來進行分析的,並不是整篇資訊分析的。1.語法格式為:cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file]2.使用說明cut 命令從檔案的每一行剪下位元組、字

linux的頁快取檔案IO

一篇比較好的關於頁快取的描述文章一篇比較好的關於頁快取的描述文章 雖然仔細看過《linux核心設計與實現》,也參考了很多的部落格,並且做了linux程序空間、address_space和檔案的關係圖(設為圖1,參考部落格),但是對於頁快取和檔案IO之間關係的細節一直不是特別明朗。趁著元旦假期看的

Linux的動態庫靜態庫(.a.la.so.o)

​ Linux中的動態庫和靜態庫(.a/.la/.so/.o) 原文地址:https://www.cnblogs.com/findumars/p/5421910.html 在windows下,一般可以通過檔案的字尾名來識別檔案的型別。在Linux下大致上也是可以的。但是要明

sql count 在innodb myisam 型別的查詢快慢

在sql中經常會用到count(*) 或者不常用的count(‘列’),在innodb和myisam 的查詢速度有多大,原理又是什麼? 下面我們首先嘮嘮myisam和innodb主要區別 1).MyISAM是非事務安全型的,而InnoDB是事務安全型的。 2).MyISAM鎖的粒度是表

Linux學習筆記RHEL 7(十三)--Linuxsu、su -sudo的區別

su 切換到root使用者,但是並沒有轉到root使用者家目錄下,即沒有改變使用者的環境。 su - 切換到root使用者,並轉到root使用者的家目錄下,即改變到了root使用者的環境。 這個涉及到不同使用者下的環境變數的配置。 sudo 通過sudo,我們能把

Linux的硬連線軟連線

硬連線: 如果A檔案和B檔案的關係是硬連線的關係。當用戶修改了A檔案的內容,那麼B檔案的內容也會發生更改。如果修改的B檔案,那麼A檔案的內容也會發生更改。 特點: 1、硬連線不限於兩個檔案之間,可以在多個檔案之間進行。ls -l 命令中顯示了檔案的硬連線數 2、不能對目錄做硬體連線

Linuxapt-get updateapt-get upgrade命令的區別

前言 本文主要講一下在linux下安裝軟體方面的特點。但在Linux下,不是這樣的。每個LINUX的發行版,比如ubuntu,都會維護一個自己的軟體倉庫,我們常用的幾乎所有軟體都在這裡面。這裡面的軟體絕對安全,而且絕對的能正常安裝。在ubuntu下,我們維護一個

linux 更改使用者許可權使用者組的命令chmod,chgrp例項

linux 中更改使用者許可權和使用者組的命令例項; 增加許可權給當前使用者 chmod +wx filename chmod -R 777 /upload 使用者組 chgrp -R foldname zdz chown -R  所有者使用者名稱.組名

LinuxMongoDB的安裝配置方法

1)、軟體包安裝 1、下載mongodb-linux-x86_64-3.0.6.tgz 2、切換建立usr/java目錄解壓tar包 mkdir /usr/local/mongodb cd /usr/local/mongodb tar zxvf /software/mong

linuxshell的awksed簡介

1.sed命令 sed:stream editor :一次處理一行內容,處理時,把當前的行儲存在臨時緩衝區,處理完後,輸送到螢幕 sed [引數] '命令' file p ##顯示 d

linuxSUID,SGIDSBIT的奇妙用途

     linux對檔案的許可權管理簡直是讓人歎為觀止,又回顧了一下SUID,SGID和SBIT的作用,總結一下。      SUID是Set UID的簡稱,翻譯過來是設定使用者ID,感覺很彆扭,還是覺得SUID最為簡煉。它會出現在檔案擁有者許可權的執行位上,具有這種許可