校園網 openwrt記(十)iproute2

2021-07-10 07:14:42 字數 2566 閱讀 6145

在新增靜態路由的時候,可以有兩種方法,老式命令route add和新的ip route add:

route add 192.168.66.0 mask 255.255.255.0 192.168.66.254

# or

ip route add 192.168.66.0/24 via 192.168.66.254

使用iproute2是當下比較常用的網路工具包,它的ip命令不僅語法簡單明確,而且功能強大。iproute2是乙個linux下管理控制 tcp/ip 網路和流量控制的工具包,用以替代老的arp、ifconfig、route。使用它還能很好的和iptables很好地合作,達到策略路由的目的。

可以看看這個很好的ip命令手冊

怎樣才能進行策略路由呢?根據資料:

從linux-2.2開始,核心把路由歸納到許多路由表中,這些表都進行了編號,編號數字的範圍是1到255。另外,為了方便,還可以在/etc/iproute2/rt_tables中為路由表命名。預設情況下,所有的路由都會被插入到表main(編號254)中。在進行路由查詢時,核心只使用路由表main。

實際上,還有另外乙個路由表也一直存在,這個表是不可見的,而且極為重要。這就是表local。這個表儲存本地和廣播路由。核心會自動維護這個路由表,通常系統管理員沒有必要對它進行修改,甚至不必看到。

在使用策略路由(policy routing)時,我們將使用多個路由。在這種情況下,表識別符有很多引數,因此需要使用的形式唯一地識別每個路由。

我們可以通過以下命令來查詢路由表:

ip route show  # 預設就是talbe 254

ip route show table 253

可以通過ip route add來新增路由,通過ip route change來修改路由,通過ip route delete 來新增路由。如果我們需要讓一些特定的資料報走乙個新的路由表,我們可以在乙個非main表的路由表中新增路由,比如在路由表66號中新增預設路由:

ip route add default via 192.168.67.254 table 66
這樣表66中就有了一條路由條目了,如果資料報先查詢表66,而不是預設的254的話,就可以流向我們所指定的閘道器192.168.67.254了。那怎樣才能做到先查詢表66呢?這就需要用到ip rule了。

命令列ip rule show後可以發現:

0:      from all lookup local

32766: from all lookup main

32767: from all lookup default

from all就是選擇符,lookup ***就是操作。可以有0至32767條規則。

我們要想讓資料報查詢表66(lookup 66),那麼就要使用命令"ip rule add *** table 66"來新增,這裡的***指的就是對這些資料報的描述。

例如這些資料報是通往192.168.67.123的,那麼可以這樣新增規則:

ip rule add to 192.168.67.123 table 66
這時再檢視以下規則,會發現多了一條規則:

0:      from all lookup local

32765: to 192.168.67.123 lookup 66

32766: from all lookup main

32767: from all lookup default

這樣,我們就能將通往ip 192.168.67.123的資料報按照規則序號大小來進行操作,由於32765序號在32766之前,這些資料報首先會查詢表66,然後由於表66有一條預設路由,所以它們就被導向了表66中所描述的預設閘道器192.168.67.254。從而達到了策略路由的目的。

當然,對於之前的靜態路由,我們也可以使用這個方法來實現:讓訪問校園內**點的資料報查詢乙個路由表(不是main,不是local,也不是default表),這個路由表將校園網閘道器作為預設閘道器。

之前為什麼說它還能很好的和iptables很好地合作,達到策略路由的目的呢?那是因為iptables中有乙個很好的mangle操作,對資料報打mark,比如在我們的lan口的所有客戶機上的使用tcp埠8393到8400的資料報打上標記101:

# 在fwmark鏈新增是因為openwrt中進行了iptables -t mangle -a prerouting -j fwmark,fwmark是乙個自定義的**鏈

iptables -t mangle -a fwmark -i br-lan -p tcp --dport 8393:8400 -j mark --set-mark 101

而在ip rule中則可以使用fwmark來選擇這些包:

ip rule add fwmark 101 table 101
這樣,被打上101標記的資料報將會先查詢表101。有了這個fwmark,我們就可以利用iptalbes的精確匹配,通過iproute2達到更精確的策略路由。

校園網 openwrt記(四)Lua傳送udp包

由於openwrt的web管理介面luci的後台完全由lua寫的,標準的lua庫是不足以完成這個任務的,需要擴充套件其他庫來完成,所以openwrt的lua的目標目錄下 一般為 usr lib lua 會有乙個nixio.so動態鏈結庫,許多擴充套件可以從該庫。鑑於lua指令碼可以很容易的被c c ...

Openwrt筆記 1 校園網連線

在校園裡使用路由器,開發高階功能,首先遇到的問題就是校園網的連線問題 經過一段摸索基本上找到了一些方法,暫記於此 未完待續 0.名詞解釋 h3c 華三通 華三 新華三 公司,系 華為 與 3com 公司合辦的通訊裝置公司,在國內較為普及,尤其是在教育網中應用比較廣 全套裝置 影響巨大。後因一些原因沒...

openwrt之校園網IPV6無線配置

自從openwrt與lede分支合併後,openwrt最新版18.06本支援了ipv6,韌體鏈結,這裡使用widora出品的neo路由器開發板測試 修改配置檔案 etc config network,其實這個配置就是widora官方韌體的預設配置 config inte ce loopback op...