1. 程式人生 > >Linux route命令詳解和使用,以及網卡命令詳解

Linux route命令詳解和使用,以及網卡命令詳解

linux 路由 網卡

一 路由的基礎知識:
1)路由概念
路由: 跨越從源主機到目標主機的一個互聯網絡來轉發數據包的過程
路由器:能夠將數據包轉發到正確的目的地,並在轉發過程中選擇最佳路徑的設備
路由表:在路由器中維護的路由條目,路由器根據路由表做路徑選擇
直連路由:當在路由器上配置了接口的IP地址,並且接口狀態為up的時候,路由表中就出現直連路由項
靜態路由:是由管理員手工配置的,是單向的。
默認路由:當路由器在路由表中找不到目標網絡的路由條目時,路由器把請求轉發到默認路由接口 。

2)靜態路由和默認路由的特點
靜態路由特點:
路由表是手工設置的;
除非網絡管理員幹預,否則靜態路由不會發生變化;
路由表的形成不需要占用網絡資源;
適用環境:一般用於網絡規模很小、拓撲結構固定的網絡中。

默認路由特點:
在所有路由類型中,默認路由的優先級最低
適用環境:一般應用在只有一個出口的末端網絡中或作為其他路由的補充

浮動靜態路由:
路由表中存在相同目標網絡的路由條目時,根據路由條目優先級的高低,將請求轉發到相應端口;
鏈路冗余的作用;

3)路由器轉發數據包時的封裝過程
源IP和目標IP不發生變化,在網絡的每一段傳輸時,源和目標MAC發生變化,進行重新封裝,分別是每一段的源和目標地址

4)要完成對數據包的路由,一個路由器必須至少了解以下內容:
a)目的地址
b)相連路由器,並可以從哪裏獲得遠程網絡的信息
c)到所有遠程網絡的可能路由
d)到達每個遠程網絡的最佳路由
e)如何維護並驗證路由信息
f)路由和交換的對比

路由工作在網絡層
a)根據“路由表”轉發數據
b)路由選擇
c)路由轉發
交換工作在數據鏈路層
d)根據“MAC地址表”轉發數據
e)硬件轉發
二.命令參數:
-c 顯示更多信息
-n 不解析名字
-v 顯示詳細的處理信息
-F 顯示發送信息
-C 顯示路由緩存
-f 清除所有網關入口的路由表。
-p 與 add 命令一起使用時使路由具有永久性。

add:添加一條新路由。
del:刪除一條路由。
-net:目標地址是一個網絡。
-host:目標地址是一個主機。
netmask:當添加一個網絡路由時,需要使用網絡掩碼。
gw:路由數據包通過網關。註意,你指定的網關必須能夠達到。
metric:設置路由跳數。
Command 指定您想運行的命令 (Add/Change/Delete/Print)。

Destination 指定該路由的網絡目標。
mask Netmask 指定與網絡目標相關的網絡掩碼(也被稱作子網掩碼)。
Gateway 指定網絡目標定義的地址集和子網掩碼可以到達的前進或下一躍點 IP 地址。
metric Metric 為路由指定一個整數成本值標(從 1 至 9999),當在路由表(與轉發的數據包目標地址最匹配)的多個路由中進行選擇時可以使用。
if Interface 為可以訪問目標的接口指定接口索引。若要獲得一個接口列表和它們相應的接口索引,使用 route print 命令的顯示功能。可以使用十進制或十六進制值進行接口索引。
三 命令使用例子
1.添加到主機的路由
#route add -host 192.168.1.2 dev eth0:0
#route add -host 10.20.30.148 gw 10.20.30.40
2.添加到網絡的路由
#route add -net 10.20.30.40 netmask 255.255.255.248 eth0
#route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
#route add -net 192.168.1.0/24 eth1
3.添加默認路由
#route add default gw 192.168.1.1

4.刪除路由
#route del -host 192.168.1.2 dev eth0:0
#route del -host 10.20.30.148 gw 10.20.30.40
#route del -net 10.20.30.40 netmask 255.255.255.248 eth0
#route del -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
#route del -net 192.168.1.0/24 eth1
#route del default gw 192.168.1.1 //route del default 刪除所有的默認路由

添加一條默認路由
#route add default gw 10.0.0.1 //默認只在內存中生效開機自啟動可以追加到/etc/rc.local文件裏
#echo "route add default gw 10.0.0.1" >>/etc/rc.local

添加一條靜態路由
#route add -net 192.168.2.0/24 gw 192.168.2.254
要永久生效的話要這樣做:
#echo "any net 192.168.2.0/24 gw 192.168.2.254" >>/etc/sysconfig/static-routes

