1、总结ip分类以及每个分类可以分配的IP数量

1)A类IP地址 分类规则:第一段号码为网络号码,剩下的三段号码为本地计算机的号码。 0 000 0000 - 0 111 1111: 1-127 网络数:126, 127 每个网络中的主机数:2^24-2 默认子网掩码:255.0.0.0 私网地址:10.0.0.0

2)B类IP地址 分类规则:前两段号码为网络号码,剩下的两段号码为本地计算机的号码。 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

3)C类IP地址 分类规则:前三段号码为网络号码,剩下的一段号码为本地计算机的号码。 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

4)D类 组播 1110 0000 - 1110 1111: 224-239

5)E类 保留未使用 240-254

2、总结IP配置方法

2.1 网络配置方式

  • 静态指定 ifconfig, route, netstat ip: object {link, addr, route}, ss, tc system-config-network-tui 配置文件

  • 动态分配 DHCP: Dynamic Host Configuration Protocol

2.2 ifconfig 命令

临时禁用/启用网卡

[root@centos7 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:38:8b:70 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.202/24 brd 10.0.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe38:8b70/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:38:8b:84 brd ff:ff:ff:ff:ff:ff
    inet 172.168.20.116/24 brd 172.168.20.255 scope global noprefixroute dynamic eth1
       valid_lft 691083sec preferred_lft 691083sec
    inet6 fe80::f45:6445:670:fe25/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@centos7 ~]# ifconfig eth1 down
