大家好,我是民工哥。
衆所周知,在 Linux 系統中,ip 和 ifconfig 這個兩命令的功能十分相似,ifconfig 是 net-tools 中已被棄用的一個命令,很多年前就已經沒有維護了。但是今天我們不討論與學習這個,來學習一個更強大的命令工具:iproute2。
別再用 ifconfig 啦!趕緊試試這個吧:iproute2 !
簡介
Iproute2 是一個在 Linux 下的高級網絡管理工具軟件。實際上,它是通過 rtnetlink sockets 方式動態配置內核的一些小工具組成的,從 Linux2.2 內核開始,Alexey Kuznetsov 實現了通過 rtnetlink sockets 用來配置網絡協議棧,它是一個現代的強大的接口。
Iproute2 之所以出現,是因爲,之前一直以來,互聯網上的一些不關聯的網絡工具都被打包進了 net-tools,隨着時間的推移,很多工具都已經沒有維護了。所以,才使用了新的名字 iproute2 來替代net-tools工具包。
目前iproute2工具包內的工具,它們使用方式都非常的相似,且統一開發維護,這樣也便於用戶靈活的運用工具包內的工具。
net-tools 和 iproute2 的對比
安裝與使用
安裝
centos 安裝 iproute2 命令
yum install -y iproute
[root@CentOS7-1 ~]# ip -Vip utility, iproute2-ss170501
常用命令及參數介紹
ip link #網絡設備配置命令,如:啓用/禁用某個網絡設備,改變mtu及mac地址等
ip addr #管理某個網絡設備與協議 (IP或IPv6) 有關的地址,與ip link類似
ip addrlabe #IPV6的地址標籤,
ip route #管理路由· 如添加,刪除等
ip rule #管理路由策略數據庫
ip neigh #用於neighbor/ARP表的管理
ip tunnel #隧道配置
ip maddr #多播地址管理
ip mroute #多播路由管理
ip monitor #狀態監控
ip xfrm #配置xfrm
使用
查看arp緩存表
iproute2的核心命令是ip命令,下面一起來看看具體的操作。
查看網絡接口信息
[root@CentOS7-1 ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:25:62:6f brd ff:ff:ff:ff:ff:ff
上面是查看所有的網絡接口信息,也可以查看指定的接口信息:
[root@CentOS7-1 ~]# ip link show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:25:62:6f brd ff:ff:ff:ff:ff:ff
配置網絡接口
通過使用以下命令來打開或關閉網絡接口:
ip link set ens33 up
ip link set ens33 down
還可以使用 ip link 子命令來配置網絡接口的屬性。比如,如果你想打開或關閉網絡接口的多播標誌:
ip link set ens33 multicast on
ip link set ens33 multicast off
還可以通過下面的命令來修改 MTU 和分組隊列的長度:
ip link set ens33 mtu 1500
ip link set ens33 txqueuelen 1000
查看路由表
linux 系統中,可以自定義從 1-252個路由表,其中,linux系統維護了4個路由表:
0: #系統保留表
253: #defulte table 沒特別指定的默認路由都放在改表
254: #main table 沒指明路由表的所有路由放在該表,**默認表**
255: #locale table 保存本地接口地址,廣播地址、NAT地址 由系統維護,用戶不得更改
顯示所有路由
[root@CentOS71 ~]# ip route
default via 192.168.1.1 dev ens33 proto static metric 100
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.100 metric 100
路由策略 ip rule
使用語法如下:
Usage: ip rule [ list | add | del ] SELECTOR ACTION
查看規則
ip rule show
上圖所顯示內容的第一個字段就是優先級別(prio),數字越小,代表優先級別越高,也代表這條規則越靠前。比如:在進行對數據包條件匹配時,優先級高的就越早被匹配到。從輸出的數據中可以看出,默認優先級別 0、32766 及 32767 已被佔用。
所以,如果在添加規則時沒有特別指定prio優先,默認就是從32766開始向下遞減,也就是說從32765開始,如需指定,可以使用下面的命令:
ip rule add xxxxx xxxx table xxxx prio 6666
添加規則,有兩種方法:
- 根據源IP地址
ip rule add from 192.168.100.10 table 10
ip rule add from 192.168.100.0/24 table 20
- 根據目標IP地址
ip rule add to 192.168.100.10 table 10
ip rule add to 192.168.100.0/24 table 20
ip route還可以結合iptables做高級路由策略,比如給數據包打上標記等等。
這個工具包的功能十分強大,有興趣的讀者可以自行體驗,也歡迎大家積極分享你在工作中所使用的好用、實用的工具、命令。