linux自动获取ip地址命令(linux配置自动获取ip地址)


1.网卡命名规则

Red Hat Enterprise Linux 8 提供用于网络接口的一致性和可预测的设备命名方法。这些特性有助于查找和区分网络接口。

内核为网络接口分配名称的方法是,使用一个固定前缀,再加上随着内核初始化网络设备时增加的数字。例如: eth0 将代表引导时被探测的第一个设备。但是这些名称不一定与设备外壳上的标签对应。具有多个网络适配器的现代服务器平台,可能会遇到这些接口的命名不明确的情况。这会影响系统中嵌入的网络适配器和附加适配器。

在 Red Hat Enterprise Linux 8 中,udev 设备管理器支持很多不同的命名方案。默认情况下,udev 根据固件、拓扑和位置信息分配固定名称。它有以下优点:

设备名称完全可预测。

在添加或删除硬件时,设备名称也会保持不变。

因此,有问题的硬件可以被无缝地替换。

1.1.网络接口设备命名等级

如果启用了一致的设备命名(在 Red Hat Enterprise Linux 8 中是默认设置),udev设备管理器会根据以下方案生成设备名称:

方案描述示例
1设备名称包含固件或者 BIOS 提供的索引号,用于板上的设备。如果此信息不适用,udev将使用方案 2。eno1
2设备名称包含固件或 BIOS 提供的 PCI Express(PCIe)热插件插槽索引号。如果此信息不适用,udev 将使用方案 3。ens1
3设备名称包含硬件连接器的物理位置。如果此信息不适用,udev 将使用方案 5。enp2s0
4设备名称包含 MAC 地址。Red Hat Enterprise Linux 默认不使用这个方案,但管理员可选择性地使用它。enx525400d5e0fb
5传统的无法预计的内核命名方案。如果 udev 无法应用任何其他方案,设备管理器将使用这个方案。eth0

如果您手动配置udev规则以更改内核设备名称,则优先使用这些规则。

默认情况下,Red Hat Enterprise Linux 根据
/usr/lib/systemd/network/99-default.link 文件中的 NamePolicy 设置选择设备名称。NamePolicy 中值的顺序非常重要。Red Hat Enterprise Linux 使用在该文件中指定的以及 udev 生成的第一个设备名称。

如果您手动配置 udev 规则以更改内核设备名称,则优先使用这些规则。

1.2.网络接口名称解释

Linux 8 网络配置常用命令总结

1.3.修改网卡命名方式为早期的规则(ethx)

Linux 8 网络配置常用命令总结
Linux 8 网络配置常用命令总结

2.网络配置工具概述

Linux 8 网络配置常用命令总结

2.1使用 nmtui 添加连接配置

Linux 8 网络配置常用命令总结
Linux 8 网络配置常用命令总结

2.2NMCLI 入门

Linux 8 网络配置常用命令总结
Linux 8 网络配置常用命令总结
Linux 8 网络配置常用命令总结
Linux 8 网络配置常用命令总结
Linux 8 网络配置常用命令总结

2.3使用 GNOME GUI 配置网络入门

Linux 8 网络配置常用命令总结
Linux 8 网络配置常用命令总结

以上内容来源于Redhat官网

3. 以下菜单栏内容为官方文档:

3.1【nmtui入门】

3.2【nmcli入门】

3.3【使用GNOME GUI配置网络入门】

3.4【配置网络bond/team】

4.网络配置常用命令汇总

以下内容来于笔者的总结

4.1 查看系统网卡设备

[root@localhost ~]# nmcli device status
DEVICE      TYPE      STATE                   CONNECTION 
ens160      ethernet  connected               ens160     
virbr0      bridge    connected (externally)  virbr0     
lo          loopback  unmanaged               --         
virbr0-nic  tun       unmanaged               --

DEVICE 网卡设备名(系统内核为网络接口分配名称,本文中只有一个ens160的网卡设备)

TYPE 网络类型

STATE 当前的状态

