首页 Linux教程linux网络配置

linux网络基础

linux进程管理

运维派隶属马哥教育旗下专业运维社区,是国内成立最早的IT运维技术社区,欢迎关注公众号:yunweipai
领取学习更多免费Linux云计算、Python、Docker、K8s教程关注公众号:马哥linux运维

网络配置

基本网络配置

将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命令

注意:立即生效
启用混杂模式:[-]promisc

范例:

范例:

route命令

路由表管理命令

路由表主要构成:

  • Destination: 目标网络ID,表示可以到达的目标网络ID,0.0.0.0/0 表示所有未知网络,又称为默认路由,优先级最低
  • Genmask:目标网络对应的netmask
  • Iface: 到达对应网络,应该从当前主机哪个网卡发送出来
  • Gateway: 到达非直连的网络,将数据发送到临近(下一个)路由器的临近本主机的接口的IP地址,如果是直连网络,gateway是0.0.0.0
  • Metric: 开销cost,值越小,路由记录的优先级最高

查看路由表:

范例:

添加:route add

删除:route del

范例:

范例:实现静态路由

环境:

linux网络配置插图

配置动态路由

通过守护进程获取动态路由
安装quagga包,通过命令vtysh配置
支持多种路由协议:RIP、OSPF和BGP

netstat命令

显示网络连接:

常用选项

常用组合:

显示路由表:

显示接口统计数据

范例:

ip命令

来自于iproute包,代替ifconfig

配置Linux网络属性

ip 命令说明:

ip 地址管理

范例:

管理路由

ip route 用法

范例:

ss 命令

netstat 通过遍历 /proc来获取 socket信息,ss 使用 netlink与内核 tcp_diag 模块通信获取 socket 信息

格式:

选项:

格式说明

常用组合:

范例:常见用法

网络配置文件

网络基本配置文件

IP、MASK、GW、DNS相关的配置文件:

说明参考:

常用配置

设置 说明
TYPE 接口类型;常见有的Ethernet, Bridge
NAME 此配置文件应用到的设备
DEVICE 设备名
HWADDR 对应的设备的MAC地址
UUID 设备的惟一标识
BOOTPROTO: 激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp
IPADDR 指明IP地址
NETMASK 子网掩码,如:255.255.255.0
PREFIX 网络ID的位数, 如:24
GATEWAY 默认网关
DNS1 第一个DNS服务器地址
DNS2 第二个DNS服务器地址
DOMAIN 主机不完整时,自动搜索的域名后缀
ONBOOT 在系统引导时是否激活此设备
USERCTL 普通用户是否可控制此设备
PEERDNS 如果BOOTPROTO的值为“dhcp”,YES将允许dhcp server分配的dns服务器信息直接覆盖至/etc/resolv.conf文件,NO不允许修改resolv.conf
NM_CONTROLLED NM是NetworkManager的简写,此网卡是否接受NM控制
配置当前主机的主机名

本地主机名数据库和IP地址的映射

优先于使用DNS前检查
getent hosts 查看/etc/hosts 内容

DNS域名解析

修改 /etc/hosts和DNS的优先级

路由相关的配置文件:

网卡别名

将多个IP地址绑定到一个NIC上

每个IP绑定到独立逻辑网卡,即网络别名,命名格式: ethX:Y,如:eth0:1 、eth0:2、eth0:3

范例:ifconfig命令

范例:ip命令

为每个设备别名生成独立的接口配置文件,格式为:ifcfg-ethX:xxx

范例:

注意:

  • 建议 CentOS 6 关闭 NetworkManager 服务
  • 网卡别名必须使用静态联网

多网卡 bonding

将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的。通过bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址

Bonding工作模式

共7种模式:0-6 Mode

  • 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设备的配置文件

查看bond0状态:

删除bond0

CentOS 7 以上版网络配置

CentOS 6之前,网络接口使用连续号码命名:eth0、eth1等,当增加或删除网卡时,名称可能会发生变化
CentOS 7以上版使用基于硬件,设备拓扑和设置类型命名

网卡命名机制

