乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      linux ip 命令

       fym0121 2011-05-03

      Ip命令手冊(cè)

       

      1.    ip是iproute2軟件包里面的一個(gè)強(qiáng)大的網(wǎng)絡(luò)配置工具,本文將介紹ip命令及其選項(xiàng)。

      2.    Ip命令的語(yǔ)法:

           ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]]

        其中,OPTIONS是一些修改ip行為或者改變其輸出的選項(xiàng)。所有的選項(xiàng)都是以-字符開頭,分為長(zhǎng)、短兩種形式。目前,ip支持如下選項(xiàng):

      -V,-Version: 打印ip的版本并退出。

      -s,-stats,-statistics: 輸出更為詳盡的信息。如果這個(gè)選項(xiàng)出現(xiàn)兩次或者多次,輸出的信息將更為詳盡。

      -f,-family: 這個(gè)選項(xiàng)后面接協(xié)議種類,包括:inet、inet6或者link,強(qiáng)調(diào)使用的協(xié)議種類。如果沒有足夠的信息告訴ip使用的協(xié)議種類,ip就會(huì)使用默認(rèn)值inet或者any。link比較特殊,它表示不涉及任何網(wǎng)絡(luò)協(xié)議。

      -4 是-family inet的簡(jiǎn)寫。

      -6 是-family inet6的簡(jiǎn)寫。

      -0 是-family link的簡(jiǎn)寫。

      -o,-oneline 對(duì)每行記錄都使用單行輸出,回行用字符代替。如果你需要使用wc、grep等工具處理ip的輸出,會(huì)用到這個(gè)選項(xiàng)。

      -r,-resolve 查詢域名解析系統(tǒng),用獲得的主機(jī)名代替主機(jī)IP地址。

      OBJECT是你要管理或者獲取信息的對(duì)象。目前ip認(rèn)識(shí)的對(duì)象包括:

        link: 網(wǎng)絡(luò)設(shè)備

        address: 一個(gè)設(shè)備的協(xié)議(IP或者IPV6)地址

        neighbour: ARP或者NDISC緩沖區(qū)條目

        route: 路由表?xiàng)l目

        rule: 路由策略數(shù)據(jù)庫(kù)中的規(guī)則

        maddress: 多播地址

        mroute: 多播路由緩沖區(qū)條目

        tunnel IP:上的通道

      另外,所有的對(duì)象名都可以簡(jiǎn)寫,例如:address可以簡(jiǎn)寫為addr,甚至是a。

      COMMAND設(shè)置針對(duì)指定對(duì)象執(zhí)行的操作,它和對(duì)象的類型有關(guān)。一般情況下,ip支持對(duì)象的增加(add)、刪除(delete)和展示(show或者list)。有些對(duì)象不支持所有這些操作,或者有其它的一些命令。對(duì)于所有的對(duì)象,用戶可以使用help命令獲得幫助。這個(gè)命令會(huì)列出這個(gè)對(duì)象支持的命令和參數(shù)的語(yǔ)法。如果沒有指定對(duì)象的操作命令,ip會(huì)使用默認(rèn)的命令。一般情況下,默認(rèn)命令是list,如果對(duì)象不能列出,就會(huì)執(zhí)行help命令。

        ARGUMENTS是命令的一些參數(shù),它們倚賴于對(duì)象和命令。ip支持兩種類型的參數(shù):flag和parameter。flag由一個(gè)關(guān)鍵詞組成;parameter由一個(gè)關(guān)鍵詞加一個(gè)數(shù)值組成。為了方便,每個(gè)命令都有一個(gè)可以忽略的默認(rèn)參數(shù)。例如,參數(shù)dev是ip link命令的默認(rèn)參數(shù),因此ip link ls eth0等于ip link ls dev eth0。我們將在后面的章節(jié)詳細(xì)介紹每個(gè)命令的使用,命令的默認(rèn)參數(shù)將使用default標(biāo)出。

        幾乎所有的關(guān)鍵詞都可以簡(jiǎn)寫為前幾個(gè)字母。在交互工作時(shí),簡(jiǎn)寫的方式非常方便,但是我們不建議在腳本中使用簡(jiǎn)寫形式。另外,在講述過(guò)程中,所有的“官方”簡(jiǎn)寫方式都會(huì)在文章中列出。

       

       

       

      3.ip的錯(cuò)誤信息

       

      由于以下原因,ip可能會(huì)操作失?。?

        命令行語(yǔ)法錯(cuò)誤:一個(gè)未知的關(guān)鍵詞(an unknown keyword);錯(cuò)誤的IP地址格式(incorrectly formated IP address)。在這種情況下,ip會(huì)打印出錯(cuò)誤信息然后退出,在錯(cuò)誤信息中會(huì)包含失敗的原因。有時(shí)ip也會(huì)打印幫助信息。

      參數(shù)不能通過(guò)一致性校驗(yàn)。由于用戶沒有提供足夠的信息,造成ip無(wú)法從參數(shù)中編譯出內(nèi)核請(qǐng)求。

      內(nèi)核返回某些系統(tǒng)調(diào)用的錯(cuò)誤。ip使用perror(3)輸出錯(cuò)誤信息,因此輸出的錯(cuò)誤信息包含一段注釋以及系統(tǒng)調(diào)用號(hào)。

      內(nèi)核返回RTNETLINK請(qǐng)求錯(cuò)誤。這類錯(cuò)誤信息以"RTNETLIK answers"開頭。

        ip的所有操作都是原子操作。例如,如果ip執(zhí)行失敗,它不會(huì)系統(tǒng)的任何東西,ip link command例外,它會(huì)修改某些設(shè)備參數(shù)。

        我們無(wú)法列出所有的錯(cuò)誤信息,尤其是語(yǔ)法錯(cuò)誤。不過(guò),錯(cuò)誤信息的意思都非常明確。下面,我們列舉一些經(jīng)常出現(xiàn)的錯(cuò)誤信息:

       

      內(nèi)核不支持netlink(netlink用于在內(nèi)核模塊和用戶之間傳遞信息),會(huì)出現(xiàn)以下錯(cuò)誤信息:

      Cannot open netlink socket: Invalid value

       

      內(nèi)核不支持RTNETLINK,會(huì)出現(xiàn)以下錯(cuò)誤信息:

      Cannot talk to rtnetlink: Connect refused

      Cannot send dump request: Connect refused

       

      如果在編譯內(nèi)核時(shí)沒有配置CONFIG_IP_MULTIPLE_TABLES選項(xiàng)。在使用ip規(guī)則時(shí)會(huì)出現(xiàn)和下面的信息類似的錯(cuò)誤信息:

      kuznet@kaise $ ip rule list

      RTNETLINK error: Invalid argument

      dump terminated

       

      4.ip link--配置網(wǎng)絡(luò)設(shè)備

      對(duì)象 link由網(wǎng)絡(luò)設(shè)備,對(duì)應(yīng)的命令顯示以及設(shè)備的狀態(tài)變化組成。

      命令 set和show(或者list)

      4.1.ip link set--改變?cè)O(shè)備的屬性

      縮寫:set、s

      參數(shù):

      dev NAME(default) 指定進(jìn)行操作的網(wǎng)絡(luò)設(shè)備

      up/down 起動(dòng)/關(guān)閉設(shè)備。

      例如:ip link set dev eth0 up

      arp on/off 改變網(wǎng)絡(luò)設(shè)備的NOARP選項(xiàng)。

      如果設(shè)備處于UP狀態(tài),不允許進(jìn)行這個(gè)操作。不過(guò),內(nèi)核和ip都不會(huì)對(duì)在這種情況下的這個(gè)操作進(jìn)行檢查。在設(shè)備處于運(yùn)行狀態(tài)下改變這個(gè)選項(xiàng)會(huì)造成無(wú)法預(yù)料的后果。

      multicast on/off 改變網(wǎng)絡(luò)設(shè)備的MULTICAST選項(xiàng)。

      dynamic on/off 改變網(wǎng)絡(luò)設(shè)備的DYNAMIC選項(xiàng)。

      name NAME 把設(shè)備的名字改為NAME(例如:eth0)。如果設(shè)備處于運(yùn)行狀態(tài)或者已經(jīng)配置了地址,建議不要進(jìn)行這個(gè)操作。

      txqueuelen NUMBER或者txqlen NUMBER 改變?cè)O(shè)備傳輸隊(duì)列的長(zhǎng)度。

      例如:ip link set dev eth0 txqueuelen 100

      mtu NUMBER 改變網(wǎng)絡(luò)設(shè)備MTU(最大傳輸單元)的值。

      例如:ip link set dev eth0 mtu 1500

      address LLADDRESS 修改網(wǎng)絡(luò)設(shè)備的MAC地址。

      例如:ip link set dev eth0 address 00:01:4f:00:15:f1

      broadcat LLADDRESS或者brd LLADDRESS 修改數(shù)據(jù)鏈路層廣播地址。

      注意:對(duì)于大多數(shù)的網(wǎng)絡(luò)設(shè)備(例如:以太網(wǎng)),修改鏈路層廣播地址會(huì)對(duì)網(wǎng)絡(luò)造成破壞。因此,如果對(duì)此沒有很深的理解,最好不要使用這個(gè)操作。

      peer LLADDRESS 當(dāng)使用點(diǎn)對(duì)點(diǎn)連接時(shí),使用這個(gè)操作可以修改對(duì)端的數(shù)據(jù)鏈路層地址。

        注意:ip不能修改PROMISC或者ALLMULTI選項(xiàng)。這兩個(gè)選項(xiàng)已經(jīng)比較陳舊,而且也不應(yīng)該隨便修改。

      如果同時(shí)修改多個(gè)參數(shù),任何一個(gè)修改失敗,ip都會(huì)立即取消操作。這種情況可能使系統(tǒng)進(jìn)入無(wú)法預(yù)料的狀態(tài)。為了避免出現(xiàn)這種情況,盡量不要使用ip link set同時(shí)修改多個(gè)參數(shù),例如:ip link set dev eth0 mtu 1500 txqueuelen 100。

      4.2.ip link show--顯示設(shè)備屬性

      縮寫:show、list、lst、sh、ls、l

      參數(shù)

      dev NAME(default) NAME指定網(wǎng)絡(luò)設(shè)備名稱,例如:eth0。如果省略了這個(gè)參數(shù),所有的設(shè)備屬性就都會(huì)被列出。

      up 只顯示處于活動(dòng)狀態(tài)網(wǎng)絡(luò)接口的信息。

      輸出格式

      kuznet@alisa:~ $ ip link ls eth0

      3: eth0: mtu 1500 qdisc cbq qlen 100

      link/ether 00:a0:cc:66:18:78 brd ff:ff:ff:ff:ff:ff:

       

      kuznet@alisa:~ $ ip link ls sit0

      5: sit0@NOME: mtu 1480 qdisc noqueue

      link/sit 0.0.0.0 brd 0.0.0.0

       

      kuznet@alisa:~ $ ip link ls dummy

      2: dummy: mtu 1500 qdisc noop

      link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff

      kuznet@alisa:~ $

        在顯示的信息中,每個(gè)引號(hào)之前的數(shù)字是一個(gè)接口索引,用于識(shí)別網(wǎng)絡(luò)接口。這個(gè)數(shù)字后面是網(wǎng)絡(luò)接口的名字(例如:eth0、dummy等),它也和網(wǎng)絡(luò)接口一一對(duì)應(yīng)。不過(guò),在某些情況下,例如:驅(qū)動(dòng)模塊被卸載,對(duì)應(yīng)的接口名就會(huì)從列表中消失,而其它新創(chuàng)建的接口就會(huì)使用相同的名字。系統(tǒng)管理員可以ip link set name修改接口的名字。

        接口名可以是別的,或者是@NONE。這意味著這個(gè)設(shè)備被綁定到其它的設(shè)備,例如數(shù)據(jù)包被發(fā)送到這個(gè)設(shè)備,由這個(gè)設(shè)備封裝,并從master設(shè)備發(fā)出。如果設(shè)備名字是NONE,就表示master設(shè)備是未知的。

        接著,我們看到的是mtu(Maximal Transfer Unit,最大傳輸單元)。它決定這個(gè)接口單個(gè)數(shù)據(jù)包能夠傳輸多少數(shù)據(jù)。

       

        qdisc(queuing discipline)顯示這個(gè)網(wǎng)絡(luò)接口使用的排隊(duì)算法。noqueue表示不對(duì)數(shù)據(jù)包進(jìn)行排隊(duì);noop表示這個(gè)網(wǎng)絡(luò)接口出于黑洞模式,也就是所有進(jìn)入本網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)會(huì)直接被丟棄。qlen是網(wǎng)絡(luò)接口傳輸隊(duì)列的默認(rèn)長(zhǎng)度。

       

      網(wǎng)絡(luò)接口可以有如下標(biāo)志:

      UP: 這個(gè)設(shè)備處于運(yùn)行狀態(tài),可以接收、發(fā)送數(shù)據(jù)包。

      LOOPBACK: 這個(gè)接口不能用于和其它的主機(jī)通訊,所有發(fā)送到這個(gè)接口的數(shù)據(jù)包都會(huì)返回,而且這種接口只能接收反彈回來(lái)的數(shù)據(jù)包。

      BROADCAST: 這個(gè)設(shè)備具有把數(shù)據(jù)包發(fā)送到所有主機(jī)的能力。以太網(wǎng)連接是一個(gè)很典型的例子。

      POINTTOPOINT: 兩個(gè)節(jié)點(diǎn)之間是直接連接的。某個(gè)接點(diǎn)發(fā)出的所有數(shù)據(jù)包都會(huì)發(fā)到對(duì)端節(jié)點(diǎn),接收到的所有數(shù)據(jù)包也都是從對(duì)端節(jié)點(diǎn)發(fā)過(guò)來(lái)的。

      MULTICAST: 這個(gè)標(biāo)志表示設(shè)備具有多播能力,能夠把數(shù)據(jù)包發(fā)送到某些相鄰的網(wǎng)絡(luò)節(jié)點(diǎn)。實(shí)際上,廣播是多播的一個(gè)特例,它的多播組包括連接上的所有節(jié)點(diǎn)。

      從定義上,POINTTOPOINT和BROADCAST連接都屬于多播。

        如果網(wǎng)絡(luò)接口的標(biāo)志不屬于LOOPBACK、BROADCAST和POINTTOPOINT的任何一個(gè),就假定是NMBA(Non-Broadcast Multi-Access)類型。這是最為普遍的一個(gè)標(biāo)志。

      PROMISC: 設(shè)備處于混雜模式,接收連接上的所有數(shù)據(jù),不管目的地址是否是自己。通常,這種模式主要用于網(wǎng)橋和網(wǎng)絡(luò)監(jiān)視。

      ALLMULTI: 設(shè)備接收連接上的所有多播數(shù)據(jù)包,多播路由器(muliticast router)使用這種模式。

      NOARP: 這個(gè)標(biāo)志和其它的標(biāo)志不同,它的含義和涉及的網(wǎng)絡(luò)協(xié)議有關(guān)。它一般表示這個(gè)設(shè)備無(wú)需地址解析,軟件或者硬件不必借助于系統(tǒng)協(xié)議棧的幫助就知道如何把數(shù)據(jù)包投遞到目的地。

      DYNAMIC: 這個(gè)標(biāo)志表示這個(gè)網(wǎng)絡(luò)接口是動(dòng)態(tài)建立和撤消的。

      SLAVE: 表示這個(gè)接口被綁定到其它的網(wǎng)絡(luò)接口。

        除此之外,還有其它一些標(biāo)志。這些標(biāo)志或者已經(jīng)過(guò)時(shí)(例如:NOTRAILERS),或者還沒有實(shí)現(xiàn)(如:DEBUG),或者只是特定于某些設(shè)備(例如:MASTER、AUTOMEDIA、PORTSEL)。因此,在此我們不作討論。

       

        對(duì)于PROMISC和ALLMULTI標(biāo)志,ifconfig和ip顯示的值是不同的。ip link ls命令顯示的是設(shè)備的真正狀態(tài),而ifconfig顯示的是自己設(shè)置的虛擬設(shè)備狀態(tài)。

       

        顯示信息的第二行包含和鏈路層地址(MAC地址)相關(guān)的信息。其中,第一個(gè)詞(ether、sit)定義接口的硬件類型。而接口的硬件類型又決定MAC地址的格式和語(yǔ)法。默認(rèn)的格式是硬件的MAC地址和廣播地址(如果是點(diǎn)對(duì)點(diǎn)連接方式,就是對(duì)端的地址),地址是用冒號(hào)隔開的16進(jìn)制數(shù)字。不過(guò),默寫類型的連接有其特定的地址格式,例如:IP通道的地址格式是用點(diǎn)分開的IP地址。

        NBMA(Non-Broadcast Multi-Access)連接沒有明確定義的廣播地址和對(duì)端地址。不過(guò),這個(gè)域包含一些有用的信息,例如:倚賴于ARP服務(wù)器的廣播地址。

       

        使用這個(gè)命令不會(huì)顯示多播地址,需要使用ip maddr ls命令。詳情請(qǐng)參考第9節(jié)ip maddr ls。

      統(tǒng)計(jì)信息

       

        使用-statistics選項(xiàng),ip命令會(huì)打印出網(wǎng)絡(luò)接口的統(tǒng)計(jì)信息,例如:

       

      kuznet@alisa:~ $ ip -s link ls eth0

      3: eth0: mtu 1500 qdisc cbq qlen 100

      link/ether 00:a0:cc:66:18:78 brd ff:ff:ff:ff:ff:ff

      RX: bytes packets errors dropped overrun mcast

      2449949362 2786187 0 0 0 0

      TX: bytes packets errors dropped carrier collsns

      178558497 1783946 332 0 332 35172

      kuznet@alisa:~ $

       

        RX:和TX:分別是接收和發(fā)送統(tǒng)計(jì)信息的開頭。得到的統(tǒng)計(jì)信息包括:

      bytes 網(wǎng)絡(luò)接口發(fā)送或者收到的字節(jié)數(shù)。如果字節(jié)數(shù)超過(guò)數(shù)據(jù)類型能夠表示的最大數(shù)值,就會(huì)造成回卷。因此,你如果想連續(xù)監(jiān)視這個(gè)指標(biāo),

      需要一個(gè)用戶空間的監(jiān)控進(jìn)程周期性地保存這個(gè)數(shù)據(jù)。

      packets 網(wǎng)絡(luò)接口收到或者發(fā)送的數(shù)據(jù)包個(gè)數(shù)。

      errors 發(fā)生錯(cuò)誤的次數(shù)。

      dropped 由于系統(tǒng)資源限制,而丟棄數(shù)據(jù)包的數(shù)量。

      overrun 由于發(fā)生堵塞,收到的數(shù)據(jù)包被丟棄的數(shù)量。如果接口發(fā)生堵塞,就意味著內(nèi)核或者你的機(jī)器太慢,無(wú)法處理收到的數(shù)據(jù)。

      mcast 收到的多播數(shù)據(jù)包數(shù)量,只有很少的設(shè)備支持這個(gè)選項(xiàng)。

      carrier 連接介質(zhì)出現(xiàn)故障的次數(shù),例如:網(wǎng)線接觸不好。

      collsns 以太網(wǎng)類型介質(zhì)發(fā)生沖突的事件次數(shù)。

      compressed 壓縮數(shù)據(jù)包的總數(shù)。這個(gè)指標(biāo)只適用于使用VJ頭壓縮的網(wǎng)絡(luò)接口。

       

        如果-s選項(xiàng)出現(xiàn)兩次或者更多次,ip會(huì)輸出更為詳細(xì)的錯(cuò)誤信息統(tǒng)計(jì)。

       

      kuznet@alisa:~ $ ip -s -s link ls eth0

      3: eth0: mtu 1500 qdisc cbq qlen 100

      link/ether 00:a0:cc:66:18:78 brd ff:ff:ff:ff:ff:ff

      RX: bytes packets errors dropped overrun mcast

      2449949362 2786187 0 0 0 0

      RX errors: length crc frame fifo missed

      0 0 0 0 0

      TX: bytes packets errors dropped carrier collsns

      178558497 1783946 332 0 332 35172

      TX errors: aborted fifo window heartbeat

      0 0 0 332

      kuznet@alisa:~ $

       

        這些錯(cuò)誤的名字是純以太化的,對(duì)于其它種類的設(shè)備,這些域可能有不同的解釋。

       

       

      5.ip address--協(xié)議地址管理

       

      縮寫 address、addr、a

      對(duì)象 這里的地址是綁定到網(wǎng)絡(luò)設(shè)備上的協(xié)議(IP或者IPv6)地址。每個(gè)網(wǎng)絡(luò)設(shè)備至少應(yīng)該有一個(gè)協(xié)議地址。而且,一個(gè)網(wǎng)絡(luò)設(shè)備可以綁定多個(gè)協(xié)

       

      議地址。

      ip addr命令能夠顯示網(wǎng)絡(luò)設(shè)備的協(xié)議地址及其性質(zhì),添加新的地址,刪除舊的地址。

      命令 add、delete、flush和show(或者list)

       

      5.1.ip address add--添加一個(gè)新的協(xié)議地址

      縮寫:add、a

      參數(shù)

      dev NAME 被操作的設(shè)備名

      local ADDRESS(default) 接口的地址,地址格式和協(xié)議有關(guān)。IPv4地址使用.進(jìn)行分隔,而IPv6地址使用冒號(hào)分隔。ADDRESS可以跟著一個(gè)斜杠和表示掩碼位數(shù)的十進(jìn)制數(shù)字。

      peer ADDRESS 點(diǎn)對(duì)點(diǎn)接口對(duì)端的地址。ADDRESS也可以跟著一個(gè)斜杠和表示掩碼位數(shù)的十進(jìn)制數(shù)字。

      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 為每個(gè)地址設(shè)置一個(gè)字符串作為標(biāo)簽。為了和Linux-2.0的網(wǎng)絡(luò)別名兼容,這個(gè)字符串必須以設(shè)備名開頭,接著一個(gè)冒號(hào),例如:

      ip addr add local 192.168.4.1/28 brd + label eth0:1 dev eth0

      scope SCOPE_VALUE(注2) 設(shè)置地址的有效范圍,它用于內(nèi)核為數(shù)據(jù)包設(shè)置源地址。有效的范圍在/etc/iproute2/tr_scopes文件列出,系統(tǒng)預(yù)先設(shè)定了一些范圍值:

      global 這個(gè)地址全局有效。

      site 這個(gè)地址是局部連接,也就是只有目標(biāo)地址是這個(gè)設(shè)備地址時(shí),才有效。

      site (只適用于IPv6)地址在站點(diǎn)內(nèi)部有效。

      host 地址在主機(jī)內(nèi)部有效。

      注1:使用-,ip addr ls顯示的是網(wǎng)絡(luò)地址;使用+,ip addr ls顯示的是廣播地址。

      注2:有關(guān)scope,在附錄A中有更為詳細(xì)的解釋。

      示例

      在回環(huán)設(shè)備上添加一個(gè)回環(huán)地址:

      #ip addr add 127.0.0.1/8 dev lo brd + scope host

      在以太網(wǎng)接口eth0上增加一個(gè)地址10.0.0.1,掩碼長(zhǎng)度為24位(155.155.155.0),標(biāo)準(zhǔn)廣播地址,標(biāo)簽為eth0:Alias:

      #ip addr add 10.0.0.1/24 brd + dev eth0 label eth0:Alias

      5.2.ip address delete--刪除一個(gè)協(xié)議地址

      縮寫:delete、del、d

      參數(shù)

        這個(gè)命令的參數(shù)和ip addr add命令的參數(shù)一致。其中,只有設(shè)備名是必需的參數(shù),其它都是可選的。如果沒有給定除設(shè)備名之外的其它參

       

      數(shù),ip就會(huì)刪除這個(gè)設(shè)備的第一個(gè)地址。

       

      示例

      刪除回環(huán)設(shè)備的一個(gè)回環(huán)地址。不過(guò),最好不要作這種嘗試。

      #ip addr del 127.0.0.1/8 dev lo

      以下shell代碼可以取消設(shè)備上的所有IP地址。

      while ip -f inet add del dev eth0;do

      :nothing

      done

       

      另外,可以使用ip addr flush命令取消IP地址

      5.3.ip address show--顯示協(xié)議地址

       

      縮寫:show、list、lst、sh、ls、l

       

      參數(shù)

      dev NAME(default) 設(shè)備的名字

      scope SCOPE_VAL 只列出這個(gè)范圍的地址

      to PREFIX 只列出和PREFIX匹配的地址,例如:

      ip addr ls to 192.168.1.1

      label PATTERN 只列出標(biāo)簽匹配PATTERN的地址,PATTERN是一個(gè)shell風(fēng)格的正則表達(dá)式。

      dynamic和permanent 這兩個(gè)參數(shù)只適用于IPv6。使用dynamic,ip就只列出動(dòng)態(tài)地址;使用permanent,ip就只列出固定地址。

      tentative 這個(gè)參數(shù)只適用于IPv6,只列出沒有通過(guò)重復(fù)地址檢測(cè)[參考2]的地址。

      deprecated 這個(gè)參數(shù)只適用于IPv6,只列出deprecated[參考2]地址。

      primary和secondary 只列出主(primary)或從(secondary)地址。

       

      輸出格式

      duznet@alisa:~ $ ip addr ls eth0

      3: eth0: mtu 1500 qdisc cbq qlen 100

      link/ether 00:a0:cc:66:18:78 brd ff:ff:ff:ff:ff:ff

      inet 193.233.7.90/24 brd 193.233.7.255 scope global eth0

      inet6 3ffe:2400:0:1:2a0:ccff:fe66:1878/64 scope global dynamic

      valid_lft forever preferred_lft 604746sec

      inet6 fe80::2a0:ccff:fe66:1878/10 scope link

      duznet@alisa:~ $

       

       

        輸出的頭兩行和ip link ls的輸出是相同的。

        接著是IP和IPv6地址、廣播地址以及其它的地址屬性:范圍(scope)、標(biāo)志(flag)和標(biāo)簽(label)。地址標(biāo)志由內(nèi)核設(shè)置,系統(tǒng)管理員不能

       

      修改。目前,內(nèi)核定義了以下標(biāo)志:

       

      secondary 為輸出的數(shù)據(jù)包選擇默認(rèn)源地址時(shí),內(nèi)核不使用這個(gè)地址。如果一個(gè)設(shè)備已經(jīng)有了一個(gè)地址,又給它設(shè)置了同一網(wǎng)段的不同地址,第二個(gè)地址就成為從(secondary)地址。例如:eth0已經(jīng)有一個(gè)地址192.168.1.108/24,如果又給它一個(gè)地址192.168.1.3/24,192.168.1.3/24的就會(huì)被內(nèi)核標(biāo)記為從地址。

      dynamic 這個(gè)地址是通過(guò)無(wú)狀態(tài)的自動(dòng)配置建立的(stateless autoconfiguration)[參考2]。如果地址仍然有效,在輸出中,還包括兩個(gè)時(shí)間信息。preferred_lft期滿后,地址就會(huì)變成deprecated狀態(tài);valiid_lft期滿后,地址將失效。

      deprecated 這個(gè)地址是不允許的,也就是說(shuō),地址雖然有效,但是不能使用它建立新的連接。

      tentative 由于重復(fù)地址監(jiān)測(cè)[參考2]還沒有完成或者監(jiān)測(cè)失敗,這個(gè)地址不能使用。

       

      5.4.ip address flush--清除協(xié)議地址

       

      縮寫:flush、f

       

      簡(jiǎn)介

        這個(gè)命令可以清除按照某種條件選擇的協(xié)議地址。

       

      參數(shù)

        這個(gè)命令的參數(shù)和ip address show相同。唯一的區(qū)別是,如果不給定參數(shù)它什么都不會(huì)做。

       

      警告:這個(gè)命令(和后面討論的所有flush命令)非常危險(xiǎn)。如果出現(xiàn)錯(cuò)誤,將無(wú)法恢復(fù),它會(huì)清除被操作的地址。

       

      statistics選項(xiàng)

        如果在ip addr flush命令中使用了-statistics選項(xiàng),命令將輸出更為詳盡的信息。輸出的信息包括刪除地址的數(shù)目和清理地址列表的圈

      數(shù)。如果使用了兩次-s選項(xiàng),ip addr flush會(huì)按照上節(jié)敘述的格式輸出所有被刪除的地址。

       

      示例

       

      刪除屬于私網(wǎng)10.0.0.0/8的所有地址:

      netadm@amber:~ # ip -s -s a f to 10/8

      2: dummy inet 10.7.7.7/16 brd 10.7.255.255 scope global dummy

      3: eth0 inet 10.10.7.7/16 brd 10.10.255.255 scope global eth0

      4: eth1 inet 10.8.7.7/16 brd 10.8.255.255 scope global eth1

       

      *** Round 1,deleting 3 addresses ***

      *** Flush is complete after 1 round ***

      netadm@amber:~ #

       

      取消所有以太網(wǎng)卡的IP地址

      netadm@amber:~ # ip -4 addr flush label "eth0"

       

      最后一個(gè)例子是對(duì)IPv6地址的操作。在啟動(dòng)了轉(zhuǎn)發(fā)或者關(guān)閉了自動(dòng)配置之后,你需要取消通過(guò)無(wú)狀態(tài)地址自動(dòng)配置獲得的主機(jī)地址:

      netadm@amber:~ # ip -6 addr flush dynamic

       

       

       

       

      6.ip neighbour--neighbour/arp表管理命令

       

      縮寫 neighbour、neighbor、neigh、n

      對(duì)象 鄰接(neighbour)對(duì)象實(shí)現(xiàn)同一網(wǎng)段協(xié)議地址和鏈路層地址的綁定。在內(nèi)核中,這些條目被組織到表中。IPv4的相鄰表也被叫做ARP表。

      ip neighbour命令支持對(duì)條目及其屬性的顯示、添加和刪除。

      命令 add、change、replace、delete、fulsh、show(或者list)

       

      6.1.ip neighbour add -- 添加一個(gè)新的鄰接條目

      ip neighbour change--修改一個(gè)現(xiàn)有的條目

      ip neighbour replace--替換一個(gè)已有的條目

       

      縮寫:add、a;change、chg;replace、repl

      簡(jiǎn)介:這三個(gè)命令用來(lái)建立一個(gè)鄰接表的條目或者更新現(xiàn)有的鄰接表?xiàng)l目。

       

      參數(shù)

       

      to ADDRESS(default) 相鄰的協(xié)議地址。可以是IPv4或者IPv6。

      dev NAME 和相鄰節(jié)點(diǎn)連接的設(shè)備。

      lladdr LLADDRESS 鄰居的鏈路層地址。LLADDRESS可以為空。

      nud NUD_STATE 鄰接條目的狀態(tài)。nud是Neighbour Unreachability Detection的縮寫??赡艿臓顟B(tài)包括:

      permanent--鄰接條目永遠(yuǎn)有效并且只能由管理員刪除。

      noarp--鄰接條目有效,不必對(duì)其有效性進(jìn)行確認(rèn)。在其生命期期滿時(shí)會(huì)被刪除。

      reachable--在超時(shí)時(shí)間之內(nèi),這個(gè)鄰接條目是有效的。

      stale--這個(gè)鄰接條目是有效的,但是比較可疑。如果條目是有效的,ip neigh不會(huì)改變鄰接狀態(tài),也不會(huì)修改其地址。

       

      示例

       

      在設(shè)備eth0上,為地址10.0.0.3添加一個(gè)permanent ARP條目:

      ip neigh add 10.0.0.3 lladdr 0:0:0:0:0:1 dev eth0 nud perm

       

      把狀態(tài)改為reachable

      ip neigh chg 10.0.0.3 dev eth0 nud reachable

       

       

       

      6.2.ip neighbour delete--刪除一個(gè)鄰接條目

       

      縮寫:delete、del、d

       

      簡(jiǎn)介

        這個(gè)命令用來(lái)刪除一個(gè)鄰接條目

      參數(shù)

       

        這個(gè)命令的參數(shù)和ip neigh add命令的相同,只不過(guò)lladdr和nud將被忽略。

       

      示例

       

      刪除設(shè)備eth0上的一個(gè)ARP條目10.0.0.3

      ip neigh del 10.0.0.3 dev eth0

       

        執(zhí)行了刪除命令之后,被刪除的條目不會(huì)馬上消失,它會(huì)在系統(tǒng)的下次垃圾收集時(shí)被刪除。如果被操作的條目正在使用,將不能被刪除。

       

      警告:如果試圖刪除或者手工修改一個(gè)由內(nèi)核建立的noarp條目,會(huì)導(dǎo)致一些不可預(yù)知的行為。

       

      6.3.ip neighbour show--顯示網(wǎng)絡(luò)鄰居的信息

      縮寫:show、list、sh、ls

       

      簡(jiǎn)介

        這個(gè)命令用于顯示網(wǎng)絡(luò)鄰居信息。

      參數(shù)

      to ADDRESS(default): 指定要顯示的地址。

      dev NAME: 只顯示設(shè)備NAME的鄰居。

      Unused: 只顯示當(dāng)前沒有使用的鄰居

      nud NUD_STATE: 只列出處于NUD_STATE狀態(tài)的鄰接條目。NUD_STATE的值下面將會(huì)介紹。nud all表示所有的狀態(tài)。這個(gè)選項(xiàng)可以使用多次。如果缺少這個(gè)選項(xiàng),ip會(huì)列出除none和noarp狀態(tài)的所有條目。

      輸出格式

       

      duznet@alisa:~ $ ip neigh ls

      :: dev lo lladdr 00:00:00:00:00:00 nud noarp

      fe80::200:cff:fe76:3f85 dev eth0 lladdr 00:00:0c:76:3f:86 router

      nud stale

      0.0.0.0 dev lo lladdr 00:00:00:00:00:00 nud noarp

      193.233.7.254 dev eth0 lladdr 00:00:0c:76:3f:85 nud reachable

      193.233.7.85 dev eth0 lladdr 00:e0:1e:63:39:00 nud stale

      kuznet@alisa:~ $

        每行的第一部分是網(wǎng)絡(luò)鄰居的協(xié)議地址。第二部分是設(shè)備名。省下的部分是這個(gè)鄰接條目的信息。

      lladdr是這個(gè)設(shè)備的鏈路層地址。

      nud是條目代表連接的狀態(tài)。下面是狀態(tài)的完整列表和簡(jiǎn)單描述:

      none 網(wǎng)絡(luò)鄰居的狀態(tài)為空。

      incomplete 這個(gè)鄰居正在被解析。

      reachable 網(wǎng)絡(luò)鄰居有效并且可達(dá)。

      stale 鄰居有效,但是可能不可達(dá)。因此,內(nèi)核將在首次傳輸時(shí)進(jìn)行檢查。

      delay 一個(gè)數(shù)據(jù)包已經(jīng)發(fā)到處于stale的網(wǎng)絡(luò)鄰居,內(nèi)核在等待應(yīng)答信息。

      probe delay計(jì)時(shí)器過(guò)期,還沒有收到確認(rèn)信息。內(nèi)核開始使用ARP/NDISC消息包探測(cè)這個(gè)網(wǎng)絡(luò)鄰居。

      failed 解析失敗。

      noarp 網(wǎng)絡(luò)鄰居有效,不必檢查。

      permanent 這是一個(gè)noarp條目,只有系統(tǒng)管理員可以從鄰接表中把它刪除。

       

        在這些狀態(tài)中,除了none、faliled和incomplete.

       

        IPVv6網(wǎng)絡(luò)鄰居可以有一個(gè)叫做router的標(biāo)志,它表示這個(gè)節(jié)點(diǎn)是一個(gè)IPv6路由器。

       

      -statistics

        -statistics選項(xiàng)可以顯示很多有用的信息。例如:

      kuznet@alisa:~ $ ip -s n ls 193.233.7.254

      193.233.7.254. dev eth0 lladdr 00:00:0c:76:3f:85 ref 5

      used 12/13/20 nud reachable

      kuznet@alisa:~ $

       

        輸出信息里面多了ref和用斜缸分開的三個(gè)時(shí)間。ref表示有多少用戶使用這個(gè)條目;三個(gè)時(shí)間分別是使用時(shí)間、確認(rèn)時(shí)間和刷新時(shí)間。因此,上面輸出中的時(shí)間表示:

      條目12秒之前剛剛使用過(guò);

      13秒之前被確認(rèn);

      20秒之前被更新。

       

      6.4.ip neighbour flush--清除鄰接條目

      縮寫:flush、f

      簡(jiǎn)介

      這個(gè)命令用來(lái)清除符合某個(gè)條件的鄰接表?xiàng)l目。

       

      參數(shù)

        這個(gè)命令的參數(shù)和ip neigh sh相同。不同之處是,如果沒有參數(shù),它什么也不會(huì)做。而且,默認(rèn)情況下,被刪除的條目不包括處于permanent和noarp狀態(tài)的條目。

       

      -statistics

        使用了-statistics選項(xiàng),這個(gè)命令的輸出將更為詳盡。它會(huì)輸出刪除的條目數(shù)和清除鄰接表遍歷的次數(shù)。如果使用了兩個(gè)-s選項(xiàng),命令的輸出將包括被刪除條目的信息。

      示例

       

      netadm@alisa:~ # ip -s -s n f 193.233.7.254

      193.233.7.254 dev eth0 lladdr 00:00:0c:76:3f:85 ref 5

      used 12/13/20 nud reachable

       

      *** Round 1,deleting 1 entries ***

      *** Flush is complete after 1 round ***

      netadm@alisa:~ #

       

      7.路由表管理

      7.1.縮寫

       route、ro、r

      7.2.對(duì)象

        路由條目保存在內(nèi)核的路由表中,它們包含尋找到其它網(wǎng)絡(luò)節(jié)點(diǎn)的路徑信息。路由表?xiàng)l目都包括一對(duì)網(wǎng)絡(luò)地址/掩碼長(zhǎng)度以及可選的TOS值等信息。如果數(shù)據(jù)包目的地址位于屬于路由條目的的范圍,以及路由的TOS等于0或者等于數(shù)據(jù)包的TOS,它就匹配路由條目。如果一個(gè)數(shù)據(jù)包匹配多個(gè)路由條目,系統(tǒng)內(nèi)核將按照以下規(guī)則決定選擇哪個(gè)路由:

        注:作者在文中把地址被子網(wǎng)掩碼屏蔽后的部分/掩碼長(zhǎng)度這種表達(dá)方式叫做前綴(prefix)。例如:10/8表示網(wǎng)絡(luò)10.0.0.0,子網(wǎng)掩碼長(zhǎng)度是8位;10.1/16表示網(wǎng)絡(luò)10.1.0.0,子網(wǎng)掩碼長(zhǎng)度是16位;范圍最小的優(yōu)先匹配,較大的放棄;路由TOS等于數(shù)據(jù)包TOS的匹配,不等于的放棄;如果經(jīng)過(guò)上面兩步的選擇,還有數(shù)個(gè)路由,就選擇優(yōu)先值最高的路由;如果還有數(shù)個(gè)路由可供選擇,就重復(fù)進(jìn)行第一步。

        為了簡(jiǎn)化,我們使用{prefix,tos,preference}來(lái)標(biāo)記每個(gè)路由。

       

      7.3.路由屬性

        路由條目提供IP數(shù)據(jù)包投遞所需的路由信息、數(shù)據(jù)(例如:輸出設(shè)備、下一跳的路由器)和一些可選屬性(例如:路徑的最大傳輸單元MTU或者源地址等)。這些屬性將在后面的章節(jié)詳細(xì)介紹。

       

      7.4.路由類型

        路由的設(shè)置以及其它的可選屬性都依賴于路由類型。最重要的路由類型是unicast路由,這種類型的路由表示到另外主機(jī)的真實(shí)路由。一般情況下,通常的路由表只有這種類型的路由條目。不過(guò),還存在其它類型的路由,使用的語(yǔ)法也不相同。Linux-2.2理解以下幾種類型的路由:

      unicast: 這種類型的路由描述到目的地址的真實(shí)路徑。

      Unreachable: 這些目的地址是不可達(dá)的。如果發(fā)過(guò)去的數(shù)據(jù)包都被丟棄并且收到ICMP信息host unreachable,目的地址就會(huì)被標(biāo)記為不可達(dá)。

      在這種情況下,本地發(fā)送者將返回EHOSTUNREACH錯(cuò)誤。

      Blackhole: 這些目的地址不可達(dá),而且發(fā)過(guò)去的數(shù)據(jù)包都被丟棄。在這種情況下,本地發(fā)送者將返回EINVAL錯(cuò)誤。

      Prohibit: 這些路由是不可達(dá)的。發(fā)過(guò)去的數(shù)據(jù)包都被丟棄,而且產(chǎn)生ICMP信息communication administratively prohibited 。本地發(fā)送者會(huì)返回EACCESS錯(cuò)誤。

      Local: 目的地址被分配給本機(jī)。數(shù)據(jù)包通過(guò)回環(huán)被投遞到本地。

      Broadcast: 目的地址是廣播地址,數(shù)據(jù)包作為鏈路廣播發(fā)送。

      throw 和策略規(guī)則(policy rule)一塊使用的控制路由。如果選擇了這種路由,就會(huì)認(rèn)為沒有發(fā)現(xiàn)路由,在這個(gè)表中的查詢就會(huì)被終止。沒有找到策略路由就相當(dāng)于在路由表中沒有找到路由,數(shù)據(jù)包會(huì)被丟棄,并產(chǎn)生ICMP信息net unreachable。本地發(fā)送者會(huì)返回ENETUNREACH錯(cuò)誤。nat 特定的NAT路由。目標(biāo)地址屬于啞地址(或者稱為外部地址),在轉(zhuǎn)發(fā)前需要進(jìn)行地址轉(zhuǎn)換。

      Anycast: 目標(biāo)是anycast地址,被分配給本機(jī)。這類地址和本地地址大同小異,不同的是這類地址不能用于任何數(shù)據(jù)包的源地址。

      Multicast: 使用多播路由。在普通的路由表中,這種路由并不存在。

       

       

      7.5.路由表

       

        從Linux-2.2開始,內(nèi)核把路由歸納到許多路由表中,這些表都進(jìn)行了編號(hào),編號(hào)數(shù)字的范圍是1到255。另外,為了方便,還可以在/etc/iproute2/rt_tables中為路由表命名。默認(rèn)情況下,所有的路由都會(huì)被插入到表main(編號(hào)254)中。在進(jìn)行路由查詢時(shí),內(nèi)核只使用路由表main。

       

        實(shí)際上,還有另外一個(gè)路由表也一直存在,這個(gè)表是不可見的,而且極為重要。這就是表local。這個(gè)表保存本地和廣播路由。內(nèi)核會(huì)自動(dòng)維護(hù)這個(gè)路由表,通常系統(tǒng)管理員沒有必要對(duì)它進(jìn)行修改,甚至不必看到。

        在使用策略路由(policy routing)時(shí),我們將使用多個(gè)路由。在這種情況下,表識(shí)別符有很多參數(shù),因此需要使用{prefix,tos,preference}的形式唯一地識(shí)別每個(gè)路由。

       

      7.6.ip route add -- 添加新路由

      ip route change -- 修改路由

      ip route replace -- 替換已有的路由

       

      縮寫:add、a;change、chg;replace、repl

       

      參數(shù)

      to PREFIX或者to TYPE PREFIX(default) 路由的目標(biāo)前綴(prefix)。如果TYPE被忽略,ip命令就會(huì)使用默認(rèn)的類型unicast。其它的類型在上一節(jié)都有介紹。PREFIX是一個(gè)IP或者IPv6地址,也可以跟著一個(gè)斜杠和掩碼長(zhǎng)度。如果沒有掩碼長(zhǎng)度,ip命令就假定是一個(gè)單一ip地址。另外,還有一個(gè)特殊的PREFIX--default(缺省路由),它等于IPv4的0/0,或者IPv6的::/0。tos TOS 或者defield TOS 定義服務(wù)類型關(guān)鍵詞。在進(jìn)行路由匹配時(shí),內(nèi)核首先比較數(shù)據(jù)包的TOS和route的TOS,如果沒有和數(shù)據(jù)包TOS相同的路由,還可以選擇TOS等于0的路由。TOS或者是一個(gè)十六進(jìn)制的數(shù)字,或者是一個(gè)由/etc/iproute2/rt_dsfield文件定義的識(shí)別符。

      metric NUMBER或者preference NUMBER 定義路由的優(yōu)先值,NUMBER時(shí)一個(gè)任意的32位數(shù)字。

      table TABLEID 路由要加入的表。TABLEID或者是一個(gè)數(shù)字或者是/etc/iproute2/rt_tables文件定義的一個(gè)字符串。如果沒有這個(gè)參數(shù),ip命令就會(huì)把路由加入到表main中,本地(local)、廣播(broadcast)和網(wǎng)絡(luò)地址轉(zhuǎn)換(nat)路由除外。在默認(rèn)情況下,這些類型的路由都會(huì)被加入表local中。

      dev NAME 輸出設(shè)備的名字。

      via ADDRESS 指定下一跳路由器的地址。實(shí)際上,這個(gè)域的可靠性取決于路由類型。對(duì)于通常的unicast路由,它或者是真正的下一跳路由器地址,或者如果它是BSD兼容模式安裝的直接路由,它可以是一個(gè)網(wǎng)絡(luò)接口的本地地址。對(duì)于NAT路由,它是轉(zhuǎn)換后的地址。

      src ADDRESS 在向目的prefix發(fā)送數(shù)據(jù)包時(shí)選擇的源地址。

      realm REALMID 指定路由分配的realm。REALM可以是一個(gè)數(shù)字或者/etc/iproute2/rt_realms文件定義的一個(gè)字符串。有關(guān)realm更為詳細(xì)的信

      息請(qǐng)看附錄(Route realms and policy propagation, rtacct)。

      mtu MTU或者mtu lock MTU 設(shè)置到達(dá)目的路徑的最大傳輸單元(MTU)。如果沒有使用修飾符lock,內(nèi)核會(huì)通過(guò)路徑最大傳輸單元發(fā)現(xiàn)(Path MTU Discovery)機(jī)制更新MTU;如果使用了修飾符lock,內(nèi)核就不會(huì)測(cè)試路徑的最大傳輸單元。在這種情況下,發(fā)出的所有IPv4數(shù)據(jù)包DF域都會(huì)被設(shè)置為0(允許分片),對(duì)于IPv6數(shù)據(jù)包也允許分片。

      window NUMBER 設(shè)置到目的地址TCP連接的最大窗口值,以字節(jié)為單位。使用這個(gè)參數(shù)可以限制對(duì)端發(fā)送數(shù)據(jù)的速率。

      rtt NUMBER 估算初始往返時(shí)間(Round Trip Time)

      rttvar NUMBER 估算初始往返時(shí)間偏差(RTT variance)

      ssthresh NUMBER 估算慢啟動(dòng)閥值(slow start threshould)

      cwnd NUMBER 把擁擠窗口(congestion window)值鎖定為NUMBER。如果沒有l(wèi)ock標(biāo)記,這個(gè)值會(huì)被忽略。

      advmss NUMBER 設(shè)置在建立TCP連接時(shí),向目的地址聲明的最大報(bào)文段大小(Maximal Segment Size,MSS)。如果沒有設(shè)置,Linux內(nèi)核會(huì)使用計(jì)算第一跳的最大傳輸單元得到的數(shù)值。

      nexthop NEXTHOP 設(shè)置多路徑路由的下一跳地址。NEXTHOP比較復(fù)雜,它的語(yǔ)法和以下高層參數(shù)類似:

      via ADDRESS--表示下一跳路由器;

      dev NAME--表示輸出設(shè)備;

      weight NUMBER--在多路由路徑中,這個(gè)元素的權(quán)重。表示相對(duì)帶寬或者服務(wù)質(zhì)量。

      scope SCOPE_VAL 路由前綴(prefix)覆蓋的范圍。SCOPE_VAL可以是一個(gè)數(shù)字,也可以是/etc/iproute2/rt_scope文件定義的一個(gè)字符串。如果沒有這個(gè)參數(shù),ip命令就會(huì)根據(jù)具體情況猜測(cè):對(duì)于經(jīng)過(guò)網(wǎng)關(guān)的unicast路由,就設(shè)置為global;對(duì)于直連的unicast路由和廣播路由,就設(shè)置為link;對(duì)于本地路由,就設(shè)置為host。

      protocol RTPROTO 本條路由得路由協(xié)議識(shí)別符。RTPROTO可以是一個(gè)數(shù)字,也可以是/etc/iproute2/rt_protos文件定義的一個(gè)字符串。如果使用時(shí)沒有提供這個(gè)參數(shù),ip命令就使用默認(rèn)值boot(也就是說(shuō),ip命令認(rèn)為添加路由的人不知道自己做了些什么)。有些協(xié)議值有其固定的解釋:

      redirect--路由是由ICMP重定向加入的;

      kernel--路由是由內(nèi)核在自動(dòng)配置期間加入的;

      boot--路由是啟動(dòng)過(guò)程中加入的。如果一個(gè)路由監(jiān)控程序?qū)⒁獑?dòng),這些路由都會(huì)被清除;

      static--為了覆蓋動(dòng)態(tài)路由,由系統(tǒng)管理員手工添加的路由。路由監(jiān)控程序也會(huì)優(yōu)先考慮這類路由,甚至可能通告給其對(duì)端;

      ra--路由是通過(guò)路由發(fā)現(xiàn)協(xié)議加入的(Router Discovery Protocol)。

      其它的值沒有保留,系統(tǒng)管理員可以自由分配(或者不分配)給協(xié)議標(biāo)記。至少,路由監(jiān)控程序應(yīng)該注意對(duì)一些唯一協(xié)議值的設(shè)置,這些協(xié)議值在rtnetlink.h文件或者rt_protos數(shù)據(jù)庫(kù)中分配。

      onlink 假裝和下一跳路由器是直接相連的,即使它沒有匹配任何接口前綴(prefix)。

      equalize 允許把數(shù)據(jù)包隨機(jī)從多個(gè)路由發(fā)出。如果沒有這個(gè)路由修飾符,內(nèi)核就會(huì)凍結(jié)下一跳路由的地址。

       

      示例

      設(shè)置到網(wǎng)絡(luò)10.0.0/24的路由經(jīng)過(guò)網(wǎng)關(guān)193.233.7.65

      ip route add 10.0.0/24 via 193.233.7.65

       

      修改到網(wǎng)絡(luò)10.0.0/24的直接路由,使其經(jīng)過(guò)設(shè)備dummy

      ip route chg 10.0.0/24 dev dummy

       

      加入缺省多路徑路由,讓ppp0和ppp1分擔(dān)負(fù)載(注意:scope值并非必需,它只不過(guò)是告訴內(nèi)核,這個(gè)路由要經(jīng)過(guò)網(wǎng)關(guān)而不是直連的。實(shí)際上,如果你知道遠(yuǎn)程端點(diǎn)的地址,使用via參數(shù)來(lái)設(shè)置就更好了)。

      ip route add default scope global nexthop dev ppp0 nexthop dev ppp1

      設(shè)置NAT路由。在轉(zhuǎn)發(fā)來(lái)自192.203.80.144的數(shù)據(jù)包之前,先進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換,把這個(gè)地址轉(zhuǎn)換為193.233.7.83(回來(lái)的轉(zhuǎn)換將會(huì)在后面的章節(jié)路由策略中介紹)。

      ip route add nat 192.203.80.142 via 193.233.7.83

       

      7.7.ip route delete-- 刪除路由

       

      縮寫:delete、del、d

      參數(shù)

        ip route del使用和ip route add相同的參數(shù),不過(guò)語(yǔ)法稍有不同。這個(gè)命令使用關(guān)鍵詞(to、tos、preference和table)選擇要?jiǎng)h除的路由。如果命令中使用了可選屬性,ip命令會(huì)校驗(yàn)這個(gè)屬性和要?jiǎng)h除的路由是否一致;如果沒有給定關(guān)鍵詞或者屬性不一致,ip route del會(huì)執(zhí)行失敗。

       

      示例

       

      刪除上一節(jié)命令加入的多路徑路由

      ip route del default scope global nexthop dev ppp0 nexthop dev ppp1

       

      7.8.ip route show -- 列出路由

       

      縮寫:show、list、sh、ls、l

       

      簡(jiǎn)介

       

        使用這個(gè)命令,你可以看到路由表的內(nèi)容,或者查詢符合某些條件的路由。

      參數(shù)to SELECTOR(default) 只選擇到給定地址的路由。 SELECTOR由修飾符(root、match、exact,可選)和一個(gè)前綴(prefix)組成。root PREFIX表示選擇前綴(prefix)不短于PREFIX的路由,例如:root 0/0將選在路由表里面的全部路由;match PREFIX表示選擇前綴(prefix)不長(zhǎng)于PREFIX的路由,match 10.1/16會(huì)選擇前綴(prefix)是10.1/16、10./8和0/0的全部路由;而exact PREFIX(或者just PREFIX)表示精確匹配。如果沒有這些選項(xiàng)(ip route ls),ip命令就假定是ip route ls to root 0/0,將列出系統(tǒng)的所有路由。

      tos TOS或者dsfield TOS 只列出tos等于TOS的路由table TABLEID 列出路由表TABLEID里面的路由。缺省設(shè)置是table main。TABLEID或者是一個(gè)真正的路由表ID或者是/etc/iproute2/rt_tables文件定義的字符串,或者是以下的特殊值:

       

      all -- 列出所有表的路由;

      cache -- 列出路由緩存的內(nèi)容。

      cloned或者cached 列出被克隆出來(lái)的路由(由于某些路由屬性改變,例如:MTU,而由某些路由派生出來(lái)的路由)。實(shí)際上,它的內(nèi)容和表緩存的內(nèi)容是一樣的。

      from SELECTOR 和to的語(yǔ)法是相同的,只不過(guò)由目的地址換為源地址而已。注意:這個(gè)選項(xiàng)之適用于被克隆出來(lái)的路由。

      protocol RTPROTO 只列出協(xié)議是RTPROTO的路由。

      scope SCOPE_VAL 只列出范圍是SCOPE_VAL的路由。

      type TYPE 只列出類型為TYPE的路由 。

      dev NAME 只列出通過(guò)設(shè)備NAME的路由。

      via PREFIX 只列出下一跳通過(guò)PREFIX的路由。

      src PREFIX 只列出源地址屬于PREFIX的路由。

      realm REALMID或者raalm FROMREALM/TOREALM 只列出realm為REALMID的路由。

       

      示例

       

      計(jì)算使用gated/bgp協(xié)議的路由個(gè)數(shù)

      kuznet@amber:~ $ ip route ls proto gated/bgp |wc

        1413  9891  79010

      kuznet@amber:~ $

       

      計(jì)算路由緩存里面的條數(shù),由于被緩存路由的屬性可能大于一行,以此需要使用-o選項(xiàng)

      uznet@amber:~ $ ip -o route ls cloned |wc

        159  2543  18707

      kuznet@amber:~ $

       

      輸出格式

       

        通常,在這個(gè)命令輸出的信息中,每個(gè)路由紀(jì)錄占一行。不過(guò),有時(shí)某些紀(jì)錄可能會(huì)超過(guò)一行,例如被克隆出來(lái)的路由或者包含一些額外

       

      的信息。如果在命令中使用了-o選項(xiàng),在每個(gè)紀(jì)錄中,會(huì)使用代替回車作為回行標(biāo)記。例如:

       

      kuznet@amber:~ $ ip ro ls 193.233.7/24

      193.233.7.0/24 dev eth0 proto gated/conn scope link src 193.233.7.65 realms inr.ac

      kuznet@amber:~ $

       

       

       

      如果是列出被克隆的條目,輸出信息將是另外的形式。例如:

       

      kuznet@amber:~ $ ip ro ls 193.233.7.82 tab cache

      193.233.7.82 from 193.233.7.82 dev eth0 src 193.233.7.65 realms inr.ac/inr.ac

        cache <src-direct,redirect> mtu 1500 rtt 300 iif eth0

      193.233.7.82 dev eth0 src 193.233.7.65 realms inr.ac

        cache mtu 1500 rtt 300

      kuznet@amber:~ $

       

        輸出信息的第二行是以關(guān)鍵詞cache開頭的,顯示路由的其它緩存標(biāo)記和屬性。本行的第一個(gè)域是cache <緩存標(biāo)記>,緩存標(biāo)記包括:

       

      local 數(shù)據(jù)包被投遞到本地。它適用于本地回環(huán)單向傳播(unicast)路由,如果這個(gè)主機(jī)是對(duì)應(yīng)廣播組的一個(gè)成員,它也適用于廣播路由何多播

       

      路由。

      reject 路徑無(wú)效。任何試圖通過(guò)這個(gè)路由的企圖都會(huì)導(dǎo)致錯(cuò)誤。

      mc 目的是多播地址(multicast)。

      brd 目的是廣播地址(broadcast)。

      src-direct 源地址是在一個(gè)直接連接的接口。

      redirected 路由是由ICMP重定向建立的。

      redirect 數(shù)據(jù)包通過(guò)這個(gè)路由將觸發(fā)ICMP重定向。

      fastroute 路由適合用于快速路由(fastroute)。

      equalize 使數(shù)據(jù)包隨機(jī)地通過(guò)這個(gè)路由。

      dst-nat 目的地址需要進(jìn)行地址轉(zhuǎn)換。

      src-nat 源地址需要進(jìn)行地址轉(zhuǎn)換。

      masq 源地址需要偽裝(masquerading)。

      notify 修改/刪除這個(gè)路由將觸發(fā)RTNETLINK報(bào)警。

       

        接著是一些路由屬性,支持的屬性如下:

       

      error 對(duì)于reject路由,這是返回給本地發(fā)送者的錯(cuò)誤碼。這些錯(cuò)誤碼也會(huì)被轉(zhuǎn)換為ICMP錯(cuò)誤碼,發(fā)送給遠(yuǎn)程發(fā)送者。

      expires 到了超時(shí)時(shí)間,這個(gè)條目就會(huì)消失。

      iif 需要這個(gè)路由的數(shù)據(jù)包如期到達(dá)這接口。

       

      統(tǒng)計(jì)選項(xiàng)

       

        如果在命令中使用-statistics選項(xiàng),ip命令會(huì)給出一些更為詳盡的信息:

       

      users 使用這個(gè)路由的用戶數(shù)。

      age 顯示這個(gè)路由最后使用時(shí)的時(shí)間。

      used 自從建立這個(gè)路由以來(lái),它被查詢的次數(shù)。

       

      7.9.ip route flush -- 擦除路由表

       

      縮寫:flush、f

       

      簡(jiǎn)介

       

        使用這個(gè)命令,可以很方便地刪除符合某些條件的路由。

       

      參數(shù)

       

        這個(gè)命令的參數(shù)和ip route show命令的參數(shù)相同,只不過(guò)被操作的路由表不會(huì)被顯示出來(lái)。它和ip route show命令唯一的區(qū)別是它們的缺省操作,ip route show會(huì)顯示出路由表main的所有條目,而ip route flush只會(huì)給出幫助信息,不對(duì)路由表進(jìn)行任何操作。至于這個(gè)區(qū)別的原因,恐怕不必多做解釋了吧?

       

      統(tǒng)計(jì)選項(xiàng)

        如果在這個(gè)命令中使用了-statistics選項(xiàng),它就會(huì)顯示一些冗余信息。這些信息包括:被刪除的路由數(shù)和刪除過(guò)程中遍歷路由表的次數(shù)。

      如果這個(gè)選項(xiàng)使用了兩次,ip還會(huì)輸出被刪除路由的詳細(xì)信息。

       

      示例

        第一個(gè)例子是刪除路由表main中的所有網(wǎng)關(guān)路由(例如:在路由監(jiān)控程序掛掉之后):

      netadm@amber:~ # ip -4 ro flush scope global type unicast

       

        第二個(gè)例子是清除所有被克隆出來(lái)的IPv6路由:

      netadm@amber:~ # ip -6 -s -s ro flush cache

      3ffe:2400::220:afff:fef4:c5d1 via 3ffe:2400::220:afff:fef4:c5d1

       dev eth0 metric 0

        cache used 2 age 12sec mtu 1500 rtt 300

      3ffe:2400::280:adff:feb7:8034 via 3ffe:2400::280:adff:feb7:8034

       dev eth0 metric 0

        cache used 2 age 15sec mtu 1500 rtt 300

      3ffe:2400::280:c8ff:fe59:5bcc via 3ffe:2400::280:c8ff:fe59:5bcc

       dev eth0 metric 0

        cache users 1 used 1 age 23sec mtu 1500 rtt 300

      3ffe:2400:0:1:2a0:ccff:fe66:1878 via 3ffe:2400:0:1:2a0:ccff:fe66:1878

       dev eth1 metric 0

        cache used 2 age 20sec mtu 1500 rtt 300

      3ffe:2400:0:1:a00:20ff:fe71:fb30 via 3ffe:2400:0:1:a00:20ff:fe71:fb30

       dev eth1 metric 0

        cache used 2 age 33sec mtu 1500 rtt 300

      ff02::1 via ff02::1 dev eth1 metric 0

        cache users 1 used 1 age 45sec mtu 1500 rtt 300

       

      *** Round 1, deleting 6 entries ***

      *** Flush is complete after 1 round ***

      netadm@amber:~ # ip -6 -s -s ro flush cache

      Nothing to flush.

      netadm@amber:~ #

       

        第三個(gè)例子是在gated程序掛掉之后,清除所有的BGP路由:

      netadm@amber:~ # ip ro ls proto gated/bgp |wc

        1408  9856  78730

      netadm@amber:~ # ip -s ro f proto gated/bgp

      *** Round 1, deleting 1408 entries ***

      *** Flush is complete after 1 round ***

      netadm@amber:~ # ip ro f proto gated/bgp

      Nothing to flush.

      netadm@amber:~ # ip ro ls proto gated/bgp

      netadm@amber:~ #

       

      7.10.ip route get -- 獲得單個(gè)路由

       

      縮寫:get、g

       

      簡(jiǎn)介

       

        使用這個(gè)命令可以獲得到達(dá)目的地址的一個(gè)路由以及它的確切內(nèi)容。

       

      參數(shù)

       

      to ADDRESS(default) 目標(biāo)地址

      from ADDRESS 源地址

      tos TOS或者dsfield TOS 服務(wù)類型

      iif NAME 數(shù)據(jù)包進(jìn)來(lái)的設(shè)備

      oif NAME 數(shù)據(jù)包出去的設(shè)備

      connected ip route get命令至少要有參數(shù)to ADDRESS。使用connected參數(shù),如果沒有給出源地址(from ADDRESS),ip就會(huì)重新在路由表中查詢能夠到達(dá)目的地址的源地址,給出獲得的第一個(gè)源地址到目的地址的路由。如果使用了策略路由,會(huì)有所不同。

        ip route get命令和ip route show命令執(zhí)行的操作是不同的。ip route show命令只是顯示現(xiàn)有的路由,而ip route get命令在必要時(shí)會(huì)派生出新的路由。

       

      輸出格式

       

        這個(gè)命令的輸出格式和ip route ls相同。

       

      示例

       

      搜索到193.233.7.82的路由

      kuznet@amber:~ $ ip route get 193.233.7.82

      193.233.7.82 dev eth0 src 193.233.7.65 realms inr.ac

        cache mtu 1500 rtt 300

      kuznet@amber:~ $

       

      搜索目的地址是193.233.7.82,來(lái)自193.233.7.82,從eth0設(shè)備到達(dá)的路由(這條命令會(huì)產(chǎn)生一條非常有意思的路由,這是一條到193.233.7.82的回環(huán)路由)

      kuznet@amber:~ $ ip r g 193.233.7.82 from 193.233.7.82 iif eth0

      193.233.7.82 from 193.233.7.82 dev eth0 src 193.233.7.65

       realms inr.ac/inr.ac

        cache <src-direct,redirect> mtu 1500 rtt 300 iif eth0

      kuznet@amber:~ $

      獲得一個(gè)多播路由,數(shù)據(jù)包來(lái)自主機(jī)193.233.7.82,從eth0設(shè)備進(jìn)入,目的地址是多播組地址224.2.127.254(需要運(yùn)行多播路由監(jiān)控程序pimd)。這個(gè)命令產(chǎn)生的路由與上面的不大相同,它包含常規(guī)部分和多播部分。常規(guī)部分用于把數(shù)據(jù)包投遞到本地ip監(jiān)控程序。這里,本地地址不是多播組的成員,因此這個(gè)路由沒有l(wèi)ocal標(biāo)記,只用于轉(zhuǎn)發(fā)數(shù)據(jù)包。這個(gè)路由的輸出設(shè)備是回環(huán)設(shè)備。多播部分包含額外的輸出接口。

      kuznet@amber:~ $ ip r g 224.2.127.254 from 193.233.7.82 iif eth0

      multicast 224.2.127.254 from 193.233.7.82 dev lo

       src 193.233.7.65 realms inr.ac/cosmos

        cache <mc> iif eth0 Oifs: eth1 pimreg

      kuznet@amber:~ $

        下面我們舉一個(gè)復(fù)雜一些的例子。我們首先為一個(gè)目標(biāo)地址添加一個(gè)無(wú)效的網(wǎng)關(guān)路由,而實(shí)際上和這個(gè)地址是直連的。

      netadm@alisa:~ # ip route add 193.233.7.98 via 193.233.7.254

      netadm@alisa:~ # ip route get 193.233.7.98

      193.233.7.98 via 193.233.7.254 dev eth0 src 193.233.7.90

        cache mtu 1500 rtt 3072

      netadm@alisa:~ #

       

        然后,我們ping一下193.233.7.98:

       

      netadm@alisa:~ # ping -n 193.233.7.98

      PING 193.233.7.98 (193.233.7.98) from 193.233.7.90 : 56 data bytes

      From 193.233.7.254: Redirect Host(New nexthop: 193.233.7.98)

      64 bytes from 193.233.7.98: icmp_seq=0 ttl=255 time=3.5 ms

      From 193.233.7.254: Redirect Host(New nexthop: 193.233.7.98)

      64 bytes from 193.233.7.98: icmp_seq=1 ttl=255 time=2.2 ms

      64 bytes from 193.233.7.98: icmp_seq=2 ttl=255 time=0.4 ms

      64 bytes from 193.233.7.98: icmp_seq=3 ttl=255 time=0.4 ms

      64 bytes from 193.233.7.98: icmp_seq=4 ttl=255 time=0.4 ms

      ^C

      --- 193.233.7.98 ping statistics ---

      5 packets transmitted, 5 packets received, 0% packet loss

      round-trip min/avg/max = 0.4/1.3/3.5 ms

      netadm@alisa:~ #

       

        輸出結(jié)果可以看出,路由器193.233.7.254知道有更好的路由,因此送回一個(gè)ICMP重定向信息。然后,我們?cè)倏纯绰酚杀淼那闆r:

      netadm@alisa:~ # ip route get 193.233.7.98

      193.233.7.98 dev eth0 src 193.233.7.90

        cache <redirected> mtu 1500 rtt 3072

      netadm@alisa:~ #

       

        有關(guān)路由策略管理和多播地址管理的部分

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多