一、Linux網絡管理基礎
1 路由條目:
目標地址 經下一跳(nexthop)
目標地址的類別:
單個主機: 主機路由
網路接口: 網絡路由
目標地址為0.0.0.0/0.0.0.0: 默認路由
2 將linux主機接入到網絡中:
IP/NETMASK: 本地通信
路由(網關): 酷網絡通信
DNS服務器地址: 基于主機名的通信
主dns服務器地址
備用dns服務器地址
第三備用dns服務器地址
配置方式:
靜態指定
命令指定:
ifcfg家族
ifconfig: 配置IP,NETMASK
route: 配置路由
netstat: 狀態及網絡統計數據查看
iproute家族
ip OBJECT:
addr: 地址和掩碼配置
link: 管理接口
route: 路由
ss: 狀態及統計數據查看
CentOS 7: nm家族(network manager)
nmcdi: 命令行工具
nmtui: 圖形窗口工具
注意:
(1) 定義DNS服務器指令
配置文件: /etc/resolv.conf
(2) 本地主機名配置
hostname
配置文件: /etc/sysconfig/network
CentOS 7: hostnamectl
修改配置文件:
RedHat及其相關發行版:
/etc/sysconfig/network-scripts/ifcfg-METCARD_NAME
動態分配: 依賴于本地網絡中有DHCP服務
DHCP: dynamic host configure procotol
3 網絡接口命名方式:
傳統命令方式:
以太網: ethX,[0,oo), 例如, eth0, eth1,…
PPP網絡: pppX, 例如: ppp0, ppp1,…
可預測命名方案(CentOS 7):
支持多種不同的命名機制:
fireware, 拓撲結構
(1) 如果firmware或bios為主板上集成的設備提供的索引信息可用, 則根據此索引進行命名, 如eno1, eno2,…
(2) 如果firmware或bios為PCI-E擴展槽所提供的索引信息可用, 且可預測, 則根據此索引進行命名, 如ens1, ens2,…
(3) 如果硬件結構的物理位置信息可用, 則根據此信息命名, 如enp2s0
(4) 如果用戶顯示定義, 也可根據mac地址命名, 例如enx122131ab2e10,…
(5) 上述均不可用時, 則仍使用傳統方式命名
命名格式的組成:
en: ethernet
wl: wlan
ww: wwan
名稱的類型:
o<索引號>: 集成設備的設備索引號
s<插槽號>: 擴展槽的索引號
x<MAC地址>: 基于MAC地址的命名
p<bus>s<slot>: 基于總線及槽的拓撲結構進行命名
TCP/IP協議棧: 物理層, 互聯網層, 傳輸層, 應用層
互聯網層: IP協議
傳輸層: TCP, UDP
應用層: HTTP, https, ftp, ldap
鏈接路層: 以太網幀
互聯網層: IP報文
以太網幀: 最大傳輸單元MTU(1500)
二、Linux網絡屬性配置: 命令、配置文件
1 ifcfg命令家族: ifconfig, route, netstat
ifconfig – configure a network interface
ifconfig : 顯示處于活動狀態的接口信息
ifconfig -a: 顯示所有接口信息, 包括非激活狀態
ifconfig [interface]: 顯示指定接口的信息
ifconfig interface [aftype] optiongs | address
# ifconfig IFACE IP/MASK [up]
# ifconfig IFACE IP netmask NETMASK [up|down]
示例:
# ifconfig eth1 10.1.52.12/16 up
# ifconfig eth1 10.1.52.12 netmask 255.255.0.0 up
options:
[-]promisc: 混雜模式
注意: 立即送往內核中的TCP/IP協議棧并立即生效
管理IPv6地址:
add addr/prefixlen: 添加
del addr/prefixlen: 刪除
route: 路由查看及管理
路由條目類型:
主機路由: 目標地址為單個IP
網絡路由: 目標地址為IP網絡
默認路由: 目標為任意主機: 0.0.0.0/0.0.0.0
查看:
# route -n: 以數字格式查看路由信息
添加:
route add [-net|-host] target [netmask Nm] [gw GW] [[dev] IF]
示例:
route add -net 10.0.0.0/8 gw 192.168.10.1 [dev eth1]
route add default gw 192.168.10.1
刪除:
route del [-net|-host] target [gw GW] [netmask NM] [[dev] IF]
示例:
route del -net 10.0.0.0/8 gw 192.168.10.1
route del default
netstat – print network connections, routing tables, interface staticstics, masquerade connections, and multicast memberships, 顯示網絡連接, 路由表, 接口統計數據, 偽裝連接, 多播成員關系
顯示路由信息:
netstat -rn
-r: 顯示內核信息
-n: 顯示數字信息
顯示網絡鏈接:
-t: 顯示tcp連接的相關信息; 連接均有其狀態;FSM(finate state machine)
-u:
顯示udp連接的相關信息;
-l|–listening: 查看處于監聽狀態的連接
-a: 所有狀態的連接;
–numeric|-n: 數字顯示;
–program|-p: 顯示相關的進程;
-w: raw socket相關的連接;
-e: 擴展格式
常用組合:
-tan, -uan, -tnl, -unl, -tunal
顯示接口的相關統計數據:
netstat {–interfaces|-I|-i} …..
所有接口:
netstat -i
指定接口:
netstat -I<IFace>
ifup/ifdown命令:
ifup: bring a network interface up
ifdown: take a network interface down
注意: 讀取配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE來識別接口并完成配置
2 配置主機名
hostname命令:
查看: hostname
配置: hostname HOSTNAME, 當前系統有效, 重啟后失效
CentOS 7
hostnamectl – query or change system hostname
hostnamectl status: 顯示主機名設定信息
hostnamectl set-hostname NAME: 設定主機名, 永久有效
配置文件: /etc/sysconfig/network
HOSTNAME=<HOSTNAME>
注意: 設定后不會立即生效, 需要重讀配置文件; 但是設置后永久有效
3 配置DNS服務器指向
配置文件: /etc/resolv.conf
nameserver DNS_SERVER_IP
如何測試(host/nslookup/dig)
cat /etc/hosts
# dig -t A FQDN
FQDN –> IP
#dig -x IP
IP –> FQDN
4 iproute家族
1、ip 命令
查看、管理路由、設備,管道設備
ip [options] OBJECT {COMMAND}
OBJECT:={link|addr|route|netns}
注意:OBJECT 可簡寫, 各OBJECT的子命令也可以簡寫
ip OBJECT
(1) ip link – network device configuration
ip link set – 修改設備屬性
ip link set dev DEVICE { up | down | arp { on | off }}
ip link set DEVICE multicast { on|off }: 啟用或禁用多播功能
ip link set name NAME: 重命名接口名稱
ip link IFACE netns PID: ns為namespace, 用于將接口移動到指定的名稱空間中
ip link help: 顯示簡要使用幫助
ip link show|list – 顯示設備屬性
(2) ip netns: – manage network namespaces
ip netns list : 列出所有的nets
ip netns add NAME : 創建指定的netns
ip netns del NAME : 刪除指定的netns
ip netns exec NAME COMMAND: 在指定的netns中運行命令
示例:
ip netns list
ip netns add mynet
ip link set eno167777736 netns mynet
ip link show
ip netns exec mynet ip link show
(3) ip address – protocol address management
ip address add – add new protocol address
ip addr add IF_addr dev IFACE
[label NAME]: 為額外添加的地址指明接口別名
[broadcast ADDRESS]: 廣播地址
[scope SCOPE_VALUE]: 生效范圍
global: 全局可用
link: 接口可用
host: 本機可用
示例:
ip addr add 10.1.0.1/16 dev eth1
ip addr add 10.2.0.1/8 dev eth1 label eth1:0
ip address delete – delete protocol address
ip addr delete IF_addr dev IFACE
ip address { show | list }
ip addr list [IFACE]: 僅顯示指定接口的地址
ip address flush: 清空所有地址
ip addr flush dev IFACE
(4) ip route – routing table management, 路由表管理
ip route { add | change | replace }
ip route add TYPE PREFIX via(經由哪個網關) GW [dev IFACE] [src SOURCE_IP]
示例:
ip route add 192.168.0.0/24 via 10.0.0.1 dev eth1 src 10.0.20.100
ip route add default via GW
ip route delete
ip route delete TYPE PREFIX
示例:
ip route delete 192.168.10.0
ip route { show | list }
TYPE PREFIX
ip route get – get a single route
ip route get TYPE PREFIX
示例:
ip route get 192.168.0.0/24
ip route flush
TYPE PREFIX
2、ss 命令
ss [options] [FILTER(過濾器)]
選項:
-t: tcp協議相關的連接
-u: udp協議相關的連接
-w: raw socket相關的連接
-l: 監聽狀態的連接
-a: 所有狀態的連接
-n: 數字格式顯示
-p: 相關的程序及PID號
-e: 擴展格式信息
-m: 顯示內存用量
-o: 顯示計時器信息
FILTER :=[state TCP-STATE] [EXPRESSION]
TCP常見狀態:
TCP FSM:
LISTEM: 監聽
ESTABLISHED: 已經建立的連接
FIN_WAIT_1: 斷開的連接
FIN_WAIT_2: 確認斷開連接
SYN_SENT:
SYN_RECV:
CLOSED:
EXPRESSION:
dport =
sport =
示例:
~]# ss -tan '( dport = :22 or sport = :22 )'
~]# ss -tan state ESTABLISHED
5 配置文件:
IP、netmask、gw、dns等屬性的配置文件
/etc/sysconfig/network-scripts/ifcfg-IFACE
IFACE: 接口名稱
通過大量參數來定義接口的屬性, 可通過vim等文本編輯器直接修改, 也可通過專用的命令進行修改
CentOS 6: system-config-network或setup
CentOS 7: nmtui
路由的相關配置文件
/etc/sysconfig/network-scripts/route-IFACE
ifcfg-IFACE配置文件參數:
DEVICE: 此配置文件的對應的設備的名稱, 要與文件名的IFACE對應一致
ONBOOT={yes|no}: 在系統引導過程中是否激活
NETBOOT={yes|no}: 是否支持網絡引導
UUID: 此設備的唯一標示
IPV6INIT: 是否初始化ipv6 協議
BOOTPROTO: 激活此接口時使用什么協議配置接口屬性, 常用的有dhcp(動態地址), bootp, static(靜態地址), none
TYPE: 指明接口類型, 常見的有: Ethernet, Bridge
DNS1: 第一DNS服務器指向
DNS2: 第二備用DNS服務器指向
DOMAIN: DNS搜索域
DEFROUTE={yes|no}:
GATEWAY: 默認網關
IPADDR: 配置本機IP地址
NETMASK: 子網掩碼, CentOS 7 支持使用PREFIX以長度方式指明子網掩碼
USERCTL: 是否允許普通用戶控制此設備
PEERDNS: 如果BOOTPROTO的值為"dhcp", 是否允許dncp server分配的dns服務器指向覆蓋本地手動指定的dns服務器指向, 默認為允許yes
NM_CONTROLLED: 是否允許使用NetworkManager服務來控制接口
HWADDR: 設備的MAC地址
網絡服務: network, NetworkManager
修改配置文件后, 需要重啟網絡服務才能生效
CentOS 6:service SERVICE {start|stop|restart|status}
CentOS 7: systemctl {start|stop|restart|status} SERVICE
示例:
service network restart
systemctl restart network.service
用到非默認網關路由: /etc/sysconfig/network-scripts/route-IFACE
支持兩種配置方式, 但不可混用
(1) 每行一個路由條目
TARGET via GW
(2) 每三行一個路由條目
ADDRESS#=TARGET
NETMASK#=MASK
GATEWAY#=NEXTHOP
6 給接口配置多個地址
ip addr之外, ifconfig或配置文件都可以
(1) ifconfig IFACE_LABLE IPhone_ADDR/NETMASK
IFACE_LABLE: eth0:0, eth0:1, …
(2) 為別名添加并定義配置文件
DEVICE=IFACE_LABLE
BOOTPROTO: 網卡別名不支持動態獲取地址
static, none
nmcli 命令: command-line tool for controlling NetworkManager
nmcli [options] OBJECT {COMMAND | help}
OBJECT := { general | networking | radio | connection | device | agent}
device – show and manage network interfaces
COMMAND := {status | show | connect | disconnect | delete | wifi | wimax}
connection – start, stop, and manage network connection
COMMAND := { show | up | down | add | edit | modify | delete | reload | load }
如何修改IP地址等屬性
# nmcli conn modify IFACE [+|-] setting.property value
ipv4.address
ipv4.gateway
ipv4.dns1
ipv4.method
manual
原創文章,作者:black_fish,如若轉載,請注明出處:http://www.www58058.com/47258