[root@localhost ~]# rpm -qf /sbin/ip
iproute-2.6.32-31.el6.x86_64
ip 是个命令, ip 命令的功能很多!基本上它整合了 ifconfig 与 route 这两个命令
ip - show / manipulate routing, devices, policy routing and tunnels
ip -c link 彩色
ip -br link 概述
ip -o link 一行显示
ip -d link 详细
ip -s addr 摘要
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | addrlabel | route | rule | neigh | tunnel |
maddr | mroute | monitor }
OPTIONS := { -V[ersion] | -s[tatistics] | -r[esolve] | -f[amily] { inet
| inet6 | ipx | dnet | link } | -o[neline] }
[root@ipt ~]# ip addr help
[root@ipt ~]# ip link help
[root@localhost ~]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:75:34:a5 brd ff:ff:ff:ff:ff:ff
ip link
ip link 可以设定与设备 (device) 有关的相关设定,包括 MTU 以及该网络设备的 MAC 等等,当然也可以启动 (up) 或关闭 (down) 某个网络设备。
ip link set [device] [动作与参数] device 指的是 eth0, eth1 等等设备代号
up|down :启动 (up) 或关闭 (down) 某个设备,其他参数使用预设的以太网参数;
address :如果这个设备可以更改 MAC ,用这个参数修改;
name :给予这个设备一个特殊的名字;
mtu :设置最大传输单元。
[root@linux ~]# ip link set eth0 up
# 启动eth0这个设备;
[root@linux ~]# ip link set eth0 down
# 关闭eth0这个设备;
[root@linux ~]# ip link set eth0 mtu 1000
# 更改 MTU为1000 bytes,单位就是 bytes 。
ip link set eth0 address aa:aa:aa:aa:aa:aa
[root@localhost ~]# ip -s link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
RX: bytes packets errors dropped overrun mcast
108016 473 0 0 0 0
TX: bytes packets errors dropped carrier collsns
108016 473 0 0 0 0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:75:34:a5 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
23016263 27785 0 0 0 0
TX: bytes packets errors dropped carrier collsns
2402975 17084 0 0 0 0
[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:75:34:a5 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.128/24 brd 192.168.2.255 scope global eth0
inet6 fe80::20c:29ff:fe75:34a5/64 scope link
valid_lft forever preferred_lft forever
ip addr
如果说 ip link 是与 OSI 七层模型的第二层数据链路层有关的话,那么 ip address (ip addr) 就是与第三层网络层有关的了。主要是在设定与 IP 有关的各项参数,包括 netmask, broadcast 等等。
ip address [add|del] [IP参数] [dev 设备名] [相关参数]
IP 参数 :主要就是网域的设定,例如 192.168.100.100/24 之类的设定
相关参数如下所示:
broadcast:设定广播位址,如果设定值是 + 表示让系统自动计算;
label :该设备的别名,例如eth0:0;
scope :这个设备的领域,通常是以下几个大类:
global :允许来自所有来源的连接;
site :仅支持IPv6 ,仅允许本主机的连接;
link :仅允许本设备自我连接;
host :仅允许本主机内部的连接;
所以当然是使用 global 了。预设也是 global !
ip addr add 192.168.50.50/24 dev eth1
ip addr del 192.168.50.50/24 dev eth1
[root@localhost ~]# ip addrlabel
prefix ::1/128 label 0
prefix ::/96 label 3
prefix ::ffff:0.0.0.0/96 label 4
prefix 2001::/32 label 6
prefix 2001:10::/28 label 7
prefix 2002::/16 label 2
prefix fc00::/7 label 5
prefix ::/0 label 1
[root@localhost ~]# ip rule
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
使用ip命令的neigh或者neighbour选项,你可以查看接入你所在的局域网的设备的MAC地址。
[root@localhost ~]# ip neigh
192.168.2.190 dev eth0 lladdr 6c:fd:b9:3b:57:ff REACHABLE
192.168.2.2 dev eth0 lladdr 50:46:5d:b9:cd:68 REACHABLE
[root@localhost ~]# ip -s neigh
192.168.2.190 dev eth0 lladdr 6c:fd:b9:3b:57:ff ref 3 used 58/0/2 REACHABLE
192.168.2.2 dev eth0 lladdr 50:46:5d:b9:cd:68 ref 120 used 102/102/82 STALE
[root@localhost ~]# ip route
192.168.50.0/24 dev eth1 proto kernel scope link src 192.168.50.50
192.168.2.0/24 dev eth1 proto kernel scope link src 192.168.2.131 metric 1
default via 192.168.2.2 dev eth1 proto static
ip route
proto:此路由的路由协定,主要有 redirect, kernel, boot, static, ra 等, 其中 kernel 指的是直接由核心判断自动设定。
scope:路由的范围,主要是 link ,是与本设备有关的直接连接。
ip route add 192.168.5.0/24 dev eth0 直连网段
ip route add 192.168.10.0/24 via 192.168.5.100 dev eth0 非直连网段
ip命令的up和down选项来激某个特定的接口 ip link set ppp0 down ip link set ppp0 up ip route add default via 192.168.0.196 root@t1:~# ip neigh 192.168.3.254 dev bond1 lladdr 00:2e:c7:93:eb:25 STALE 192.168.1.254 dev enp50s0f0 lladdr 00:90:0b:58:c6:58 STALE 192.168.3.1 dev bond1 lladdr 90:e2:ba:89:20:21 STALE 192.168.7.161 dev vmbr7 lladdr fe:fc:fe:aa:1d:33 REACHABLE 192.168.7.1 dev vmbr7 lladdr fe:fc:fe:ae:b6:c1 STALE 192.168.8.1 dev vmbr8 lladdr fe:fc:fe:5b:87:49 STALE 192.168.8.254 dev vmbr8 lladdr 00:2e:c7:93:eb:2a STALE 192.168.7.254 dev vmbr7 lladdr 00:2e:c7:93:eb:29 STALE root@t1:~# ip -s -s link ls vmbr7 15: vmbr7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether 90:e2:ba:89:5a:34 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 1455329 9710 0 0 0 0 RX errors: length crc frame fifo missed 0 0 0 0 0 TX: bytes packets errors dropped carrier collsns 161846 1108 0 0 0 0 TX errors: aborted fifo window heartbeat transns 0 0 0 0 2 root@t1:~# ip link show type bond 11: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether 90:e2:ba:89:5a:34 brd ff:ff:ff:ff:ff:ff 16: bond1: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether 90:e2:ba:89:5a:35 brd ff:ff:ff:ff:ff:ff root@t1:~# ip link show type bond_slave 6: enp28s0f0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000 link/ether 90:e2:ba:89:5a:34 brd ff:ff:ff:ff:ff:ff 7: enp28s0f1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond1 state UP mode DEFAULT group default qlen 1000 link/ether 90:e2:ba:89:5a:35 brd ff:ff:ff:ff:ff:ff 8: enp46s0f0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000 link/ether 90:e2:ba:89:5a:34 brd ff:ff:ff:ff:ff:ff 9: enp46s0f1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond1 state UP mode DEFAULT group default qlen 1000 link/ether 90:e2:ba:89:5a:35 brd ff:ff:ff:ff:ff:ff root@t1:~# ip link show type bridge 13: vmbr8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether 90:e2:ba:89:5a:34 brd ff:ff:ff:ff:ff:ff 15: vmbr7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether 90:e2:ba:89:5a:34 brd ff:ff:ff:ff:ff:ff root@t1:~# ip link show type bridge_slave 12: bond0.8@bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master vmbr8 state UP mode DEFAULT group default qlen 1000 link/ether 90:e2:ba:89:5a:34 brd ff:ff:ff:ff:ff:ff 14: bond0.7@bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master vmbr7 state UP mode DEFAULT group default qlen 1000 link/ether 90:e2:ba:89:5a:34 brd ff:ff:ff:ff:ff:ff 17: tap100i0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master vmbr8 state UNKNOWN mode DEFAULT group default qlen 1000 link/ether 82:bf:93:18:34:d9 brd ff:ff:ff:ff:ff:ff root@t1:~# ip link show type vlan 12: bond0.8@bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master vmbr8 state UP mode DEFAULT group default qlen 1000 link/ether 90:e2:ba:89:5a:34 brd ff:ff:ff:ff:ff:ff 14: bond0.7@bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master vmbr7 state UP mode DEFAULT group default qlen 1000 link/ether 90:e2:ba:89:5a:34 brd ff:ff:ff:ff:ff:ff
net_device flags,网络设备的状态标识。
BROADCAST 该接口支持广播
MULTICAST 该接口支持多播
UP 网络接口已启用
LOWER_UP 网络电缆已插入,设备已连接至网络
BROADCAST 表示这个网卡有广播地址,可以发送广播包;
MULTICAST 表示网卡可以发送多播包;
UP 表示网卡处于启动的状态;
LOWER_UP 表示 L1 是启动的,也即网线插着呢。
最大传输单元 MTU 为 1500,这是以太网的默认值。
MTU 是二层 MAC 层的概念。MAC 层有 MAC 的头,以太网规定连 MAC 头带正文合起来,不允许超过 1500 个字节。
对于 eth0 这张网卡来讲,是 global,说明这张网卡是可以对外的,可以接收来自各个地方的包。对于 lo 来讲,是 host,说明这张网卡仅仅可以供本机相互通信。
参见/etc/iproute2/rt_scopes
qdisc
pfifo_fast 是什么意思呢?qdisc 全称是queueing discipline,中文叫排队规则。内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的 qdisc(排队规则)把数据包加入队列。最简单的 qdisc 是pfifo,它不对进入的数据包做任何的处理,数据包采用先入先出的方式通过队列。pfifo_fast 稍微复杂一些,它的队列包括三个波段(band)。在每个波段里面,使用先进先出规则。三个波段(band)的优先级也不相同。band 0 的优先级最高,band 2 的最低。如果 band 0 里面有数据包,系统就不会处理 band 1 里面的数据包,band 1 和 band 2 之间也是一样。数据包是按照服务类型(Type of Service,TOS)被分配到三个波段(band)里面的。TOS 是 IP 头里面的一个字段,代表了当前的包是高优先级的,还是低优先级的。队列是个好东西,后面我们讲云计算中的网络的时候,会有很多用户共享一个网络出口的情况,这个时候如何排队,每个队列有多粗,队列处理速度应该怎么提升,我都会详细为你讲解。
pfifo,pfifo_fast,noop,noqueue
Linux下TC使用说明
https://www.cnblogs.com/endsock/archive/2011/12/09/2281519.html
[p|b]fifo
使用最简单的qdisc,纯粹的先进先出。只有一个参数:limit,用来设置队列的长度,pfifo是以数据包的个数为单位;bfifo是以字节数为单位。
pfifo_fast
在编译内核时,如果打开了高级路由器(Advanced Router)编译选项,pfifo_fast就是系统的标准QDISC。
lo 全称是loopback,又称环回接口,往往会被分配到 127.0.0.1 这个地址。这个地址用于本机通信,经过内核处理后直接返回,不会在任何网络中出现。
mtu 1500 最大传输单位(数据包大小)为1,500字节
qdisc pfifo_fast 用于数据包排队
state UP 网络接口已启用
group default 接口组
qlen 1000 传输队列长度
link/ether 00:1e:4f:c8:43:fc 接口的 MAC(硬件)地址
brd ff:ff:ff:ff:ff:ff 广播地址
inet 192.168.0.24/24 IPv4 地址
brd 192.168.0.255 广播地址
scope global 全局有效
dynamic enp0s25 地址是动态分配的
valid_lft 80866sec IPv4 地址的有效使用期限
preferred_lft 80866sec IPv4 地址的首选生存期
inet6 fe80::2c8e:1de0:a862:14fd/64 IPv6 地址
scope link 仅在此设备上有效
valid_lft forever IPv6 地址的有效使用期限
preferred_lft forever IPv6 地址的首选生存期
qlen 1000
ip -c link set eno1 txqueuelen 100
mode DEFAULT
group DEFAULT
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 74:d4:35:f3:12:83 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.15/24 brd 192.168.3.255 scope global dynamic eno1
valid_lft 21228sec preferred_lft 21228sec
inet6 fe80::76d4:35ff:fef3:1283/64 scope link
valid_lft forever preferred_lft forever
如果BOOTPROTO=dhcp
那么就是dynamic eno1
如果BOOTPROTO=static
那么就是eno1
并且valid_lft是forever,preferred_lft也是forever,没有21228sec秒,就是租约
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 74:d4:35:f3:12:83 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.16/24 brd 192.168.3.255 scope global eno1
valid_lft forever preferred_lft forever
inet6 fe80::76d4:35ff:fef3:1283/64 scope link
valid_lft forever preferred_lft forever
===========================================
新的命名方案被称为“可预测的网络接口Predictable Network Interface”。
global:全局有效;即指定添加的接口配置既可实现本地通信,又可实现跨网络通信;
link:仅接口有效;即只能与使用此接口配置的IP地址通信;
host:仅主机有效;即只能与本地主机上的IP地址进行通信;
修改接口属性(IP/NETMASK/GW/DNS)的配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE;
静态路由的配置文件:/etc/sysconfig/network-scripts/route-IFACE;
ifcfg-eno1
route-eno1
当需要用到非默认网关路由时,可通过此配置文件来配置路由条目;
支持两种配置方式:
(1)每行一个路由条目:TARGET via GW
100.0.0.0/8 via 10.10.10.2 #采用每一行一个路由条目方式;
(2)每三行一个路由条目
ADDRESS#=TARGET
NETMASK#=MASK
GATEWAY#=NEXTHOP
#其中'#'为数字,表示第几组路由条目;
注意:两种配置方式不能混用;
该配置文件通过大量参数来定义接口的属性,
配置文件参数:
DEVICE:此配置文件对应的设备的名称;
ONBOOT:在系统引导过程中,是否激活此接口;
BOOTPROTO:激活此接口时通过什么协议来配置此接口的属性;常用的有:dhcp, bootp, static, none;
PEERDNS:如果BOOTPROTO的值为"dhcp",则是否允许dhcp server分配的DNS服务器指向覆盖本地手动指定的DNS服务器指向;默认为允许(yes);
UUID:此设备的唯一标识;
IPV6INIT:是否初始化IPv6;
TYPE:接口类型,常见的有:Ethernet, Bridge;
DNS1:第一DNS服务器指向;
DNS2:备用DNS服务器指向;
DOMAIN:指定搜索域;
IPADDR:IP地址;
NETMASK:子网掩码;
GATEWAY:默认网关;在CentOS 7上还支持使用PREFIX以长度方式指明子网掩码;
USERCTL:是否允许普通用户控制此设备;
HWADDR:此设备的MAC地址;
NM_CONTROLLED:是否使用NetworkManager服务来控制此接口;
给网络接口配置多个地址,给每个附加的地址一个网卡别名的实现:
ifconfig ens33:0 192.168.1.1/24
永久生效
cp ens33 ens33:0
vi修改下面的,就可以了
DEVICE=IFACE_LABEL #指定网卡别名;
BOOTPROTO=static #网上别名不支持动态获取地址;支持static, none;
IPADDR= #IP地址;
NETMASK= #子网掩码;
删除原有其他接口的HWADDR
删除原有其他接口的UUID
systemctl restart network