Linux 網絡管理
第一篇:計算機網絡基礎:
一、計算機網絡:
1.TCP/IP:協議棧(使用中的模型)
ISO(國際標準化組織):OSI(開放系統互聯基本參考模型),學習中的模型。
1)各層之間的相關協議和單位:
互聯網層:IP協議
傳輸層:TCP,UDP 協議
應用層:http,https,ftp,ldap…
單位:
數據線路層:以太網幀(MTU最大傳輸單元1500字節)
互聯網層:IP報文
2.通信子網與資源子網
1)從計算機網絡各組成部分的功能來看,各部分主要完成兩種功能:即網絡通信和資源共享
2)通信子網:把計算機網絡中實現網絡通信功能的設備及軟件的集合稱為網絡的通信子網;
組成有:中繼器,集線器,交換機,通訊線纜,路由器等各種網關硬件設備;
3)資源子網:把網絡中實現資源共享功能的設備及軟件的集合稱為資源子網。
組成有:用戶計算機(工作站),網絡存儲設備,網絡終端,服務器等。
3.以太網(Ethernet)和令牌環網(Token-ring network)
1)以太網指的是基帶局域網規范,是當今現有局域網采用的最通用的通信協議標準。以太網絡使用CSMA/CD(載波監聽多路訪問及沖突檢測)技術,并以10M/S的速率運行在多種類型的電纜上。
2)令牌環網,常用于IBM系統中,有一種專門的幀稱為“令牌”,在環路上持續地傳輸來確定一個結點何時可以發送包。
4.MAC地址:
MAC(Media Access Control)地址,意譯為媒體訪問控制,或稱為物理地址、硬件地址,用來定義網絡設備的位置。在OSI模型中,第三層網絡層負責 IP地址,第二層數據鏈路層則負責 MAC地址。因此一個主機會有一個MAC地址,而每個網絡位置會有一個專屬于它的IP地址。(MAC地址是用來實現本地通信的,如果要跨網絡通信,就要使用IP地址)
MAC地址是網卡決定的,是固定的。
二、網絡設備:
1.Hub集線器:
Hub:多端口中繼器
Hub并不記憶該信息包是由哪個MAC地址發出,哪個MAC地址在Hub的哪個端口
Hub的特點: 共享帶寬,半雙工通信
2.網橋(bridge):MAC地址表
靜態指定:
動態學習:根據原地址學習
交換式以太網的優勢:
擴展了網絡帶寬
分割了網絡沖突域,使網絡沖突被限制在最小的范圍內
交換機作為更加智能的交換設備,能夠提供更多用戶所要求的功能:優先級、虛擬網、遠程檢測……
工作原理:
1)以太網橋監聽數據幀中源MAC地址,學習MAC,建立MAC表
2)對于未知MAC地址,網橋將轉發到除接收該幀的端口之外的所有端口;
3)當網橋接到一個數據幀時,如果該幀的目的位于接收端口所在網段上,它就過濾掉該數據幀;如果目的MAC地址在位于另外一個端口,網橋就將該幀轉發到該端口;
4)當網橋接到廣播幀時候,它立即轉發到除接收端口之外的所有其他端口
3.交換機(switch):多端口的網橋
交換機工作于OSI參考模型的第二層,即數據鏈路層。交換機內部的CPU會在每個端口成功連接時,通過將MAC地址和端口對應,形成一張MAC表。在今后的通訊中,發往該MAC地址的數據包將僅送往其對應的端口,而不是所有的端口。因此,交換機可用于劃分數據鏈路層廣播,即沖突域;但它不能劃分網絡層廣播,即廣播域。
4.Hub和交換機比較:
1)集線器屬于OSI的第一層物理層設備,而網橋屬于OSI的第二層數據鏈路層設備;
2)從工作方式來看,集線器是一種廣播模式,所有端口在一個沖突域里面。網橋的可以通過端口隔離沖突;
3)Hub是所有共享總線和共享帶寬。網橋每個端口占一個帶寬。
5.路由器:
1.路由表:
靜態指定,動態學習(rip2,ospf)
2.為了實現路由,路由器需要做下列事情:
分隔廣播域;
選擇路由表中到達目標最好的路徑;
維護和檢查路由信息;
鏈接廣域網;
3.路由:
把一個數據包從一個設備發送到不同網絡里的另一個設備上去。這些工作依靠路由器來完成。路由器只關心網絡的狀態和決定網絡中的最佳路徑。路由的實現依靠路由器中的路由表來完成。
4.路由條目:
目標地址 經由 下一跳(nexthop)來實現;
目標地址的類別:主機路由
網絡路由
默認路由(0.0.0.0/0.0.0.0)
6.VLAN:
功能:分隔廣播域、安全、靈活管理
VLAN = 廣播域= 邏輯網絡(Subnet)
三、IP地址
在網絡中,為了實現不同計算機之間的通信,每臺計算機都必須有一個唯一的地址。就像日常生活中的家庭住址一樣,我們可以通過一個人的家庭住址找到他的家。當然,在網絡中要找到一臺計算機,進而和它通信,也需要借助一個地址,這個地址就是IP地址,IP地址是唯一標識一臺主機的地址。
一、定義和功能
它們可唯一標識IP 網絡中的每臺設備;
每臺主機(計算機、網絡設備、外圍設備)必須具有唯一的地址。
1.IP地址由兩部分組成:
1)網絡ID:
標識網絡
每個網段分配一個網絡ID
2)主機ID:
標識單個主機
由組織分配給各設備
2.分類:
IPv4:32位,可以表示2^32個地址;
IPv6:128位,可以表示2^128個地址。
子網掩碼(subnet mask)
1.用于與IP地址按位進行“與”運算,從而取出其網絡地址。
與運算:1與任何數相與都的任何數,0與任何數相與都得0
舉例:
1.3.2.1/255.0.0.0=1.0.0.0(網絡號)
1.3.2.1/255.255.0.0=1.3.0.0(網絡號)
2.劃分子網和超網
3.子網掩碼可以寫成全格式的,也可以寫成用1的個數表示的方式。
如:A類IP的子網掩碼:255.0.0.0=/8
B類IP的子網掩碼:255.255.0.0=/16
C類IP的子網掩碼:255.255.255.0=/24
IPv4地址
1.地址格式
1)IP地址是一個32位二進制數,用于標識網絡中的一臺計算機。IP地址通常以兩種方式表示:二進制數和十進制數。
2)二進制數表示:在計算機內部,IP地址用32位二進制數表示,每8位為一段,共4段
3)十進制數:為了方便使用,通常將每段轉換為十進制數。
2.IP地址規定:
網絡號不能以127開頭,第一字節不能全為 0 ,也不能全為l。
主機號不能全為0,也不能全為l。
3、IP地址的分類
由于IP地址是有限資源,為了更好的管理和使用IP地址,INTERNIC根據網絡規模的大小將IP地址分為5類(ABCDE)如圖:
A類:
范 圍: 1.0.0.0~126.0.0.0
網絡數:2^7-2=126(去掉全0和全1的兩個地址)
每個網絡中的主機數:2^24-2
默認子網掩碼:255.0.0.0/8
私網地址:10.0.0.0
B類:
范 圍:128.0.0.0~191.255.0.0
網絡數:2^14
每個網絡中的主機數:2^16-2
默認子網掩碼:255.255.0.0/16
私網地址:172.16.0.0-172.31.0.0
C類:
范 圍:192.0.0.0~223.255.255.0
網絡數:2^21
每個網絡中的主機數:2^8-2
默認子網掩碼:255.255.255.0/24
私網地址:192.168.0.0-192.168.255.0
D類:組播
1110 0000 -1110 1111: 224-239
E類:
240-255
進程地址:
IP:PORT,socket
總結:
1.三種通信的地址:
MAC地址:本地通信(任何互聯網通信都要轉化成本地通信才能夠實現)范圍:本地局域網()
IP:界定通信主機,源主機和目標主機;范圍:全球互聯網
Port(端口):界定通信進程;范圍:本地主機
2.通信實質
互聯網通信其實實現的是多段接力的本地通信,IP地址只是標識網絡地址,即源主機是誰,目標主機是誰,幫你選出一條路來;
真正通信的是,某一主機上的某一個端口和另外一個主機上的某一個端口進行通信,最終要轉換成多MAC地址,或本地事物的交互。在通信子網中完成。
三、通信方式
1.跨網絡之間主機的通信:
TCP/IP協議,路由(精度越高,優先級越高),還需要網關;
2.本地主機之間的網絡通信:
ARP(地址解析)協議是通過廣播實現的
四、將Linux主機接入到網絡中,需要配置網絡相關設置:
1.一般包括如下內容:
IP/NETMASK:本地通信;
路由(網關):跨網絡通信;
DNS服務器地址:基于主機名的通信
DNS(Domain Name System,域名系統),因特網上作為域名和IP地址相互映射的一個分布式數據庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。通過主機名,最終得到該主機名對應的IP地址的過程叫做域名解析(或主機名解析)。
包括三類:
主DNS服務器地址
備用DNS服務器地址
第三備用DNS服務器地址
2.配置方式:
1)靜態指定:一般服務器的地址是靜態指定
命令:(送往內核立即生效,但不會永久有效)
ifcfg家族:
ifconfig:配置IP,NETMASK
route:路由
netstat:狀態及統計數據查看
iproute2家族:
ip OBJECT
addr:地址和掩碼;
link:接口;
route:路由
ss:狀態及統計數據查看
CentOS 7:nm家族
nmcli:命令行工具
nmtul:text window 工具
注意:
(1)DNS服務器指定
配置文件:/etc/resolv.conf
(2)本地主機名配置
hostname(臨時生效,永久生效要寫入配置文件中)
配置文件:/etc/sysconfig/network
CentOS 7:hostnamectl
配置文件:(會永久有效,但不會立即生效,需要強制通知內核重讀文件)
RedHat及相關發行版
/etc/sysconfig/network-scripts/ifcfg-NETCARO_NAME(網卡名)
2)動態分配 :依賴于本地網絡中有DHCP服務
DHCP(動態主機配置協議)
3.網絡接口命名方式:
1)傳統命名:
以太網:ethx[0,…),例如:eth0,eth1…
PPP網絡:pppX,[0,…]例如:ppp0,ppp1…
2)可預測命名方案(CentOS):
支持多種不同的命名機制:Fimrware,拓撲結構
如果Firmware或者BIOS為主板上集成的設備提供的索引信息可用,則根據此索引進行命名,如:eth1,eth3…
如果Firmware或者BIOS為PCI-E擴展槽所提供的索引信息可用,且可預測,則根據此索引進行命名,如ens1,ens2…
如果硬件接口的物理位置信息可用,則根據此信息命名,如enp2s0…
如果用戶顯示定義,也可根據MAC地址命名,例如:enx122161ab2e10…
上述均不可用,則使用傳統方式命名
3)命名格式的組成:
en:entherent
wl:wlan
ww:wwan
4)名稱類型:
o<index>:集成設備的設備索引號;
s<slot>:擴展槽的索引;
x<MAC>:基于MAC地址的命名;
p<bus>s<slot>:基于總線及槽的拓撲結構進行命名;
第二篇:Linux網絡屬性配置
一、ifcfg命令家族:ifconfig,route,netstat
ifconfig命令 查看及配置網卡的相關參數
○查看接口:ifconfig [INTERFACE] 默認顯示激活狀態接口
# ifconfig -a:顯示所有接口,包括未激活狀態的接口;
○設定IP地址
# ifconfig IFACE IP/mask [up]
# ifconfig IFACE IP netmask MASK
注意:立即送往內核中的TCP/IP協議棧,并生效
示例:
也可以使用 # ifconfig eth1 192.168.10.100 netmask 255.255.255.0
[-]promisc 啟用或禁用混雜模式
add addr/prefixlen;
del aaddr/prefixlen
route 命令:路由查看及管理
1.路由條目類型:
主機路由(host): 目標地址為單個IP;
網絡路由(net):目標地址為IP網絡;
默認路由:目標位任意主機,0.0.0.0/0.0.0.0
2.查看:
# route -n (以數字格式顯示,不要反解地址和端口號)
route add [-net|-host] target [netmask Nm] [gwGw] [[dev] If]
目標:192.168.1.3 網關:172.16.0.1
# route add -host 192.168.1.3 gw172.16.0.1 [dev eth0]
目標:192.168.0.0 網關:172.16.0.1
# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
# route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
默認路由,網關:172.16.0.1
# route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
# route add default gw 172.16.0.1
刪除:route del
route del [-net|-host] target [gwGw] [netmask Nm] [[dev] If]
目標:192.168.1.3 網關:172.16.0.1
# route del -host 192.168.1.3
目標:192.168.0.0 網關:172.16.0.1
# route del -net 192.168.0.0 netmask 255.255.255.0
刪除默認網關
# route del default
netstat 命令:顯示接口的統計數據
1.顯示路由表:
netstat{–route|-r} [–numeric|-n]
-r: 顯示內核路由表
-n: 數字格式
2.顯示網絡連接:
傳輸層協議:
tcp:面向連接的協議;通信開始之前,要建立一個虛鏈路;通信完成后, 拆除鏈接。
udp:無連接的協議;直接發行數據報文;
netstat[–tcp|-t] [–udp|-u] [–raw|-w] [–listening|-l] [–all|-a] [–numeric|-n] [–extend|-e[–extend|-e]] [–program|-p]
-t: tcp協議相關鏈接,鏈接均有其狀態;FSM
-u: udp協議相關
-w: raw socket相關
-l: 處于監聽狀態
-a: 所有狀態
-n: 以數字顯示IP和端口;
-e:擴展格式
-p: 顯示相關進程及PID
常用選項:
-tan,-uan,-tnl,-unl,-tunlp
3.顯示接口統計數據:
netstat{–interfaces|-I|-i} [iface] [–all|-a] [–extend|-e] [–program|-p] [–numeric|-n]
# netstat -i 顯示所有接口;
# netstat–I<IFACE> 顯示指定接口,注意-I和接口名沒有空格;
# ifconfig -s eno16777736
ifup/ifdown 命令 啟用或禁用
注意:通過配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE 來識別接口并完成配置;
二、配置主機名:
1.CentOS 6:hostname 命令:
查看:hostname
配置:hostname HOSTNAME
當前系統有效,重啟后無效
2.CentOS 7:hostnamectl 命令
hostnamectl status :顯示當前主機名信息;
hostnamectl set-hostname NAME:設定主機名,永久有效;
3.設置配置文件
1)CentOS 6 :/etc/sysconfig/network
HOSTNAME=<NAME>
注意:此方法的設定,不會立即生效,但以后會一直有效;
2)CentOS 7:直接使用 hostnamectl 設置即可,直接生效。
三、配置名字解析器
1./etc/hosts(本地解析器)
本地主機名數據庫和IP地址的映像
對小型獨立網絡有用
通常,在使用DNS前檢查
getent hosts 查看/etc/hosts 內容
2.配置DNS服務器指向:
1)配置文件:
/etc/resolv.conf
nameserver DNS_SERVER_IP(必須是IP地址);
注意:Linux最多只能設置3臺主機被當做DNS地址解析;
2).如何做測試(host/nslookup/dig):
正解:# dig -t A FQDN(主機名)
FQDN–>IP
反解:# dig -x IP
IP–>FQDN
四、iproute2 家族
ip 命令
功能:ip-show / manipulate routing, devices, policy routing and tunnels
語法:ip[ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr| route| netns }
注意:OBJECT 可簡寫,各object的子命令也可簡寫
1.IP OBJECT
1)ip link :network device configuration(網絡設備的配置)
ip link help 查看簡要幫助,常用命令如下:
○ip link set :change device attrlbutes(修改設備屬性)
dev NAME(default):指明要管理的設備,dev關鍵字可省略;
up and down :激活或禁用指定網卡接口
○ip link show :display device attrlbute,s(顯示設備輸屬性)
查看的是二層設備(數據鏈路層)的相關屬性
○multicast on 或 multicast off:啟用或禁用多播功能;
○name NAME:重命名接口
注意:重命名的時候要先把設備停掉(ip link set NAME down)
○ mtu MUMBER:設置MTU的大小,默認為1500;
○netns PID:ns為namespace,用于將接口移動到指定的網絡名稱空間;
2)ip netnes :manage network namespace 網絡名稱空間
ip netns add NAME:創建指定netns
ip netns del NAME:刪除指定netns
ip netns list:列出所有的netns
ip netns exec NAME COMMAND:在指定的netns中運行命令
3)ip address – protocol address management
○ ip addr add IFADDR dev IFACE :添加一個新的接口地址
[label NAME] 為額外添加的地址指明接口別名;
[broadcast ADDRESS]:指明廣播地址,會根據IP和NETMASK自動計算得到;
[scope {global|link|host}]:指明作用域
global: 全局可用;
link: 僅鏈接可用;
host: 本機可用
○ip addr delete IFADDR dev IFACE :刪除接口地址
如:ip addr del 172.16.100.13/16 dev eth0 label eth0:0
○ip addr show/list [IFACE] :查看指定接口地址;
○ip addr flush dev IFACE :清空所有指定接口地址
4)ip route -routing table management
○添加路由:ip route add
語法:ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP]
TYPE PREFIX:
主機路由:IP
網絡路由:NETWORK/MASK
示例:
ip route add 192.168.0.0/24 via 172.16.0.1
ip route add 192.168.1.13 via 172.16.0.1
ip route add default via 172.16.0.1
○ip route del TYPE PRIFIX :刪除指定路由
○ip route flush [dev IFACE] [via PREFIX] :清空路由表
如: # iproute flush dev eth0
○ip route get TYPE PRIFIX :獲取指定路由條目,前提是必須存在。
5.ss命令:
格式:ss[OPTION]… [FILTER]
netstat通過遍歷proc來獲取socket信息,ss使用netlink與內核tcp_diag模塊通信獲取socket信息。
1.選項:
-t: tcp協議相關
-u: udp協議相關
-w: 裸套接字相關
-x:unixsock相關
-l: listen監聽狀態的連接
-a: 所有狀態的連接
-n: 數字格式
-p: 相關的程序及PID
-e: 擴展的信息
-m:內存用量
-o:計時器信息
2.FILTER := [ state TCP-STATE ] [ EXPRESSION ] 過濾
3.TCP的常見狀態:
tcpfinite state machine:
LISTEN: 監聽
ESTABLISHED:已建立的連接
FIN_WAIT_1:
FIN_WAIT_2:
SYN_SENT:
SYN_RECV:
CLOSED:
4.EXPRESSION:
dport= 目標端口
sport = 源端口
示例:’( dport= :sshor sport = :ssh)’
5.常見用法:
ss -l 顯示本地打開的所有端口
ss -pl 顯示每個進程具體打開的socket
ss -t -a 顯示所有tcp socket
ss -u -a 顯示所有的UDP Socekt
ss -o state established '( dport = :ssh or sport = :ssh )' 顯示所有已建立的ssh連接
ss -o state established '( dport = :http or sport = :http )' 顯示所有已建立的HTTP連接
ss -s 列出當前socket詳細信息:
五、配置文件
1.IP、MASK、GW、DNS相關配置文件:
/etc/sysconfig/network-scripts/ifcfg-IFACE
2.路由相關的配置文件:
/etc/sysconfig/network-scripts/route-IFACE
3.說明:配置文件 /etc/sysconfig/network-scripts/ifcfg-IFACE通過大量參數來定義接口的屬性;其可通過vim編輯器直接修改,也可以使用專用的命令進行修改(CentOS 6:system-config-network(setup),CentOS 7:nmtui)
ifcfg-IFACE配置文件參數:
DEVICE:此配置文件的對應的設備名稱;
ONBOOT:此設備是否隨OS啟動而激活;
UUID:此設備的唯一標識;
IPV6INIT:是否初始化IPv6;
BOOTPROTO:啟動時此設備使用的配置協議;取值有:static(手動配置)、none(手動配置)、dhcp或bootp(動態配置)
TYPE:接口類型,常見的有Ethernet,Bridge;
DNS1:第一DNS服務器指向;
DNS2:備用DNS服務器指向;
DOMAIN:DNS搜索域;
IPADDR:IP地址;
NETMASK:子網掩碼;CentOS 7支持使用PREFIX以長度方式指明子網掩碼;
GATEWAY:默認網關;
USERCTL:是否允許普通用戶控制此設備;
PEERDNS:如果BOOTPROTO的值為“dhcp”,是否允許dhcp server分配的dns服務器指向覆蓋本地手動配置的DNS服務器指向;默認為允許;
NM_CONTROLLED:NM是NetworkManager的簡寫,此網卡是否接受NM控制;建議CentOS6為“no”
網絡服務:
1.network
NetworkManger
CentOS 6 通過chkconfig –list 查看默認狀態
2.管理網絡服務:
CentOS 6:
# service SERVICE {start|stop|restart|status}
CentOS 7:
# systemctl {start|stop|restart|status} SERVICE
3.配置文件修改之后,如果要生效,需要重啟網絡服務:
CentOS 6 系統需執行:
# service network restart
CentOS 7 系統序執行:
# systemctl restart network
示例:對CentOS 6 中的新增網卡eth1設置配置文件,并激活
1)創建配置文件ifcfg-eth1,并設置如下參數:
2)設置好之后保存退出,然后重啟網絡
3)重啟網絡之后,可查看當前狀態
用到非默認網關路由:
/etc/sysconfig/network-scripts/route-IFACE
支持兩種配置方式,但不可混用;
(1)每行一個路由條目:
TARGET vla GW
(2)每三行一個路由條目:
ADDRESS#=TARGET
NETMASK#=MASK
GETEWAY#=NEXTHOP
給接口配置多個地址:
除了ip addr 之外,ifconfig或配置文件都可以;
(1)ifconfig IFACE_LABEL IPADDR/NETWASK
IFACE_LABEL:eth0:0,eth0:1,…
(2)為別名添加配置文件;
DEVICE=IFACE_LABEL
BOOTPROTO:網卡別名不支持動態獲取地址;使用 static,nano手動配置
注意:DEVICE一定要同定義的文件名
原創文章,作者:zhumengxiaotao,如若轉載,請注明出處:http://www.www58058.com/44038
文章內容總結的很全面,同時有自己的操作,對結果也通過標記突出,很具有閱讀性。很不錯哦。