iproute2工具集使用总结
一. iproute2工具集介绍
iproute2是一组集成了网络配置指令ip的开源软件包,ip指令功能齐全,可以配置和查看网络接口(link),网络接口的地址(address),ARP(neighbour),路由(route),路由策略数据库(rule),隧道(tunnel)等等。ip命令非常强大,用于网络开发的一把利器,是时候放弃ifconfig命令了。
二. ip命令格式介绍
1. ip命令的一般格式:
ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS] ]
OPTIONS:
-V,-Version :打印iproute2工具集的版本号
-s,-stats,-statistics :输出更多的信息
-f,-family { inet,inet6,link } :强制使用哪个协议族
-4 : -family inet 的缩写
-6 : -family inet6 的缩写
-0 : -family link 的缩写
-o,-oneline : 以单行的形式输出查询结果,原来的换行符用 "\" 替代。
OBJECT:
link : 物理或者逻辑网络接口
address :网络设备的协议(IPv4和IPv6)地址
neighbour : ARP条目相关
route : 路由表条目
rule : 路由策略数据库规则
tunnel : 给予IP的隧道
COMMAND:
add,delete,show(list)
三. ip命令详细介绍
1. ip link - 网络设备配置
* ip link set(改变网络设备属性)
缩写形式:set, s
参数:
dev NAME (default) :指定要操作的网络接口
up / down :改变接口的状态为UP或是DOWN
arp on / arp off :改变网络接口的NOARP标志,决定接口能否发arp包
multicast on / multicast off :改变网络接口MULTICAST标志
dynamic on / dynamic off :修改网络接口DYNAMIC标志
name NAME :修改网络接口名
txqueuelen NUMBER / txqlen NUMBER :修改网络接口的发送队列长度
mtu NUMBER :修改网络接口的MTU
address LLADDRESS :修改网络接口的MAC地址
broadcast LLADDRESS,brd LLADDRESS or peer LLADDRESS:修改广播地址
举例:
ip link set br0 up
ip link set br0 name lan
ip link set br0 mtu 1500
ip link set br0 address 4E:0C:BC:44:4C:A2
* ip link show (查看网络设备属性)
缩写形式:show,list,lst,sh,ls,l
参数:
dev NAME (default) :显示指定网络接口,省略NAME,则显示所有接口
up :显示所有在运行的网络接口
举例:
ip link show dev br0
ip link show br0
ip link ls br0
ip link l br0
2. ip address - 协议地址管理
缩写形式:address,addr,a
参数:add,delete,flush,show (list)
* ip address add (添加新的协议地址)
缩写形式:add,a
参数:
dev NAME :添加地址的接口
local ADDRESS (default) :接口的地址
peer ADDRESS :用于pointtopoint接口,设置对端接口地址
broadcast ADDRESS :设置接口的广播地址
举例:
ip address add 192.168.100.5/24 dev lan
ip addr add 192.168.100.10/24 dev lan
ip a add 192.168.100.10/24 dev lan
* ip address delete(删除IP地址)
缩写形式:delete,del,d
举例:
ip address del 192.168.100.5/24 dev br0
ip addr del 192.168.100.5/24 dev br0
* ip address show(查看IP地址)
缩写形式:show,list,lst,sh,ls,l
参数:
dev NAME (default) :指定网络设备名称
scope SCOPE_VAL :列出指定scope的地址
to PREFIX :列出指定指定前缀的地址
举例:
~ # ip addr show to 192.168.100.5
6: lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
inet 192.168.100.5/32 scope global lan
valid_lft forever preferred_lft forever
inet 192.168.100.5/24 scope global secondary lan
valid_lft forever preferred_lft forever
* ip address flush(删除接口的IP地址)
缩写形式:flush,f
举例:
ip address flush dev br0
ip a flush dev br0
3. ip neighbour - arp表管理
缩写形式:neighbour,neighbor,neigh,n
参数:add,change,replace,delete,flush,show
* ip neighbour add(添加新的ARP条目)
* ip neighbour change(修改存在的条目)
* ip neighbour replace(添加新的或修改一个存在的条目)
缩写形式:add,a;change,chg;replace,repl
to ADDRESS (default) :指定ARP的IP地址,IPv4或IPv6地址
dev NAME :指定ARP表绑定的接口
lladdr LLADDRESS :指定ARP的MAC地址
nud NUD_STATE :ARP条目的状态,NUD是"Neighbour Unreachability Detection",状态有以下几个:
- permanent :添加的ARP表条目永久有效,除非手动操作移除
- noarp :此ARP条目是有效的,但是不会尝试去验证它。生存周期到了将会被移除
- reachable :可达性超时时间之前,ARP条目都有效
- stale :ARP条目有效,但是是可疑的。如果一个ARP条目本来就有效的,此选项不会改变条目的状态,地址也不会被改变
举例:
ip neighbour add 192.168.100.4 lladdr 42:a9:7f:86:22:5c dev lan
* ip neighbour delete(删除ARP条目)
缩写形式:delete,del,d
举例:
ip neigh del 192.168.100.5 dev br0
* ip neighbour show(显示ARP条目)
缩写形式:show,list,sh,ls
参数:
to ADDRESS (default) :显示以ADDRESS前缀的ARP表
dev NAME :只显示网络接口NAME的ARP表
举例:
ip neigh show
* ip neighbour flush(清空ARRP表)
缩写:flush,f
举例:
ip neighbour f dev br0
4. ip route - 路由表管理
缩写形式:route,ro,r
* ip route add(添加新的路由表)
* ip route change(修改路由)
* ip route replace(修改或添加路由(如果原不存在))
metric NUMBER or preference NUMBER:路由的preference值
table TABLEID :路由添加的路由表,可以是数字或字符串,字符串对应的数字参考/etc/iproute2/rt_tables
[root@192 ~]# cat /etc/iproute2/rt_tables
255 local
254 main
253 default
0 unspec
dev NAME :路由的网络接口
via ADDRESS :路由的下一跳地址
src ADDRESS :指定路由的原地址
举例:
ip route add 10.0.0/24 via 192.168.10.10
ip route add default dev eth1 via 192.168.10.10
* ip route delete(删除路由)
缩写形式:delete,del,d
举例:
ip route del default
* ip route show(查看路由表)
缩写形式:show,list,sh,ls,l
举例:
ip route show
ip route default
ip route show table 400
5. ip rule - 路由策略数据库管理
缩写形式:rule,ru
参数:add,show
* ip rule add(插入新的rule)
* ip rule delete(删除rule)
缩写形式:add,a,delete,del,d
举例:
[root@192 ~]# ip rule add from all table 400 fwmark 400 priority 400
[root@192 ~]# ip rule show
400: from all fwmark 0x190 lookup 400
6. ip tunnel - ip隧道配置
缩写:tunnel,tunl
* ip tunnel add(创建隧道)
缩写形式:add,a
参数:
name NAME (default) :选择隧道网络接口名
mode MODE :设置隧道模式,有ipip,sit,gre模式
remote ADDRESS :设置隧道对端的地址
local ADDRESS : 设置隧道本地地址
dev NAME :绑定隧道到一个网络接口,隧道的包将会通过此接口路由出去
举例:
ip tunl add cisco mode sit remote 10.0.0.10 local 10.0.0.1 ttl 32
* ip tunnel show(查看隧道属性)
缩写形式:show,list,sh,ls,l
举例:
[root@192 ~]# ip tunl show
cisco: ipv6/ip remote 10.0.0.10 local 10.0.0.1 ttl 32 6rd-prefix 2002::/16
四. 总结
ip命令非常强大,所以用法也会有些复杂,本文只是写了粗浅的使用方法,后面工作使用到了新的内容会继续补充。