zoukankan      html  css  js  c++  java
  • Linux网络管理


    网络接口组成格式

    • 以太网网卡以 en 开头
    • 无线网卡以 wl 开头
      • o 主板上集成的设备的设备索引号
      • s 扩展槽的索引号

    回归传统命名

    1. 检查是否安装biosdevname;
      • rpm -aq | grep biosdevname
    2. 修改网卡主配置文件名为ifcfg-eth0;
      • 进入到/etc/sysconfig/network-scripts/目录
      • mv ifcfg-eno16777736 ifcfg-eth0
    3. 修改网卡主配置文件,将NAME和DEVICE的名字改为eth0;
    4. 修改grub配置文件;
      • vim /etc/default/grub
      • 在rhgb前面添加net.ifnames=0 biosdevname=0
    5. 生成配置文件;
      • grub2-mkconfig -o /etc/grub2.cfg
    6. 重启;
      • reboot
    [root@bad test]# rpm -qa | grep biosdevname  //检查是否安装biosdevname
    biosdevname-0.5.0-10.el7.x86_64
    [root@bad test]# cd /etc/sysconfig/network-scripts/  //进入网卡配置目录
    [root@bad network-scripts]# ls
    ifcfg-eno16777736       ifdown-post      ifup-bnep   ifup-routes
    ifcfg-lo         ifdown-ppp       ifup-eth    ifup-sit
    。。。
    [root@bad test]# mv ifcfg-eno16777736 ifcfg-eth0  //将网卡配置文件重命名为传统格式
    [root@bad network-scripts]# ls
    ifcfg-eth0       ifdown-post      ifup-bnep   ifup-routes
    ifcfg-lo         ifdown-ppp       ifup-eth    ifup-sit
    。。。
    [root@bad network-scripts]# vim ifcfg-eth0  //修改网卡配置文件里的NAME和DEVICE名字一致
    TYPE=Ethernet
    BOOTPROTO=static
    NAME=eth0
    DEVICE=eth0
    ONBOOT=yes
    IPADDR=192.168.43.128
    NETMASK=255.255.255.0
    GATEWAY=192.168.43.2
    DNS1=192.168.43.2
    [root@bad network-scripts]# vim /etc/default/grub  /修改grub配置文件
    GRUB_TIMEOUT=5
    GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
    GRUB_DEFAULT=saved
    GRUB_DISABLE_SUBMENU=true
    GRUB_TERMINAL_OUTPUT="console"
    GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/root crashkernel=auto  rd.lvm.lv=rhel/swap 
    vconsole.font=latarcyrheb-sun16 vconsole.keymap=us 
    net.ifnames=0 biosdevname=0 rhgb quiet"  //在rhgb前加上net.ifnames=0 biosdevname=0
    GRUB_DISABLE_RECOVERY="true"
    [root@bad network-scripts]# grub2-mkconfig -o /etc/grub2.cfg  //生成配置文件
    Generating grub configuration file ...
    。。。
    [root@bad network-scripts]# reboot  //重启
    

    网络管理命令

    ifconfig

    • 查看当前处于活动状态的所有网络接口
      • ifconfig eth0
    • 仅查看eth0网卡状态
      • ifconfig -a
    • 查看所有网卡状态信息, 包括禁用和启用
    • UP: 网卡处于活动状态
    • BROADCAST: 支持广播
    • RUNNING: 网线已接入
    • MULTICAST: 支持组播
    • MTU: 最大传输单元(字节),即此接口一次所能传输的最大封包
    • inet: 显示IPv4地址行
    • inet6: 显示IPv6地址行
    • link/enther: 指设备硬件(MAC)地址
    • txqueuelen: 传输缓存区长度大小
    • RX packets: 接收的数据包
    • TX packets: 发送的数据包
    • errors: 总的收包的错误数量
    • dropped: 由于各种原因, 导致拷贝在内存过程中被丢弃
    • collisions: 网络信号冲突情况, 值不为0则可能存在网络故障

    DHCP自动分配网卡最小配置

    TYPE=Ethernet
    BOOTPROTO=static
    NAME=eno16777736
    DEVICE=eno16777736
    ONBOOT=yes
    

    静态IP网卡最小配置

    TYPE=Ethernet
    BOOTPROTO=static
    NAME=eno16777736
    DEVICE=eno16777736
    ONBOOT=yes
    IPADDR=192.168.43.128
    NETMASK=255.255.255.0
    GATEWAY=192.168.43.2
    DNS1=192.168.43.2
    

    ip

    • 用法:

      • ip [选项] OBJECT {COMMAND}
    • OBJECT:

      • link:网络接口属性
      • addr:协议地址
      • route:路由
    • ip link show 查看网络接口所有地址

    • ip -s link show 显示报文统计信息

    • ip link set DEV down 禁用网络接口

    • ip link set DEV up 启用网络接口

    • ip addr add 192.168.1.1/24 dev DEV 添加IP地址

    • ip addr del 192.168.1.1/24 dev DEV 删除IP地址

    • ip addr show DEV 查看网络接口的地址

    route

    • 查看路由表

    • route -n 以数字方式显示各主机或端口等相关信息

    • 增加路由

    • 语法:

      • 增加网段路由
        • route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
      • 增加主机路由
        • route add -net 172.16.12.0/24 gw 172.16.12.2 dev eth1
      • 删除路由
        • route add -host 172.16.12.128 gw 172.16.12.2
    • route del -net 172.16.12.0/24
    • route del -net 0.0.0.0/0 gw 172.16.12.2

    网络配置文件

    • 配置文件路径/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME
    • 最小静态IP配置
        TYPE=Ethernet
        BOOTPROTO=static
        NAME=eth1
        DEVICE=eth1
        ONBOOT=yes
        IPADDR=172.16.12.130
        NETMASK=255.255.255.0
        GATEWAY=172.16.12.2
        DNS1=172.16.12.2
    

    网卡配置说明

    • BOOTPROTO=none 引导协议,可选值有{static|none|dhcp|bootp}
    • NM_CONTROLLED NM是NetworkManager的简写设定此网卡是否接受NM控制
    • TYPE 接口类型
    • UUID 设备的惟一标识
    • HWADDR 硬件地址,要与硬件中的地址保持一致
    • IPADDR=172.16.12.130 固定IP地址
    • PREFIX=24 子网掩码
    • NETMASK=255.255.255.0 子网掩码
    • GATEWAY=172.16.12.2 默认网关
    • DNS1=172.16.12.2 第一个DNS服务器指向
    • DNS2 第二个DNS服务器指向
    • DNS3 第三个DNS服务器指向
    • DEVICE=eth1 关联的设备名称,要与文件名的后半部"INTERFACE_NAME"保持一致
    • NAME="eth1" 连接名称
    • ONBOOT=yes 在系统引导时是否自动激活此网络接口
    • DEFROUTE=yes 将接口设定为默认路由
    • USERCTL={yes|no} 是否允许普通用户控制此接口的启用与禁用
    • PEERDNS={yes|no} 是否在BOOTPROTO为dhcp时接受由dhcp服务器指定的DNS地址

    路由配置文件

    • 路由配置文件的路径是/etc/sysconfig/network-scripts/route-INTERFACE_NAME
    • 添加格式
    vi /etc/sysconfig/network-scripts/route-ens33
    //格式一
    172.16.12.0/24 via 172.16.12.2
    格式二
    ADDRESS0=172.16.12.0
    NETMASK0=255.255.255.0
    GATEWAY0=172.16.12.2
    

    DNS配置文件

    • 配置文件的路径是/etc/resolv.conf

    • NetworkManager管理网络

      • NetworkManager提供的命令行和图形配置工具对网络进行设定,设定保存的配置文件在/etc/sysconfig/network-scripts目录下, 工具有nmcli, nmtui, nm-connection-editor

    nmcli

    • nmcli device 查看设备状态
    • nmcli device show ens33 查看指定设备的详细状态
    • nmcli connection 查看连接状态
    • nmcli connection show ens33 查看指定设备连接的详细情况

    原生network管理网络

    • 配置文件默认目录为/etc/sysconfig/network-scripts
    • 设置NetworkManger开机不启动, 同时停止NetworkManger服务
      • systemctl disable NetworkManager
      • systemctl stop NetworkManager
    添加一块物理网卡, 然后新增网络连接配置文件,复制配置eth0配置文件为eth1
    cp /etc/sysconfig/network-scripts/{ifcfg-eth0,ifcfg-eth1}
    
    编辑网卡配置文件
    vi /etc/sysconfig/network-scripts/ifcfg-eth1
    
    重启network网络服务加载网络并设置开机启动
    systemctl restart network
    systemctl enable network
    

    网络检测工具与故障排查

    ping

    • 常用选项:
      • -c 指定ping的次数
      • -i 指定ping包的发送间隔

    nslookup

    • 查询DNS记录

    traceroute

    • 路由跟踪

    netstat

    • netstat 查看网络状态
    • netstat -r 显示路由表
    • netstat -rn 以数字方式显示路由表
    • netstat -t 显示建立的tcp连接
    • netstat -u 显示udp连接
    • netstat -l 显示监听状态的连接
    • netstat -p 显示监听指定的套接字的进程的进程号及进程名
    • netstat -a 显示所有状态的连接
    • 常用选项:-antlp

    ss

    • 查看网络状态
    • 语法:ss [选项]
    • 常用选项:
      • -t tcp协议相关
      • -u udp协议相关
      • -w 裸套接字相关
      • -x unix套接字相关
      • -l listen状态的连接
      • -a 所有
      • -n 数字格式
      • -p 相关的程序及pid
      • -e 扩展的信息
      • -m 内存用量
      • -o 显示计时器信息

    网络故障排查

    网络故障分为硬件/软件故障

    • 网卡损坏
    • 链路故障
    • 网卡驱动不兼容

    网络排查思路

    • ping本地回环口, 确定本机TCP/IP协议栈是否正常
    • ping本机IP地址, 确定本地设备以及驱动是否正常
    • ping同网段主机, 确定二层网络是否正常工作
    • ping网关地址, 确定本地与网络是否正常
    • ping公网地址, 确定本地路由是否正常
    • ping公网域名, 确定DNS客户端是否正常

    服务故障排查思路

    • 使用telnet检测端口是否开放
    • 检查服务端防火墙以及SElinux
    • 检查相应的权限是否配置正常
    • 检查日志是否有异常
    • 检查完毕后持续测试

    网络进阶管理

    链路聚合

    • 网卡聚合方式
      • bond 最多可添加两块网卡
      • team 最多可添加八块网卡

    bond常用模式

    • bond0(balance-rr
      • bond0用于负载轮询,可以增加带宽
    • **bond1(active-backup)
      • band1用于高可用,一条线短线,其他线路会自动备援

    配置bond0

    nmcli device
    nmcli connection add type bond mode balance-rr con-name bond0 ifname bond0 ipv4.method manual ipv4.addresses 172.16.12.250/24 ipv4.gateway 172.16.12.2 ipv4.dns 172.16.12.2
    nmcli connection add type bond-slave con-name bond-slave0 ifname eth0 master bond0
    nmcli connection add type bond-slave con-name bond-slave1 ifname eth1 master bond0
    cat /proc/net/bonding/bond0
    nmcli device disconnect eth0
    

    配置bond1

    nmcli device
    nmcli connection add type bond con-name bond1 ifname bond1 mode active-backup ipv4.method manual ipv4.addresses 172.16.12.250/24 ipv4.gateway 172.16.12.2 ipv4.dns 172.16.12.2
    nmcli connection add type bond-slave con-name bond-slave0 ifname eth0 master bond1
    nmcli connection add type bond-slave con-name bond-slave1 ifname eth1 master bond1
    nmcli connection up bond1
    nmcli connection up bond-slave0
    nmcli connection up bond-slave1
    cat /proc/net/bonding/bond1
    nmcli device disconnect eth0
    

    Centos7/RHEL7配置team聚合链路

    • teamd可实现以下模式的链路聚合
      • broadcast 广播容错
      • roundrobin 负载轮询
      • activebackup 主备(必考)
      • loadbalance 负载均衡
      • lacp 需要交换机支持lacp协议

    team配置

    nmcli connection add type team con-name team0 ifname team0 config '{"runner":{"name":"activebackup"}}' ipv4.addresses 172.16.12.250/24 ipv4.gateway 172.16.12.2 ipv4.dns 172.16.12.2 ipv4.method manual
    nmcli connection add type team-slave con-name team0-port1 ifname eth1 master team0
    nmcli connection add type team-slave con-name team0-port2 ifname eth2 master team0
    ping -I team0 172.16.12.128
    teamdctl team0 state
    nmcli dev disconnect eth1
    teamdctl team0 state
    

    这是RHCSA中必考的一道题目,配置主备链路聚合!

    动态修改teamd模式

    teamdctl team0 config dump > /tmp/team.conf
    vim /tmp/team.conf
    nmcli con mod team0 team.config /tmp/team.conf
    nmcli connection down team0;nmcli connection up team0 
    nmcli connection up team0-port1
    nmcli connection up team0-port2
    

    桥接网络配置

    nmcli connection add type bridge con-name br1 ifname br1 ipv4.addresses 192.168.56.222/24 ipv4.method manual
    nmcli connection add type bridge-slave con-name br1-port1 ifname eth1 master br1
    ping -I br1 192.168.56.1
    brctl show
    
    以上内容均属原创,如有不详或错误,敬请指出。
    
    本文作者: 坏坏
  • 相关阅读:
    MySQL基础学习笔记
    网络编程入门笔记
    JUC并发编程学习笔记
    育儿技巧
    无法下载安装文件,请检查internet连接
    用户 'NT ServiceSSISScaleOutMaster140' 登录失败
    Javascript中apply、call、bind
    JQuery 源码解析一
    docker容器中部署 kafka 和 elk
    查找库中所有表所有字段中某个指定的字符
  • 原文地址:https://www.cnblogs.com/bad5/p/12424284.html
Copyright © 2011-2022 走看看