[root@centos7 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:38:8b:70 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.202/24 brd 10.0.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe38:8b70/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 00:0c:29:38:8b:84 brd ff:ff:ff:ff:ff:ff
    inet 172.168.20.116/24 brd 172.168.20.255 scope global noprefixroute dynamic eth1
       valid_lft 690975sec preferred_lft 690975sec
[root@centos7 ~]# ifconfig eth1 up
[root@centos7 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:38:8b:70 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.202/24 brd 10.0.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe38:8b70/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:38:8b:84 brd ff:ff:ff:ff:ff:ff
    inet 172.168.20.116/24 brd 172.168.20.255 scope global noprefixroute dynamic eth1
       valid_lft 691194sec preferred_lft 691194sec
    inet6 fe80::f45:6445:670:fe25/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

临时配置网卡IP地址

[root@centos7 ~]# ifconfig eth1 192.168.204.100/24
[root@centos7 ~]# ip a | grep eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.204.100/24 brd 192.168.204.255 scope global noprefixroute eth1

对同一张网卡设置多个IP地址

[root@centos7 ~]# ifconfig eth1:test 192.168.204.1/24
[root@centos7 ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.202  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::20c:29ff:fe38:8b70  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:38:8b:70  txqueuelen 1000  (Ethernet)
        RX packets 591  bytes 46600 (45.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 361  bytes 40885 (39.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.204.100  netmask 255.255.255.0  broadcast 192.168.204.255
        inet6 fe80::f45:6445:670:fe25  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:38:8b:84  txqueuelen 1000  (Ethernet)
        RX packets 1063  bytes 90143 (88.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 27  bytes 2698 (2.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1:test: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.204.1  netmask 255.255.255.0  broadcast 192.168.204.255
        ether 00:0c:29:38:8b:84  txqueuelen 1000  (Ethernet)

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

网卡别名删除

[root@centos7 ~]# ifconfig eth1:test down
[root@centos7 ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.202  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::20c:29ff:fe38:8b70  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:38:8b:70  txqueuelen 1000  (Ethernet)
        RX packets 689  bytes 53920 (52.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 416  bytes 48779 (47.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.204.100  netmask 255.255.255.0  broadcast 192.168.204.255
        inet6 fe80::f45:6445:670:fe25  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:38:8b:84  txqueuelen 1000  (Ethernet)
        RX packets 1150  bytes 97166 (94.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 27  bytes 2698 (2.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

2.3 网络配置文件

以 /etc/sysconfig/network-scripts/ifcfg-eth0 文件为例

[root@centos7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
BOOTPROTO=static
IPADDR=10.0.0.202
PREFIX=24
GATEWAY=10.0.0.2
DNS1=10.0.0.2
DNS2=180.76.76.76
ONBOOT=yes

2.4 ip 命令

2.4.1 配置Linux网络属性

ip [ OPTIONS ] OBJECT { COMMAND | help }

ip 命令说明:

OBJECT := { link | addr | route } ip link - network device configuration set dev IFACE,可设置属性:up and down:激活或禁用指定接口,相当于 ifup/ifdown show [dev IFACE] [up]::指定接口 ,up 仅显示处于激活状态的接口

2.4.2 IP 地址管理

添加/删除一个IP

[root@centos7 ~]# ip address add 1.1.1.2/24 dev eth0 label eth0:1
[root@centos7 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.2        0.0.0.0         UG    100    0        0 eth0
1.1.1.0         0.0.0.0         255.255.255.0   U     0      0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     100    0        0 eth0
[root@centos7 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:38:8b:70 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.202/24 brd 10.0.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet 1.1.1.2/24 scope global eth0:1
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe38:8b70/64 scope link 
       valid_lft forever preferred_lft forever

[root@centos7 ~]# ip address del 1.1.1.2/24 dev eth0 label eth0:1
[root@centos7 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:38:8b:70 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.202/24 brd 10.0.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe38:8b70/64 scope link 
       valid_lft forever preferred_lft forever
[root@centos7 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.2        0.0.0.0         UG    100    0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     100    0        0 eth0

2.4.3 管理理由

ip route 用法

添加路由: ip route add TARGET via GW dev IFACE src SOURCE_IP TARGET: 主机路由:IP 网络路由:NETWORK/MASK 添加网关: ip route add default via GW dev IFACE 删除路由: ip route del TARGET 显示路由: ip route show|list 清空路由表: ip route flush [dev IFACE] [via PREFIX]

添加删除一条路由

[root@centos7 ~]# ip route
default via 10.0.0.2 dev eth0 proto static metric 100 
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.202 metric 100 
[root@centos7 ~]# ip route add 1.1.1.0/24 via 10.0.0.2 dev eth0 proto static metric 100
[root@centos7 ~]# ip route
default via 10.0.0.2 dev eth0 proto static metric 100 
1.1.1.0/24 via 10.0.0.2 dev eth0 proto static metric 100 
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.202 metric 100 
[root@centos7 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.2        0.0.0.0         UG    100    0        0 eth0
1.1.1.0         10.0.0.2        255.255.255.0   UG    100    0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     100    0        0 eth0

[root@centos7 ~]# ip route del 1.1.1.0/24 via 10.0.0.2
[root@centos7 ~]# ip route
default via 10.0.0.2 dev eth0 proto static metric 100 
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.202 metric 100 

3、使用nmcli实现bonding

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

修改网卡某个接口逻辑上的NAME

[root@centos7 ~]# nmcli connection
NAME  UUID                                  TYPE      DEVICE 
eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0   
[root@centos7 ~]# nmcli connection
NAME                UUID                                  TYPE      DEVICE 
eth0                5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0   
Wired connection 1  143b5a3f-31e3-3f41-a659-f331c6dcc449  ethernet  eth1   
[root@centos7 ~]# nmcli connection modify Wired\ connection\ 1  con-name eth1-home
[root@centos7 ~]# nmcli connection
NAME       UUID                                  TYPE      DEVICE 
eth0       5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0   
eth1-home  143b5a3f-31e3-3f41-a659-f331c6dcc449  ethernet  eth1   

[root@centos7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1-home
HWADDR=00:0C:29:38:8B:7A
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth1-home
UUID=143b5a3f-31e3-3f41-a659-f331c6dcc449
ONBOOT=yes
AUTOCONNECT_PRIORITY=-999

nmcli实现bonding

添加bonding接口 nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup

[root@centos7 ~]# nmcli connection add con-name mybond0 ifname bond0 type bond ipv4.method manual ipv4.addresses 10.0.0.100/24
Connection 'mybond0' (63b8f5a5-4587-4034-b763-89c2dcb10d8d) successfully added.
[root@centos7 ~]# nmcli connection
NAME       UUID                                  TYPE      DEVICE 
eth0       5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0   
eth1-home  143b5a3f-31e3-3f41-a659-f331c6dcc449  ethernet  eth1   
mybond0    63b8f5a5-4587-4034-b763-89c2dcb10d8d  bond      bond0  

添加从属接口 nmcli con add type bond-slave ifname ens7 master bond0 nmcli con add type bond-slave ifname ens3 master bond0

[root@centos7 ~]# nmcli connection del eth1-home
Connection 'eth1-home' (143b5a3f-31e3-3f41-a659-f331c6dcc449) successfully deleted.
[root@centos7 ~]# nmcli connection
NAME                UUID                                  TYPE      DEVICE 
eth0                5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0   
Wired connection 1  143b5a3f-31e3-3f41-a659-f331c6dcc449  ethernet  eth1   
mybond0             63b8f5a5-4587-4034-b763-89c2dcb10d8d  bond      bond0  

[root@centos7 ~]#  nmcli connection add con-name mybond0-eth1 ifname eth1 type bond-slave master bond0
Connection 'mybond0-eth1' (9705dba3-1e00-4d59-943e-6e0a7bae63b3) successfully added.
[root@centos7 ~]# nmcli connection
NAME                UUID                                  TYPE      DEVICE 
eth0                5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0   
Wired connection 1  143b5a3f-31e3-3f41-a659-f331c6dcc449  ethernet  eth1   
mybond0             63b8f5a5-4587-4034-b763-89c2dcb10d8d  bond      bond0  
mybond0-eth1        9705dba3-1e00-4d59-943e-6e0a7bae63b3  ethernet  --     
[root@centos7 ~]# nmcli connection delete Wired\ connection\ 1
Connection 'Wired connection 1' (143b5a3f-31e3-3f41-a659-f331c6dcc449) successfully deleted.
[root@centos7 ~]# nmcli connection
NAME          UUID                                  TYPE      DEVICE 
eth0          5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0   
mybond0       63b8f5a5-4587-4034-b763-89c2dcb10d8d  bond      bond0  
mybond0-eth1  9705dba3-1e00-4d59-943e-6e0a7bae63b3  ethernet  eth1