网络管理之配置文件及一些命令的应用

IP配置、信息、相关命令

   IP地址

    它们可唯一标识 IP 网络中的每台设备

    每台主机(计算机、网络设备、外围设备)必须具有唯一的地址

    IP 地址由两部分组成:

        • 网络ID:

            • 标识网络

            • 每个网段分配一个网络ID

        • 主机 ID:

            • 标识单个主机

            • 由组织分配给各设备

IPv4地址格式:点分十进制记法

blob.png

IP地址分类

    A 类:

         0 000 0000 – 0 111 1111: 1-127

         网络数:126, 127

         每个网络中的主机数:2^24-2

         默认子网掩码:255.0.0.0

         私网地址:10.0.0.0

    B 类:

         10 00 0000 – 10 11 1111 :128-191

         网络数:2^14

         每个网络中的主机数:2^16-2

         默认子网掩码:255.255.0.0

         私网地址:172.16.0.0-172.31.0.0

    C 类:

         110 0 0000 – 110 1 1111: 192-223

         网络数:2^21

         每个网络中的主机数:2^8-2

         默认子网掩码:255.255.255.0

         私网地址:192.168.0.0-192.168.255.0

    D 类:组播

         1110 0000 – 1110 1111: 224-239

    E 类:

         240-255

公共IP地址

blob.png

私有IP地址

blob.png

特殊地址

0.0.0.0

0.0.0.0 不是一个真正意义上的IP 地址。它表示一个集合:所有不清楚的主机和目的网络。

255.255.255.255

限制广播地址。对本机来说,这个地址指本网段内( 同一广播域) 的所有主机

127.0.0.1 ~127.255.255.254

本机回环地址,主要用于测试。在传输介质上永远不应该出现目的地址为“127.0.0.1”的数据包

224.0.0.0 到239.255.255.255

组播地址,224.0.0.1特指所有主机,224.0.0.2特指所有路由器。224.0.0.5指OSPF路由器,地址多用于一些特定的程序以及多媒体程序

169.254.x.x

如果Windows 主机使用了DHCP自动分配IP 地址,而又无法从DHCP 服务器获取地址,系统会为主机分配这样地址。

有子网的子网掩码

blob.png

子网掩码的八位

blob.png

可变长度的子网掩码

blob.png

划分子网

    公式1

        主机数=2^主机位数(掩码中0个数=32-网络位数)-2

    公式2

        划分子网:网络ID位向主机ID位M借位,借N位,划分子网2^N个,每个子网主机数2^(M-N)-2

    公式3

        网络ID=IP地址^子网掩码

跨网络通信

    跨网络通信:路由

    路由分类:

        主机路由

        网络路由

        默认路由

动态主机配置协议DHCP

blob.png

基本网络配置

    将Linux 主机接入到网络,需要配置网络相关设置。

    一般包括如下内容:

        主机名

        IP/mask  必须是唯一的

        路由:默认网关

        DNS服务器:

            主DNS 服务器

            次DNS 服务器

            第三DNS服务器

网络配置方式

    静态指定:

        ifcfg: ifconfig, route, netstat

        ip: object {link, addr, route}, ss, tc

        system-config-network-tui (setup)  centos6的字符工具

blob.png

        配置文件

        CentOS 7: 网络配置工具

            nmcli, nmtui(字符工具)

blob.png

nm-connection-editor(图形工具)  如下: 

blob.png

    动态分配

        DHCP: Dynamic Host Configuration Protocol



小实验:更改网卡名 

1.找出更改网卡名的文件

blob.png

红框内的文件是用来命名网卡的文

2.然后用vim编辑器改一下名字

blob.png

红框内原来的名字是eth0,改完之后重启下虚拟机  原网卡名和现网卡名图:

blob.png

blob.png

但是只更改这个文件  网卡是不能用的 还要改网卡的配置文件

blob.png

而我们需要修改的文件就是红框内的文件 vim打开它

blob.png

修改了这两处文件  修改完之后 存盘退出  网卡就可以正常使用了

blob.png

图形界面看一下网卡名改了  这里的名字就是由网卡配置文件里 NAME那一行来决定的

x修改网卡地址:  在vim /etc/sysconfig/network-scripts/ifcfg-eth0里修改文件  具体如下:

blob.png

添加了图中红方框内的五行文件   然后启动服务:

blob.png

就完成了

而如果我们要更改mac地址需要:

blob.png

把原来的HWADDR改成MACADDR然后启动服务后  新mac地址生效

        配置网卡必须要写的有以下几个参数:     其他的可有可无

blob.png

当然了  上述是静态配置网卡

   自动分配IP地址:  只需要写两行

DEVICE=eth0
BOOTPROTO=dhcp

这些配置写完 要重启下虚拟机才能生效

静态配置网卡 需要的参数

