iproute2路由配置(ip rule、ip route、traceroute)

iproute2路由配置(ip rule、ip route、traceroute)

一、Iproute2简介

Iproute2是一个在Linux下的高级网络管理工具软件。实际上,它是通过rtnetlink sockets方式动态配置内核的一些小工具组成的,从Linux2.2内核开始,Alexey Kuznetsov 实现了通过rtnetlink sockets用来配置网络协议栈,它是一个现代的强大的接口。

centos安装iproute2命令:

yum install -y iprouteip -V

二、iproute2常用命令

net-tools和iproute2的大致对比:

net-tools

iproute2

功能

netstat -r/route -n

ip route show

查看路由信息

route add

ip route add

添加路由

route del

ip route del

删除路由

ifconfig

ip link

显示up状态(激活状态)的网卡信息

ifconfig -a

ip addr show

显示所有网卡的信息,包含未up的

ifconfig -s

ip -s link

显示摘要信息

ifconfig -help

ip -help

查看帮助

ifconfig eth0 up

ip link set eth0 up

启动网卡

ifconfig eth0 down

ip link set eth0 down

停掉网卡

netstat

ss

监控工具

netstat -l

ss -l

查看listen监听状态的连接信息

iptunnel

ip tunnel

ip隧道

netstat -g/ipmaddr

ip maddr

多播地址管理

arp -na

ip neigh

arp地址解析信息ip->mac地址

三、路由(ip rule、ip route)

1)路由策略(ip rule)

基于策略的路由比传统路由在功能上更强大,使用更灵活,它使网络管理员不仅能够根据目的地址而且能够根据报文大小、应用或IP源地址等属性来选择转发路径

ip rule 命令:

Usage: ip rule [ list | add | del ] SELECTOR ACTION (add 添加;del 删除; llist 列表)

1、添加规则

1)Source IP

根据来源端IP来决定数据包参考哪个路由表发送出去。以下两个示例分别指出,如果数据包的来源端IP是192.168.182.10,就参考路由表10;如果来源端IP为192.168.182.0/24网段的IP,就参考路由表20。

ip rule add from 192.168.182.10 table 10 ip rule add from 192.168.182.0/24 table 20

2)Destination IP

根据目的端IP来决定数据包参考哪个路由表发送出去。以下两个示例分别指出,如果数据包的目的端IP是192.168.183.1,就参考路由表10;如果目的端IP是192.168.183.0/24网段的IP,就参考路由表20。

ip rule add to 192.168.183.1 table 10 ip rule add to 192.168.183.0/24 table 20

2、示例

# 添加路由表echo ‘1024 tab1’ >> /etc/iproute2/rt_tables# 通过路由表 tab1 路由来自源地址为192.168.182.0/24的数据包,优先级220ip rule add from 192.168.182.0/24 table tab1 prio 220# 把源地址为192.168.182.247的数据报的源地址转换为192.168.182.130,并通过表tab1进行路由ip rule add from 192.168.182.247 nat 192.168.182.130 table tab1 prio 320# 删除ip rule del from 192.168.182.0/24 table tab1 prio 220ip rule del from 192.168.182.247 nat 192.168.182.130 table tab1 prio 320

我们执行ip rule show命令所显示内容的第一个字段就是优先级别(prio),数字越小,代表优先级别越高,也代表这条规则可以排得越靠前,如此数据包在进行条件匹配时,就会越早匹配到这条规则,从输出的数据中,默认优先级别0、32766及32767已被占用,因此,在添加规则时,如果没有特别设置优先级别,那么,优先级别默认会从32766开始递减,如32765、32764……,如果我们需要特别设置优先级别,可以在ip rule add命令的最后加上prio XXX参数。

2)路由表 (使用 ip route 命令操作静态路由表)

所谓路由表,指的是路由器或者其他互联网网络设备上存储的表,该表中存有到达特定网络终端的路径。路由器的主要工作就是为经过路由器的每个数据包寻找一条最佳的传输路径,并将该数据有效地传送到目的站点。为了完成这项工作,在路由器中保存着各种传输路径的相关数据——路由表(Routing Table),供路由选择时使用,表中包含的信息决定了数据转发的策略。路由表根据其建立的方法,可以分为动态路由表和静态路由表。

linux 系统中,可以自定义从 1-252个路由表,其中,linux系统维护了4个路由表:

0: 系统保留表253: defulte table 没特别指定的默认路由都放在改表254: main table 没指明路由表的所有路由放在该表,**默认表**255: locale table 保存本地接口地址,广播地址、NAT地址 由系统维护,用户不得更改

