Linux網絡屬性管理(1)
Bell(AT&T), PARC(Xerox)
以太網
計算機網絡:共享底層通信信道
CSMA/CD算法
token環算法
MAC: Media Access Control
IP網絡:Internet Protocol
32bits: 每8bits一段,共4段
8bits: 0-255
0000 0000 – 1111 1111
1.1.1.1
地址被切割為兩部分:
左側:區域標識,網絡標識
右側:主機標識
網橋:分隔 沖突域
路由器:分隔 廣播域
將一個大網絡分隔成多個小網絡,每個網絡都自己的網絡地址;
每個網絡中可以存在多個主機,每個主機都有自己在本網絡內惟一地址標識;
完整地址:網絡地址 主機地址
IP地址分類:
A, B, C, D, E
0000 0000 – 1111 1111
A類網絡:
0 000 0001 – 0 111 1111: 1-127
N.H.H.H
B類:
10 00 0000 – 10 11 1111: 128-191
N.N.H.H
C類:
110 0 0000 – 110 1 1111: 192-223
N.N.N.H
D類:
1110 0000 – 1110 1111: 224-239
E類:
1111 0000 – 1111 1111: 240-255
子網掩碼:網絡位部分全為1,主機位部分全為0
子網掩碼:用于通過計算得出網絡地址
IP & Netmask
1.1.1.1,
0000 0001. 0000 0001.0000 0001.0000 0001
1111 1111. 0000 0000.0000 0000.0000 0000
0000 0001. 0000 0000.0000 0000.0000 0000
1.0.0.0
網絡間轉發:IP地址中獲取出的網絡地址來進行的;
本地主機間通信:MAC地址;
地址解析:IP–>MAC
ARP: Address Resolve Protocol
進程地址:端口號
1.1.1.1:80
資源地址:具體的應用協議來各自定義具體的實現方式
局域網:本地網絡
網絡地址:路由器
協議棧:分層設計
分層模型:
OSI模型:
物理層(PL):定義物理設備規范及電氣信號特性;
數據鏈接層(DLL):本地網絡通信,定義MAC地址;
網絡層(NL):定義網絡間通信,定義IP地址;
傳輸層(TL):進程間通信,定義進程地址;
會話層(SL):會話建立和拆除;
表示層(RL):數據表示方式;
應用層(AL):完成數據交換;
TCP/IP模型:
物理層
互聯網層
傳輸層
應用層
傳輸層:
UDP:User Data Protocol
無連接的協議
TCP: Tranport Control Protocol
有連接的協議
IP首部格式和TCP首部格式
子網劃分,路由協議(OSPF, rip2)
交換機:switch, MAC地址表
單工
半雙工
全雙工:沒有沖突域
路由器:路由表
目標網絡 經由的路徑 開銷
OSPF: 路由協議
學習生成路由表
IP:可路由協議
傳輸層:
進程啟動時向內核注冊使用某端口,所以,當網絡報文到達時,首先到達內核;
應用層:
進程負責處理應用層協議;
回顧:網絡基礎知識
OSI:PL, DLL, NL, TL, SL, RL, AL
TCP/IP:PL, NL, TL, AL
數據包發送:AL, TL, NL, DLL
數據包接收:DLL, NL, TL, AL
本地網絡中的主機間通信:MAC
交換機:多接口網橋
跨網絡的主機間通信:
網絡間數據報文轉發:網絡地址(IP, Netmask), Router
本地網絡中的主機間通信:
路由器:路由表 routing table
生成方式:
靜態方式:手動添加
動態方式:路由協議學習生成,OSPF
進程間通信:
Socket, IP:PORT
Client (ip:port) <–> Server (ip:port)
應用層間通信:
應用層協議:
smtp: simple mail transfer protocol
http: hyper text transfer protocol
通信子網,資源子網
IANA, ICANN
IPv4:
A類:
0 000 0001 – 0 111 1111: 1-127
特性:N.H.H.H
默認掩碼:255.0.0.0
網絡數:1-126
每個網絡中的主機位:
全1為:廣播地址
全0為:網絡地址
每個網絡中可以容納多少個主機:2^24-2
回環:127.0.0.0/8
私有地址:10.0.0.0/8
B類:
10 00 0000 – 10 11 1111:128-191
特性:N.N.H.H
默認掩碼:255.255.0.0
網絡數:2^14
每個網絡中的主機:
每個網絡中可容納多少個主機:2^16-2
私有地址:172.16.0.0/16-172.31.0.0/16
C類:
110 0 0000 – 110 1 1111: 192-223
特性:N.N.N.H
掩碼:255.255.255.0
網絡數:2^21
每個網絡中的主機位:
每個網絡中可容納多少個主機:2^8-2
私有地址:192.168.0.0/24-192.168.255.0/24
D類:組播地址
E類:預留地址
NAT: Network Address Translation
FQDN:Full Qualified Domain Name
http://www.magedu.com
Linux主機接入到TCP/IP網絡:
IP/Netmask
路由:建立路徑條目
網絡路由:目標是一個網絡
主機路由:目標是一個主機
默認路由:目標是所有的非本地網絡
注意:下一跳路由接口的地址必須與本地主機的某個地址在同一網絡中;
DNS服務器指向:
主DNS服務器
備用DNS服務器
第三備用DNS服務器
配置IP及Netmask:
靜態:手工指定
動態(DHCP):
前提:本地物理網絡要有一個DHCP服務器動態提供地址
靜態配置地址:
ifconfig命令
ip命令
GUI工具
TUI工具
編輯配置文件
Interface名稱:
以太網:ethX,例如eth0, eth1
ensX
emX
PPP網絡:pppX
本地環回接口:lo, 僅用于本機上進程間基于內核完成通信
127.0.0.1
ifconfig命令:
查看接口:
ifconfig [Interface]
-a: 包括未激活狀態的所有接口
MTU: 最大傳輸單元
啟用或禁用:ifconfig IFNAME up|down
啟用:ifup IFNAME
禁用:ifdown IFNAME
設定IP地址:
ifconfig IFNAME IP/Netmask [up]
注意:CIDR格式的掩碼
ifconfig IFNAME IP netmask NETMASK
注意:完整格式的掩碼,即類似255.255.0.0
設定的地址會立即送往內核,因此,會立即生效;但不會永久有效;
ping命令:用ICMP的ECHO_REQUEST報文測試主機間的連通性
ping [OPTIONS] DESTINATION
-c #: 發送的ping報文次數;
-s #: 發送的探測報文大??;
-w #:ping命令運行時長;
練習:寫一個腳本
1、使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態;
在線的主機使用綠色顯示;
不在線的主使用紅色顯示;
route命令:路由管理
查看本機內核路由表:
route
-n: numeric,數字格式顯示地址
添加路由:新增路由條目,用戶告訴本機至某目標網絡或主機要經由的下一跳路由
route add [-net|-host] TARGET gw GATEWAY [dev IFNAME]
示例:到達192.168.0.0/24網絡,經由172.16.0.1網關;
# route add -net 192.168.0.0/24 gw 172.16.0.1
到達192.168.1.1主機,經由172.16.0.1網關;
# route add -host 192.168.1.1 gw 172.16.0.1
設定默認網關:
# route add -net 0.0.0.0 gw 172.16.0.1
# route add default gw 172.16.0.1
刪除路由:
route del [-net|-host] TARGET gw GATEWAY [dev IFNAME]
示例:刪除上述配置的默認路由
# route del -net 0.0.0.0 gw 172.16.0.1
注意:所有配置立即發往內核中的協議棧,所以立即生效;不會永久有效;
配置DNS服務器指向:
/etc/resolv.conf
指令:
nameserver DNS_SERVER_IP
測試命令:
dig
測試能否解析某個FQDN(正向解析):
dig -t A FQDN
測試能否解析某個IP為FQDN(反向解析):
dig -x IP
配置IP、Netmask、網關、DNS服務指向的第二種方式:
setup –> Network Configurations
注意:此種配置方式的配置結果是保存至配置文件;生效方法:
重啟網絡接口的相關服務
重啟系統
網絡管理的相關服務有兩個:
NetworkManager
network
查看其能否開機運行:
# chkconfig –list | grep -E "(NetworkManager|network)"
啟用或禁止開機自動運行:
# chkconfig SERVICE_NAME on|off
立即啟動、關閉或重啟指定服務:
# service SERVICE_NAME start|stop|restart
# /etc/init.d/SERVICE_NAME start|stop|restart
配置IP、Netmask、網關、DNS服務指向的第三種方式:
每個網絡接口都有一個配置文件:/etc/sysconfig/network-scripts/ifcfg-IFNAME
PARAMETER=VALUE
DEVICE=eth0
BOOTPROTO=none
HWADDR=08:00:27:2d:14:19
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Ethernet
UUID="c9f7b242-abbf-4a34-8316-8c2c0e9a57c0"
IPADDR=172.16.100.11
NETMASK=255.255.0.0
GATEWAY=172.16.0.1
DNS1=172.16.0.1
IPV6INIT=no
USERCTL=no
常用參數:
DEVICE:此配置文件所關聯到的設備,其值通常應該ifcfg-IFNAME中的IFNAME;
BOOTPROTO:啟動此設備時使用的配置協議,取值有static(手動配置)、none(手動配置)、dhcp或bootp(動態配置);
HWADDR:網卡的MAC地址,此地址應該與網卡設備ROM中固定的地址保持一致;
NM_CONTROLLED: NM即NetworkManager的簡寫,建議設定為no;
ONBOOT:此設備是否隨OS啟動而激活;
TYPE:設備類型,通常有“Ethernet”,“Bridge”;
UUID:
IPADDR:此接口的IP地址;
NETMASK:子網掩碼;
GATEWAY:網關;
DNS1:DNS服務器指向的主DNS服務器;
DNS2:
DNS3:
IPV6INIT:是初始化ipv6協議地址;
USERCTL:是否允許普通用戶管理此接口;
PEERDNS:當BOOTPROTO的值為dhcp時,是否允許dhcp服務器提供的dns服務指向覆蓋本地手動配置的DNS服務器指向;
注意:重啟網絡服務network服務后方能生效;
靜態路由配置文件:/etc/sysconfig/network-scripts/route-IFNAME
配置方式一:
每一行定義一個路由條目
DESTINATION via GATEWAY
例如:
192.168.0.0/24 via 172.16.0.2
192.168.1.1 via 172.16.0.3
配置方式二:
每三行定義一個路由條目:
ADDRESS#=
NETMASK#=
GATEWAY#=
例如:
ADDRESS1=192.168.0.0
NETMASK1=255.255.255.0
GATEWAY1=172.16.0.2
注意:兩種方式不能混合使用;
配置IP、Netmask、網關服務指向的第四種方式:
ip命令
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
link:鏈接接口,如eth0
addr:管理接口上的地址
route: 管理路由
link:
set: 設定接口屬性
ip link set DEVICE
{up|down}:啟用或禁用接口;
promisc { on | off }:是否支持混雜模式;
name NEWNAME:設定接口使用新名字;
show: 顯示接口狀態,例如啟用的特性,HWADDR等;
ip link show [DEVICE]
addr:管理地址
add:添加地址
del:刪除地址
ip addr { add | del } IFADDR dev STRING
示例:ip addr add 172.16.200.33/16 dev eth0
show:
ip addr show [dev IFNAME]
flush:
ip addr flush [dev IFNAME]
route: 管理路由
list|show: 顯示路由
ip route list
add: 添加路由
ip route add DESTINATION via GATEWAY [dev IFNAME]
示例:設定默認網關
ip route add defalut via 172.16.0.1
del: 刪除路由
ip route del DESTINATION
例如:# ip route del 192.168.0.0/24
如何給接口配置多個地址的其它方式:
(1) ifconfig命令
網卡接口的別名:ethX:Y,例如eth0:0, eth0:1
ifconfig IF_ALIAS IPADDR netmask NETMASK [up]
(2) 配置文件
/etc/sysconfig/network-scripts/ifcfg-IF_ALIAS,例如ifcfg-eth0:0
DEVICE=IF_ALIAS
BOOTPROTO={static|none}:別名的地址不能動態獲??;
IPADDR
NETMASK
ONBOOT
配置主機名:
(1) hostname命令
(2) 內核參數:/proc/sys/kernel/hostname
# echo "HOSTNAME" > /proc/sys/kernel/hostname
配置文件:/etc/sysconfig/network
HOSTNAME=www.magedu.com
網絡管理的幾個常用工具:
(1) ping
(2) traceroute IP
探測到達目標主機中間所經過網關設備;
(3) mtr HOST
合并了ping與traceroute命令的功能的網絡診斷工具;
網絡狀態探測工具:
(1) netstat
-r: 顯示路由表
-n: numeric,數字顯示,不反解IP地址至主機名;
-t: tcp協議的相關連接
-u: udp協議的相關連接
-l: 顯示處于監聽狀態(即等待別的進程連接訪問);
-a: 顯示所有連接,對于tcp而言即處于各種狀態;
-p: 顯示相關連接的關聯到的進程的名字及PID;
常用組合:-rn, -tnl, -unl, -tunl, -tan, -tnlp
(2) ss
-t: tcp協議相關的連接
-n: 數字格式
-u: udp協議相關的連接
-l:處于監聽狀態
-a: 所有連接
-e: 顯示擴展信息
-m: 顯示使用信息
-o state {established|fin_wait_1|fin_wait_2|listening}
常用組合:-tnl, -unl, -tan, -tunl, -tnlp
(3) iftop:以連接為中心顯示帶寬占用情況
iftop [-i IFNAME]
(4) nethogs: 以進程為中心顯示帶寬占用情況
nethogs [IFNAME]
網絡安全工具:
(1) nmap
(2) ncat
(3) tcpdump
原創文章,作者:M20-石俊,如若轉載,請注明出處:http://www.www58058.com/43783