Linux網絡屬性配置,計算機基礎
Linux網絡屬性配置(1):
計算機網絡通信:TCP/IP 通過流式化數據相互通信,通過雙方一致的時鐘頻率來完成信號傳輸; 有兩種方式傳輸:同步傳輸,異步傳輸; 借助于介質傳輸:同軸電纜、網線、無線等; 要想相互通信,也要必須遵循一種(復雜)組織機制,就產生了協議; 通過把協議分層,來分別解決傳輸過程中各種復雜的操作; TCO/IP:協議棧 對層次界定不很分明,接口定義不規范,但是非常好使用的網絡協議模式; OSI協議棧層次分明,但是使用起來過于笨重,因此僅作為學習使用的協議模型; 雙方通信要在較高層次上,能夠協商如何把數據流式化,如何還原回來,都需要定義協商; TCO/IP分為兩個層次: 第一層次(低層):只關心數據如何從A主機發送到B主機,稱為通信子網,對于TCO/IP完成數據交換的就叫通信子網,無 論它有幾個層次; 第二層次:只關心數據如何被組織起來的,負責文件數據類型內部組織格式的就稱為資源子網; 施樂公司的PARK實驗室研究出了以太網,使用同軸電纜,用T型頭把多個主機鏈接在同一根線纜上,假如有A、B、C、D四臺 主機,A要想與B通信,A主機就把數據調制成某一個電壓信號,然后把這個電壓施加在電纜上,此時整根線纜都有電壓信號,B、 C、D都能收到A的信號,但是其它主機就不能收發信號了,因此主機在互相收發信號時,在某一時刻只能有一個,只能搶占信道來 收發信號; 當兩者同時發信號時,就發生了沖突,為了避免這樣的沖突方案是有多種的,如以太網(Ethernet)就用CSMA/CD(載波偵 聽多路訪問/沖突檢測)協議來解決,即每個主機發送信號前,先檢測線路是否被占用,如果沒有占用就發送數據; 當有兩主機同時檢測到線路空閑,同時發送數據時,協議工作是邊發送數據邊檢測線路的,沒檢測到沖突時就發送數據,檢測 到沖突時發送數據被打斷,沖突的雙方會自動隨機等待一個時間再發送數據,就這樣工作的; csma/cd協議 在實現信號傳輸時就是每個主機在發送信號前先檢測線路,如果線路繁忙就等待一段隨機時間再檢測,如果線路空閑則立即 發信號并且邊發送邊檢測是否有沖突發生,如果沒有沖突就持續發送信號,一旦檢測到沖突就立即中止信號傳輸,并后退再隨機等 待一段時間,再檢測線路,直到沒有沖突把信號傳完,這就是csma/cd的工作原理;
什么是以太網:將多個主機連接在一起,占用同一個底層通信信道時,使用csma/cd來解決信道征用問題的網絡就叫做以太網。 每個主機都應該有自己的唯一標識(網卡)即MAC地址;固定在網卡上的rom中的; MAC:Media Access Control; 有48bits地址: ICANN:24bits,2^24 地址塊:2^24網橋(bridge):有MAC表
MAC地址表生成方式: 靜態指定:手動指定; 動態學習:根據原地址學習;MAC地址有生成周期ttl一般為300秒鐘; 交換機(switch):多口網橋,每個端口可直連主機; 為了統一每個廠家生產的網卡沒有重復的MAC地址: ICANN互聯網名稱與數字地址分配機構,規定:前24bits(地址塊),2^24個地址要注冊申請,后24bit,2^24個地址是 廠商自定義的;
遵循個體權利的才是開放的、才是世界的,普世的! 計算機在底層解決了這個問題,但當計算機數量不計其數時再沖突檢測,就無法正常工作了,所以要把計算機切割成不同的網 絡來避免沖突過大;兩個網絡里的主機要通信就用網橋連接兩個網絡,網橋設備能判斷,如果網絡一的某個主機是發送到網絡二的 某個主機的,網橋設備就把網絡一的主機轉發到網絡二的主機上,如果網絡一的主機只發送給本網絡內的其它主機的,則網橋不會 轉發信號到另一網絡,這樣就分隔了沖突域;
網橋內存儲了所有與它連接的主機MAC地址與連接它的對應的接口,通過檢查這個地址表(稱為MAC地址表),如果收的信 息的接口和目標主機都來自一個接口上,則不會轉發,如果收的信息的接口和目標主機不是一個接口,則轉發信息,從而完成數據 交換,后來稱為交換機; 有時某主機會發生一個事先約定好的廣播地址,即所有主機都能收到的地址;約定48位MAC地址全為1時,就是廣播地址; 此時交換機會轉發廣播信息,每個主機都會發廣播信息,網絡大時,為了避免廣播又產生了一個設備來分割網絡即分割了廣播域即 路由器; 廣播域不同的網絡需要通信時,需要立體的地址管理,MAC地址解決不了劃分網絡的能力,就產生了IP地址的概念;路由器 通過把不同的網絡標記為不同的網絡號,來實現不同網絡的主機內通信;當路由器檢測到是廣播信息時不會轉發信息,當路由器檢 測到信息時發給不同網絡內的主機時,會把信息路由到另外一個網絡上完成通信; 因此會給每個網絡上的主機分配以主機號即IP地址,所有每個主機上有兩個地址,一個是MAC地址,一個是IP地址,MAC地 址完成本地通信,IP地址完成跨網絡通信;
IP(Internet protocal)地址:網絡號+主機號 A<–>B:A主機與B主機直接如何通信 網絡地址 要指明哪個網絡哪個主機 主機地址
IPv4:32bits 32位二進制 每8bits一段,用點號分隔,共四段:8bits.8bits.8bits.8bits 0-255 0.0.0.0-255.255.255.255 IP地址分類: A類: 第一段為網絡號(且最高位為0),后三段為主機號; 網絡號: 0 000 0000-0 111 1111:0-127(有效網絡號為1-127) 網絡數量:126個(2^8-2,全0不用,127分配給本地環回地址); 每個網絡中的主機數量:2^24-2(全0地址為網絡地址,全1地址為所有主機); 默認子網掩碼:255.0.0.0,/8 用于與IP地址按位進行“與”運算,從而取出其網絡地址; 為了能夠判斷原主機和目標主機是否在同一網絡中就使用子網掩碼來判斷,因為IP地址和掩碼做與操作,就計算出了網絡地址(網絡號); A類私網地址:10.0.0.0(只有一個10開頭的網絡) B類: 前兩段為網絡號(且高位為10),后兩段為主機號 網絡號: 10 00 0000-10 11 1111:128-191 網絡數量:2^14 每個網絡中的主機數據:2^16-2(全0地址為網絡地址,全1地址為所有主機); 默認子網掩碼:255.255.0.0,/16 B類私網地址:172.16.0.0-172.31.0.0(能劃分16個子網) C類: 前三段為網絡號,最后一段為主機號 網絡號: 110 0 0000-110 1 1111:192-223 網絡數量:2^21 每個網絡中的主機數量:2^8-2(全0地址為網絡地址,全1地址為所有主機); 默認子網掩碼:255.255.255.0,/24 C類私網地址: D類:組播 高位為1110 1110 0000-1110 1111:224-239 E類:科研 240-255
網橋(交換機)通過MAC地址表知道主機與自己的接口相連,路由器有路由表,從而知道哪個網絡與自己的接口相連; IPv6:128bits
路由器(router):有路由表 每一個路由器在某一時刻最終必須都要知道到達全球某個位置有哪些個路可走,而且要從中選一個最優的路徑記錄下來,這樣就記錄了很多路由條目,就形成了路由表; 路由表地址表生成方式: 靜態指定:小范圍可以; 動態學習:通過rip2,ospf等路由協議來實現生成路由表;
路由條目: 目標地址:下一跳(nexthop),也叫網關; 目標地址類別: 主機:主機路由 網絡:網絡路由(合并網絡,子網劃分等) 默認路由:0.0.0.0/0.0.0.0即ip為全0,掩碼為全0,表示可到達任何主機;
traceroute命令就是跟蹤經過的路徑; ping命令就是測試兩主機是否聯通; 路由器所連接的網絡都可以稱作局域網,跨網絡遠程通信叫廣域網(wan),連入廣域網內只能在城市內通信叫城域網,能夠在全球通信就叫互聯網; OS:現在主機都是多用戶,多任務的 多任務:就是多進程實現的; 比如:同時打開qq,網頁,網絡視頻等應用; Client:使用臨時可用地址和端口; Server:使用固定且明確的地址; 最終完成應用的是主機之間的進程通信;所以要標識主機的進程,進程也應該有地址是不可能跨越主機使用的,只在本 地主機上使用進程地址(即端口號); 進程地址有可能是可變的,也可能是固定不變的,服務器server就有固定且明確的IP地址,客戶端client也有明確的IP地 址,只不過是使用臨時可用地址; 端口就是用來實現標識本地主機上每一個進程的唯一數字標識,是進程用于實現網絡通信的數字標識; 通信時,進程的數字標識: 16bits:0-65535,有效范圍是1-65535; ICANN互聯網名稱與數字地址分配機構,規定: 1-1023:固定分配服務使用,而且只有管理員有權限啟用; 1024-4萬多:為半固定分配; 4萬多+:臨時分配; 實際上互聯網主機之間的通信是主機進程之間的通信,每個主機的進程地址標識為IP:PORT;
osi模型 tcp/ip模型 應用層
表示層 回話層 應用層 傳輸層 傳輸層 網絡層 網絡層 數據鏈路層 物理層 物理層
配置方式: 命令: ifcfg家族 ifconfig:配置ip,NETMASK route:路由 netstat:狀態及統計數據查看 iproute2家族: ip OBJECT: addr:地址和掩碼 link:接口 route:路由 ss:狀態及統計數據查看 centos7:nm(Network Manager)家族 nmcli:命令行工具 nmtul:text window工具
注意: (1)DNS服務器指定 配置文件:/etc/resolv.conf (2)本地主機名配置 hostname 配置文件:/etc/sysconfig/network centos7:hostnamectl 配置文件 RedHat及相關發行版 /etc/sysconfig/network-scripts/ifcfg-METCARD_NAME 動態分配:依賴于本地網絡中有DHCP服務 DHCP:Dynamic Host Configure Procotol
網絡接口命名方式: 傳統命名: 以太網:ethx, ppp網絡
可預測命名方案(centos): 支持多種不同的命名機制: Fireware,拓撲結構 (1)如果firmware或BIOS為主板上集成的設備提供的索引信息可用,則根據此索引進行命名,如exo1,eno2。。 (2)如果firmware或BIOS為PCI-E擴展槽所提供的索引信息可用,且可預測,則根據此索引進行命名,如ens1,ens2.。 (3)如果硬件接口的物理位置信息可用,則根據此信息命名,如enp2s0.。 (4)如果用戶顯示定義,也可根據MAC地址命名,例如enx122161ab 上述均不可用,則仍使用傳統方式命名: 命名格式的組成: en:ethernet wl:wlan ww:wwan 名稱類型: o<index>:集成設備的設備索引號; s<slot>:擴展槽的索引號; x<MAX>:基于MAC地址的命名; p<bus>s<slot>:基于總線及槽的拓撲結構進行命名;
回顧:計算機網絡基礎、linux網絡屬性配置 TCP/IP協議棧:物理層、互聯網層、傳輸層、應用層 互聯網層:IP 傳輸層:TCP,UDP 應用層:http,https,ftp,ldap…
非常重要: 鏈路層:以太網幀 互聯網層:IP包報文 傳輸層:傳輸層報文
以太網幀:MTU(1500)最大傳輸報文 linux網絡屬性配置:命令、配置文件;
網絡屬性配置詳解(2)
ifcfg命令家族:ifconfig,route,netstat
ifconfig命令(接口及地址查看和管理):
ifconfig [INTERFACE] ifconfig -a:顯示所有接口,包括inactive狀態的接口; ifconfig interface [aftype] options |address... #ifconfig IFCE IP/MASK [up #ifconfig IFCE IP netmask NETMASK options: [-]promisc 混雜模式 管理ipv6地址: add addr/prefixien del addr/prefixien 注意:立即送往內核中的tvp/ip協議棧,并立即生效;
route命令:路由查看及管理(非常重要)
路由條目類型: 主機路由:目標地址為單個IP; 網絡路由:目標地址為IP網絡; 默認路由:目標為任意網絡,0.0.0.0/0.0.0.0 查看: route -n (以數字模式顯示ip地址,無需反解地址和端口號) 添加: route add [-net(網絡路由)|-host(主機路由)] target [netmask Nm] [gw Gw(下一跳地址)] [[dev] IF]
添加路由條目時必須要明確指明我們要到達某某某,經過哪一個下一跳地址來實現。a要到達b主機要經過下一跳r1交換接口。 一個主機的網關地址一定要和本地主機地址在一個網段上!a主機的地址和路由的地址一定要在同一網段上。
destination 表示telnet目標 Genmask表示掩碼地址,目標網絡的掩碼 Gateway下一跳網關地址,0.0.0.0本地主機的網絡地址,意思是我自己主機就在自己的網絡上,所有不需要下一跳網關地址(無需網關)。本地主機直接所在的網絡,也叫直連路由。 Flags:U表示Up,啟用狀態。UG表示getway表示網關。 Metric:度量值,經過這個網絡所需要的開銷 Iface:指自己要用哪塊網卡發出去。 添加一個路由條目,想到達10.0.0.0,掩碼為八位網絡,經過下一跳地址10.1.250.40.
下一跳必須與自己的某塊網卡在同一網段中,而且要存在。 示例:route add -net 0.0.0.0/0.0.0.0 gw 192.169.10.1 或者route add default gw 192.169.10.1 刪除: route del [-net(網絡路由)|-host(主機路由)] target [netmask Nm] [gw Gw(下一跳地址)] [[dev] IF] 示例
route del -net 10.0.0.0/g route del default
netstat命令(非常重要):
Print(顯示) network connections(網絡連接), routing tables(路由表), interface statistics(接口統計數據), masquerade connections(偽裝連接), and multicast memberships(多播成員關系) 顯示路由:netstat -rn -r:顯示內核路由表 -n:數字格式,不要反解 顯示網絡連接: netstat [-t(表示tcp(有連接的協議)連接)] [-u(表示udp(用戶數據報協議)連接)][--tcp|-t] [--udp|-u] [--raw|-w][--listening|-l][--all|-a][--numeric|-n] [--extend|-e] [--program|-p] -t:TCP協議的相關連接,連接均有其狀態;FSM(有限狀態有哪些狀態) -u:UDPF相關的連接 -w:raw socket相關的連接 -l:處于監聽狀態的連接 -a:所有狀態 -n:以數字格式顯示IP和Port -e:擴展格式 -p:顯示相關的進程及PID; 常用組合: -tan ,-uan,-tnl,-unl,-tunlp 傳輸層協議: tcp:面向連接的協議;通信開始之前,要建立一個虛鏈路;通信完成后還要拆除連接; udp:無連接的協議;直接發送數據報文,無需建立虛鏈路; 顯示接口的統計數據: netstat {--interfaces|-i} [Iface] [--all|-a] [--extend|-e] [--verbose|-v] [--program|-p] [--numeric|-n] 所有接口: netstat -i 指定接口: netstat -I(eth1)
ifup/ifdown命令: 注意:通過配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE來識別接口并完成配置
配置主機名:
hostname命令: 查看:hostname 配置:hostname HOSTNAME centos6用 當前系統有效 hostnamectl命令: hostnamectl status:顯示當前主機名信息 hostnamectl set-hostname:設定主機名,永久有效;
配置文件:/etc/sysconfig/network HOSTNAME=
注意:此方法的設置不會立即生效;但以后會一直生效
配置DNS服務器指向: 配置文件:/etc/resolv.conf nameserver DNSSERVERIP
如何測試: dig -t A FQDN FQDN -->IP dig -x IP IP-->FQDN
iproute2家族: ip命令: ip – show / manipulate (查看及管理)routing(路由), devices(設備), policy routing(策略路由) and tun-nels(隧道)
ip [ OPTIONS ] OBJECT { COMMAND | help } OBJECT:={LINK|addr|route|netns} ip OBJECT: ip link:network device configuration(網絡設備配置) ip link set-change(修改) device attributes(屬性) dev NAME(default):指明要管理的設備,dev關鍵字可省略 up and down multicast on 或multicast off:啟用或禁用多播功能
name NAME:重命名接口
重命名時注意先停止接口
mtu NUMBER:設置MTU的大小,默認為1500; netns PID:ns為namespace,用于將接口移動到指定的網絡名稱空間 ip link show-display(顯示) device attributes
ip link help- 顯示簡要使用幫助; ip netns: Ip - manage network namespaces(只有cenlos7里有) ip netns list:列出所有網絡內存空間 ip netns add NAME:添加網絡內存空間 ip netns del NAME:刪除網絡內存空間 ip netns exec NAME COMMAND:在指定網絡內存空間中運行命令 ip address - protocol address management ip address add -add new protocal address ip addr add IFADDR dev IFACE label NAME:為額外添加的地址指明接口別名; broadcast ADDRESS:廣播地址;會根據IP和NETMASK自動計算的 scope SCOPE_VALUE: global:全局可用; link:接口可用; host:僅本機可用; ip address delete - delete protocol address ip addr delete IFADDR dev IFACE ip address show - look at protocol addresses ip addr list IFACE:僅顯示指定接口的地址; ip address flush - flush protocol address ip addr flush dev IFACE 清空指定接口上的所有地址 ip route - routing table management ip route add -add new route ip route change - change route ip route replace - change or add new one ip route add TARGET ip route delete - delete route ip route show - list routes ip route flush - flush routing tables
ss命令
ss [options] [FILER] 選項: -t:TCP協議的相關連接 -u:UDP相關的連接 -w:raw socker相關的連接 -l:監聽狀態的連接 -a:所有狀態的連接 -n:數字格式 -p:相關的程序及其PID -e:擴展格式信息 -m:內存用量 -o:計時器信息 FILTER:=[state TCP-STATE] [EXPRESSION] TCP的常見狀態: TCP FSM: LISTEN:監聽 ESTALISEHD:建立的連接 FIN_WAIT_1: FIN_WAIT_2 SYN_SENT: SYN_RECV: CLOSED: EXPRESSION: dport= sport=
配置文件:
IP/NETMASK/GW/DNS等屬性的配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE IFACE:接口名稱; 路由的相關配置文件:/etc/sysconfig/network-scripts/route-IFACE 配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE通過大量參數來定義接口的屬性;其可通過vim等文本編輯器直接修改,也可以使用專用的命令進行修改(centos6:system-config-network(setup),centos7:nmtui) ifcfg-IFACE配置文件參數: DEVICE:此配置文件對應的設備的名稱;和IFACE保存一致 ONBOOT:在系統引導過程中是否激活此接口 UUID:此設備的唯一標識; IPV6INIT:是否初始化ipv6 BOOTPROTO:激活此接口時使用什么協議來配置接口屬性。常用dhcp(動態)、bootp(動態)、static(靜態)、none(靜態) TYPE:接口類型,常見的有Etherner(以太網) DNS1:第一個DNS服務器指向 DNS2:備用DNS服務器指向 DOMAIN:DNS搜索域; GATEWAY:默認網關; IPADDR:配置本機ip地址; PREFIX或者NETMASK:子網掩碼 centos7支持PREFIX=8(以長度方式指明子網掩碼) USERCTL:是否允許普通用戶控制此設備; PEERDNS:如果BOOTPROTO的值為dhcp,是否允許dhcp server分配的dns服務器指向覆蓋本地手動指定的DNS服務器指向(默認為yes) HWADDR:設備的MAC地址;不要改,直接刪除 NM_CONTROLLED:是否使用NetworkManager服務來控制接口;這個文件內核并不會自動讀取,而是開機的時候會自動啟動一個網絡服務,這個服務有一些其他的功能能夠通過讀取此配置文件的參數來知道我們給主機配置什么地址掩碼等,并使用相應的命令自動運行 網絡服務: centos6中 network(盡量使用這一種) NetworkManager centos7中 NetworkManager已經非常完善了,可以使用 管理網絡服務: centos6:service SERVICE {start|stop|restart|status} 配置文件修改之后,如果要生效,需要重啟網絡服務; service network restart centos7 重啟網路服務的正統用法:也可以使用centos6中的 systemctl restart network.service systemctl {start|stop|restart|status} SERVICE[.service] 用到非默認網關路由:/etc/sysconfig/network-scripts/route-IFACE 支持兩種配置方式,但不可混用 (1)每行一個路由條目 TARGET via GW (2)每三行一個路由條目 ADDRESS#=TARGET NETMASK#=MASK GATEWAY#=NEXTHOP 給接口配置多個地址(網卡別名): ip addr之外,ifconfig或配置文件都可以 (1)ifconfig IFACE_LABEL IPADDR/NETMASK IFACE_LABEL:eth0:0.eth0:1 (2)為別名添加配置文件; DEVICE=IFACE_LABEL BOOTPRTO:網卡別名不支持動態獲取地址; static,none nmcli命令:centos7上專用
一、作業:
1、某公司申請到一個C 類IP 地址,但要連接6 個的子公司,最大的一個子 公司有26 臺計算機,每個子公司在一個網段中,則子網掩碼應設為? 6個網絡號 192.168.1.0/27 192.168.1.32/27 192.168.1.64/27 192.168.1.96/27 192.168.1.128/27 192.168.1.160/27 子網掩碼255.255.255.224 2、一家集團公司有12家子公司,每家子公司又有4個部門。上級給出一個172.16.0.0/16的網段,讓給每家子公司以及子公司的部門分配網段。 172.16.0.0/22 172.16.4.0 172.16.8.0 172.16.12.0 172.16.16.0 172.16.20.0 172.16.24.0 172.16.28.0 172.16.32.0 172.16.36.0 172.16.40.0 172.16.44.0
原創文章,作者:15152188070,如若轉載,請注明出處:http://www.www58058.com/43359
寫的很好,很詳細哦,建議下來多加練習,將各個命令熟練掌握。