linux ip详解

来源:互联网 发布:小米电视网络机顶盒 编辑:程序博客网 时间:2024/05/29 14:43

    linux      ip详解 


一、我们在学习ip之前,首先我们来认识一下linux系统下网络接口的类型和命名规则以及网络地址的类型。

1、网络接口类型:

    lo:本地回环接口。

    eth[0-9]:以太网接口。
    pppx:点对点的连接 。

2、网络地址类型:

    暂时性网络地址:利用ip/ifconfig等命令配置的网络信息,会立即生效,但重启网络服务或系统会失效。

    永久性网络地址:通过修改系统内的网络配置文件,不会立即生效,需要重启网络服务或者系统,并且会永久性的生效 。

二、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 

        c、指定本地解析: 
 
           /etc/hosts下添加:      目标主机IP         主机名       
 
                                 fg:172.16.36.1   www.chris.com  
        
DNS解析过程-->/etc/hosts-->DNS 服务器 

    2、主机名配置文件:
        a、配置文件位置:/etc/sysconfig/network 
        
b、配置格式: 
 
          HOSTNAME=名称 
 
          NETWORKING={yes|no}:是否开启网络功能 

 

 

 

  

 


0 0
原创粉丝点击