參考文檔: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 命令
root@zabbix:~# 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
root@zabbix:~# 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等網絡接口名
//----------------------------------------------------------------------------------------------------
root@zabbix:~# 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
刪除路由
root@zabbix:~# 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
root@zabbix:~# route del -net 10.0.11.0/24刪除了10.0.11.0/24 網段的路由
root@zabbix:~# 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失效時刪除該規則
//--------------------------------------------------------------------------------------------------------------------