CONNECTION 网络连接名(ens160连接名对应的配置文件
/etc/sysconfig/network-scripts/ifcfg-ens160)

注意:一个网卡设备可以有多个网络连接名,但在系统里同时只一个网卡连接名被激活。

4.2 设置网卡ens160 DHCP自动获取IP地址,并开始自启动

[root@localhost ~]# nmcli connection modify ens160 ipv4.method manual autoconnect yes

拨出网卡

[root@localhost ~]# nmcli device disconnect ens160

载入网卡

[root@localhost ~]# nmcli device connect ens160

4.3 给ens160 手动配置一个IP

[root@localhost ~]# nmcli connection modify ens160 ipv4.addresses 192.168.10.2/24 ipv4.gateway 192.168.10.254 ipv4.dns 8.8.8.8 ipv4.method manual autoconnect yes

重新加载配置文件(增加或修改之后必需执行)

[root@localhost ~]# nmcli connection reload

启动网卡

[root@localhost ~]# nmcli connection up ens160

4. 4 查看ens160网络信息

[root@localhost ~]# nmcli device show ens160|grep -i ip4
IP4.ADDRESS[1]:                         192.168.10.2/24
IP4.GATEWAY:                            192.168.10.254
IP4.ROUTE[1]:                           dst = 192.168.10.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.10.254, mt = 100
IP4.DNS[1]:                             8.8.8.8
IP4.ADDRESS[1]:                         192.168.122.1/24
IP4.GATEWAY:                            --
IP4.ROUTE[1]:                           dst = 192.168.122.0/24, nh = 0.0.0.0, mt = 0
IP4.ADDRESS[1]:                         127.0.0.1/8
IP4.GATEWAY:                            --

4.5 添加一个网络配置文件ens160-new,并配置IP地址

[root@localhost network-scripts]# nmcli connection add type ethernet con-name ens160-new ifname ens160 ipv4.addresses 192.168.10.3 ipv4.gateway 192.168.10.254/24 ipv4.dns 114.114.114.114 ipv4.method manual 
Connection 'ens160-new' (5825bc94-9919-4993-9abd-e4ec5ef9a4d5) successfully added.

4.5.1 查看网络连接名信息(这里可以看到多出一个ens160-new)

[root@localhost network-scripts]# nmcli connection show 
NAME        UUID                                  TYPE      DEVICE 
ens160      42e915da-c4bc-44ca-9d27-7cd21e2b3755  ethernet  ens160 
virbr0      4e4a1f37-2072-4368-ae9c-e87c0cd5cc40  bridge    virbr0 
ens160-new  5825bc94-9919-4993-9abd-e4ec5ef9a4d5  ethernet  --

4.5.2 查看网络配置文件ens160-new是否生成

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@localhost network-scripts]# ls
ifcfg-ens160  ifcfg-ens160-new

4.5.3 查看网络配置文件ens160-new内容

[root@localhost network-scripts]# cat ifcfg-ens160-new 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=192.168.10.3
PREFIX=24
GATEWAY=192.168.10.254
DNS1=114.114.114.114
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=ens160-new
UUID=5825bc94-9919-4993-9abd-e4ec5ef9a4d5
DEVICE=ens160
ONBOOT=yes

4.5.4 重新加载并启动ens160-new配置文件

[root@localhost ~]# nmcli connection reload 
[root@localhost ~]# nmcli connection up ens160-new

4.5.5 查看当前活动配置文件(可以看到CONNECT这一栏里的连接名变成ens160-new)

[root@localhost ~]# nmcli device status
DEVICE      TYPE      STATE                   CONNECTION 
ens160      ethernet  connected               ens160-new 
virbr0      bridge    connected (externally)  virbr0     
lo          loopback  unmanaged               --         
virbr0-nic  tun       unmanaged               --

4.5.6 查看设备ens160当前激活的网络信息