systemd对网络设备的命名方式

  1. 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,如:eno1
  2. 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,如:ens1
  3. 如果硬件接口的物理位置信息可用,则根据此信息命名,如:enp2s0
  4. 如果用户显式启动,也可根据MAC地址进行命名,如:enx2387a1dc56
  5. 上述均不可用时,则使用传统命名机制

基于BIOS支持启用biosdevname软件

网卡组成格式

使用传统命名方式:
(1) 编辑/etc/default/grub配置文件

(2) 为grub2生成其配置文件

(3) 重启系统

主机名

配置文件:

默认没有此文件,通过DNS反向解析获取主机名,主机名默认为:localhost.localdomain

设置主机名

删除文件/etc/hostname,恢复主机名localhost.localdomain

显示主机名信息

网络配置工具nmcli

图形工具:nm-connection-editor

字符配置tui工具:

  • nmtui
  • nmtui-connect
  • nmtui-edit
  • nmtui-hostname

命令行工具:nmcli

以上工具都依赖NeworkManager服务,此服务是管理和监控网络设置的守护进程

nmcli命令

参考文档:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/configuring-networking-with-nmcli_configuring-and-managing-networking

nmcli命令相关术语

  • 设备即网络接口
  • 连接是对网络接口的配置,一个网络接口可有多个连接配置,但同时只有一个连接配置生效

格式:

修改IP地址等属性:

修改配置文件执行生效:

nmcli con mod ifcfg**-* 文件**
ipv4.method manual BOOTPROTO=none
ipv4.method auto BOOTPROTO=dhcp
ipv4.addresses 192.168.2.1/24 IPADDR=192.168.2.1 PREFIX=24
ipv4.gateway 172.16.0.200 GATEWAY=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.autoconnect yes ONBOOT=yes
connection.id eth0 NAME=eth0
connection.interface-name eth0 DEVICE=eth0
802-3-ethernet.mac-address . . . HWADDR= . . .

范例:

nmcli实现bonding

网络组Network Teaming

网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量
网络组不同于旧版中bonding技术,提供更好的性能和扩展性
网络组由内核驱动和teamd守护进程实现

多种方式 runner

  • broadcast
  • roundrobin
  • activebackup
  • loadbalance
  • lacp (implements the 802.3ad Link Aggregation Control Protocol)

网络组特点

  • 启动网络组接口不会自动启动网络组中的port接口
  • 启动网络组接口中的port接口总会自动启动网络组接口
  • 禁用网络组接口会自动禁用网络组中的port接口
  • 没有port接口的网络组接口可以启动静态IP连接
  • 启用DHCP连接时,没有port接口的网络组会等待port接口的加入

网络组示例

管理网络组配置文件

管理网络组配置文件

删除网络组

网桥

桥接原理

桥接:把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。网桥就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的。与网桥相连的主机就能通过交换机的报文转发而互相通信。

linux网络配置插图(1)

主机A发送的报文被送到交换机S1的eth0口,由于eth0与eth1、eth2桥接在一起,故而报文被复制到eth1和eth2,并且发送出去,然后被主机B和交换机S2接收到。而S2又会将报文转发给主机C、D

配置实现网桥

工具包:bridge-utils,目前CentOS 8无此包

注意:NetworkManager只支持以太网接口接口连接到网桥,不支持聚合接口

nmcli命令创建软件网桥

查看配置文件

范例:

网络测试诊断工具

  • 测试网络连通性
    ping
  • 显示正确的路由表
    ip route
  • 跟踪路由
    traceroute
    tracepath
    mtr
  • 确定名称服务器使用
    nslookup
    host
    dig
  • 抓包工具

    tcpdump

    wireshark

  • 安全扫描工具

    nmap

    netcat :网络界的瑞士军刀

  • 流量控制工具

    tc

    范例:

本文链接:http://www.yunweipai.com/33931.html

linux网络基础

linux进程管理

网友评论comments

发表评论

电子邮件地址不会被公开。

暂无评论

Copyright © 2012-2020 YUNWEIPAI.COM - 运维派
扫二维码
扫二维码
返回顶部