天天看點

route基礎1

參考文檔:https://wenku.baidu.com/view/7792bcc5b4daa58da1114a99.html

  http://www.cnblogs.com/kevingrace/p/6490627.html

1.普通主機與路由器的根本差別在與,主機不會将一個封包從一個接口轉發到另一個接口,而路由器可以轉發封包。

2.IP層維護着一張路由表,當接收到封包時,用路由表來決策接下來做什麼操作,當從網絡接收到資料封包時,IP

層首先會檢測封包的IP位址是不是自己自身的位址,如果是,則封包将被發送到傳輸層相應的協定中區,如不是,

且本身配置了路由器的功能,則将封包轉發到,否則丢棄。

3.路由表中的資料一般是以條目形式存在,一個典型的路由表條目,一般包含以下主要條目

一,目的ip位址:可以是一台主機的ip位址,也可以是一個網絡位址,如是主機位址,則他的主機ID标記為非零,

如是一個網絡位址,則主機ID标記為零

二,下個路由的ip位址: 因為這個封包可能需要多個路由的轉發才能到目的位址

三,标志,提供了目的位址是主機位址還是網絡位址的資訊,也提供了下個路由器真的是一個路由器還是一個直接

相連的接口

四,網絡接口規範

//------------------------------------------------------------------------------------------------------------------------------

route 指令

[email protected]:~# route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

default         192.168.11.1    0.0.0.0                  UG    0       0        0 eth0

localnet        *                      255.255.255.0         U     0        0        0 eth0        

[email protected]:~# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0         192.168.11.1    0.0.0.0                   UG    0      0        0 eth0

192.168.11.0    0.0.0.0         255.255.255.0        U      0      0        0 eth0

-n 參數表示直接使用IP或port number;

Destination:目标網絡或目标主機

Gateway:網關位址,如果沒有就顯示星号

Genmask:網絡掩碼   預設路由的一般都是0.0.0.0

Flags:一共有多少個旗幟

    U:該路由是啟動的

    H:目标是主機(IP)而非網域

    G:需要透過外部的主機(gateway)來轉發   (use gateway)即網關路由

    R:使用動态路由是,恢複路由資訊的旗幟

    D:已經有服務或轉port功能設定位動态路由

    M:路由已經被修改了

    O!:這個路由不會被接受(用來抵擋不安全的網域)

Metric  距離,跳數 (linux核心沒有使用)

Ref     基本一直為0

Use     改路由被使用的次數 (可粗略估計通向指定網絡位址的網絡流量)

Iface   接口,eth0等網絡接口名

//----------------------------------------------------------------------------------------------------

[email protected]:~# route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

default         192.168.11.1    0.0.0.0                  UG    0       0        0 eth0

localnet        *                      255.255.255.0         U     0        0        0 eth0   ——》表示本地網路,不需要網關即可到達

如果我想往本地的192.168.11.30傳資料,路由就直接通過192.168.11.0/24這個網絡路由送到192.168.11.30上

如果我想網www.baidu.com傳資料,路由就通過default預設路由來傳送,即通過eth0将包傳給192.168.11.1這個

gateway主機。

網關:如我的機器有4張網卡,分别設定了A,B,C,D 不同的網段,他們想要互相通信就要通過各自的網關,

網關的位址是具有路由功能的機器的ip位址,如192.168.11.1與192.168.12.1 都在一個具有路由共能的機器上,

那麼這兩個ip位址就可以被設定成兩個網關,其各自網段内的ip想通路另一個網段時,就同過自己的網關來聯系

對方的網關,進而找到目标主機。(網關可以看成是路由器上的ip位址)(自己了解)

//------------------------------------------------------------------------------------------------------------------

route

add 添加路由

-host  主機路由 (目的位址是一台主機)

-net    網絡路由  (目的位址是以個網絡)

del  删除路由

我的一台機器是192.168.11.99 另一台是192.168.11.199 現在給192.168.11.99 加上一個10網段的ip

192.168.11.99上執行:ifconfig eth0:0 10.0.0.10

讓後用199的機器來ping 10.0.0.10 發先ping不同 要想使其能ping通 則需要加路由

route add -net 10.0.0.0/8 gw 192.168.11.99  把99的ip做為網關

發現用199在去ping 已經可以ping通了

同理 加一條主機路由也同樣可以ping通

route add -host 10.0.0.10 gw 192.168.11.99

删除路由

[email protected]:~# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0         192.168.11.1    0.0.0.0         UG    0      0        0 eth0

10.0.0.0        192.168.11.99   255.0.0.0       UG    0      0        0 eth0

10.0.0.0        192.168.11.1    255.0.0.0       UG    0      0        0 eth0

10.0.11.0       192.168.11.1    255.255.255.0   UG    0      0        0 eth0

192.168.11.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0

[email protected]:~# route del -net 10.0.11.0/24删除了10.0.11.0/24 網段的路由

[email protected]:~# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0         192.168.11.1    0.0.0.0         UG    0      0        0 eth0

10.0.0.0        192.168.11.99   255.0.0.0       UG    0      0        0 eth0

10.0.0.0        192.168.11.1    255.0.0.0       UG    0      0        0 eth0

192.168.11.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0

//-----------------------------------------------------------------------------------------------------------------

以上指令都是臨時生效  在debian系列裡 要想使其永久生效 可以将指令加到/etc/network/interfaces裡

如:

# The loopback network interface

auto lo

iface lo inet loopback

# The primary network interface

allow-hotplug eth0

iface eth0 inet static

        address 192.168.11.199

        netmask 255.255.255.0

        network 192.168.11.0

        broadcast 192.168.11.255

        gateway 192.168.11.1

        # dns-* options are implemented by the resolvconf package, if installed

        dns-nameservers 8.8.8.8

        dns-search zabbix.top

        up route add -net 10.0.0.0/8 gateway 192.168.11.99 dev eth0

        down route del -net 10.0.0.0/8 gateway 192.168.11.99 dev eth0

當eth0激活時啟動該規則 當eth0失效時删除該規則

//--------------------------------------------------------------------------------------------------------------------