备注:我们使用ip route list 或 route -n 或 netstat -rn查看的路由记录,也都是main表中记录。

路由表的查看可有以下二种方法:

ip route list table table_numberip route list table 1204ip route list table table_nameip route list table tab1

路由表序号和表名的对应关系在 /etc/iproute2/rt_tables 文件中,可手动编辑。路由表添加完毕即时生效,下面为实例(最好把默认路由最后添加):

ip route add 192.168.182.0/24 dev ens33 proto kernel scope link src 192.168.182.130 metric 100 table tab1ip route add default via 192.168.182.2 dev ens33 proto static metric 100 table tab1

默认路由需要特别注意,走默认路由的话会导致非同一子网内的访问失败

3)route 命令里面的metric是做什么用的?

metric 为路由指定所需跃点数的整数值(范围是 1 ~ 9999),它用来在路由表里的多个路由中选择与转发包中的目标地址最为匹配的路由。所选的路由具有最少的跃点数。跃点数能够反映跃点的数量、路径的速度、路径可靠性、路径吞吐量以及管理属性。

路由算法使用了许多不同的metric以确定最佳路径。复杂的路由算法可以基于多个metric选择路由,并把它们结合成一个复合的metric。常用的metric如下:

1、路径长度

【路径长度】是最常用的路由metric。一些路由协议允许网管给每个网络链接人工赋以代价值,这种情况下,路由长度是所经过各个链接的代价总和。其它路由协议定义了跳数,即分组在从源到目的的路途中必须经过的网络产品,如路由器的个数。

2、可靠性

可靠性,在路由算法中指网络链接的可依赖性(通常以位误率描述),有些网络链接可能比其它的失效更多,网路失效后,一些网络链接可能比其它的更易或更快修复。任何可靠性因素都可以在给可靠率赋值时计算在内,通常是由网管给网络链接赋以metric值。

3、延迟

路由延迟指分组从源通过网络到达目的所花时间。很多因素影响到延迟,包括中间的网络链接的带宽、经过的每个路由器的端口队列、所有中间网络链接的拥塞程度以及物理距离。因为延迟是多个重要变量的混合体,它是个比较常用且有效的metric。

4、带宽

带宽指链接可用的流通容量。在其它所有条件都相等时,10Mbps的以太网链接比64kbps的专线更可取。虽然带宽是链接可获得的最大吞吐量,但是通过具有较大带宽的链接做路由不一定比经过较慢链接路由更好。例如,如果一条快速链路很忙,分组到达目的所花时间可能要更长。

5、负载

负载指网络资源,如路由器的繁忙程度。负载可以用很多方面计算,包括CPU使用情况和每秒处理分组数。持续地监视这些参数本身也是很耗费资源的。

6、通信代价

通信代价是另一种重要的metric,尤其是有一些公司可能关系运作费用甚于性能。即使线路延迟可能较长,他们也宁愿通过自己的线路发送数据而不采用昂贵的公用线路。

四、ip route基本用法

1)显示ip地址

ip aip address showip addr show dev ens33ip a sh ens33

2)列出规则,查看表

ip ruleip rule listip rule show

3)增加/删除/清空规则

# 增加规则ip rule add from 192.168.1.10 table 10 ip rule [del|delete]ip rule del from 192.168.1.10 table 10# 清空所有规则,没有参数ip rule flush

4)列出路由

ip route listip route showip route# 显示所有路由表的路由ip route show table all

5)查看指定网段的路由

ip route list 192.168.182.0/24

6)添加路由

ip route add 192.168.182.0/24 dev ens33 proto kernel scope link src 192.168.182.130 metric 100 table tab1# 添加默认路由ip route add default via 192.168.182.2 dev ens33 proto static metric 100 table tab1

7)删除路由

ip route del 192.168.182.0/24 dev ens33 proto kernel scope link src 192.168.182.130 metric 100 table tab1ip route del default via 192.168.182.2 dev ens33 proto static metric 100 table tab1

8)清空指定网络的路由

# 清空默认表路由ip route flush# 清空指定表路由ip route flush table tab1# 模糊匹配清空路由ip route flush 192.168.182.0/24 #这个是清理所有192.168.182.0/24相关的所有路由,#有时候设置错网关存在多条记录,就需要一次性清空相关路由再进行添加

五、路由分类之动态路由

