• 网络配置


    IP地址计算
      1.一个网段中主机数 = 2^主机ID数 - 2
      2.网段数 = 2^可变的网络ID位
      3.网络ID = IP与子网掩码
      4.划分子网数量 = 2^网络ID向主机ID借位的位数

    子网掩码计算
      IP地址: 10.0.0.2    00001010.00000000.00000000.00000001 进行与运算
      子网掩码:255.0.0.0       11111111.00000000.00000000.00000000
      网络ID:       00001010.00000000.00000000.00000000
                  10.     0.     0.     0

    CIDR:无类域间路由,网络ID位不按整数8位划分,按需划分
      CIDR表示法,IP/网络ID数

      IP地址:210.222.123.20/26

      IP地址: 11010010.11011110.01111011.00010100
      子网掩码:11111111.11111111.11111111.11000000
      网络ID: 11010010.11011110.01111011.00000000

      简单计算方法:子网掩码位数皆为1,相与皆为原值
      前面和子网掩码对应的整八位不用计算,直接原值,只有与子网掩码有位数不同的才需要计算

    IP地址: 210.222.123.20/21
    子网掩码:21位掩码,前16位两段直接就是255,后面有5位需要计算,其余补0
    则11111000 --> 248
    可得子网掩码为255.255.248.0

    计算网络ID:与子网掩码相与的前16位直接原值210.222.
    第三段IP地址123解为二进制为01111011
    子网掩码第三段解为二进制为11111000
    相与计算:01111000 --> 120
    则网络ID为:210.222.120.0


    两个主机的通信
    A:10.0.200.1/24
    B:10.0.210.2/16

    A--->B
    通信过程:
    1. IPA与A netmask => A网段=10.0.200.0
    2. IPB与A netmask => B网段=10.0.210.0
    3. 比较两个值,一样则认为可以通信

    A<---B
    通信过程:
    1. IPA与B netmask => A网段=10.0.0.0
    2. IPB与B netmask => B网段=10.0.0.0
    3. 比较两个值,一样则认为可以通信

    实际情况:
    A主机认为不可到达B主机
    B主机认为可以到达A主机,可以ping,但是无回应,会超时

    私有IP地址
    A类: 10.0.0.1 --- 10.255.255.254
    B类: 172.16.0.1 --- 172.31.255.254
    C类: 192.168.0.1 --- 192.168.255.254
    这类IP不能在互联网直接访问,只能在局域网里使用

    划分子网:将一个大网划分多个小网,网络ID位向主机ID借位,网络ID位增多,主机ID变少
    公式:划分子网数量 = 2^网络ID向主机ID借位的位数

    借一位 10.0.0.0/8 -->> 10.0.0.0/9
    第一段
    10.0 0000000.0.0 
    10.0.0.1 -- 10.127.255.254
    第二段
    10.1 0000000.0.0
    10.128.0.1 -- 10.255.255.254


    借两位 10.0.0.0/8 -->> 10.0.0.0/10
    第一段
    10.00 000000.0.0
    10.0.0.1 -- 10.63.255.254
    第二段
    10.01 000000.0.0
    10.64.0.1 -- 10.127.255.254
    第三段
    10.10 000000.0.0
    10.128.0.1 -- 10.191.255.254
    第四段
    10.11 000000.0.0
    10.192.0.1 -- 10.255.255.254

    习题:
    10.0.0.0/8中国移动给全国32省划分独立的子网,第10个子网是河南,对河南各地市划分16个子网
    1.新的子网的netmask
      255.255.128.0
    2.新的子网的主机数
      32766
    3.最小的和最大的子网的网络ID
      10.72.0.1/17
      10.79.128.1/17
    4.最大的子网的IP范围
      10.79.128.1 -- 10.79.255.254


    路由表的构成
      1.网络ID netmask: 目标主机所在网络ID
      2.接口interface:到达目标主机所在网络ID,从当前router哪个出口发出去,可以到达,出口就是接口
      3.网关gateway:到达非直连网络时,将数据发送到下一个路由器的邻近我的接口的IP,即网关


    本地解析
    /etc/hosts

    CentOS 6
    网卡配置文件 
    /etc/udev/rules.d/70-persistent-net.rules
    网卡驱动
      ethtool -i eth0 查看eth0网卡的驱动模块
      modprobe -r e1000 卸载驱动模块e1000
      modprobe e1000 加载驱动模块e1000

    在网卡配置文件里面修改了网卡名称需要卸载网卡再加载


    ifconfig eth0 down 禁用网卡eh0
    ifconfig eth0 up 启用网卡eth0
    ip link set eth0 up 启用网卡
    ip link set eth0 down 禁用网卡
    ifconfig eth0 1.1.1.1/24 给网卡eth0加IP,临时性,重新down再up就丢失,一般用于测试环境
    ifconfig eth0:1 2.2.2.2/24 给网卡eth0加多个地址,添加别名实现,否则会覆盖
    ifdown eth0 可以down IP地址,但是网卡还是up状态
    ifup eth0 up以后,临时IP都会丢失
    ifconfig -s eth0 网卡eth0统计信息
    watch -n0.5 ifconfig -s eth0 每0.5秒扫描一次变化


    静态指定
      ifconfig,route,netstat
      ip {addr,link,route}
      system-config-network 网卡地址配置
      steup 电脑总体配置,包含网卡

    混杂模式:可以接受非本机地址的数据包,用于数据分析,或者窃听网络

    路由器命令
      route -n 路由信息查看
      route add 添加路由
    网络路由:
      route add -net 10.10.10.0/24 gw 172.16.0.1 dev eth0
    主机路由: 精确地址的优先级会更高
      route add -host 10.10.10.1/24 gw 172.16.0.1 dev eth0

    netstat 显示当前网络连接情况
      -n :解析为数字
      -l :处于监听状态
      -t :TCP协议
      -u :UDP协议
      -p :显示程序名和进程 可以用于检查应用程序在网络上,如果不需要可以删除的程序
      -a :所有状态
      -r :显示路由表 一般加n
      -i :显示端口的流量
      -I :显示某个端口流量 格式特殊 netstat -Ieth0 和端口必须连起来写
    常用组合:-tan,-uan,-tnl,-unl

    关闭SELINUX
      getenforce 查看状态
      setenforce 0 临时关闭,重启失效
      vim /etc/sysconfig/selinux 修改SELINUX=disabled,重启不开启服务
    iptables关闭
      chkconfig iptables off 临时关闭,重启失效
      service iptables stop 关闭服务,重启不开启服务
      iptables -vnL 查看状态

    centos做路由器
      echo 1 > /proc/sys/net/ipv4/ip_forward    开启路由转发功能,状态由0改为1

    DHCP自动获取地址
      dhclient 自动获取ip地址命令

    多路由网络实验:

    1.关闭selinux
    getenforce 查看状态
    setenforce 0 临时关闭,重启失效
    vim /etc/sysconfig/selinux 修改SELINUX=disabled,重启不开启服务
    2.关闭iptables
    chkconfig iptables off 临时关闭,重启失效
    service iptables stop 关闭服务,重启不开启服务
    iptables -vnL 查看状态
    3.关闭NetManager
    service NetManager stop
    4.网卡配置文件
    /etc/sysconfig/network-scripts/ifcfg-eth1 增加的网卡如果不稳定,掉IP,增加配置文件
    5.echo 1 > /proc/sys/net/ipv4/ip_forward 路由转发功能,支持路由功能

    IP、MASK、GW、DNS相关配置文件:
    /etc/sysconfig/network-scripts/ifcfg-IFACE
    静态配置:
    DEVICE=ethX
    HWADDR=00:02:8A:A6:30:45 改MAC地址,MACADDR=00:00:00:00:00:00
    IPADDR=192.168.0.123 
    NETMASK=255.255.255.0 
    GATEWAY=192.168.0.254 
    DNS1=114.114.114.114
    DNS2=8.8.8.8
    ONBOOT=yes 
    Type=Ethernet
    动态配置:
    DEVICE=ethX
    HWADDR=0:02:8A:A6:30:45 
    BOOTPROTO=dhcp
    ONBOOT=yes 
    Type=Ethernet 
    路由相关的配置文件:
    /etc/sysconfig/network-scripts/route-IFACE
    10.0.0.0/8 via 172.16.0.1

    windows系统IP命令
    ipconfig 
    /renew 重新申请DHCP
    /release 释放当前IP,重新申请
    /all 显示完整配置信息
    /flushdns 清除DNS解析程序缓存

    ss命令
    格式:ss [OPTION]... [FILTER]
    netstat通过遍历proc来获取socket信息,ss使用netlink与内核tcp_diag,ss命令性能更佳
    模块通信获取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命令 
    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 delete
    ip route del TARGET 
    显示路由:ip route show|list
    清空路由表:ip route flush [dev IFACE] [via PREFIX]
    ip route flush dev eth0


    改主机名:
    centos6
    1.vim /etc/sysconfig/network 修改文件永久生效
    HOSTNAME=newhostname
    2.# hostname newhostname 命令临时启用新名
    3.exit 重新登陆
    4.vim /etc/hosts 在127.0.0.0 后添加新名

    centos7
    hostname newhostname 直接命令修改永久生效
    exit 重新登陆


    DNS配置文件:
    /etc/hosts 本地解析文件
    /etc/nsswitch.conf DNS解析服务,优先级设置


    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

    配置文件:
    /etc/sysconfig/network-scripts/ifcfg-bond0
    DEVICE=bond0 仅名称,不具有模式功能
    BOOTPROTO=none 
    BONDINGOPTS="miimon=100 mode=0" miimon网卡间通讯间隔,mode网卡bonding模式

    /etc/sysconfig/network-scripts/ifcfg-eth0 
    DEVICE=eth0 
    BOOTPROTO=none
    MASTER=bond0 加入的bond名
    SLAVE=yes 是否为从属设备
    USERCTL=no

    /etc/sysconfig/network-scripts/ifcfg-eth1 
    DEVICE=eth0 
    BOOTPROTO=none
    MASTER=bond0 加入的bond名
    SLAVE=yes 是否为从属设备
    USERCTL=no

    需要几张网卡就加几张,格式同上

    /proc/net/bonding/bond0 查看bonding信息

    删除bonding
    ifconfig bond0 down 停用
    lsmod |grep bond ethtool -i bond0 检查所用驱动模块
    modprobe -r bonding 或rmmod bonding 删除驱动模块
    rm -f ifcfg-bond0 删除配置文件
    vim ifcfg-eth0 修改网卡文件

    Centos7配置

    删除虚拟网卡
    yum remove libvirt-daemon 删除虚拟网卡
    lsmod |grep brid ethtool -i virbr0-nic 检查驱动模块
    rmmod tun 删除驱动

    网卡采用传统方式命名:
    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.重启系统

    主机名更改
    hostnamectl set-hostname newname 命令改名一次性到位
    更改配置/etc/hosts 避免网络问题

    图形化工具:nm-connection-editor
    字符配置工具:nmtui 
    命令行工具:nmcli 主流


    网卡配置文件生成:
    nmcli connection add con-name ens33-idc type ethernet ifname ens33 ipv4.method manual ipv4.addresses 192.168.1.6/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8 添加配置文件

    nmcli connection add con-name ens33-office type ethernet ifname ens33 ipv4.method auto
    connection.autoconnect yes|no 是否自动启动 同onboot
    con-name ens33-idc 命名
    type ethernet 类型
    ifname en3ss 网卡设备名
    ipv4.method {manual|} 手动指定模式,自动模式

    nmcli connection modify ens33-idc +ipv4.addresses 1.1.1.1/24 增加IP
    +ipv4.gateway
    +ipv4.dns1

    nmcli connection up ens33-idc 启用某个配置文件
    nmcli connection reload 重新读取配置文件
    nmcli connection show ens33 显示详细信息
    nmcli connection delete ens33-idc 删除配置文件
    nmcli device 查看网卡状态
    nmcli device status 查看网卡状态
    nmcli device disconnect ens33 断开网卡
    nmcli device connect ens33 连接网卡
    nmcli connection modify ens33-idc connection.id ens33-office 改名
    nmcli connection modify ens33-idc connection.autoconnect yes onboot更改


    添加bond
      添加bonding接口:
        nmcli con add type bond con-name mybond0 ifname mybond0 mode active-backup ipv4.method manual ipv4.addresses 192.168.1.100/24
      添加从属接口:
        nmcli con add type bond-slave1 ifname ens37 master mybond0
        nmcli con add type bond-slave2 ifname ens33 master mybond0
      首先启动从属接口
        nmcli con up bond-slave-eth0
        nmcli con up bond-slave-eth1
      启动绑定
        nmcli con up mybond0

    修改bond
      nmcli c modify bond0 ipv4.method auto 修改属性然后
      nmcli c down bond0 slave1 slave2 down掉bond0,slave1,slave2
      nmcli c up bond0 up,三块网卡
      nmcli c up slave1
      nmcli connection up slave2

  • 相关阅读:
    我的JavaScript之旅——this到底是啥?
    关闭或修改 IIS 443 端口
    UTF8 GBK UTF8 GB2312 之间的区别和关系
    正则表达式符号解释1
    用 Gmail 的 SMTP 发送邮件
    ASCII 码表
    DNN建立前,需要对其进行一些配置
    XAMPP安装和使用教程(图文并茂)
    Visual Studio IDE 实用小技巧
    第二讲 硬件I/O操作
  • 原文地址:https://www.cnblogs.com/tony3154/p/10095375.html
Copyright © 2020-2023  润新知