IP配置、信息、相關命令
IP地址
它們可唯一標識 IP 網絡中的每臺設備
每臺主機(計算機、網絡設備、外圍設備)必須具有唯一的地址
IP 地址由兩部分組成:
? 網絡ID:
? 標識網絡
? 每個網段分配一個網絡ID
? 主機 ID:
? 標識單個主機
? 由組織分配給各設備
IPv4地址格式:點分十進制記法
IP地址分類
A 類:
0 000 0000 – 0 111 1111: 1-127
網絡數:126, 127
每個網絡中的主機數:2^24-2
默認子網掩碼:255.0.0.0
私網地址:10.0.0.0
B 類:
10 00 0000 – 10 11 1111 :128-191
網絡數:2^14
每個網絡中的主機數:2^16-2
默認子網掩碼:255.255.0.0
私網地址:172.16.0.0-172.31.0.0
C 類:
110 0 0000 – 110 1 1111: 192-223
網絡數:2^21
每個網絡中的主機數:2^8-2
默認子網掩碼:255.255.255.0
私網地址:192.168.0.0-192.168.255.0
D 類:組播
1110 0000 – 1110 1111: 224-239
E 類:
240-255
公共IP地址
私有IP地址
特殊地址
0.0.0.0 |
0.0.0.0 不是一個真正意義上的IP 地址。它表示一個集合:所有不清楚的主機和目的網絡。 |
255.255.255.255 |
限制廣播地址。對本機來說,這個地址指本網段內( 同一廣播域) 的所有主機 |
127.0.0.1 ~127.255.255.254 |
本機回環地址,主要用于測試。在傳輸介質上永遠不應該出現目的地址為“127.0.0.1”的數據包 |
224.0.0.0 到239.255.255.255 |
組播地址,224.0.0.1特指所有主機,224.0.0.2特指所有路由器。224.0.0.5指OSPF路由器,地址多用于一些特定的程序以及多媒體程序 |
169.254.x.x |
如果Windows 主機使用了DHCP自動分配IP 地址,而又無法從DHCP 服務器獲取地址,系統會為主機分配這樣地址。 |
有子網的子網掩碼
子網掩碼的八位
可變長度的子網掩碼
劃分子網
公式1
主機數=2^主機位數(掩碼中0個數=32-網絡位數)-2
公式2
劃分子網:網絡ID位向主機ID位M借位,借N位,劃分子網2^N個,每個子網主機數2^(M-N)-2
公式3
網絡ID=IP地址^子網掩碼
跨網絡通信
跨網絡通信:路由
路由分類:
主機路由
網絡路由
默認路由
動態主機配置協議DHCP
基本網絡配置
將Linux 主機接入到網絡,需要配置網絡相關設置。
一般包括如下內容:
主機名
IP/mask 必須是唯一的
路由:默認網關
DNS服務器:
主DNS 服務器
次DNS 服務器
第三DNS服務器
網絡配置方式
靜態指定:
ifcfg: ifconfig, route, netstat
ip: object {link, addr, route}, ss, tc
system-config-network-tui (setup) centos6的字符工具
配置文件
CentOS 7: 網絡配置工具
nmcli, nmtui(字符工具)
nm-connection-editor(圖形工具) 如下:
動態分配:
DHCP: Dynamic Host Configuration Protocol
小實驗:更改網卡名
1.找出更改網卡名的文件
紅框內的文件是用來命名網卡的文件
2.然后用vim編輯器改一下名字
紅框內原來的名字是eth0,改完之后重啟下虛擬機 原網卡名和現網卡名圖:
但是只更改這個文件 網卡是不能用的 還要改網卡的配置文件
而我們需要修改的文件就是紅框內的文件 vim打開它
修改了這兩處文件 修改完之后 存盤退出 網卡就可以正常使用了
圖形界面看一下網卡名改了 這里的名字就是由網卡配置文件里 NAME那一行來決定的
x修改網卡地址: 在vim /etc/sysconfig/network-scripts/ifcfg-eth0里修改文件 具體如下:
添加了圖中紅方框內的五行文件 然后啟動服務:
就完成了
而如果我們要更改mac地址需要:
把原來的HWADDR改成MACADDR然后啟動服務后 新mac地址生效
配置網卡必須要寫的有以下幾個參數: 其他的可有可無
當然了 上述是靜態配置網卡
自動分配IP地址: 只需要寫兩行
DEVICE=eth0 BOOTPROTO=dhcp
這些配置寫完 要重啟下虛擬機才能生效
靜態配置網卡 需要的參數 |
DEVICE=eth0 IPADDR=192.168.0.1 PREFIX=24(NETMASK=255.255.255.0) GATEWAY=192.168.1.254 DNS1=8.8.8.8 DNS2=8.8.4.4 后面的這些地址 可以自己指定 |
自動分配IP地址 需要的參數 |
DEVICE=eth0 BOOTPROTO=dhcp |
如果你的電腦需要在靜態、自動獲取IP之間轉換的話 可以再網絡里設置
在IPv4屬性里備用配置設置一下用戶配置
設備別名
為每個設備別名生成獨立的接口配置文件
? 關閉NetworkManager 服務 service NetworkManager stop(臨時關閉,下次開機自動啟動);chkconfig NetworkManager off(永久關閉 開機不啟動)
? ifcfg-ethX:xxx
? 必須使用靜態聯網
DEVICE=eth0:0
IPADDR=10.10.10.10
NETMASK=255.0.0.0
ONPARENT=yes
注意:service network restart 生效
參考/usr/share/doc/initscripts-*/sysconfig.txt
網絡接口配置-bonding
Bonding
就是將多塊網卡綁定同一IP 地址對外提供服務,可以實現高可用或者負載均衡。當然,直接給兩塊網卡設置同一IP 地址是不可能的。通過bonding ,虛擬一塊網卡對外提供連接,物理網卡的被修改為相同的MAC地址
bonding的工作模式
·Mode 0 (balance-rr)
輪轉(Round-robin)策略:從頭到尾順序的在每一個slave接口上面發送數據包。本模式提供負載均衡和容錯的能力
·Mode 1 (active-backup)
活動- 備份(主備)策略:在綁定中,只有一個slave 被激活。當且僅當活動的slave 接口失敗時才會激活其他slave 。為了避免交換機發生混亂此時綁定的MAC 地址只有一個外部端口上可見
·Mode 3 (broadcast)
廣播策略:在所有的slave 接口上傳送所有的報文。本模式提供容錯能力
bonding的配置
創建bonding 設備的配置文件
/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
BONDING_OPTS= “miimon=100(ms) mode=0”
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
miimon 是用來進行鏈路監測的。如果miimon=100 ,那么系統每100ms 監測一次鏈路連接狀態,如果有一條線路不通就轉入另一條線路
? 查看bond0 狀態:/proc/net/bonding/bond
當前活動的網卡為eth0 為mode1模式
? 關于bonding 的詳細配置請參照
/usr/share/doc/kernel-doc-
version/Documentation/networking/bonding.txt
配置bond服務的一些命令:
cd /etc/sysconfig/network-scripts vi ifcfg-bond0 DEVICE=bond0 IPADDR=10.100.100.100 PREFIX=16 BONDING_OPTS="miimon=100 mode=1" vi ifcfg-eth0 DEVICE=eth0 MASTER=bond0 SLAVE=yes vi ifcfg-eth1 DEVICE=eth1 MASTER=bond0 SLAVE=yes
網卡名稱
網絡接口識別并命名相關的udev 配置文件:
/etc/udev/rules.d/70-persistent-net.rules
查看網卡:
dmesg |grep –i eth
ethtool -i eth0
卸載網卡驅動:
modprobe -r e1000
rmmod e1000
裝載網卡驅動:
modprobe e1000
網卡別名
對虛擬主機有用
將多個IP 地址綁定到一個NIC上
eth0:1 、eth0:2、 、 eth0:3
ifconfig 命令:
ifconfig eth0:0 192.168.1.100/24 up
定義了一個網卡別名 如圖:
如果把命令中的“:”去掉 會暫時把網卡地址更改
ifconfig eth0:0 down刪除網卡
ip 命令:
配置Linux的網絡屬性
ip addr add 172.16.1.2/16 dev eth0
ip addr add 172.16.1.1/16 dev eth0 label eth0:0
ip addr add 172.16.1.2/16 dev eth0 label eth0:0
ip addr del 172.16.1.1/16 dev eth0 label eth0:0
ip addr flush dev eth0 label eth0:0
ip – show / manipulate routing, devices, policy routingand tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }OBJECT := { link | addr | route }
ip link – network device configuration 查看網卡屬性
set dev IFACE
可設置屬性:
up and down :激活或禁用指定接口
ifup/ifdown
show [dev IFACE] :指定接口
[up]僅顯示處于激活狀態的接口
ip addr { add | del } IFADDR dev STRING 添加/刪除IP地址 可以添加多個地址
[label LABEL] :添加地址時指明網卡別名
[scope {global|link|host}] :指明作用域
global: 全局可用
link: 僅鏈接可用
host: 本機可用
[broadcast ADDRESS] :指明廣播地址
ip address show – look at protocol addresses
[dev DEVICE]
[label PATTERN]
[primary and secondary]
ip address flush – 使用格式同show
ip addr add 172.16.100.100/16 dev eth0 label eth0:0 在eth0上添加IP地址 名字為eth0:0
ip addr del 172.16.100.100/16 dev eth0 label eth0:0 刪除eth0:0的IP地址
ip addr flush dev eth0 label eth0:0 把eth0上的IP地址全部清空
網絡配置文件
IP 、MASK 、GW 、DNS 相關配置文件:
/etc/sysconfig/network-scripts/ifcfg-IFACE
路由相關的配置文件:
/etc/sysconfig/network-scripts/route-IFACE
/etc/sysconfig/network-scripts/ifcfg-IFACE: :
說明參考/usr/share/doc/initscripts-9.49.30/sysconfig.txt
DEVICE :此配置文件應用到的設備
HWADDR :對應的設備的MAC 地址
BOOTPROTO :激活此設備時使用的地址配置協議,常用的dhcp, static, none, bootp
NM_CONTROLLED :NM 是NetworkManager 的簡寫,此網卡是否接受NM 控制;建議CentOS6 為“no”
ONBOOT :在系統引導時是否激活此設備
TYPE :接口類型;常見有的Ethernet, Bridge
UUID :設備的惟一標識
IPADDR :指明IP 地址
NETMASK :子網掩碼
GATEWAY: 默認網關
DNS1 :第一個DNS 服務器指向
DNS2 :第二個DNS 服務器指向
USERCTL :普通用戶是否可控制此設備
PEERDNS :如果BOOTPROTO 的值為“dhcp” ,是否允許dhcp server 分配的dns 服務器指向信息直接覆蓋至/etc/resolv.conf
dns名字解析
/etc/resolv.conf
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
/etc/nsswitch.conf
與/etc/hosts 相比優先于DNS
正解:FQDN–>IP
# dig -t A FQDN
# host -t A FQDN
反解:IP–>FQDN
# dig -x IP
# host -t PTR IP
netstat命令和ss命令的用法和區別
netstat命令 | ss命令 |
netstat – Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships 顯示網絡連接: netstat [–tcp|-t] [–udp|-u] [–raw|-w] [–listening|-l] [–all|-a] [–numeric|-n] [–extend|-e[–extend|-e]] [–program|-p] -t: tcp 協議相關 -u: udp 協議相關 -w: raw socket 相關 -l: 處于監聽狀態 -a: 所有狀態 -n: 以數字顯示IP 和端口; -e :擴展格式 -p: 顯示相關進程及PID 常用組合: -tan, -uan, -tnl, -unl 顯示路由表: netstat {–route|-r} [–numeric|-n] -r: 顯示內核路由表 -n: 數字格式 顯示接口統計數據: netstat {–interfaces|-I|-i} [iface] [–all|-a] [–extend|-e] [–program|-p] [–numeric|-n] # netstat -i # netstat –I=IFACE # ifconfig -s eno16777736 這個命令是比較早的命令 現在用的很少 |
格式:ss [OPTION]… [FILTER] netstat 通過遍歷proc 來獲取socket 信息, ,ss 使用netlink 與內核tcp_diag模塊通信獲取socket 信息。 選項: -t: tcp 協議相關 -u: udp 協議相關 -w: 裸套接字相關 -x :unix sock 相關 -l: listen 狀態的連接 -a: 所有 -n: 數字格式 -p: 相關的程序及PID -e: 擴展的信息 -m :內存用量 -o :計時器信息 常用組合: -tan, -tanl, -tanlp, -uan FILTER : [ state TCP-STATE ] [ EXPRESSION ] TCP 的常見狀態: tcp finite state machine: LISTEN: 監聽 ESTABLISHED :已建立的連接 FIN_WAIT_1 FIN_WAIT_2 SYN_SENT SYN_RECV CLOSED EXPRESSION: dport = sport = 示例:’( dport = :ssh or sport = :ssh )’ 常見用法: 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詳細信息 |
route命令:路由管理命令 查看:route -n 添加:route add route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If] 目標:192.168.1.3 網關:172.16.0.1 # route add -host 192.168.1.3 gw 172.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 dev eth0 # 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 [gw Gw] [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 默認路由,網關: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 [gw Gw] [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 |
ip route – routing table management 添加路由: :ip route add ip route add TARGET via GW dev IFACE src SOURCE_IP TARGET: 主機路由: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 GW dev IFACE ip route add default via 172.16.0.1 刪除路由:ip route delete ip route del TARGET 顯示路由:ip route show|list 清空路由表:ip route flush [dev IFACE] [via PREFIX] ip route flush dev eth0 |
原創文章,作者:舊城以西,如若轉載,請注明出處:http://www.www58058.com/44492