網絡管理
本章內容
網絡概念 OSI模型 網絡設備 TCP/IP IP地址 配置網絡 實現網絡組 測試網絡 網絡工具
為linux網卡配置ip地址,不是給網卡配置地址,是給內核的網絡功能配置,地址是屬于內核。
為內核配置即時生效,修改配置文件,是永久生效。
ifconfig 配置信息,會立即生效,但是重啟網絡服務或主機,都失效。
網絡服務
/etc/init.d/network {start|restart|stop|sataus}
centos6 service NetworkManager status
是centos6默認的網絡服務腳本。不建議使用NetworkManager該服務。不穩定。
linux網絡屬性配置
命令,配置文件
centos6還支持使用文本界面修改網絡配置文件,
setup
system-config-network-tui
配置方式
靜態指定
命令
ifcfg家族
ifconfig:配置ip,netmask
route:路由
netstat:狀態及統計數據查看
iproute2家族 ip OBJECT addr:地址和掩碼 link:接口 route:路由 ss狀態及統計數據查看 nm家族(centos7才可以使用) nmcli:命令行工具 nmtul:text window 工具 配置文件 etc/sysconfig/network-scripts/ 動態分配:依賴于本地網絡中的DHCP服務
基本網絡配置
將Linux主機接入到網絡,需要配置網絡相關設置。 一般包括如下內容: 主機名 IP/mask 路由:默認網關 DNS服務器 主DNS服務器 次DNS服務器 第三DNS服務器
網絡配置方式
靜態指定: ifcfg: ifconfig, route, netstat ip: object {link, addr, route}, ss, tc system-config-network-tui(setup) 配置文件 CentOS 7:新增工具:nmcli, nmtui 動態分配: DHCP: Dynamic Host Configuration Protocol
配置網絡接口
接口命名方式:CentOS 6: 以太網:eth[0,1,2,...] ppp:ppp[0,1,2,...] ifconfig命令 ifconfig[interface] # ifconfig -a 顯示所有接口包括未激活狀態的 # ifconfig IFACE [up|down] 關閉或激活網卡 ifconf iginterface [aftype] options | address ... # ifconfig IFACE IP/mask [up] 配置ip并激活可以是掩碼長度表示掩碼 # ifconfig IFACE IP netmask MASK 使用點分十進制表示掩碼 注意:立即生效;立即送往內核中的TCP/IP協議棧 option 啟用混雜模式:[-]promisc 接收網絡中的任意報文。 還可以配置ipv6地址
路由管理命令
查看:route -n 添加:route add 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 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 gw172.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所有的改動重啟網絡服務或主機后失效。
配置動態路由
通過守護進程獲取動態路由 ?安裝quagga包,支持多種格式的RIP、OSPF和BGP ?命令vtysh配置
netstat命令
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-IIFACE
ip命令
配置Linux網絡屬性:ip命令 ip-show / manipulate routing, devices, policy routing and tunnels ip[ OPTIONS ] OBJECT { COMMAND | help } OBJECT := { link | addr| route } iplink -network device configuration set dev IFACE 可設置屬性: up and down:激活或禁用指定接口 ifup/ifdown show [dev IFACE]:指定接口 [up]:僅顯示處于激活狀態的接口 ip addr{ add | del } IFADDR dev STRING [label LABEL]:添加地址時指明網卡別名 [scope {global|link|host}]:指明作用域 global: 全局可用; link: 僅鏈接可用; host: 本機可用; [broadcast ADDRESS]:指明廣播地址 ipaddress show -look at protocol addresses [dev DEVICE] [label PATTERN] [primary and secondary] ipaddress flush -使用格式同show ipaddr add 172.16.100.13/16 dev eth0 label eth0:0 ipaddr del 172.16.100.13/16 dev eth0 label eth0:0 ipaddr flush dev eth0 label eth0:0 iproute -routing table management 添加路由:iproute add iproute add TARGET via GW dev IFACE srcSOURCE_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 添加網關:iproute add default via GW dev IFACE ip route add default via 172.16.0.1 刪除路由:iproute delete iproute del TARGET 顯示路由:iproute show|list 清空路由表:iproute flush[dev IFACE] [via PREFIX] iproute flush dev eth0
ss命令
格式:ss[OPTION]... [FILTER] netstat通過遍歷proc來獲取socket信息,ss使用netlink與內核tcp_diag模塊通信獲取socket信息。 選項: -t: tcp協議相關 -u: udp協議相關 -w: 裸套接字相關 -x:unixsock相關 -l: listen狀態的連接 -a: 所有 -n: 數字格式 -p: 相關的程序及PID -e: 擴展的信息 -m:內存用量 -o:計時器信息 FILTER := [ state TCP-STATE ] [ EXPRESSION ] TCP的常見狀態: tcpfinite state machine: LISTEN: 監聽 ESTABLISHED:已建立的連接 FIN_WAIT_1 FIN_WAIT_2 SYN_SENT SYN_RECV CLOSED EXPRESSION: dport= sport = 示例:’( dport= :sshor sport = :ssh)’ 常用組合: -tan, -tanl, -tanlp, -uan
常見用法
ss -l 顯示本地打開的所有端口
ss -pl 顯示每個進程具體打開的socket
ss -t -a 顯示所有tcp socket
ss -u -a 顯示所有的UDP Socekt
ss -o state established '( dport = :smtp or sport = :smtp )' 顯所有已建立的SMTP連接
ss -o state established '( dport = :http or sport = :http )' 顯示所有已建立的HTTP連接
ss -x src /tmp/.X11-unix/* 找出所有連接X服務器的進程
ss -s 列出當前socket詳細信息:
網絡配置文件
IP、MASK、GW、DNS相關配置文件:/etc/sysconfig/network-scriptsifcfg-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” IPADDR=ip地址 NETMASK=子網掩碼 GATEWAY=設定默認網關 ONBOOT=開機時是否自動機會哦此網絡接口 TYPE:接口類型;常見有的Ethernet, Bridge UUID:設備的惟一標識 DNS1:第一個DNS服務器指向 DNS2:第二個DNS服務器指向 USERCTL:普通用戶是否可控制此設備 PEERDNS:如果BOOTPROTO的值為“dhcp”,是否允許dhcp server分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf文件中 dhcp和指定ip同時使用的話,優先使用dhcp獲取到的ip
路由配置文件
/etc/sysconfig/network-scripts/route-IFACE 注意名稱IFACE必須與網卡名稱一致。例如roue-eth0
格式如下 目的ip/網絡 via 下一跳 192.168.1.2/24 via 192.168.0.120
不會立即生效,但是重啟網絡服務或主機都會生效。
本地解析器
解析器執行正向和逆向查詢 ——————解析其他主機的主機名。 /etc/hosts ?本地主機名數據庫和IP地址的映像 ?對小型獨立網絡有用 ?通常,在使用DNS前檢查 ?getent hosts 查看/etc/hosts 內容 配置文件格式, 192.168.1.1 www.mageedu.com www mage mageedu magedu 可設置主機名和多個別名。中間用空格隔開。 DNS解析過程,先訪問本地hosts文件,文件中沒有才組查找DNS配置文件(resolv.conf)
修改主機名
使用命令hostname HOSTNAME更改主機名,立即有效但是不會永久有效。 本地主機houstname配置文件/etc/sysconfig/network 格式 HOSTNAME=mageedu.com 修改主機名配置文件后,只有重新開啟新終端,或重啟服務器才可以生效?;蚴褂妹钚薷? 實例: [root@centos6 ~]# cat /etc/sysconfig/network ###centos6 NETWORKING=yes ###是否開啟網絡服務 HOSTNAME=yangyouwei.centos6 GATEWAY= ###也可以定義網關,范圍是全局的。但是同時網卡的配置文件也定義了網關,那么只是網卡的網關生效。
dns名字解析
最多添加三個,ifconfig中PEERDNS=no才可以使用此配置文件
[root@centos7 ~]# cat /etc/resolv.conf
# Generated by NetworkManager search magedu.com localdomain nameserver 10.1.0.1 nameserver 192.168.154.1 /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 /etc/sysconfig/network-scripts/route-IFACE ?注意:需service network restart生效 ?兩種風格: (1) TARGET via GW (2) 每三行定義一條路由 ADDRESS#=TARGET NETMASK#=mask GATEWAY#=GW
網卡別名
對虛擬主機有用 將多個IP地址綁定到一個NIC上,別名的網卡不能使用DHCP服務。必須手動配置地址。 eth0:1 eth0:2 eth0:3 ifconfig命令: ifconfig eth0:0 192.168.1.100/24 up ip命令: 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 del 172.16.1.1/16 dev eth0 label eth0:0 ip addr flush dev eth0 label eth0:0 為每個設備別名生成獨立的接口配置文件 ?關閉NetworkManager服務 ?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 Linux網絡屬性配置的tui(text user interface): system-config-network-tui setup 注意:記得重啟網絡服務方能生效 配置當前主機的主機名: hostname [HOSTNAME] /etc/sysconfig/network HOSTNAME= 網絡接口識別并命名相關的udev配置文件: /etc/udev/rules.d/70-persistent-net.rules 卸載網卡驅動: modprobe-r e1000 裝載網卡驅動: modprobe e1000
網絡接口配置-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 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 ?關于bonding的詳細配置請參照 /usr/share/doc/kernel-doc-version/Documentation/networking/bonding.txt
CentOS 7網絡屬性配置
rhel6之前,網絡接口使用連續號碼命名:eth0、eth1等,當增加或刪除網卡時,名稱可能會發生變化。 rhel7使用基于硬件,設備拓撲和設置類型命名: (1) 網卡命名機制 systemd對網絡設備的命名方式 (a) 如果Firmware或BIOS為主板上集成的設備提供的索引信息可用,且可預測則根據此索引進行命名,例如eno1 (b) 如果Firmware或BIOS為PCI-E擴展槽所提供的索引信息可用,且可預測,則根據此索引進行命名,例如ens1 (c) 如果硬件接口的物理位置信息可用,則根據此信息進行命名,例如enp2s0 (d) 如果用戶顯式啟動,也可根據MAC地址進行命名,enx2387a1dc56; (e) 上述均不可用時,則使用傳統命名機制
網卡名稱
基于BIOS支持biosdevname中 內置網卡:em1,em2 pci卡:pYpXY:slot ,X:port (2) 名稱組成格式 en: Ethernet 有線局域網 wl: wlan無線局域網 ww: wwan無線廣域網 名稱類型: o<index>: 集成設備的設備索引號 s<slot>: 擴展槽的索引號 x<MAC>: 基于MAC地址的命名 p<bus>s<slot>: enp2s1
?網卡設備的命名過程:
第一步: udev, 輔助工具程序/lib/udev/rename_device, /usr/lib/udev/rules.d/60-net.rules 第二步: biosdevname會根據/usr/lib/udev/rules.d/71-biosdevname.rules 第三步: 通過檢測網絡接口設備,根據/usr/lib/udev/rules.d/75-net-description ID_NET_NAME_ONBOARD ID_NET_NAME_SLOT ID_NET_NAME_PATH
采用傳統命名方式
使用傳統命名方式: (1) 編輯/etc/default/grub配置文件 GRUB_CMDLINE_LINUX="net.ifnames=0 rhgbquiet" 或:修改/boot/grub2/grub.cfg (2) 為grub2生成其配置文件 grub2-mkconfig -o /etc/grub2.cfg (3) 重啟系統
nmcli命令
地址配置工具:nmcli nmcli[ OPTIONS ] OBJECT { COMMAND | help } device -show and manage network interfaces nmclidevice help connection -start, stop, and manage network connections nmcliconnection help 修改IP地址等屬性: #nmcliconnection modify IFACE [+|-]setting.propertyvalue setting.property: ipv4.addressesipv4.gateway ipv4.dns1 ipv4.methodmanual | dhcp 修改配置文件執行生效:systemctlrestart network nmclicon reload nmcli命令生效:nmclicon down eth0 ;nmclicon up eth0
相關工具
網絡接口配置tui工具:nmtui 主機名稱配置工具:hostnamectl status set-hostname
使用nmcli配置網絡
NeworkManager是管理和監控網絡設置的守護進程 設備即網絡接口,連接是對網絡接口的配置。一個網絡接口可有多個連接配置,但同時只有一個連接配置生效。 顯示所有包括不活動連接 nmclicon show 顯示所有活動連接 nmclicon show –active 顯示網絡連接配置 nmclicon show "System eth0“ 顯示設備狀態 nmclidev status 顯示網絡接口屬性 nmclidev show eno16777736 創建新連接default,IP自動通過dhcp獲取 nmclicon add con-name default type Ethernet ifnameeth0 刪除連接 nmclicon del default 創建新連接static ,指定靜態IP,不自動連接 nmcticon add con-name static ifnameeth0 autoconnectno type Ethernet ip4 172.25.X.10/24 gw4 172.25.X.254 啟用static連接配置 nmclicon up static 啟用default連接配置 nmclicon up default 查看幫助 nmclicon add help 修改連接設置 nmclicon mod“static” connection.autoconnectno nmclicon mod “static” ipv4.dns 172.25.X.254 nmclicon mod “static” +ipv4.dns 8.8.8.8 nmclicon mod “static” -ipv4.dns 8.8.8.8 nmclicon mod “static” ipv4.addresses “172.25.X.10/24 172.25.X.254” nmclicon mod “static” +ipv4.addresses 10.10.10.10/16
nmclicon mod ifcfg-* 文件
ipv4.method manual BOOTPROTO=none
ipv4.method auto BOOTPROTO=dhcp
ipv4.addresses “192.0.2.1/24 192.0.2.254” IPADDR0=192.0.2.1 PREFIX0=24 GATEWAY0=192.0.2.254
ipv4.dns 8.8.8.8 DNS0=8.8.8.8
ipv4.dns-search example.com DOMAIN=example.com
ipv4.ignore-auto-dns true PEERDNS=no
connection.autoconnectyes ONBOOT=yes
connection.id eth0 NAME=eth0
connection.interface-name eth0 DEVICE=eth0
802-3-ethernet.mac-address . . . HWADDR= . . .
設備配置被保存在文本文件中
?/etc/sysconfig/network-scripts/ifcfg-
?幫助文檔列出完整選項列表:/usr/share/doc/initcripts-*/sysconfig.txt
原創文章,作者:yyw,如若轉載,請注明出處:http://www.www58058.com/43324