一、Iproute2简介
Iproute2是一个在Linux下的高级网络管理工具软件。实际上,它是通过rtnetlink sockets方式动态配置内核的一些小工具组成的,从Linux2.2内核开始,Alexey Kuznetsov 实现了通过rtnetlink sockets用来配置网络协议栈,它是一个现代的强大的接口。
centos安装iproute2命令:
yum install -y iproute
ip -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)
3.1、路由策略(ip rule)
基于策略的路由比传统路由在功能上更强大,使用更灵活,它使网络管理员不仅能够根据目的地址而且能够根据报文大小、应用或IP源地址等属性来选择转发路径。
ip rule 命令:
Usage: ip rule [ list | add | del ] SELECTOR ACTION (add 添加;del 删除; llist 列表)
3.1.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
3.1.2、示例:
# 添加路由表
echo '1024 tab1' >> /etc/iproute2/rt_tables
# 通过路由表 tab1 路由来自源地址为192.168.182.0/24的数据包,优先级220
ip 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 220
ip 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参数。