基本网络配置
将Linux主机接入到网络,需要配置网络相关设置。
一般包括如下内容: 主机名 IP/netmask 路由:默认网关 DNS服务器 • 主DNS服务器 • 次DNS服务器 • 第三DNS服务器
CentOS 6网卡配置
接口命名方式:CentOS 6 以太网:eth[0,1,2,...] ppp:ppp[0,1,2,...]
网络接口识别并命名相关的udev配置文件: /etc/udev/rules.d/70-persistent-net.rules
查看网卡: dmesg |grep –i eth ethtool -i eth0
卸载网卡驱动: modprobe -r e1000 rmmod e1000
装载网卡驱动: modprobe e1000
静态指定: ifconfig, route, netstat ip: object {link, addr, route}, ss, tc system-config-network-tui,setup 配置文件
动态分配: DHCP: Dynamic Host Configuration Protocol
ifconfig命令 ifconfig [interface] ifconfig -a ifconfig IFACE [up|down] ifconfig interface [aftype] options | address ... ifconfig IFACE IP/netmask [up] ifconfig IFACE IP netmask NETMASK 注意:立即生效 启用混杂模式:[-]promisc
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
配置动态路由
通过守护进程获取动态路由 • 安装quagga包 • 支持多种路由协议:RIP、OSPF和BGP • 命令vtysh配置
netstat命令
显示网络连接: 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 eth0
ip命令
配置Linux网络属性:ip命令
ip - show / manipulate routing, devices, policy routing and 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 • [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 • ip addr del 172.16.100.100/16 dev eth0 label eth0:0 • ip addr flush dev eth0 label eth0: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 del TARGET • 显示路由:ip route show|list • 清空路由表:ip route flush [dev IFACE] [via PREFIX] • ip route flush dev eth0
ss命令
格式: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:计时器信息
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 )’
常用组合: -tan, -tanl, -tanlp, -uan
常见用法
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详细信息
网络配置文件
IP、MASK、GW、DNS相关配置文件:/etc/sysconfig/networkscripts/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文件中
/etc/sysconfig/network-scripts/route-IFACE • 注意:需service network restart生效 • 两种风格: (1) TARGET via GW • 如:10.0.0.0/8 via 172.16.0.1 (2) 每三行定义一条路由 • ADDRESS#=TARGET • NETMASK#=mask • GATEWAY#=GW
网卡别名
对虚拟主机有用
将多个IP地址绑定到一个NIC上 eth0:1 、eth0:2、eth0:3
ifconfig命令: ifconfig eth0:0 192.168.1.100/24 up ifconfig eth0:0 down
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 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
设备别名
为每个设备别名生成独立的接口配置文件 • 关闭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
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接口上传送所有的报文,提供容错能力
active-backup、balance-tlb 和 balance-alb 模式不需要交换机的任何特 殊配置。其他绑定模式需要配置交换机以便整合链接。如:Cisco 交换机需 要在模式 0、2 和 3 中使用 EtherChannel,但在模式4中需要 LACP和 EtherChannel
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
查看bond0状态:/proc/net/bonding/bond0
miimon 是用来进行链路监测的。如果miimon=100,那么系统每100ms 监测 一次链路连接状态,如果有一条线路不通就转入另一条线路
删除bond0 ifconfig bond0 down rmmod bonding
详细帮助: /usr/share/doc/kernel-doc- version/Documentation/networking/bonding.txthttps://www.kernel.org/doc/Documentation/networking/bonding.txt
CentOS 7网络属性配置
CentOS 6之前,网络接口使用连续号码命名:eth0、eth1等,当增加或删除网卡 时,名称可能会发生变化
CentOS 7使用基于硬件,设备拓扑和设置类型命名:
(1) 网卡命名机制 systemd对网络设备的命名方式 • (a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预 测则根据此索引进行命名,例如eno1 • (b) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测, 则根据此索引进行命名,例如ens1 • (c) 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如 enp2s0 • (d) 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56 • (e) 上述均不可用时,则使用传统命名机制
基于BIOS支持启用biosdevname软件 内置网卡:em1,em2 pci卡:pYpX Y:slot ,X:port
(2) 名称组成格式 • en: Ethernet 有线局域网 • wl: wlan 无线局域网 • ww: wwan无线广域网 名称类型: • o<index>: 集成设备的设备索引号 • s<slot>: 扩展槽的索引号 • x<MAC>: 基于MAC地址的命名 • p<bus>s<slot>: enp2s1
采用传统命名方式
使用传统命名方式:
(1) 编辑/etc/default/grub配置文件 GRUB_CMDLINE_LINUX="rhgb quiet net.ifnames=0" 或:修改/boot/grub2/grub.cfg
(2) 为grub2生成其配置文件 grub2-mkconfig -o /etc/grub2.cfg
(3) 重启系统
CentOS 7网络配置工具
CentOS7主机名 • 配置文件:/etc/hostname ,默认没有此文件,通过DNS反向解析获取主机 名,主机名默认为:localhost.localdomain •显示主机名信息 hostname hostnamectl status •设置主机名 hostnamectl set-hostname centos7.magedu.com • 删除文件/etc/hostname,恢复主机名localhost.localdomain
CentOS 7网络配置工具 • 图形工具:nm-connection-editor • 字符配置tui工具:nmtui • 命令行工具:nmcli
nmcli命令
地址配置工具:nmcli
nmcli [ OPTIONS ] OBJECT { COMMAND | help } •device - show and manage network interfaces •nmcli device help •connection - start, stop, and manage network connections •nmcli connection help
修改配置文件执行生效:systemctl restart network nmcli con reload
nmcli命令生效: nmcli con down eth0 ;nmcli con up eth0
NeworkManager是管理和监控网络设置的守护进程
设备即网络接口,连接是对网络接口的配置,一个网络接口可有多个连接配置, 但同时只有一个连接配置生效
显示所有包括不活动连接 nmcli con show
显示所有活动连接 nmcli con show --active
显示网络连接配置 nmcli con show "System eth0“
显示设备状态 nmcli dev status
显示网络接口属性 nmcli dev show eth0
创建新连接default,IP自动通过dhcp获取 nmcli con add con-name default type Ethernet ifname eth0
删除连接 nmcli con del default
创建新连接static ,指定静态IP,不自动连接 nmcti con add con-name static ifname eth0 autoconnect no type Ethernet ipv4.addresses 172.25.X.10/24 ipv4.gateway 172.25.X.254
启用static连接配置 nmcli con up static
启用default连接配置 nmcli con up default
查看帮助 nmcli con add help
测试网络工具
在命令行下测试网络的连通性 显示主机名 hostname 测试网络连通性 ping 显示正确的路由表 ip route
跟踪路由 traceroute tracepath mtr
确定名称服务器使用 nslookup host dig
posted @
2018-10-31 20:51
AloneSea
阅读(
310 )
评论()
编辑
收藏
举报