基于iproute命令集配置Linux网络(ip命令)

£神魔★判官ぃ 2022-06-08 06:54 314阅读 0赞

iproute是Linux下一个网络管理工具包合集,用于取代先前的如ifconfig,route,ifup,ifdown,netstat等历史网络管理工具。该工具包功能强大,它通过网络链路套接字接口与内核进行联系。iproute的用户界面比net-tools的用户界面要更直观。对网络资源比如链路、IP地址、路由和隧道等用“对象”抽象进行了恰当的定义,因此可以使用一致的语法来管理不同的对象。本文主要描述使用该工具包的ip命令来配置Linux网络。

一、iproute工具包集

查看iproute工具包集

  1. # more /etc/redhat-release
  2. CentOS Linux release 7.2.1511 (Core)
  3. ###查看当前环境下已经安装的iproute包
  4. # rpm -qa|grep iproute
  5. iproute-3.10.0-54.el7.x86_64
  6. ###查看iproute包生成的文件
  7. # rpm -ql iproute
  8. ###查看iproute包配置文件
  9. # rpm -qc iproute
  10. ###查看iproute包生成的二进制文件
  11. # rpm -ql iproute|grep "bin"
  12. /usr/sbin/arpd
  13. /usr/sbin/bridge
  14. /usr/sbin/cbq
  15. /usr/sbin/ctstat
  16. /usr/sbin/genl
  17. /usr/sbin/ifcfg
  18. /usr/sbin/ifstat
  19. /usr/sbin/ip
  20. /usr/sbin/lnstat
  21. /usr/sbin/nstat
  22. /usr/sbin/routef
  23. /usr/sbin/routel
  24. /usr/sbin/rtacct
  25. /usr/sbin/rtmon
  26. /usr/sbin/rtpr
  27. /usr/sbin/rtstat
  28. /usr/sbin/ss
  29. /usr/sbin/tc

iproute与net-tools命令比对图
这里写图片描述

二、ip命令帮助及模块功能

获取ip命令帮助

  1. # ip help
  2. Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
  3. ip [ -force ] -batch filename
  4. where OBJECT := { link | addr | addrlabel | route | rule | neigh | ntable |
  5. tunnel | tuntap | maddr | mroute | mrule | monitor | xfrm |
  6. netns | l2tp | tcp_metrics | token }
  7. OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
  8. -h[uman-readable] | -iec |
  9. -f[amily] { inet | inet6 | ipx | dnet | bridge | link } |
  10. -4 | -6 | -I | -D | -B | -0 |
  11. -l[oops] { maximum-addr-flush-attempts } |
  12. -o[neline] | -t[imestamp] | -b[atch] [filename] |
  13. -rc[vbuf] [size] | -n[etns] name | -a[ll] }
  14. ###如果要获取某个子模块的帮助,如获取ip addr的具体用法,则
  15. # ip addr help
  16. Usage: ip addr {add|change|replace} IFADDR dev STRING [ LIFETIME ]
  17. [ CONFFLAG-LIST ]
  18. ip addr del IFADDR dev STRING [mngtmpaddr]
  19. ip addr {show|save|flush} [ dev STRING ] [ scope SCOPE-ID ]
  20. [ to PREFIX ] [ FLAG-LIST ] [ label PATTERN ] [up]
  21. ip addr {showdump|restore}
  22. IFADDR := PREFIX | ADDR peer PREFIX
  23. [ broadcast ADDR ] [ anycast ADDR ]
  24. [ label STRING ] [ scope SCOPE-ID ]
  25. SCOPE-ID := [ host | link | global | NUMBER ]
  26. FLAG-LIST := [ FLAG-LIST ] FLAG
  27. FLAG := [ permanent | dynamic | secondary | primary |
  28. tentative | deprecated | dadfailed | temporary |
  29. CONFFLAG-LIST ]
  30. CONFFLAG-LIST := [ CONFFLAG-LIST ] CONFFLAG
  31. CONFFLAG := [ home | nodad | mngtmpaddr | noprefixroute ]
  32. LIFETIME := [ valid_lft LFT ] [ preferred_lft LFT ]
  33. LFT := forever | SECONDS
  34. # man ip //获取详细帮助

iproute各子模块功能

  1. ip link
  2. 网络设备配置命令,如可以启用/禁用某个网络设备,改变mtumac地址等
  3. ip addr
  4. 用于管理某个网络设备与协议(ipipv6)有关的地址。
  5. ip link类似,不过增加了协议有关的管理(ip地址管理)
  6. ip addrlabel
  7. ipv6的地址标签,主要用于RFC3484中描述的ipv6地址的选择。
  8. RFC3484主要介绍了2个算法,用于ipv6地址(源地址和目标地址)的选择策略
  9. ip route
  10. 管理路由,如添加,删除
  11. ip rule
  12. 管理路由策略数据库。这里边有一个算法,用来控制路由的选择策略
  13. ip neigh
  14. 用于neighbor/ARP表的管理,如显示,插入,删除等
  15. ip tunel
  16. 隧道配置
  17. 隧道的作用是将数据(可以是不同协议)封装成ip包然后再互联网传输
  18. ip maddr
  19. 多播地址管理
  20. ip mroute
  21. 多播路由管理
  22. ip monitor
  23. 状态监控。如可以持续监控ip地址和路由的状态
  24. ip xfrm
  25. 设置xfrmxfrm是一个ip框架,可以转换数据包的格式,如用某个算法对数据包加密

