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.网络接口名称解释

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

2.网络配置工具概述

2.1使用 nmtui 添加连接配置

2.2NMCLI 入门

2.3使用 GNOME GUI 配置网络入门

以上内容来源于Redhat官网

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

3.1【nmtui入门】

3.2【nmcli入门】

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

3.4【配置网络bond/team】

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

以下内容来于笔者的总结

4.1 查看系统网卡设备

[root@localhost ~]# nmcli device statusDEVICE      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 ip4IP4.ADDRESS[1]:                         192.168.10.2/24IP4.GATEWAY:                            192.168.10.254IP4.ROUTE[1]:                           dst = 192.168.10.0/24, nh = 0.0.0.0, mt = 100IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.10.254, mt = 100IP4.DNS[1]:                             8.8.8.8IP4.ADDRESS[1]:                         192.168.122.1/24IP4.GATEWAY:                            --IP4.ROUTE[1]:                           dst = 192.168.122.0/24, nh = 0.0.0.0, mt = 0IP4.ADDRESS[1]:                         127.0.0.1/8IP4.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]# lsifcfg-ens160  ifcfg-ens160-new

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

[root@localhost network-scripts]# cat ifcfg-ens160-new TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=noneIPADDR=192.168.10.3PREFIX=24GATEWAY=192.168.10.254DNS1=114.114.114.114DEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens160-newUUID=5825bc94-9919-4993-9abd-e4ec5ef9a4d5DEVICE=ens160ONBOOT=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 statusDEVICE      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 ip4IP4.ADDRESS[1]:                         192.168.10.3/24IP4.GATEWAY:                            192.168.10.254IP4.ROUTE[1]:                           dst = 192.168.10.0/24, nh = 0.0.0.0, mt = 100IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.10.254, mt = 100IP4.DNS[1]:                             114.114.114.114

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

[root@localhost ~]# nmcli connection show ens160-new |grep -i ip4IP4.ADDRESS[1]:                         192.168.10.3/24IP4.GATEWAY:                            192.168.10.254IP4.ROUTE[1]:                           dst = 192.168.10.0/24, nh = 0.0.0.0, mt = 100IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.10.254, mt = 100IP4.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 activebackupipv4.addresses 192.168.10.11/24 ipv4.method manualnmcli con add con-name team0-port1 ifname ens160 type team-slave master team0nmcli con add con-name team0-port2 ifname ens256 type team-slave master team0nmcli con up team0nmcli con up team0-port1nmcli con up team0-port2

查看team配置

teamdctl team0 statesetup:runner: activebackupports:ens160link watches:link summary: upinstance[link_watch_0]:name: ethtoollink: updown count: 0ens256link watches:link summary: upinstance[link_watch_0]:name: ethtoollink: updown count: 0runner: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 mannmcli con add con-name team1-port1 ifname ens160 type team-slave master team1nmcli con add con-name team1-port2 ifname ens265 type team-slave master team1nmcli con up team1-port1nmcli con up team1-port2nmcli con up team1[root@localhost ~]# teamdctl team1 statesetup:runner: lacpports:ens160link watches:link summary: upinstance[link_watch_0]:name: ethtoollink: updown count: 0runner:aggregator ID: 5, Selectedselected: yesstate: currentens265link watches:link summary: upinstance[link_watch_0]:name: ethtoollink: updown count: 0runner:aggregator ID: 5, Selectedselected: yesstate: currentrunner:active: yesfast 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 team0nmcli con add con-name team0-port2 ifname ens256 type team-slave master team0nmcli con up team0nmcli con up team0-port1nmcli con up team0-port2
(0)
小多多的头像小多多创始人

相关推荐

发表回复

登录后才能评论