动态路由是指路由器能够自动地建立自己的路由表,并且能够根据实际情况的变化适时地进行调整。它是与静态路由相对的一个概念,指路由器能够根据路由器之间的交换的特定路由信息自动地建立自己的路由表,并且能够根据链路和节点的变化适时地进行自动调整。当网络中节点或节点间的链路发生故障,或存在其它可用路由时,动态路由可以自行选择最佳的可用路由并继续转发报文。

常见的动态路由协议有以下几个:

路由信息协议(RIP)、OSPF(Open Shortest Path First开放式最短路径优先)、IS-IS(Intermediate System-to-Intermediate System,中间系统到中间系统)、边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。

六、ip route结合iptables做高级路由策略

1、创建路由表tab2

echo ‘1025 tab2’ >> /etc/iproute2/rt_tables

2、添加 ip rule 规则

ip rule add fwmark 3 table tab2

(fwmark 3是标记,table tab1是路由表tab1。 意思就是凡是标记了 3 的数据使用tab1 路由表)3、添加路由规则

ip route add 192.168.182.0/24 dev ens33 proto kernel scope link src 192.168.182.130 metric 100 table tab2# 添加默认路由ip route add default via 192.168.182.2 dev ens33 proto static metric 100 table tab2

4、使用iptables给相应的数据打上标记:

iptables -A PREROUTING -t mangle -i ens33 -s 192.168.182.130-192.168.182.180 -j MARK –set-mark 3

因为mangle的处理是优先于 nat 和fiter表的,所以相应数据包到达之后先打上标记,之后再通过ip rule规则。对应的数据包使用相应的路由表进行路由,最后读取路由表信息,将数据包送出网关。

七、traceroute命令使用

1)简介

traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。linux系统中,我们称之为traceroute,在 Windows中为tracert。 traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。

2)命令格式:

traceroute [-dFlnrvx][-f][-g…][-i][-m][-p][-s][-t][-w][主机名称或IP地址][数据包大小]

命令参数:

-d 使用Socket层级的排错功能。-f 设置第一个检测数据包的存活数值TTL的大小。-F 设置勿离断位。-g 设置来源路由网关,最多可设置8个。-i 使用指定的网络界面送出数据包。-I 使用ICMP回应取代UDP资料信息。-m 设置检测数据包的最大存活数值TTL的大小。-n 直接使用IP地址而非主机名称。-p 设置UDP传输协议的通信端口。-r 忽略普通的Routing Table,直接将数据包送到远端主机上。-s 设置本地主机送出数据包的IP地址。-t 设置检测数据包的TOS数值。-v 详细显示指令的执行过程。-w 设置等待远端主机回报的时间。-x 开启或关闭数据包的正确性检验。

3)简单使用

1、不加任何参数

$ traceroute www.baidu.com

输出:

traceroute to www.baidu.com (183.232.231.174), 30 hops max, 60 byte packets 1 gateway (192.168.182.2) 0.094 ms 0.077 ms 0.044 ms 0.079 ms 2 * * * * 3 * * * * 4 * * * * 5 * * * * 6 * * * * 7 * * * * 8 * * * * 9 * * * *10 * * * *11 * * * *12 * * * *13 * * * *14 * * * *15 * * * *16 * * * *17 * * * *18 * * * *19 * * * *20 * * * *21 * * * *22 * * * *23 * * * *24 * * * *25 * * * *26 * * * *27 * * * *28 * * * *29 * * * *30 * * * *

说明:

  • 记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是ms,其实就是-q的默认参数。探测数据包向每个网关发送3个数据包后,网关响应后返回的时间;如果您用 traceroute -q 4 www.baidu.com ,表示向每个网关发送4个数据包。
  • 有时我们traceroute一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
  • 有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现问题时,不能解析主机名、域名时,也会有延时长的现象;您可以加-n 参数来避免DNS解析,以IP格式输出数据。

2、跳数设置(-m)

$ traceroute -m 10 www.taobao.com

输出:

traceroute to www.baidu.com (183.232.231.174), 10 hops max, 60 byte packets 1 gateway (192.168.182.2) 0.116 ms 0.095 ms 0.036 ms 2 * * * 3 * * * 4 * * * 5 * * * 6 * * * 7 * * * 8 * * * 9 * * *10 * * *

3、显示IP地址,不查主机名(-n)

$ traceroute -n -m 4 www.baidu.com

输出:

traceroute to www.baidu.com (183.232.231.174), 4 hops max, 60 byte packets 1 192.168.182.2 0.079 ms 0.039 ms 0.037 ms 2 * * * 3 * * * 4 * * *