三、频繁使用的几个子模块常用方法

子模块用法

  1. ip link
  2. ip link show 查看默认网络连接信息,不包括ip地址
  3. ip link set 接口 [up|down] [multicast on|off]:
  4. ip addr
  5. 可以在一个接口配置多个地址而不使用接口别名:显示这些地址
  6. ip addr show
  7. ip addr add dev 接口 ip地址/掩码 [ ladel 别名 ]
  8. ip addr add dev 接口 ip地址 [ ladel 别名 ]
  9. ip addr flush 接口 [to 网络地址]
  10. ip route
  11. ip route add 目标 via 下一跳 src 源地址 [dev 设备]
  12. ip route del 目标
  13. ip route list
  14. 启用/禁用接口:
  15. ip link set 接口 up|down
  16. ifconfig 接口 up|down
  17. ifdown 接口,ifup 接口
  18. 重置网络连接
  19. TUIGUI
  20. CentOS 6
  21. system-config-network-tui
  22. 配置结束后将保存配置文件中
  23. setup --> Network Configuration
  24. CentOS 7
  25. nmtui

四、使用示例

  1. 查看当前主机网络连接信息
  2. # ip link show
  3. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
  4. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  5. 2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
  6. link/ether 00:0c:29:57:26:9d brd ff:ff:ff:ff:ff:ff
  7. 3: eno33554960: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
  8. link/ether 00:0c:29:57:26:a7 brd ff:ff:ff:ff:ff:ff
  9. 查看当前主机指定网络连接信息
  10. # ip link show eno16777728
  11. 2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
  12. link/ether 00:0c:29:57:26:9d brd ff:ff:ff:ff:ff:ff
  13. 多播的启用与关闭
  14. # ip link set eno16777728 multicast off
  15. # ip link show eno16777728 //如下,没有出项MULTICAST
  16. 2: eno16777728: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
  17. link/ether 00:0c:29:57:26:9d brd ff:ff:ff:ff:ff:ff
  18. # ip link set eno16777728 multicast on
  19. 网卡的启用与关闭
  20. # ip link set eno33554960 down
  21. # ip link set eno33554960 up
  22. 显示主机ip地址信息
  23. # ip addr show
  24. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
  25. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  26. inet 127.0.0.1/8 scope host lo
  27. valid_lft forever preferred_lft forever
  28. inet6 ::1/128 scope host
  29. valid_lft forever preferred_lft forever
  30. 2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  31. link/ether 00:0c:29:57:26:9d brd ff:ff:ff:ff:ff:ff
  32. inet 172.24.8.131/24 brd 172.24.8.255 scope global dynamic eno16777728
  33. valid_lft 1196sec preferred_lft 1196sec ### Author : Leshami
  34. inet6 fe80::20c:29ff:fe57:269d/64 scope link ### Blog : http://blog.csdn.net/leshami
  35. valid_lft forever preferred_lft forever ### QQ/Weixin : 645746311
  36. 3: eno33554960: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  37. link/ether 00:0c:29:57:26:a7 brd ff:ff:ff:ff:ff:ff
  38. inet 192.168.81.144/24 brd 192.168.81.255 scope global dynamic eno33554960
  39. valid_lft 1380sec preferred_lft 1380sec
  40. 为指定网卡删除ip地址
  41. # ip addr del dev eno33554960 192.168.81.144/24
  42. # ip addr show eno33554960
  43. 3: eno33554960: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  44. link/ether 00:0c:29:57:26:a7 brd ff:ff:ff:ff:ff:ff
  45. 为指定网卡添加ip地址
  46. # ip addr add dev eno33554960 192.168.81.189/24
  47. # ip addr show eno33554960
  48. 3: eno33554960: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  49. link/ether 00:0c:29:57:26:a7 brd ff:ff:ff:ff:ff:ff
  50. inet 192.168.81.189/24 scope global eno33554960
  51. valid_lft forever preferred_lft forever
  52. 为指定网卡添加多ip地址
  53. # ip addr add dev eno33554960 192.168.81.150/24
  54. # ip addr show eno33554960
  55. 3: eno33554960: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  56. link/ether 00:0c:29:57:26:a7 brd ff:ff:ff:ff:ff:ff
  57. inet 192.168.81.189/24 scope global eno33554960
  58. valid_lft forever preferred_lft forever
  59. inet 192.168.81.150/24 scope global secondary eno33554960
  60. valid_lft forever preferred_lft forever
  61. 为指定网卡添加多ip及使用别名
  62. # ip addr add dev eno33554960 192.168.81.199/24 label eno33554960:0
  63. # ip addr show label eno33554960:0
  64. inet 192.168.81.199/24 scope global secondary eno33554960:0
  65. valid_lft forever preferred_lft forever
  66. # ifconfig|grep eno33554960:0 -A2
  67. eno33554960:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
  68. inet 192.168.81.199 netmask 255.255.255.0 broadcast 0.0.0.0
  69. ether 00:0c:29:57:26:a7 txqueuelen 1000 (Ethernet)
  70. 释放特定网卡ip地址
  71. # ip addr show eno33554960
  72. 3: eno33554960: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  73. link/ether 00:0c:29:57:26:a7 brd ff:ff:ff:ff:ff:ff
  74. inet 192.168.81.144/24 scope global dynamic eno33554960
  75. valid_lft 1364sec preferred_lft 1364sec
  76. inet 192.168.81.199/24 scope global secondary eno33554960:0
  77. valid_lft forever preferred_lft forever
  78. # ip addr flush eno33554960 //如果不指定特定网卡,则表示当前主机所有网卡ip地址被释放
  79. # ip addr show eno33554960
  80. 3: eno33554960: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  81. link/ether 00:0c:29:57:26:a7 brd ff:ff:ff:ff:ff:ff
  82. 使用ip route添加网络路由
  83. ###当前本机IP地址为172.24.8.131
  84. ###假定要到达目标地址为:192.168.10.0/24,下一跳为 172.24.8.2 则添加路由命令如下
  85. # route -n //首先查看当前的路由
  86. Kernel IP routing table
  87. Destination Gateway Genmask Flags Metric Ref Use Iface
  88. 0.0.0.0 192.168.81.2 0.0.0.0 UG 100 0 0 eno33554960
  89. 172.24.8.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777728
  90. 192.168.81.0 0.0.0.0 255.255.255.0 U 100 0 0 eno33554960
  91. # ip route list //首先查看当前的路由
  92. default via 192.168.81.2 dev eno33554960 proto static metric 100
  93. 172.24.8.0/24 dev eno16777728 proto kernel scope link src 172.24.8.131 metric 100
  94. 192.168.81.0/24 dev eno33554960 proto kernel scope link src 192.168.81.144 metric 100
  95. # ip route add 192.168.10.0/24 via 172.24.8.2 dev eno16777728
  96. # ip route list |grep 192.168.10
  97. 192.168.10.0/24 via 172.24.8.2 dev eno16777728
  98. 使用ip route添加主机路由
  99. ###假定要到达目标地址为:192.168.20.1,下一跳为: 172.24.8.254
  100. # ip route add 192.168.20.1 via 172.24.8.254
  101. # ip route list |grep 192.168.20.1
  102. 192.168.20.1 via 172.24.8.254 dev eno16777728
  103. 删除之前添加的网络路由和主机路由
  104. # ip route del 192.168.10.0/24 ###对于网络路由应指定掩码
  105. # ip route del 192.168.20.1
  106. # ip route list
  107. default via 192.168.81.2 dev eno33554960 proto static metric 100
  108. 172.24.8.0/24 dev eno16777728 proto kernel scope link src 172.24.8.131 metric 100
  109. 192.168.81.0/24 dev eno33554960 proto kernel scope link src 192.168.81.144 metric 100
  110. 删除缺省网关
  111. # ip route del default
  112. # ip route list|grep default
  113. 添加缺省网关
  114. # ip route add default via 172.24.8.2 dev eno16777728
  115. # ip route list|grep default
  116. default via 172.24.8.2 dev eno16777728
  117. 配置特定网卡指定IP路由
  118. # ip addr add dev eno33554960 172.27.8.150/24 ###为eno33554960添加一个新ip
  119. # ip addr show eno33554960
  120. 3: eno33554960: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  121. link/ether 00:0c:29:57:26:a7 brd ff:ff:ff:ff:ff:ff
  122. inet 192.168.81.144/24 scope global dynamic eno33554960
  123. valid_lft 1246sec preferred_lft 1246sec
  124. inet 172.27.8.150/24 scope global eno33554960
  125. valid_lft forever preferred_lft forever
  126. ###配置到达网络192.168.10.0经由172.27.8.2路由并且从这个ip 172.27.8.150收发数据包
  127. # ip route add 192.168.10.0 via 172.27.8.2 src 172.27.8.150
  128. # ip route list |grep 172.27.8.150
  129. 172.27.8.0/24 dev eno33554960 proto kernel scope link src 172.27.8.150
  130. 192.168.10.0 via 172.27.8.2 dev eno33554960 src 172.27.8.150

DBA牛鹏社(SQL/NOSQL/LINUX)

这里写图片描述

发表评论

表情:
评论列表 (有 0 条评论,314人围观)

还没有评论,来说两句吧...

相关阅读