linux ip详解
二、ip命令:
ip是iproute2软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具,例如ifconfig、route等,使用权限为超级用户几乎所有的Linux发行版本都支持该命令。
1、格式:
ip [options] object [command [arguments]]
2、主要参数
OPTIONS是修改ip行为或改变其输出的选项。所有的选项都是以-字符开头,分为长、短两种形式。如link、addr、route、rule、tunnel 。
object是要管理者获取信息的对象。如网络接口类型eth0。
command设置针对指定对象执行的操作,它和对象的类型有关。一般情况下,ip支持对象的增加(add)、删除(delete)和展示(show或list)。有些对象不支持这些操作,或者有其它的一些命令。对于所有的对象,用户可以使用help命令获得帮助。这个命令会列出这个对象支持的命令和参数的语法。如果没有指定对象的操作命令,ip会使用默认的命令。一般情况下,默认命令是list,如果对象不能列出,就会执行help命令。
arguments是命令的一些参数,它们倚赖于对象和命令。ip支持两种类型的参数:flag和parameter。flag由一个关键词组成;parameter由一个关键词加一个数值组成。为了方便,每个命令都有一个可以忽略的默认参数。例如,参数dev是ip link命令的默认参数,因此ip link ls eth0等于ip link ls dev eth0。命令的默认参数将使用default标出。
2.1、ip link set--改变设备的属性. 缩写:set、s
示例1:up/down 起动/关闭设备
ip link set dev eth0 up 这个等于传统的ifconfig eth0 up(down)
示例2:改变设备传输队列的长度。参数:txqueuelen NUMBER或者txqlen NUMBER
ip link set dev eth0 txqueuelen 100
示例3:改变网络设备MTU(最大传输单元)的值。
ip link set dev eth0 mtu 1500
示例4: 修改网络设备的MAC地址。参数: address LLADDRESS
ip link set dev eth0 address 00:01:4f:00:15:f1
2.2、ip link show--显示设备属性. 缩写:show、list、lst、sh、ls、l
-s选项出现两次或者更多次,ip会输出更为详细的错误信息统计。
示例:
ip -s -s link ls eth0 这个命令等于传统的 ifconfig eth0
2.3、ip address add--添加一个新的协议地址. 缩写:add、a
示例1:为每个地址设置一个字符串作为标签。为了和Linux-2.0的网络别名兼容,这个字符串必须以设备名开头,接着一个冒号,
ip addr add 192.168.4.1/24 brd + label eth0:1 dev eth0
示例2: 在以太网接口eth0上增加一个地址192.168.20.0,掩码长度为24位(155.155.155.0),标准广播地址,标签为eth0:Alias:
ip addr add 192.168.4.2/24 brd + dev eth1 label eth1:1
2.4、ip address delete--删除一个协议地址. 缩写:delete、del、d
ip addr del 192.168.4.1/24 dev eth0
2.5、ip address show--显示协议地址. 缩写:show、list、lst、sh、ls、l
ip addr ls eth0
2.6、路由表管理缩写 route、ro、r
路由表从Linux-2.2开始,内核把路由归纳到许多路由表中,这些表都进行了编号,编号数字的范围是1到255。另外,为了方便,还可以在/etc/iproute2/rt_tables中为路由表命名。默认情况下,所有的路由都会被插入到表main(编号254)中。在进行路由查询时,内核只使用路由表main。
2.6.1、路由基本操作
ip route add -- 添加新路由
ip route change -- 修改路由
ip route replace -- 替换已有的路由
缩写:add、a;change、chg;replace、repl
示例1: 设置到网络192.168.4.0/24的路由经过网关192.168.4.1
ip ro add 192.168.4.0/24 via 192.168.4.1
示例2: 修改到网络192.168.4.0/24的路由,使其经过设备dummy
ip route chg 192.168.4.0/24 dev dummy
示例3: 设置nat路由。在转发来自192.168.1.200的数据包之前,先进行网络地址转换,把这个地址转换为192.168.1.1
ip route add nat 192.168.1.200 via 192.168.1.1
ip route delete-- 删除路由,缩写:delete、del、d
示例1:删除上一节命令加入的多路径路由
ip ro del 192.168.4.1/24
ip route show -- 列出路由,缩写:show、list、sh、ls、l
示例2: 列出路由表TABLEID里面的路由。缺省设置是table main。TABLEID或者是一个真正的路由表ID或者是/etc/iproute2/rt_tables文件定义的字符串。
ip ro show table main = ip route ls
示例3:擦除路由表
ip route flush
示例4: 清除所有ipv4路由cache
ip route flush cache
2.6.2、路由策略数据库管理命令
命令add、delete、show(或者list),注意:策略路由(policy routing)不等于路由策略(rouing policy)。在某些情况下,我们不只是需要通过数据包的目的地址决定路由,可能还需要通过其他一些域:源地址、IP协议、传输层端口甚至数据包的负载。这就叫做:策略路由(policy routing)。
2.6.1.1、ip rule add -- 插入新的规则
ip rule delete -- 删除规则
ip rule list -- 显示路由表信息 缩写:add、a;delete、del、d
示例1: 双线选择,让来自192.168.3.0/24的封包走11.0.0.254这个网关,来自192.168.4.0/24的封包走12.0.0.254这个网关
a.定义表:echo 10 clinet_cnc >>/etc/iproute2/rt_tables
echo 20 clinet_tel >>/etc/iproute2/rt_tables
b.把规则放入表中
ip rule add from 192.168.3.0/24 table clinet_cnc
ip rule add from 192.168.4.0/24 table clinet_tel
c.添加策略路由
ip route add default via 11.0.0.254 table clinet_cnc
ip route add default via 12.0.0.254 table clinet_tel
d.刷新路由表
ip route flush cache
2.6.3、ip tunnel -- 通道/隧道配置,缩写tunnel、tunl,隧道一般添加在网关上
ip tunnel add -- 添加新的通道
ip tunnel change -- 修改现有的通道
ip tunnel delete -- 删除一个通道,缩写:add、a;change、chg;delete、del、d
示例1:建立一个ipip隧道:
说明:clientA192.168.1.1、clinetB 192.168.2.1、
A网关10.10.10.1和192.168.1.2、B网关10.10.10.2和192.168.2.2
现在使用隧道技术实现clinetA与clinetB连通,而不使用A网关和B网关互置网关技术
A网关配置:
a、在A网关中添加ipip隧道,连通10.10.10.1与10.10.10.2
ip tunnel add tuna mode ipip remote 10.10.10.2 local 10.10.10.1
b、启动隧道装置
ip link set tuna up
c、在隧道装置中添加ip
ip addr add 0.0.0.0/0 dev tuna
d、添加路由,使目的地址为192.168.2.0/24都经由此隧道传输
ip ro add 192.168.2.0/24 dev tuna
B网关配置:
a、在B网关中添加ipip隧道,连通10.10.10.2与10.10.10.1
ip tunnel add tuna mode ipip remote 10.10.10.1 local 10.10.10.2
b、启动隧道装置
ip link set tuna up
c、在隧道装置中添加ip
ip addr add 0.0.0.0/0 dev tuna
d、添加路由,使目的地址为192.168.1.0/24都经由此隧道传输
ip ro add 192.168.1.0/24 dev tuna
三、永久性网络地址配置
暂时性ip地址的配置我们已经在前面介绍过了,这里不在重述,下面介绍下关于eth0:0这个主机网络别名的配置文件的配置方法 :
a、命令配置修改/etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
BOOTPROTO=static
IPADDR= IP地址
NETMASK= 子网掩码
GATEWAY= 网关
ONBOOT=YES 是否开机启用
HWADDR=...... MAC
非主要地址不能用DHCP服务获得,必须为静止的。
四、其他网络配置文件
1、DNS配置文件:
a、DNS配置文件位置:/etc/resolv.conf
b、DNS配置格式:
nameserver DNS_IP1
nameserver DNS_IP2