首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使系统联网。目标等待多个网络?

如何使系统联网。目标等待多个网络?
EN

Server Fault用户
提问于 2021-01-12 09:34:07
回答 1查看 1.9K关注 0票数 2

我们有一个运行Debian 10的ESXi虚拟机,它在后缀启动的太早就遇到了问题。这会导致在后缀色度之前没有填充resolv.conf的问题。我确保了两个

  • /lib/systemd/system/systemd.system
  • /lib/systemd/system/postfix@..service

文件有一行

代码语言:javascript
复制
After=network-online.target nss-lookup.target

但是,我们在这个VM中安装了多个nics,其中/etc/network/interfaces文件包含

代码语言:javascript
复制
source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug ens192
iface ens192 inet static
        address 10.1.0.29/21
        dns-nameservers 10.1.0.20 10.1.0.23 

# The secondary network interface
allow-hotplug ens224
iface ens224 inet static
        address 192.168.1.8/24
        gateway 192.168.1.240

当我跑的时候

代码语言:javascript
复制
grep -E "(Postfix Mail Transport Agent|e1000|Link is Up|link is not ready|link becomes ready|resolv.conf differ|target)" /var/log/syslog

我看到了网络在线,目标只等待一个nics在线。

代码语言:javascript
复制
Jan 12 18:46:54 assp0 kernel: [    1.738897] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
Jan 12 18:46:54 assp0 kernel: [    1.738897] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
Jan 12 18:46:54 assp0 kernel: [    1.739922] e1000e 0000:0b:00.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
Jan 12 18:46:54 assp0 kernel: [    1.795419] e1000e 0000:0b:00.0 0000:0b:00.0 (uninitialized): registered PHC clock
Jan 12 18:46:54 assp0 kernel: [    1.859484] e1000e 0000:0b:00.0 eth0: (PCI Express:2.5GT/s:Width x1)
Jan 12 18:46:54 assp0 kernel: [    1.859486] e1000e 0000:0b:00.0 eth0: Intel(R) PRO/1000 Network Connection
Jan 12 18:46:54 assp0 kernel: [    1.859558] e1000e 0000:0b:00.0 eth0: MAC: 3, PHY: 8, PBA No: 000000-000
Jan 12 18:46:54 assp0 kernel: [    1.860245] e1000e 0000:13:00.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
Jan 12 18:46:54 assp0 kernel: [    1.915403] e1000e 0000:13:00.0 0000:13:00.0 (uninitialized): registered PHC clock
Jan 12 18:46:54 assp0 kernel: [    1.979239] e1000e 0000:13:00.0 eth1: (PCI Express:2.5GT/s:Width x1)
Jan 12 18:46:54 assp0 kernel: [    1.979240] e1000e 0000:13:00.0 eth1: Intel(R) PRO/1000 Network Connection
Jan 12 18:46:54 assp0 kernel: [    1.979290] e1000e 0000:13:00.0 eth1: MAC: 3, PHY: 8, PBA No: 000000-000
Jan 12 18:46:54 assp0 kernel: [    1.981312] e1000e 0000:0b:00.0 ens192: renamed from eth0
Jan 12 18:46:54 assp0 kernel: [    1.994070] e1000e 0000:13:00.0 ens224: renamed from eth1
Jan 12 18:46:54 assp0 kernel: [    4.577652] IPv6: ADDRCONF(NETDEV_UP): ens224: link is not ready
Jan 12 18:46:54 assp0 kernel: [    4.583595] e1000e: ens224 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
Jan 12 18:46:54 assp0 systemd[1]: Reached target Swap.
Jan 12 18:46:54 assp0 systemd[1]: Reached target System Initialization.
Jan 12 18:46:54 assp0 systemd[1]: Reached target Sockets.
Jan 12 18:46:54 assp0 systemd[1]: Reached target Basic System.
Jan 12 18:46:54 assp0 systemd[1]: Reached target Timers.
Jan 12 18:46:54 assp0 systemd[1]: Reached target Network.
Jan 12 18:46:54 assp0 systemd[1]: Reached target Network is Online.
Jan 12 18:46:54 assp0 systemd[1]: Starting Postfix Mail Transport Agent (instance -)...
Jan 12 18:46:54 assp0 systemd[1]: Reached target Login Prompts.
Jan 12 18:46:54 assp0 kernel: [    4.671007] IPv6: ADDRCONF(NETDEV_UP): ens192: link is not ready
Jan 12 18:46:54 assp0 kernel: [    4.671206] IPv6: ADDRCONF(NETDEV_CHANGE): ens224: link becomes ready
Jan 12 18:46:54 assp0 kernel: [    4.675749] e1000e: ens192 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
Jan 12 18:46:54 assp0 kernel: [    4.676553] IPv6: ADDRCONF(NETDEV_CHANGE): ens192: link becomes ready
Jan 12 18:46:55 assp0 postfix/postfix-script[750]: warning: /var/spool/postfix/etc/resolv.conf and /etc/resolv.conf differ

我想你可以在网络配置中写一些东西,表明在操作系统考虑网络运行之前,连接是必需的,但我似乎找不到这些信息。

在我把一些对我们足够有效的东西整理出来之前,我想知道如何使网络在线,目标等待所有的nics,或者最好是我指定的那些。-编辑-我提到的封闭型是给引导序列增加了一个延迟。

编辑:我找到了一个指向我正在想的东西的链接,但它在CentOS中,是添加到其中一个ifcfg文件中的IPV4_失败_FATAL=yes行。Debian有类似的东西吗?您认为这会影响系统目标的触发吗?

编辑:在阅读有关systemd-networkd-wait-online.service的文章时,启用systemd网络服务似乎很有帮助。在我转换到使用网络管理器(networkd)配置设置之前,我是否正确地读取了它并将解决此问题?

EN

回答 1

Server Fault用户

发布于 2021-01-12 10:45:29

Systemd自动假定只要目标(我猜它依赖于eiter、network.service或NetworkManager.service上的RHEL)报告它已经启动,网络就在线了。我们在dnsmasq报告它启动时遇到了问题,但实际上,在提供NFS挂载之前,它只需要稍微多一点时间。作为一种解决办法,您可以:

  1. 创建将在网络服务之后和后缀之前执行的服务。
  2. 在网络服务中设置延迟(可能是PostExec节)
  3. 通过后缀服务中的"ExecStartPre=“条目创建”启动前延迟“

下面是network.service on CentOS7的一个示例:

代码语言:javascript
复制
# /run/systemd/generator.late/network.service
# Automatically generated by systemd-sysv-generator
[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/rc.d/init.d/network
Description=LSB: Bring up/down networking
Before=multi-user.target
Before=multi-user.target
Before=multi-user.target
Before=graphical.target
Before=network-online.target
Before=network.target
Before=vxpbx_exchanged.service

对于2)您可以创建如下内容:

代码语言:javascript
复制
#cat /etc/systemd/system/network.service.d/01-delay.conf
[Service]
ExecStartPost=/bin/sleep 5

3)您可以创建如下内容:

代码语言:javascript
复制
#cat /etc/systemd/system/postfix.service.d/01-delay.conf
[Service]
ExecStartPre=/bin/sleep 5

当然,这些只是解决办法,这需要通过一个bug来解决。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1049509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档