參考文檔: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失效時删除該規則
//--------------------------------------------------------------------------------------------------------------------