4、探测包使用的基本UDP端口设置8080(-p)

$ traceroute -p 8080 -m 4 www.baidu.com

输出:

traceroute to www.baidu.com (183.232.231.174), 4 hops max, 60 byte packets 1 gateway (192.168.182.2) 0.096 ms 0.042 ms 0.067 ms 2 * * * 3 * * * 4 * * *

5、绕过正常的路由表,直接发送到网络相连的主机(-r)

$ traceroute -r www.baidu.com

输出:

traceroute to www.baidu.com (183.232.231.174), 30 hops max, 60 byte packetsconnect: Network is unreachable

6、把对外发探测包的等待响应时间设置为3秒(-w)

$ traceroute -w 3 -m 4 www.baidu.com

输出:

traceroute to www.baidu.com (183.232.231.174), 4 hops max, 60 byte packets 1 gateway (192.168.182.2) 0.102 ms 0.065 ms 0.066 ms 2 * * * 3 * * * 4 * * *

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
(0)
用户投稿
上一篇 2022年6月22日
下一篇 2022年6月22日

相关推荐

  • 推荐企业品牌推广的4大优势及渠道(企业品牌推广的优势和渠道有哪些)

    在市场同质化产品严重竞争激烈的当下,企业需要通过进行有效的品牌营销从市场价格战中脱离出来,提高自己的地位和威望就必须发展和拥有自己的品牌,并且做品牌推广,把品牌的知名度提升,把品牌…

    2022年10月16日
  • 家长告诉孩子长大前一定要学会的人情世故

    1.不要随便打断别人的说话。 随便打断别人说话或中途插话,是有失礼貌的行为,打断别人、乱插话的人,甚至比发言冗长者更令人生厌。 2.不要随便接受别人的礼物,每个礼物背后都有它的目的…

    2022年8月19日
  • 石冠彬|论民法典网购合同成立时间规则的适用

    石冠彬 华东师范大学法学院教授、法学博士 要目 一、问题的提出:新旧法错位规定的适用困惑 二、网购链接的法律属性:要约邀请与要约之争 三、电子商务法第49条第2款的立法本意与实践效…

    2022年6月12日
  • 极简网络的测试工具netcat

    简介 Netcat 是一款简单的 Unix 工具,使用 UDP 和 TCP 协议。 它是一个可靠的容易被其他程序所启用的后台操作工具,同时它也被用作网络的测试工具或黑客工具。 使用…

    2022年6月19日
  • 真假难辨,才是世界的本质

    人生一世,听到的、看到的、经历的、想象的、梦见的,孰真孰假,有时真的很难分得清楚。这个世界,看到的不一定是真实的,听到的也不一定是虚假的。真真假假,假假真真,似真似假,似假似真,才…

    2022年4月20日
  • 朱亚明一跳进决赛

    广州日报讯 (全媒体记者 白志标) 田径世锦赛昨天进入第7个比赛日的角逐,中国队只参加了男子三级跳资格赛的争夺,东京奥运会亚军朱亚明延续着此前一天中国选手在田赛场上的神勇表现,凭借…

    2022年7月24日
  • 如何快速了解一个行业?阿里、美团教我的行研3步法!附实用网站

    宏观看市场,中观看竞争,微观看需求。 无论是求职转行,还是日常工作,我们经常需要了解一个行业,我自己也曾在行业研究中踩过坑。在阿里和美团的几年中,基于不断的学习与实践,我总结了一套…

    2022年6月26日
  • 有线路由器连接无线路由器怎么设置(有线双路由器连接设置图解)

    首先说明一下,本文所指的二级路由情况,是有线连接,不是无线桥接。 大多数情况下,我们接二级路由都是直接把上级路由出来的线接到二级路由的WAN口,然后给二级路由的上网方式选择为动态I…

    2022年4月19日
  • 游戏版号时隔八月后重新发放 45款国产网游获批

    中国小康网讯 游戏版号停发近八个月后终于重新发放!4月11日晚间,国家新闻出版署官网公布2022年4月国产网络游戏审批情况,45款国产新游戏获得版号,审批时间为4月8日。而上一批审…

    2022年6月30日
  • 国际观察:美涉疆法案与国际经贸规则背道而驰

    来源:人民网-国际频道 原创稿 美国实施所谓《维吾尔强迫劳动预防法》(以下简称“涉疆法案”),完全背离世界贸易组织基本原则,是美国大行单边主义,干扰国际贸易的正常秩序,破坏公平、公…

    2022年8月6日

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息