路由及網路管理基礎
路由
路由概念
路由是指路由器從一個介面上收到資料包,根據資料包的目的地址進行定向並轉發到另一個介面的過程
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
路由表
路由器負責不同網路之間的通訊,它是當今網路中的重要裝置,可以說沒有路由器就沒有當今的網際網路。在路由器中也有一張表,這張表叫路由表,記錄著到不同網段的資訊。
路由表中的資訊分為直連路由和非直連路由。
直連路由:是直接連線在路由器介面的網段,由路由器自動生成。
非直連路由:不是直接連線在路由器介面上的網段,此記錄需要手動新增或者是使用動態路由。
路由表中記錄的條目有的需要手動新增(稱為靜態路由),有的則是動態獲取的(稱為動態路由)。直連路由屬於靜態路由。
路由器是工作在網路層的,在網路層可以識別邏輯地址。當路由器的某個介面收到一個包時,路由器會讀取包中相應的目標的邏輯地址的網路部分,然後在路由表中進行查詢。如果在路由表中找到由條目,那麼,如果路由配置預設路由,就按著預設路由的配置轉發到路由器的相應介面;如果沒有配置預設路由,則將該包丟棄,並返回不可到達的資訊。這就是資料路由的過程。
如下圖:詳細介紹路由器的工作原理
1)HostA在網路層將來自上層的報文封裝成IP資料包,其中源IP地址為自己,目標IP地址是HostB,HostA發現目標地址與本機不是同一網段,因此傳送HostB的資料包需要經過閘道器路由A的轉發。
2)HostA通過ARP請求獲取閘道器路由A的E0口的MAC地址,並在鏈路層將路由器E0介面的MAC地址封裝成目標MAC地址,源MAC地址是自己。
3)路由器A從E0可接收到資料幀,把資料鏈路層的封裝去掉,並檢查路由表中是否有目標IP地址網段(即192.168.2.2的網段)相匹配的的項,根據路由表中記錄到192.168.2.0網段的資料請傳送給下一跳地址10.1.1.2,因此資料在路由器A的E1口重新封裝,此時,源MAC地址是路由器A的E1介面的MAC地址,封裝的目標MAC地址則是路由器2的E1介面的MAC地址。
4)路由B從E1口接收到資料幀,同樣會把資料鏈路層的封裝去掉,對目標IP地址進行檢測,並與路由表進行匹配,此時發現目標地址的網段正好是自己E0口的直連網段,路由器B通過ARP廣播,獲知HostB的MAC地址,此時資料包在路由器B的E0介面再次封裝,源MAC地址是路由器B的E0介面的MAC地址,目標MAC地址是HostB的MAC地址。封裝完成後直接從路由器的E0介面傳送給HostB。
5)此時HostB才會收到來自HostA傳送的資料。
總結:路由表負責記錄一個網路到另一個網路的路徑,因此路由器是根據路由表工作的。
路由工作包含兩個基本的動作:
1、通過網路傳輸資訊
2、確定最佳路徑
metric是路由演算法用以確定到達目的地的最佳路徑的計量標準,如路徑長度。為了幫助選路,路由演算法初始化並維護包含路徑資訊的路由表,路徑資訊根據使用的路由演算法不同而不同
如有兩條路由資訊
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.116.0 0.0.0.0 255.255.255.0 U 2 0 0 eth0
192.168.116.0 0.0.0.0 255.255.255.0 U 3 0 0 eth3
當我們發出資料包時就會由 metric值低的發出 我們新增網絡卡資訊時也會metric值低的排在路由表前邊
路由的分類
通常情況下,指導 IP 轉發的路由資訊可以通過如下三種不同的途徑來獲得:
靜態路由:
由系統管理員手動配置的到目標網路的唯一路徑,當網路結構發生變化時也必須由系統管理員手動的修改配置。但合理的使用靜態路由可以改進網路的效能,為重要的應用儲存頻寬。
預設路由:
由系統管理員手動配置的一種特殊路由,可以將所有找不到匹配路由的報文轉發到指定的預設閘道器。
動態路由:
由動態路由協議從其他路由器學到的到達目標網路的傳送路徑,可以根據網路結構的變化動態地更新路由資訊
路由表
所謂路由表,指的是路由器或者其他網際網路網路裝置上儲存的表,該表中存有到達特定網路終端的路徑
如何檢視當前由核心維護的路由表
1.路由如何產生? 靜態新增 route add -net 192.168.116.0 netmask 255.255.255.0 dev eth3 metric 1
2.沒有路由會有什麼結果? 會造成網路不可達錯誤
[
connect: Network is unreachable
可能錯誤:1.閘道器沒有設定 2.網路連線--硬體 3.包括網線,水晶頭等連線的物理問題。
如何解決?
新增到192.168.0.0網段的路由
[[email protected] ~]# route del -net 192.168.0.0/24 dev eth0
[[email protected] ~]# route add -net 192.168.0.0/24 dev eth0
路由表中若有相同條目:
*掩碼長度一樣,路由表中誰在上面用誰
*掩碼長度不一樣,哪個掩碼長用誰
*核心自動維護
# ifconfig eth0:0 192.168.1.1/24 //(臨時修改IP)產生路由
# ifconfig eth0:0 192.168.1.1/32 //不產生路由
# route del -net 192.168.0.0/24 dev eth0 //刪除192.168.0.網段的路由
# route add -net 192.168.0.0/24 dev eth0 //新增路由
路由原理:
情況1:同一個網路的主機A和主機B是如何通訊的
1. A要發arp廣播:詢問B的IP,你的MAC地址是什麼? 我的ip是。。。。
只有B會迴應自己的MAC地址給A
B發arp廣播:詢問A的ip 你的MAC地址是多少? 我的ip是。。。。。
A迴應B的請求
2. A和B發收資料
3. A<---->B
情況2:不同網路的主機A和主機F是如何通訊的
1. 當A發現不能與F通訊時,A發廣播問閘道器GW的MAC地址,閘道器的另一個ip詢問Fmac
2. A給F發資料Data
3. F再按原路返回:迴應
SIP和DIP在整個路由過程中保持不變
SMAC和DMAC一直在變(如快遞員送信的過程)
Linux主機做閘道器
=========================================================
A F
192.168.0.51 ------------------- gateway --------------------192.168.2.7
192.168.0.1 192.168.2.1
Linux做gateway,需要開啟ip_forward路由轉發功能:
# echo 1 > /proc/sys/net/ipv4/ip_forward
++++++++++++++++如何讓 ip_forward功能永久生效++++++++++++++++++++++
[
[[email protected] network-scripts]# sysctl -p
net.ipv4.ip_forward = 1
192.168.0.51 指定閘道器:
# route add default gw 192.168.0.1 //新增預設路由(閘道器)
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
192.168.2.7 指定閘道器:
# route add default gw 192.168.2.1
刪除閘道器的命令是:
# route del default
++++++++++++++++如何讓閘道器功能永久生效++++++++++++++++++++++++++
[[email protected] ~]# grep GATE /etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY=192.168.0.1
=========================================================
4、執行命令: ifconfig eth0:1 192.168.3.3/32 與執行命令:ifconfig eth0:1 192.168.3.3/24有什麼區別?
方法二: ip addr add dev eth0 192.168.3.3/32 ip addr add dev eth0 192.168.3.3/24
5、如下錯誤是為什麼?(前提條件是,本機的ip是192.168.0.40,本機將閘道器指向了192.168.0.1)
[[email protected] ~]# ping 192.168.1.18 (在192.168.0.1路由表裡沒有192.168.1.0路由)
PING 192.168.1.18 (192.168.1.18) 56(84) bytes of data.
From 192.168.0.1 icmp_seq=3 Destination Host Unreachable
網關回應:目標主機不可達
6、如下錯誤是為什麼?(前提條件是,本機的ip是192.168.0.40,本機將閘道器指向了192.168.0.1)
[[email protected] ~]# ping 192.168.0.7 (不存在192.168.0.7的主機或當前該主機不線上)
PING 192.168.0.7 (192.168.0.7) 56(84) bytes of data.
From 192.168.0.40 icmp_seq=2 Destination Host Unreachable
自己迴應:目標主機不可達,自己發不可達訊息到本地lo
lo介面: 用於本地(指本主機)網路程序之間的通訊,無論訪問的是本地物理網絡卡還是迴環介面的IP
ping測試,並通過tcpdump抓取回環介面的資料包
7.前提條件是,本機有兩塊網絡卡
eth0 ----- no link
eth1 ----- link ok
本機的eth0 ip是192.168.0.40/24
本機的eth1 ip是192.168.0.41/24
本機將閘道器指向了192.168.0.1
本機的路由表如下:
[[email protected] ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
請問此時,本機能ping通存在的主機192.168.0.149嗎?
答:因為路由表中eth0的為192.168.0.0,如果ping 192.168.0.149 ,會用eth0介面;
又因為eth0不可達,所以不能ping通。
8.在lo介面上新增一個IP如: 192.168.0.232/32,為什麼能夠從外面的主機ping通?
解決: 配置所有已連線網路的介面,只回應本網絡卡IP的ARP廣播 ,而不要幫兄弟介面迴應其上IP的ARP廣播。
# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
如果已經ping通過請清除出arp快取
arp_ignore:定義對目標地址為本地IP的ARP詢問不同的應答模式0
0 - (預設值): 迴應任何網路介面上對任何本地IP地址的arp查詢請求
1 - 只回答目標IP地址是來訪網路介面本地地址的ARP查詢請求
2 -只回答目標IP地址是來訪網路介面本地地址的ARP查詢請求,且來訪IP必須在該網路介面的子網段內
3 - 不迴應該網路介面的arp請求,而只對設定的唯一和連線地址做出迴應
4-7 - 保留未使用
8 -不迴應所有(本地地址)的arp查詢
=============================
ip命令的使用 替代ifocnfig的命令
ip --help
link 關於裝置的相關設定 包括mtu mac等等
addr 關於ip的設定 比如多ip
route 關於路由相關設定
---------------------------------------------------------------------------
ip [-s] link show
ip link set [device] [動作引數]
引數
show 顯示相關內容 -s 顯示資料包統計
set 設定相關裝置
up|down 設定網絡卡啟動或者關閉
mtu 最大傳輸單元
大部分網路裝置的MTU都是1500。如果本機的MTU比閘道器的MTU大,大的資料包就會被拆開來傳送,這樣會產生很多資料包碎片,增加丟包率,降低網路速度。把本機的MTU設成比閘道器的MTU小或相同,就可以減少丟包
name 修改網絡卡名稱
address 修改mac地址
ip -s link show eth0
ip link set eth0 up
ip link set eth0 down
ip link set eth0 mtu 1000
ip link set eth0 down
ip link set eth0 name vbird
ip link show
ip link set eth0 down
ip link set eth0 address aa:aa:aa:aa:aa:aa
-------------------------------------------------------------------
ip addr show
ip address [add|del] [IP引數 [dev 裝置] [相關引數]
show 顯示ip資訊
add|del 新增刪除ip
ip引數 主要是設定網段 如192.168.0.0/24
dev 定義裝置名稱 如eth0 eth1
相關引數
broadcast 設定廣播地址
label 設定網絡卡別名 如 eth0:0
scope
global 允許來自所有源網路
site 僅支援ipv6 僅允許本機連線
link 僅允許本裝置自己連線
host 僅允許本主機自己連線
新增
ip addr add dev eth0 10.10.10.10/24
ip addr add 192.168.50.50/24 broadcast 192.168.50.255 dev eth0 label eth0:0
ifconfig eth0:0 192.168.50.50
刪除
ip addr del 192.168.50.50/24 dev eth0
ip命令特點 1.臨時生效 2.不覆蓋源有ip地址 3.可以控制是否讓ifocnfig命令可見
---------------------------------------------------------------------
ip route
ip route show
ip route [add|del] [IP或者網段 [via gateway] [dev 裝置]
show 顯示路由表 可以使用list
add|del 增加或者刪除路由
ip或網段 192.168.0.0/24 或者 ip
via 從哪個網關出去 同網段不需要
dev 由那個裝置出去
mtu 可以額外設定mtu值
192.168.116.0/24 dev eth0 proto kernel scope link src 192.168.116.50
10.10.10.0/24 dev eth0 proto kernel scope link src 10.10.10.10
proto 此路由協議 kernel 直接由核心自動設定
scope 路由範圍 主要是link 即與本網段相關的直接連線
新增 靜態路由
ip route add 192.168.0.0/24 dev eth0
刪除
ip route del 192.168.0.0/24 dev eth0
新增預設閘道器
ip route add default via 192.168.116.1
修改
ip route chg default via 192.168.116.1 dev eth0
刪除
ip route del default via 192.168.116.1
清空路由表:
#ip route flush table main
查詢arp快取
ip neigh show
============================================================
策略路由:
作用
1 基於源地址選路( Source-Sensitive Routing)
如果一個網路通過兩條線路接入網際網路,一條是比較快的ADSL,另外一條是比較慢的普通的調變解調器。這樣的話,網路管理員既可以提供無差別的路由服務,也可以根據源地址的不同,使一些特定的地址使用較快的線路,而普通使用者則使用較慢的線路,即基於源址的選路。
2 根據服務級別選路( Quality of Service)
網路管理員可以根據IP報頭的服務級別域,對於不同的服務要求可以分別對待對於傳送速率、吞吐量以及可靠性的有不同要求的資料報根據網路的狀況進行不同的路由。
3 節省費用的應用
網路管理員可以根據通訊的狀況,讓一些比較大的陣發性通訊使用一些頻寬比較高但是比較貴的路徑一段短的時間,然後讓基本的通訊繼續使用原來比較便宜的基本線路。例如,管理員知道,某一臺主機與一個特定的地址通訊通常是伴隨著大量的陣發性通訊的,那麼網路管理員可以安排一些策略,使得這些主機使用特別的路由,這些路由是按需撥號,頻寬比較高的線路,通訊完成以後就停止使用,而普通的通訊則不受影響。這樣既提高網路的效能,又能節省費用。
4 負載平衡(Load Sharing)
根據網路交通的特徵,網路管理員可以在不同的路徑之間分配負荷實現負載平衡。
---------------------------------------------
linux可以支援255張路由表,在預設情況下,系統有三個內建路由表,這三個路由表的功能如下:
local:路由表local包含本機路由及廣播資訊。例如,在本機上執行ssh 127.0.0.1時,就會參考這份路由表的內容,在正常情況下,只要配置好網絡卡的網路設定,就會自動生成local路由表的內容,我們應該也不必修改其內容。有系統自己維護,也不能更改和刪除
main:使用傳統命令route -n所看到的路由表就是main的內容。Linux系統在預設情況下使用這份路由表的內容來傳輸資料包,因此,其內容極為重要,在正常情況下,只要配置好網絡卡的網路設定,就會自動生成main路由表的內容。
default:default路由表是空的,為最後處理(post-processing)所預留,若前面的預設規則沒有選擇該資料報時保留用作最後的處理。該規則可以被刪除。
策略路由實驗:
一 流量分隔 後面讓需求網速快的包走一條路由,讓需求網速慢的包走另外一條路由
----------ip rule show 檢視 路由規則(策略)-----------
[[email protected] ~]# ip rule show
0: from all lookup 255
32766: from all lookup main
32767: from all lookup default
第一列表示優先順序,數值越小,優先順序越高
linux作為路由器時,當任何一個源IP(all)讓其幫它做路由轉發時,將會按255那張表來轉發,表可以是表名或表ID表示。
如果255表不能轉發,依次向下匹配。
192.168.1.100--------|192.168.1.254 eth0 1.1.1.1 | -------------------------- 1.1.1.254
| |
| |
192.168.2.100--------|192.168.2.254 eth1 2.2.2.2 |---------------------------2.2.2.254
1、新增表:新增兩個自定義的表:
[[email protected] ftp]# vim /etc/iproute2/rt_tables //直接修改就行,但是注意再沒有新增規則之前用 ip rule show命令是看不到的
[[email protected] ftp]# grep ^[^#] /etc/iproute2/rt_tables
255 local
254 main
253 default
200 table_10M //後面讓需求網速快的包走這條路由
100 table_2M //後面讓需求網速慢的包走這條路由
0 unspec
[[email protected] ftp]# ip route show table table_2M
[[email protected] ftp]# ip route show table table_10M
[[email protected] ftp]# ip route show table 100
[[email protected] ftp]# ip route show table 200
[[email protected] ~]# ip route del default table table1 //根據需要可以刪除某張表中的預設路由,不指定表預設為main表
[[email protected] ~]# ip rule del from 1.1.1.0/24 table sale
2、新增路由:分別往兩個表中各自新增對應的預設路由
[[email protected] ftp]# ip route add default via 1.1.1.1 dev eth0 table table_2M
RTNETLINK answers: Network is unreachable
[[email protected] ftp]# ip addr add 1.1.1.1/24 dev eth0
[[email protected] ftp]# ip route add default via 1.1.1.1 dev eth0 table table_10M
[[email protected] ftp]# ip addr add 2.2.2.2/24 dev eth1
[[email protected] ftp]# ip route add default via 2.2.2.2 dev eth1 table table_2M
[[email protected] ftp]#
3、新增規則:定義路由策略,規定從哪個源網路來,按照哪個表進行路由
[[email protected] ftp]# ip rule add from 192.168.1.0/24 table table_10M
[[email protected] ftp]# ip rule add from 192.168.2.0/24 table table_2M
[[email protected] ftp]# ip rule show
0: from all lookup 255
32764: from 192.168.2.0/24 lookup table_2M
32765: from 192.168.1.0/24 lookup table_10M
32766: from all lookup main
32767: from all lookup default
--------
# ip rule add from 192.168.1.0/24 table table_20M pref 32800 //pref可以指定優先順序
=========================
根據不同的TOS做設定:
#ip rule add from 192.168.3.0/24 tos 0x10 table table_5M //指定匹配tos(服務型別)為0x10的包
#ip rule add from 192.168.1.0/24 tos 0x10 table table1 pref 1500 prohibit
將向規則鏈增加一條規則,規則匹配的物件是ip為192.168.3.0.24,tos等於0x10的包,使用路由表table1,這條規則的優先順序是1500,動作是prohibit
禁止。
上面的規則是以源地址為關鍵字,作為是否匹配的依據的。除了源地址外,還可以用以下的資訊:
From -- 源地址
To -- 目的地址(這裡是選擇規則時使用,查詢路由表時也使用)
Tos -- IP包頭的TOS(type of sevice)域
Dev -- 物理介面
Fwmark -- 防火牆標記號
採取的動作除了指定表,還可以指定下面的動作:
Table 指明所使用的表
Nat 透明閘道器
Action prohibit 丟棄該包,併發送 COMM.ADM.PROHIITED的ICMP資訊
Reject 單純丟棄該包
Unreachable丟棄該包,併發送 NET UNREACHABLE的ICMP資訊
===========ss命令===========
ss命令 條目多的情況下,效命更高
[[email protected] ~]# netstat -ntl
[[email protected] ~]# netstat -nul
[[email protected] ~]# netstat -nutpl
[[email protected] ~]# netstat -an
[[email protected] ~]# ss -nap
[[email protected] ~]# ss -na
[[email protected] ~]# ss -h
網路管理基礎
====================================================================================
Network interface names
Traditionally, network interfaces in Linux are enumerated as eth0, eth1, eth2, and so on. However, the mechanism which
sets these names can cause changes to which interface gets which name as devices are added and removed.
The default naming behavior in Red Hat Enterprise Linux 7 is to assign fixed names based on firmware, device topology,
and device type.
Interface names have the following characters:
Ethernet interfaces begin with en, WLAN interfaces begin with wl, and WWAN interfaces begin with ww.
The next character(s) represents the type of adapter with an o for on-board, s for hotplug slot, and p for PCI geographic location.
Not used by default but also available to administrators, an x is used to incorporate a MAC address.
Finally, a number N is used to represent an index, ID, or port.
If the fixed name cannot be determined, the traditional names such as ethN will be used.
For example, the first embedded network interface may be named eno1 and a PCI card network interface may be named enp2s0.
The new names make it easier to distinguish the relationship between a port and its name if the user knows both, but the
trade off is that users cannot assume a system with one interface calls that interface eth0.
使用NetworkManager管理網路
網路管理器(NetworkManager)是一個動態網路的控制器與配置系統,它用於當網路裝置可用時保持裝置和連線開啟並激活
預設情況下,CentOS/RHEL 7 已安裝網路管理器,並處於啟用狀態。
device 裝置,物理裝置 例如enp2s0,virbr0,team0
connection 連線,邏輯設定 指的是一套具體配置方案
多個connection可以應用到同一個device,但同一時間只能啟用其中一個connection。
這樣的好處是針對一個網路介面,可以設定多個網路連線,比如靜態IP和動態IP,再根據需要up相應的connection
NetworkManager提供的工具
nmcli, nmtui, nm-connect-editor
1. 方法一: 修改ip/netmask/dns/gateway[瞭解]
[[email protected] ~]# nmcli connection add con-name enp2s0-auto autoconnect yes ifname enp2s0 type ethernet
[[email protected] ~]# nmcli connection add con-name enp2s0-gun autoconnect yes ifname enp2s0 type ethernet ip4 10.10.10.10/24 gw4 10.10.10.254
[[email protected] ~]# nmcli connection show enp2s0-auto |grep ipv4.me
ipv4.method: auto
[[email protected] ~]# nmcli connection show enp2s0-gun |grep ipv4.me
ipv4.method: manual
[[email protected] ~]# ls /etc/sysconfig/network-scripts/
ifcfg-enp2s0 ifdown-ippp ifdown-TeamPort ifup-ipv6 ifup-Team
ifcfg-enp2s0-auto ifdown-ipv6 ifdown-tunnel ifup-isdn ifup-TeamPort
ifcfg-enp2s0-gun ifdown-isdn ifup ifup-plip ifup-tunnel
[[email protected] ~]# nmcli connection up enp2s0-auto
[[email protected] ~]# nmcli connection delete enp2s0-auto
[[email protected] ~]# nmcli connection modify enp2s0-gun ipv4.method a
[[email protected] ~]# nmcli connection modify enp2s0-gun ipv4.method m
[[email protected] ~]# nmcli connection modify enp2s0-gun +ipv4.addresses 20.20.20.20/24
[[email protected] ~]# nmcli connection modify enp2s0-gun +ipv4.dns 114.114.114.114
[[email protected] ~]# nmcli connection show enp2s0-gun |grep ipv4.add
ipv4.addresses: 10.10.10.10/24, 20.20.20.20/24
2. 方法二:修改ip/netmask/dns/gateway
[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-enp2s0
NAME="enp2s0"
DEVICE="enp2s0"
ONBOOT=yes
NETBOOT=yes
BOOTPROTO=none
IPADDR=172.16.120.246
PREFIX=24
IPADDR1=192.168.200.246
PREFIX1=24
GATEWAY=172.16.120.254
DNS1=8.8.8.8
DNS2=114.114.114.114
[[email protected] ~]# nmcli con reload
[[email protected] ~]# nmcli con down enp2s0; nmcli con up enp2s0
注:刪除自建的連線connection
不使用NetworkManager管理網路
aliyun
[[email protected] ~]# nmcli connection delete enp2s0-auto
[[email protected] ~]# systemctl disable NetworkManager
[[email protected] ~]# systemctl stop NetworkManager
[[email protected] ~]# systemctl status NetworkManager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; disabled; vendor preset: enabled)
Active: inactive (dead)
[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
NAME=eth0
DEVICE=eth0
ONBOOT=yes
NETBOOT=yes
BOOTPROTO=none
IPADDR=192.168.122.169
PREFIX=24
TYPE=Ethernet
[[email protected] ~]# systemctl restart network.service
以下配置跟NetworkManager無關:
1. 修改主機名/etc/hostname
# hostnamectl set-hostname tianyun.example.com
# cat /etc/hostname
# reboot
2. 配置名字解析Configuring name resolution
a. hosts
[[email protected] ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
119.75.218.70 www.baidu.com
[[email protected] ~]# getent hosts www.baidu.com
119.75.218.70 www.baidu.com
b. resolv.conf DNS
[[email protected] ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 114.114.114.114
[[email protected] ~]# yum -y install bind-utils
[[email protected] ~]# host www.sina.com
www.sina.com is an alias for us.sina.com.cn.
us.sina.com.cn is an alias for wwwus.sina.com.
wwwus.sina.com has address 66.102.251.33
基本的網路測試工具
[[email protected] ~]# ip a
[[email protected] ~]# ip a s eth0
[[email protected] ~]# ip route
[[email protected] ~]# ip neigh
[[email protected] ~]# hostname
[[email protected] ~]# ping www.baidu.com
[[email protected] ~]# ping -c2 www.baidu.com
[[email protected] ~]# ip -s link show eth0
[[email protected] ~]# traceroute www.sina.com
[[email protected] ~]# tracepath www.sina.com
1?: [LOCALHOST] pmtu 1500
1: no reply
2: 11.245.87.126 0.787ms
3: 106.11.130.218 0.387ms
4: 42.120.244.125 0.425ms
5: 150.138.132.157 1.469ms
6: 150.138.128.241 3.546ms asymm 7
7: 202.97.40.241 24.677ms
8: 202.97.24.154 14.197ms
9: 202.97.33.154 18.340ms asymm 10
10: 202.97.90.242 182.632ms
11: 203.14.186.138 193.383ms asymm 13
12: 218.30.41.234 209.543ms asymm 13
13: 66.102.251.33 163.224ms reached
Resume: pmtu 1500 hops 13 back 14
檢視裝置物理連線的狀態
[[email protected] ~]# ip a
2: enp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast master br0 state DOWN qlen 1000
如果在連線禁用 ONBOOT=no 以上的資訊不真實
[[email protected] ~]# ethtool enp1s0
Link detected: no
ports and services
以下為示例服務:
[[email protected] ~]# yum -y install httpd vsftpd
[[email protected] ~]# systemctl start httpd
[[email protected] ~]# systemctl start vsftpd
http 80/tcp
https 443/tcp
ssh 22/tcp
ftp 21/tcp
1. Show TCP sockets (LISTEN)
[[email protected] ~]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:80 *:*
LISTEN 0 128 *:8080 *:*
LISTEN 0 10 114.215.71.214:53 *:*
LISTEN 0 10 10.29.89.165:53 *:*
LISTEN 0 10 127.0.0.1:53 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 128 127.0.0.1:953 *:*
LISTEN 0 128 127.0.0.1:6010 *:*
LISTEN 0 128 *:443 *:*
LISTEN 0 32 :::21 :::*
LISTEN 0 10 :::53 :::*
[[email protected] ~]# ss -tnl |grep :80
LISTEN 0 128 *:80 *:*
[[email protected] ~]# ss -tnl |grep :21
LISTEN 0 32 :::21 :::*
[[email protected] ~]# ss -atn
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:80 *:*
LISTEN 0 10 114.215.71.214:53 *:*
LISTEN 0 10 10.29.89.165:53 *:*
LISTEN 0 10 127.0.0.1:53 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 128 127.0.0.1:953 *:*
LISTEN 0 128 127.0.0.1:6010 *:*
ESTAB 0 52 114.215.71.214:22 123.120.38.233:49603
ESTAB 0 0 114.215.71.214:40962 140.205.140.205:80
LISTEN 0 32 :::21 :::*
LISTEN 0 10 :::53 :::*
[[email protected] ~]# ss -atn |grep :22
LISTEN 0 128 *:22 *:*
ESTAB 0 52 114.215.71.214:22 123.120.38.233:49603
[[email protected] ~]# ss -atn |grep :80
LISTEN 0 128 *:80 *:*
ESTAB 0 0 114.215.71.214:40962 140.205.140.205:80
a 所有狀態,包括 LISTEN
2. Show UDP sockets (所有狀態)
[[email protected] ~]$ ss -anu
State Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 114.215.71.214:53 *:*
UNCONN 0 0 10.29.89.165:53 *:*
UNCONN 0 0 127.0.0.1:53 *:*
UNCONN 0 0 114.215.71.214:123 *:*
UNCONN 0 0 10.29.89.165:123 *:*
UNCONN 0 0 127.0.0.1:123 *:*
UNCONN 0 0 *:123 *:*
UNCONN 0 0 :::53 :::*
UNCONN 0 0 :::123 :::*
[[email protected] ~]$ ss -tan |grep :5910
LISTEN 0 5 *:5910 *:*
ESTAB 0 0 172.25.254.250:5910 172.25.254.44:51435
ESTAB 0 0 172.25.254.250:5910 172.25.254.6:40546
ESTAB 0 0 172.25.254.250:5910 172.25.254.18:37780
ESTAB 0 0 172.25.254.250:5910 172.25.254.13:55841
ESTAB 0 0 172.25.254.250:5910 172.25.254.35:36984
ESTAB 0 0 172.25.254.250:5910 172.25.254.9:47342
ESTAB 0 0 172.25.254.250:5910 172.25.254.2:40955
ESTAB 0 0 172.25.254.250:5910 172.25.254.12:50833
ESTAB 0 0 172.25.254.250:5910 172.25.254.36:50854
ESTAB 0 0 172.25.254.250:5910 172.25.254.1:52444
ESTAB 0 0 172.25.254.250:5910 172.25.254.47:39335
ESTAB 10 0 172.25.254.250:5910 172.25.254.14:55833
臨時配置網路資訊
ip/netmask
# ip addr add dev eth1 3.3.3.3/24
# ip addr del dev eth1 3.3.3.3/24
gateway
# ip route del default
# ip route add default via 192.168.122.3
# ip route add 10.10.10.0/24 via 192.168.122.5
hostname
# hostname tianyun.cc.com