一、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.178linux.com/47258