leiiwang

Linux网络工具学习之:IP命令学习3

标签(空格分隔): 网络


本文旨在通过IP命令介绍和学习Linux网络的相关知识

1. 概述

3. ip addr

3.1 概述

缩写 address、addr、a 对象 这里的地址是绑定到网络设备上的协议(IP或者IPv6)地址。每个网络设备至 少应该有一个协议地址。而且,一个网络设备可以绑定多个协议地址。 ip addr命令能够显示网络设备的协议地址及其性质,添加新的地址,删除旧的地 址。 命令 add、delete、flush和show(或者list)

[root@10-9-151-160 ~]# ip addr help
Usage: ip addr {add|change|replace} IFADDR dev STRING [ LIFETIME ]
                                                      [ CONFFLAG-LIST ]
       ip addr del IFADDR dev STRING
       ip addr {show|save|flush} [ dev STRING ] [ scope SCOPE-ID ]
                            [ to PREFIX ] [ FLAG-LIST ] [ label PATTERN ] [up]
       ip addr {showdump|restore}
IFADDR := PREFIX | ADDR peer PREFIX
          [ broadcast ADDR ] [ anycast ADDR ]
          [ label STRING ] [ scope SCOPE-ID ]
SCOPE-ID := [ host | link | global | NUMBER ]
FLAG-LIST := [ FLAG-LIST ] FLAG
FLAG  := [ permanent | dynamic | secondary | primary |
           tentative | deprecated | dadfailed | temporary |
           CONFFLAG-LIST ]
CONFFLAG-LIST := [ CONFFLAG-LIST ] CONFFLAG
CONFFLAG  := [ home | nodad ]
LIFETIME := [ valid_lft LFT ] [ preferred_lft LFT ]
LFT := forever | SECONDS

参考 : Man page>ip-address

3.2 ip address add

添加一个新的协议地址

参数(参数说明见下面的例子) |参数|说明 |-|- |dev IFNAME|the name of the device to add the address to. |local ADDRESS (default)| |peer ADDRESS| |broadcast ADDRESS| the broadcast address on the interface. |label LABEL| |scope SCOPE_VALUE| global /site /local / link / host |valid_lft LFT| Defaults to forever. |preferred_lft LFT| Defaults to forever. |home | (IPv6 only) designates this address the “home address” as defined in RFC 6275. |mngtmpaddr|(IPv6 only) |nodad |(IPv6 only) |noprefixroute|

---------------------------------------------
example 13
---------------------------------------------
dev NAME 被操作的设备名 
local ADDRESS(default)     接口的地址,地址格式和协议有关。IPv4地址使用.进行分隔,而IPv6地址使用冒号分隔。ADDRESS可以跟着一个斜杠和表示掩码位数的十进制数字。 
peer ADDRESS 点对点接口对端的地址。ADDRESS也可以跟着一个斜杠和表示掩码位数的十进制数字。 
broadcast ADDRESS 接口的广播地址。为了方便,可以使用+和-(注1)代替广播地址。例如:
ip addr add local 192.168.1.1/24 brd + dev eth0
ip addr add local 192.168.1.1/28 brd - dev eth0 
label NAME 为每个地址设置一个字符串作为标签。为了和Linux-2.0的网络别名兼容,这个字符串必须以设备名开头,接着一个冒号,例如:
#ip addr add local 192.168.4.1/28 brd + label eth0:1 dev eth0 
scope SCOPE_VALUE
设置地址的有效范围,它用于内核为数据包设置源地址。有效的范围在/etc/iproute2/tr_scopes文件列出,系统预先设定了一些范围值:

global 这个地址全局有效。
site (IPv6 only, deprecated) the address is site local, i.e. it is valid inside this site.
link - the address is link local, i.e. it is valid only on this device.
host 地址在主机内部有效。

示例

在回环设备上添加一个回环地址: 
#ip addr add 127.0.0.1/8 dev lo brd + scope host

在以太网接口eth0上增加一个地址10.0.0.1,掩码长度为24位(155.155.155.0),
标准广播地址,标签为eth0:Alias: 
#ip addr add 10.0.0.1/24 brd + dev eth0 label eth0:Alias

3.3 ip address del

这个命令的参数和ip addr add命令的参数一致。其中,只有设备名是必需的 参数,其它都是可选的。如果没有给定除设备名之外的其它参数,ip就会删除这个设备的第一个地址。

[root@10-9-151-160 ~]# ip addr del  192.168.1.1/28 dev eth0

3.4 ip address show

缩写:show、list、lst、sh、ls、l

部分参数

|参数名|说明 |-| |dev NAME(default) |设备的名字 |scope SCOPE_VAL |只列出这个范围的地址 |to PREFIX |只列出和PREFIX匹配的地址,例如:ip addr ls to 192.168.1.1 |label PATTERN |只列出标签匹配PATTERN的地址,PATTERN是一个shell风格的正则表达式。 |dynamic和permanent|这两个参数只适用于IPv6。使用dynamic,ip就只列出动态地址;使用permanent,ip就只列出固定地址。 |tentative |这个参数只适用于IPv6,只列出没有通过重复地址检测的地址。 |deprecated| 这个参数只适用于IPv6,只列出deprecated地址。 |primary和secondary |只列出主(primary)或从(secondary)地址。(在每一个接口上可以配置多个Primary地址和多个Secondary地址。对一个特定的网络掩码(例子中的网络掩码为/24),只能有一个Primary地址。)

3.5 ip address flush

This command flushes the protocol addresses selected by some criteria.

示例1 : 删除属于私网10.0.0.0/8的所有地址:
ip -s -s a f to 10/8
示例2 : 取消所有以太网卡的IP地址
ip -4 addr flush label “eth0″

#Removing all IPs on an interface with ip address flush
[root@tristan]# ip address show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100
    link/ether 00:80:c8:f8:4a:51 brd ff:ff:ff:ff:ff:ff
    inet 192.168.99.35/24 brd 192.168.99.255 scope global eth0
    inet 192.168.99.37/24 brd 192.168.99.255 scope global secondary eth0:0
[root@tristan]# ip address flush
Flush requires arguments.
[root@tristan]# ip address flush dev eth0
[root@tristan]# ip address show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100
    link/ether 00:80:c8:f8:4a:51 brd ff:ff:ff:ff:ff:ff
comments powered by Disqus