[root@localhost ~]# nmcli device show  ens160 |grep -i ip4
IP4.ADDRESS[1]:                         192.168.10.3/24
IP4.GATEWAY:                            192.168.10.254
IP4.ROUTE[1]:                           dst = 192.168.10.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.10.254, mt = 100
IP4.DNS[1]:                             114.114.114.114

4.5.7 也可以通过连接名ens160-new查看网络信息(注意关键字,这里用的是nmcli connect)

[root@localhost ~]# nmcli connection show ens160-new |grep -i ip4
IP4.ADDRESS[1]:                         192.168.10.3/24
IP4.GATEWAY:                            192.168.10.254
IP4.ROUTE[1]:                           dst = 192.168.10.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.10.254, mt = 100
IP4.DNS[1]:                             114.114.114.114

4.6 创建网卡绑定(最常用的两种模式 active backup 与LACP)

#1.创建team接口

#2.给team分配地址

#3.创建team的子接口(slave interface)

#4.激活team接口和team的子接口

4.6 .1 手工配置active backup

nmcli connection add  type team con-name tema0 ifname team0 team.runner activebackup
ipv4.addresses 192.168.10.11/24 ipv4.method manual
nmcli con add con-name team0-port1 ifname ens160 type team-slave master team0
nmcli con add con-name team0-port2 ifname ens256 type team-slave master team0
nmcli con up team0
nmcli con up team0-port1
nmcli con up team0-port2

查看team配置

teamdctl team0 state
setup:
runner: activebackup
ports:
ens160
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
ens256
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
runner:
active port: ens160

4.6 .2手工配置lacp (此模式下上连交换机也要配置端口聚合)

nmcli connection add  type team con-name tema1 ifname team1 team.runner lacp 
192.168.10.21/24 ipv4.method man
nmcli con add con-name team1-port1 ifname ens160 type team-slave master team1
nmcli con add con-name team1-port2 ifname ens265 type team-slave master team1
nmcli con up team1-port1
nmcli con up team1-port2
nmcli con up team1


[root@localhost ~]# teamdctl team1 state
setup:
runner: lacp
ports:
ens160
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
runner:
aggregator ID: 5, Selected
selected: yes
state: current
ens265
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
runner:
aggregator ID: 5, Selected
selected: yes
state: current
runner:
active: yes
fast rate: no

注意: man nmcli-example 里的信息还没更新, 您也可以按linux7 的方式配置。

man nmcli-examples

       Example 8. Adding a bonding master and two slave connection profiles

           $ nmcli con add type bond ifname mybond0 mode active-backup
           $ nmcli con add type ethernet ifname eth1 master mybond0
           $ nmcli con add type ethernet ifname eth2 master mybond0

       This example demonstrates adding a bond master connection and two slaves. The first command adds a master bond
       connection, naming the bonding interface mybond0 and using active-backup mode. The next two commands add slaves
       connections, both enslaved to mybond0. The first slave will be bound to eth1 interface, the second to eth2.

       Example 9. Adding a team master and two slave connection profiles

           $ nmcli con add type team con-name Team1 ifname Team1 config team1-master-json.conf
           $ nmcli con add type ethernet con-name Team1-slave1 ifname em1 master Team1
           $ nmcli con add type ethernet con-name Team1-slave2 ifname em2 master Team1
           
man teamd.conf
 {
         "device": "team0",
         "runner": {"name": "activebackup"},
         "link_watch": {
           "name": "ethtool",
           "delay_up": 2500,
           "delay_down": 1000
         },
         "ports": {
           "eth1": {
             "prio": -10,
             "sticky": true
           },
           "eth2": {
             "prio": 100
           }
         }
       }

4.6 .3下面的语法是linux 7 的配置, linux8 也应该支持,感兴趣的小伙伴可以试试

nmcli connection add  type team con-name tema0 ifname team0 config '{"runner": {"name": "activebackup"}'
nmcli con add con-name team0-port1 ifname ens160 type team-slave master team0
nmcli con add con-name team0-port2 ifname ens256 type team-slave master team0
nmcli con up team0
nmcli con up team0-port1
nmcli con up team0-port2

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论