DEVICE=eth0

IPADDR=192.168.0.1

PREFIX=24(NETMASK=255.255.255.0)

GATEWAY=192.168.1.254

DNS1=8.8.8.8

DNS2=8.8.4.4

后面的这些地址 可以自己指定

自动分配IP地址 需要的参数

DEVICE=eth0

BOOTPROTO=dhcp



 如果你的电脑需要在静态、自动获取IP之间转换的话 可以再网络里设置

blob.png

在IPv4属性里备用配置设置一下用户配置

blob.png



设备别名

    为每个设备别名生成独立的接口配置文件

        • 关闭NetworkManager 服务 service NetworkManager stop(临时关闭,下次开机自动启动);chkconfig NetworkManager off(永久关闭 开机不启动)

        • 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 接口上传送所有的报文。本模式提供容错能力

bonding的配置

    创建bonding 设备的配置文件

        /etc/sysconfig/network-scripts/ifcfg-bond0

            DEVICE=bond0

            BOOTPROTO=none

            BONDING_OPTS= “miimon=100(ms) mode=0”

blob.png

        /etc/sysconfig/network-scripts/ifcfg-eth0

            DEVICE=eth0

            BOOTPROTO=none

            MASTER=bond0

            SLAVE=yes

            USERCTL=no网络管理之配置文件及一些命令的应用

                               blob.png

    miimon 是用来进行链路监测的。如果miimon=100 ,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路

    • 查看bond0 状态:/proc/net/bonding/bond

blob.png

            当前活动的网卡为eth0 为mode1模式

    • 关于bonding 的详细配置请参照

        /usr/share/doc/kernel-doc-

        version/Documentation/networking/bonding.txt

配置bond服务的一些命令

cd /etc/sysconfig/network-scripts
vi ifcfg-bond0
DEVICE=bond0
IPADDR=10.100.100.100
PREFIX=16
BONDING_OPTS="miimon=100 mode=1"
vi ifcfg-eth0
DEVICE=eth0
MASTER=bond0
SLAVE=yes
vi ifcfg-eth1
DEVICE=eth1
MASTER=bond0
SLAVE=yes



网卡名称

     网络接口识别并命名相关的udev 配置文件:

        /etc/udev/rules.d/70-persistent-net.rules

    查看网卡:

        dmesg |grep –i eth

        ethtool -i eth0

blob.png

    卸载网卡驱动:

        modprobe -r e1000

        rmmod e1000

    装载网卡驱动:

        modprobe e1000

网卡别名

    对虚拟主机有用

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

        eth0:1 、eth0:2、 、 eth0:3

    ifconfig 命令:

        ifconfig eth0:0 192.168.1.100/24 up

             定义了一个网卡别名  如图:

blob.png

如果把命令中的“:”去掉  会暂时把网卡地址更改

        ifconfig eth0:0 down删除网卡

    ip 命令

       配置Linux的网络属性

        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


        ip – show / manipulate routing, devices, policy routingand tunnels

        ip [ OPTIONS ] OBJECT { COMMAND | help }OBJECT := { link | addr | route }

        ip link – network device configuration  查看网卡属性

blob.png

            set dev IFACE

              可设置属性:

                up and down :激活或禁用指定接口

                ifup/ifdown

            show [dev IFACE] :指定接口

                 [up]仅显示处于激活状态的接口

        ip addr { add | del } IFADDR dev STRING  添加/删除IP地址  可以添加多个地址

blob.png

                [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  在eth0上添加IP地址 名字为eth0:0

        ip addr del 172.16.100.100/16 dev eth0 label eth0:0  删除eth0:0的IP地址

        ip addr flush dev eth0 label eth0:0  把eth0上的IP地址全部清空

blob.png

网络配置文件

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

            /etc/sysconfig/network-scripts/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

dns名字解析

    /etc/resolv.conf

        nameserver DNS_SERVER_IP1

        nameserver DNS_SERVER_IP2

        nameserver DNS_SERVER_IP3

blob.png

    /etc/nsswitch.conf

        与/etc/hosts 相比优先于DNS

    正解:FQDN–>IP

          # dig -t A FQDN

          # host -t A FQDN

    反解:IP–>FQDN

          # dig -x IP

          # host -t PTR IP

  netstat命令和ss命令的用法和区别

netstat命令 ss命令

  netstat – Print network connections, routing tables, interface statistics, masquerade connections, and multicast  memberships

    显示网络连接:

        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 eno16777736

这个命令是比较早的命令  现在用的很少

格式: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 :计时器信息

常用组合:

      -tan, -tanl, -tanlp, -uan

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 )’

常见用法:

     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详细信息

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

    默认路由,网关: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

  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

原创文章,作者:旧城以西,如若转载,请注明出处:http://www.178linux.com/44492