添加到一臺主機的靜態路由
route add -host 192.168.2.2 gw 192.168.2.254
要永久生效的話要這樣做:
#echo "any host 192.168.2.2 gw 192.168.2.254 " >>/etc/sysconfig/static-routes
註:Linux 默認沒有這個文件 ,得手動創建一個
5設置包轉發
在Linux中默認的內核配置已經包含了路由功能,但默認並沒有在系統啟動時啟用此功能;
開啟Linux的路由功能可以通過調整內核的網絡參數來實現,方法如下:
臨時開啟路由功能:
#echo 1 > /proc/sys/net/ipv4/ip_forward
或者# sysctl -w net.ipv4.ip_forward=1
永久開啟路由功能
#vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
#sysctl -p
6.靜態路由配置
添加靜態路由到路由表的語法如下:
1.ip route [destination_network] [mask] [next-hop_address]administrative_distance]
參數解析:
ip route 用於創建靜態路由的命令。
Destination_network 需要發布到路由表中的網段。
Mask 在這一網絡上使用的子網掩碼。
Next-hop_address 下一跳路由器的地址。
administrative_distance 默認時,靜態路由有一個取值為1 的管理性距離。在這個命令的尾部添加管理權來修改這個默認值。
例如
ip route 172.16.1.0 255.255.255.0 172.16.2.1
查看路由表除了使用route -n命令外,還可以使用ip route
[root@dev~]# ip route
192.168.1.17 dev ppp0 proto kernel scope link src 192.168.1.190
10.1.32.14 dev tun0 scope link
10.1.32.12 dev tun0 scope link
10.4.8.2 via 192.168.9.254 dev eth0 src 192.168.9.200 mtu 1500 advmss 1460
10.4.9.0/24 dev tun0 scope link
192.168.9.0/24 dev eth0 proto kernel scope link src 192.168.9.200 metric 1
10.2.0.0/16 dev tun0 scope link
10.0.0.0/16 dev tun0 scope link
10.1.0.0/16 dev tun0 scope link
192.168.0.0/16 dev tun0 scope link
default via 192.168.9.254 dev eth0
[root@dev ~]# ip route
192.168.1.17 dev ppp0 proto kernel scope link src 192.168.1.190
10.1.32.14 dev tun0 scope link
10.1.32.12 dev tun0 scope link
10.4.8.2 via 192.168.9.254 dev eth0 src 192.168.9.200 mtu 1500 advmss 1460
10.4.9.0/24 dev tun0 scope link
192.168.9.0/24 dev eth0 proto kernel scope link src 192.168.9.200 metric 1
10.2.0.0/16 dev tun0 scope link
10.0.0.0/16 dev tun0 scope link
10.1.0.0/16 dev tun0 scope link
192.168.0.0/16 dev tun0 scope link
default via 192.168.9.254 dev eth0
二. linux網卡命令
Centos6
ifconfig 查看所有網卡
ifconfig -網卡名 查看單個網卡信息
ifconfig up 網卡名 重啟網卡
ifconfig down 網卡名 禁用網卡
/etc/sysconfig/network-scripts/ 網卡配置文件
Centos6手動改網卡:
vim /etc/sysconfig/network-scripts/ifcfg-ethX
DEVICE=eth0 //設備名字
ONBOOT=yes //是否開啟
NM_CONTROLLED=yes //是否實時生效
BOOTPROTO=static //ip的狀態
IPADDR=172.18.253.211 //ip
PREFIX=16 //ip id
GATEWAY=172.18.0.1//網關
DNS1=172.18.0.1 //域名
HWADDR=00:0C:29:55:04:FE //mac地址

Centos7 nmlic命令集
顯示所有網絡連接:nmcli con show
顯示活動網絡連接:nmcli con show -active
顯示指定網絡連接的詳情:nmcli con show eno16777728
顯示網絡設備連接狀態:nmcli dev status
顯示所有網絡設備的詳情:nmcli dev show
顯示指定網絡設備的詳情:nmcli dev show eno16777728
啟用網絡連接:nmcli con up eno16777728 停用網絡連接(可被自動激活):nmcli con down eno33554960
禁用網卡,防止被自動激活:nmcli dev dis eth0
刪除網絡連接的配置文件:nmcli con del eno33554960
重新加載配置網絡配置文件:nmcli con reload
動態獲取IP方式的網絡連接配置:nmcli con add con-name eno16777728 type ethernet ifname eno16777728
指定靜態IP方式的網絡連接配置:nmcli con add con-name eno16777728 ifname eno16777728 autoconnect yes type ethernet ip4 10.1.254.254/16 gw4 10.1.0.1
啟用/關閉所有的網絡連接:nmcli net on/off 禁用網絡設備並防止自動激活:nmcli con dis eno33554960
查看添加網絡連接配置的幫助:nmcli con add help

修改網絡連接單項參數
nmcli con mod IF-NAME connection.autoconnect yes修改為自動連接
nmcli con mod IF-NAME ipv4.method manual | dhcp修改IP地址是靜態還是DHCP
nmcli con mod IF-NAME ipv4.addresses “172.25.X.10/24 172.25.X.254”修改IP配置及網關
nmcli con mod IF-NAME ipv4.gateway 10.1.0.1修改默認網關
nmcli con mod IF-NAME +ipv4.addresses 10.10.10.10/16添加第二個IP地址
nmcli con mod IF-NAME ipv4.dns 114.114.114.114添加dns1
nmcli con mod IF-NAME +ipv4.dns 8.8.8.8添加dns2
nmcli con mod IF-NAME -ipv4.dns 8.8.8.8刪除dns

Linux route命令詳解和使用,以及網卡命令詳解