AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[systemd-networkd](server)

Martin Hope
Coops
Asked: 2022-04-02 14:46:22 +0800 CST

systemd-networkd 未启动 DHCPv6 客户端

  • 1

systemd-networkd 文档做出了这样的声明......

By enabling DHCPv6 support explicitly, the DHCPv6 client will
be started regardless of the presence of routers on the link

这是我正在寻找的行为 - 忽略任何可能出现或可能不出现的 RA,只启动 DHCPv6 客户端。

我没有看到任何证据表明 networkd 正在启动 dhcpv6 客户端,无论是从输出SYSTEMD_LOG_LEVEL=debug /lib/systemd/systemd-networkd还是来自tcpdump.

但是,如果我手动调用,我可以确认我的 DHCPv6 服务器正在工作dhclient。

root@client:~# dhclient -6 -v eth0
[...]
XMT: Solicit on eth0, interval 1070ms.
RCV: Advertise message on eth0 from fe80::baae:edff:fe77:7798.
[...]
XMT: Request on eth0, interval 910ms.
RCV: Reply message on eth0 from fe80::baae:edff:fe77:7798.
[...]
RCV:  | | X-- IAADDR fd11:7::175
RCV:  | | | X-- Preferred lifetime 7200.
RCV:  | | | X-- Max lifetime 7500.
RCV:  X-- Server ID: 00:01:00:01:29:d9:12:a2:02:42:0a:fe:fe:fe
message status code Success: "success"
PRC: Bound to lease 00:01:00:01:29:d9:12:a2:02:42:0a:fe:fe:fe.

配置systemd-network(由 netplan 生成)。

[Match]
MACAddress=xx:xx:xx:xx:xx:xx
Name=eth0

[Network]
DHCP=ipv6   <-- explicitly enabling dhcpv6
LinkLocalAddressing=ipv6
Address=192.168.0.1/24
IPv6AcceptRA=no

[Route]
Destination=0.0.0.0/0
Gateway=192.168.0.10

关于为什么 networkd 没有启动 DHCPv6 客户端的任何想法?

dhcpv6 systemd-networkd
  • 1 个回答
  • 232 Views
Martin Hope
TCB13
Asked: 2022-02-21 03:52:11 +0800 CST

Networkctl:手动 VLAN IP 链接

  • 0

我有一个网络接口eth0,它将我的主网络作为未标记的流量和一个带有 id 标记的流量的“管理”网络18。这是它的配置方式:

10-eth0.network:

[Match]
Name=eth0

[Link]
RequiredForOnline=yes

[Network]
DHCP=v4
VLAN=vlan18

vlan18.netdev:

[NetDev]
Name=vlan18
Kind=vlan

[VLAN]
Id=18

vlan18.network:

[Match]
Name=vlan18

[Network]
Address=10.10.1.1/24

启动时,服务器将开始eth0通过 DHCP 获取 IP,并vlan18@eth0使用静态 IP 创建“管理”网络,10.10.1.1一切正常。

我如何告诉 networkctl 创建vlan18@eth0接口,但在启动时不启动它?这个想法是有一堆脚本可以在需要时执行ip link set vlan18 up/ip link set vlan18 down访问该网络。

谢谢你。

ip systemd systemd-networkd
  • 1 个回答
  • 153 Views
Martin Hope
Misc08
Asked: 2022-02-18 11:37:38 +0800 CST

无法使用 networkd 将带有网桥的容器连接到 Internet

  • 0

我有一台运行 Ubuntu 20.04 LTS 的服务器,通过一个物理以太网接口连接到互联网。我的供应商为我分配了一个静态主 IP4(我将在这里使用 AAAA 作为该 IP),所以我的 systemd-networkd 配置文件之前看起来像这样(禁用 netplan 以直接与 systemd-networkd 一起使用):

# /etc/systemd/network/20-enp7s0.network
[Match]
Name=enp7s0

[Network]
LinkLocalAddressing=ipv6
Address=A.A.A.A/32
Gateway=fe80::1
DNS=X.X.X.1
DNS=X.X.X.2

[Route]
Destination=0.0.0.0/0
Gateway=Y.Y.Y.Y
GatewayOnlink=true

我的提供商向我的服务器添加了一个额外的 IP 地址,该地址被路由到与主 IP 相同的接口。将第二个 IP 添加到我的接口时,我可以 ping 它。因为我使用的是 systemd-nspawn 容器,所以我正在考虑使用这个额外的 IP 来为我的一个容器提供一个专有的静态 IP4(将在此处使用 BBBB)。将 DNS 条目直接映射到我的服务器上的容器会很棒,而服务器上的所有其他应用程序仍使用主 IP 地址。

所以我开始遵循 Arch wiki 关于systemd-nspawn和systemd -networkd 的良好说明。我配置了一个网桥并将所有地址从物理接口移到它:

/etc/systemd/network/br0.netdev

[NetDev]
Name=br0
Kind=bridge
MACAddress=xx:xx:xx:xx:xx:xx  # same as my phys. interface

/etc/systemd/network/20-br0.network

[Match]
Name=br0

[Network]
LinkLocalAddressing=ipv6
Address=A.A.A.A/32
Gateway=fe80::1
DNS=X.X.X.1
DNS=X.X.X.2

[Route]
Destination=0.0.0.0/0
Gateway=Y.Y.Y.Y
GatewayOnlink=true

/etc/systemd/network/20-enp7s0.network

[Match]
Name=enp7s0

[Network]
Bridge=br0

IP4 转发已启用:

$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

我使用以下配置启动我的 nspawn 容器:

/etc/systemd/nspawn/mycontainer.nspawn

[Network]
VirtualEthernet=yes
Bridge=br0

在容器内(Debian 11 Bullseye),我启用了 systemd-networkd 并使用以下配置进行联网:

# /etc/systemd/network/80-container-host0.network
[Match]
Name=host0

[Network]
Address=B.B.B.B/32
DNS=X.X.X.1
DNS=X.X.X.2

[Route]
Destination=0.0.0.0/0
Gateway=Y.Y.Y.Y
GatewayOnlink=true

这是此配置的结果。在主机上:

$ ip a

2: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet A.A.A.A/32 scope global br0
       valid_lft forever preferred_lft forever
6: vb-mycontainer@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UP group default qlen 1000
    link/ether yy:yy:yy:yy:yy:yy brd ff:ff:ff:ff:ff:ff link-netnsid 0

$ networkctl status -a
● 1: lo      [...]                                  
● 2: enp7s0                                                            
             Link File: /usr/lib/systemd/network/99-default.link       
          Network File: /etc/systemd/network/20-enp7s0.network         
                  Type: ether                                          
                 State: enslaved (configured)
                  Path: pci-0000:07:00.0                               
                Driver: igb                                            
                Vendor: Intel Corporation                              
                 Model: I210 Gigabit Network Connection                
            HW Address: xx:xx:xx:xx:xx:xx                              
                   MTU: 1500 (min: 68, max: 9216)                      
  Queue Length (Tx/Rx): 8/8                                            
      Auto negotiation: yes                                            
                 Speed: 1Gbps                                          
                Duplex: full                                           
                  Port: tp                                             
     Activation Policy: up                                             
   Required For Online: yes                                            
● 3: br0                                                                 
               Link File: /usr/lib/systemd/network/99-default.link       
            Network File: /etc/systemd/network/20-br0.network            
                    Type: bridge                                         
                   State: routable (configured)
                  Driver: bridge                                         
              HW Address: xx:xx:xx:xx:xx:xx                              
                     MTU: 1500 (min: 68, max: 65535)                     
           Forward Delay: 15s                                            
              Hello Time: 2s                                             
                 Max Age: 20s                                            
             Ageing Time: 5min                                           
                Priority: 32768                                          
                     STP: no                                             
  Multicast IGMP Version: 2                                              
    Queue Length (Tx/Rx): 1/1                                            
                 Address: A.A.A.A                                                  
                 Gateway: Y.Y.Y.Y (Juniper Networks)                  
                          fe80::1 (Juniper Networks)                     
                     DNS: X.X.X.1                                    
                          X.X.X.2                                                           
       Activation Policy: up                                             
     Required For Online: yes                                            
● 6: vb-mycontainer                                              
             Link File: /usr/lib/systemd/network/99-default.link
          Network File: n/a                                     
                  Type: ether                                   
                 State: degraded (unmanaged) 
                Driver: veth                                    
            HW Address: yy:yy:yy:yy:yy:yy                       
                   MTU: 1500 (min: 68, max: 65535)              
  Queue Length (Tx/Rx): 1/1                                     
      Auto negotiation: no                                      
                 Speed: 10Gbps                                  
                Duplex: full                                    
                  Port: tp                                      
               Address: fe80::xxxx:xxxx:xxxx:xxxx               
     Activation Policy: up                                      
   Required For Online: yes

$ ip route
default via Y.Y.Y.Y dev br0 proto static onlink

在我的容器内:

# ip a
1: lo: [...]
2: host0@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether yy:yy:yy:yy:yy:yy brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet B.B.B.B/32 scope global host0
       valid_lft forever preferred_lft forever
    inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link 
       valid_lft forever preferred_lft forever

# networkctl status -a
● 1: lo           [...]
● 2: host0                                                                     
                     Link File: n/a
                  Network File: /etc/systemd/network/80-container-host0.network
                          Type: ether
                         State: routable (configured)
                    HW Address: zz:zz:zz:zz:zz:zz
                           MTU: 1500 (min: 68, max: 65535)
                         QDisc: noqueue
  IPv6 Address Generation Mode: eui64
          Queue Length (Tx/Rx): 1/1
              Auto negotiation: no
                         Speed: 10Gbps
                        Duplex: full
                          Port: tp
                       Address: B.B.B.B
                                fe80::xxxx:xxxx:xxxx:xxxx
                       Gateway: Y.Y.Y.Y
                           DNS: X.X.X.1
                                X.X.X.2
             DHCP6 Client DUID: DUID-EN/Vendor:0000ab117511f183668420370000

Feb 17 19:45:26 mycontainer systemd-networkd[25]: host0: Link UP
Feb 17 19:45:26 mycontainer systemd-networkd[25]: host0: Gained carrier
Feb 17 19:45:27 mycontainer systemd-networkd[25]: host0: Gained IPv6LL

# ip route
default via Y.Y.Y.Y dev host0 proto static onlink

关于所有其他设置,我坚持系统默认设置。但它不起作用,我无法从主机 ping 到客人,也不能从客人 ping 到主机、互联网或网关,只是得到Destination Host Unreachable。那么我在这里想念什么吗?我对网络的了解并不深入,并且已经在这方面花费了很多时间,但已经为我可能犯的一些愚蠢的错误道歉。欢迎每条线索。谢谢!

编辑:

我查看了邻居表:

Host:

$ ip neighbor
Y.Y.Y.Y dev br0 lladdr 84:c1:c1:76:ae:9b REACHABLE <- gateway
fe80::f80b:aff:fe80:d92 dev vb-mycontainer  FAILED
fe80::6c91:a7ff:fe1f:19a2 dev br0  FAILED
fe80::1 dev br0 lladdr 84:c1:c1:76:ae:9b router STALE
fe80::f80b:aff:fe80:d92 dev br0 lladdr fa:0b:0a:80:0d:92 STALE

Guest:

$ ip neighbor
fe80::7e10:c9ff:fe21:ed87 dev host0 lladdr 7c:10:c9:21:ed:87 router STALE
fe80::6c91:a7ff:fe1f:19a2 dev host0  FAILED
fe80::1 dev host0 lladdr 84:c1:c1:76:ae:9b router STALE

fe80::6c91:a7ff:fe1f:19a2 是主机上虚拟接口 vb-mycontainer 的链接区域设置地址。所以我假设的客人和主人之间似乎存在连接问题?

bridge linux-networking systemd-networkd static-ip
  • 1 个回答
  • 295 Views
Martin Hope
MikeyB
Asked: 2021-08-24 09:56:17 +0800 CST

systemd-networkd 配置未添加任何路由且未完成配置

  • 1

在 Debian 10 上使用 systemd 241,我正在尝试为边缘服务器配置 systemd-networkd 样式的网络。

我遇到的问题是,systemd-networkd启动时,它没有添加 v4 或 v6 路由,但报告它仍处于“配置”状态:

IDX LINK             TYPE               OPERATIONAL SETUP
  1 lo               loopback           carrier     unmanaged
  2 eth0             ether              carrier     configuring
  3 eth1             ether              carrier     configuring
  6 docker0          bridge             routable    unmanaged
  8 veth9a70b3d      ether              degraded    unmanaged
 32 ext              bond               routable    configuring
 33 int              vlan               routable    configured

以下是启动时的调试日志networkd:

Aug 23 17:15:52 te1a systemd[1]: Started Network Service.
Aug 23 17:15:52 te1a systemd-networkd[29413]: ext: Created
Aug 23 17:15:52 te1a systemd-networkd[29413]: ext: Link state is up-to-date
Aug 23 17:15:52 te1a systemd-networkd[29413]: No virtualization found in DMI
Aug 23 17:15:52 te1a systemd-networkd[29413]: No virtualization found in CPUID
Aug 23 17:15:52 te1a systemd-networkd[29413]: Virtualization XEN not found, /proc/xen does not exist
Aug 23 17:15:52 te1a systemd-networkd[29413]: This platform does not support /proc/device-tree
Aug 23 17:15:53 te1a systemd-networkd[29413]: UML virtualization not found in /proc/cpuinfo.
Aug 23 17:15:53 te1a systemd-networkd[29413]: This platform does not support /proc/sysinfo
Aug 23 17:15:53 te1a systemd-networkd[29413]: Found VM virtualization none
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: found matching network '/etc/systemd/network/ext.network'
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Setting address genmode for link
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Enslaving by 'int'
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Creating
Aug 23 17:15:53 te1a systemd-networkd[29413]: veth9a70b3d: Link state is up-to-date
Aug 23 17:15:53 te1a systemd-networkd[29413]: veth9a70b3d: found matching network '/etc/systemd/network/veth.network
'
Aug 23 17:15:53 te1a systemd-networkd[29413]: veth9a70b3d: Unmanaged
Aug 23 17:15:53 te1a systemd-networkd[29413]: docker0: Link state is up-to-date
Aug 23 17:15:53 te1a systemd-networkd[29413]: docker0: Unmanaged
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth1: Link state is up-to-date
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth1: found matching network '/etc/systemd/network/eth1.network'
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth1: Setting address genmode for link
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth1: Enslaving by 'ext'
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Enslaving link 'eth1'
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth0: Link state is up-to-date
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth0: found matching network '/etc/systemd/network/eth0.network'
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth0: Setting address genmode for link
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth0: Enslaving by 'ext'
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Enslaving link 'eth0'
Aug 23 17:15:53 te1a systemd-networkd[29413]: lo: Link state is up-to-date
Aug 23 17:15:53 te1a systemd-networkd[29413]: lo: Unmanaged
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: New device has no master, continuing without
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Flags change: +MULTICAST +BROADCAST
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Link 33 added
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: udev initialized link
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: netdev has index 33
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: netdev ready
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Saved original MTU: 1500
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Joined netdev
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Bringing link up
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth1: MAC address: 02:f9:36:9d:17:aa
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth1: Flags change: +SLAVE +UP
Aug 23 17:15:53 te1a systemd-networkd[29413]: LLDP: Started LLDP client
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth1: Started LLDP.
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth1: Joined netdev
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth0: MAC address: 02:f9:36:9d:17:aa
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth0: Flags change: +SLAVE +UP
Aug 23 17:15:53 te1a systemd-networkd[29413]: LLDP: Started LLDP client
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth0: Started LLDP.
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth0: Joined netdev
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth1: Flags change: +LOWER_UP +RUNNING
Aug 23 17:15:53 te1a systemd-networkd[29413]: eth1: Gained carrier
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Link state is up-to-date
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: found matching network '/etc/systemd/network/int.network'
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Setting address genmode for link
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Bringing link up
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Flags change: +UP
Aug 23 17:15:53 te1a systemd-networkd[29413]: LLDP: Started LLDP client
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Started LLDP.
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Flags change: +UP +LOWER_UP
Aug 23 17:15:53 te1a systemd-networkd[29413]: LLDP: Started LLDP client
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Started LLDP.
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Flags change: +RUNNING
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Gained carrier
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Setting addresses
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Flags change: +LOWER_UP +RUNNING
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Gained carrier
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Setting addresses
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Updating address: 10.0.1.210/24 (valid forever)
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Updating address: 2001:db8:2:100::d2/64 (valid forever)
Aug 23 17:15:53 te1a systemd-networkd[29413]: int: Addresses set
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Updating address: 192.0.2.196/27 (valid forever)
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Updating address: 2001:db8:0:ff01::c4/64 (valid forever)
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Updating address: 192.0.2.217/32 (valid forever)
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Updating address: 2001:db8:0:ff01::d9/128 (valid forever)
Aug 23 17:15:53 te1a systemd-networkd[29413]: ext: Addresses set
Aug 23 17:15:54 te1a systemd-networkd[29413]: eth0: Flags change: +LOWER_UP +RUNNING
Aug 23 17:15:54 te1a systemd-networkd[29413]: eth0: Gained carrier
Aug 23 17:15:55 te1a systemd-networkd[29413]: ext: Adding address: fe80::f9:36ff:fe9d:17aa/64 (valid forever)
Aug 23 17:15:55 te1a systemd-networkd[29413]: ext: Gained IPv6LL
Aug 23 17:15:55 te1a systemd-networkd[29413]: int: Adding address: fe80::f9:36ff:fe9d:17aa/64 (valid forever)
Aug 23 17:15:55 te1a systemd-networkd[29413]: int: Gained IPv6LL
Aug 23 17:15:55 te1a systemd-networkd[29413]: ext: Updating address: 2001:db8:0:ff01::d9/128 (valid forever)
Aug 23 17:15:55 te1a systemd-networkd[29413]: int: Updating address: 2001:db8:0:100::d2/64 (valid forever)
Aug 23 17:15:55 te1a systemd-networkd[29413]: int: Configured
Aug 23 17:15:55 te1a systemd-networkd[29413]: ext: Updating address: 2001:db8:0:ff01::c4/64 (valid forever)
Aug 23 17:15:56 te1a systemd-networkd[29413]: LLDP: Invoking callback for 'added' event.
Aug 23 17:15:56 te1a systemd-networkd[29413]: LLDP: Successfully processed LLDP datagram.
(repeats)

这里是配置文件:

# eth0.network
[Match]
Name=eth0

[Link]
RequiredForOnline=no

[Network]
Bond=ext
# eth1.network
[Match]
Name=eth1

[Link]
RequiredForOnline=no

[Network]
Bond=ext
# ext.netdev
[NetDev]
Name=ext
Kind=bond

[Bond]
Mode=802.3ad
MIIMonitorSec=0.1
LACPTransmitRate=fast
# ext.network
[Match]
Name=ext

[Link]

[Network]
IPv6AcceptRA=false

[Address]
Address=192.0.2.196/27
[Route]
Gateway=192.0.2.193

[Address]
Address=2001:DB8:0:FF01::C4/64
[Route]
Gateway=2001:DB8:0:FF01::1
Metric=128
# ext.network.d/ext-a1.conf
[Match]
Name=ext

[Address]
Address=192.0.2.217/32
PreferredLifetime=0
# ext.network.d/ext-a2.conf
[Match]
Name=ext

[Address]
Address=2001:DB8:0:FF01::D9/128
PreferredLifetime=0
# ext.network.d/has-vlan-int.conf
[Match]
Name=ext

[Network]
VLAN=int
# int.netdev
[NetDev]
Name=int
Kind=vlan

[VLAN]
Id=13
# int.network
[Match]
Name=int

[Link]

[Network]
IPv6AcceptRA=false

[Address]
Address=10.0.1.210/24

[Address]
Address=2001:DB8:0:100::D2/64
# veth.network
[Match]
Name=veth*

[Link]
Unmanaged=yes
RequiredForOnline=no

怎么了?

linux systemd systemd-networkd
  • 1 个回答
  • 222 Views
Martin Hope
Ingo
Asked: 2021-02-11 03:08:59 +0800 CST

如何在 Linux 机器上用不同的 VLAN 标签标记 IPv4 和 IPv6 数据包?

  • 0

我想用不同的 VLAN 标签标记来自启用双栈的连接的传入 IPv4 和 IPv6 数据包,例如 IPv4 数据包应该转到 VLAN4,而 IPv6 数据包应该转到 VLAN6。更一般地说,我想将混合 IPv4 和 IPv6 数据包的双栈 ip 流拆分为两个干净的单栈网络,这样您就不会在 IPv6 网络上找到任何 IPv4 数据包,反之亦然。我需要它来测试和支持仅 IPv6 的网络。当然,我仍然需要 IPv4 数据。它不能简单地被丢弃。

                          Linux Box
                       Debian Bullseye
       untagged         ┏━━━━━━━━━━━┓         tagged (trunk)
════════════════════════┫eth0  vlan4┣═╦══════════════════════
     IPv4 and IPv6      ┃      vlan6┣═╝eth1  IPv4 with VLAN4 tag
      dual stack        ┗━━━━━━━━━━━┛        IPv6 with VLAN6 tag

我查看了 Linux 网桥,nftables但无法找到解决方案。我怎样才能实现这种选择性标记?

debian vlan ipv6 ipv4 systemd-networkd
  • 2 个回答
  • 803 Views
Martin Hope
Minsheng Liu
Asked: 2021-02-08 08:31:38 +0800 CST

如何将“ip route add local 0.0.0.0/0 dev lo table 100”翻译成systemd-networkd?

  • 1

我正在尝试设置一个软件路由器,目的是将数据包路由到路由器上的代理服务器。我正在阅读的教程具有以下路由规则:

ip rule add fwmark 1 table 100
ip route add local 0.0.0.0/0 dev lo table 100

以及以下 iptables 规则:

iptables -t mangle -N V2RAY
iptables -t mangle -A V2RAY -d [Private Addresses] -j RETURN
iptables -t mangle -A V2RAY -p udp -j TPROXY --on-port 12345 --tproxy-mark 1
iptables -t mangle -A V2RAY -p tcp -j TPROXY --on-port 12345 --tproxy-mark 1
iptables -t mangle -A PREROUTING -j V2RAY

整个事情完美无缺。但是现在我开始使用它systemd-networkd来避免任何启动脚本,而且我在转换ip route add local 0.0.0.0/0 dev lo table 100为systemd-networkd语言时遇到了麻烦。

我的第一个问题是,这条路线有什么作用?到目前为止我的理解是:

  • iptables添加防火墙墙标记 1.
  • 该规则选择标记为 1 的所有数据包使用路由表 100。
  • 该路由添加到表 100,因此它仅适用于标记为 1 的数据包。
  • “0.0.0.0/0”部分表示它是默认路由。
  • 但是这里的“本地”是什么意思?为什么device lo?为什么我们需要这里的路线?iptables 不能直接处理吗?

我的第二个问题是如何在systemd-networkd.

为了匹配带有标记 1 的数据包,这似乎很容易(并且在我的路由器上工作):

[Match]
Name = *

[RoutingPolicyRule]
FirewallMark = 1
Table = 100

我不确定是否Name = *需要。这是否确保来自任何设备的任何数据包,只要它具有标记 1,都将使用表 100 路由?或者我可以在这里匹配一些特定的网络设备吗?

但是,我不能在 systemd-networkd 中创建路由。到目前为止,我的尝试是:

[Match]
Name = lo

[Route]
Type = local
Destination = 0.0.0.0/0
Table = 100

但似乎这没有效果:ip route show table 100实际上给出了:

Error: ipv4: FIB table does not exist.
Dump terminated

我应该如何处理这个?

linux-networking systemd-networkd
  • 1 个回答
  • 1108 Views
Martin Hope
Ingo
Asked: 2021-01-27 09:42:45 +0800 CST

使用 libvirt 为 Linux 桥接虚拟机提供 VLAN 支持

  • 1

我正在使用systemd-networkd在所有节点上使用Debian Bullseye为KVM(基于内核的虚拟机)配置由libvirt管理的网络接口。我想在使用Linux Bridge的虚拟机上支持透明 VLAN 。对于 Linux Bridge,这不受libvirt支持。

例如,我有一个虚拟机,其三个接口连接到网桥:

host ~$ virsh attach-interface guest-vm bridge br0 --config
host ~$ virsh attach-interface guest-vm bridge br0 --config
host ~$ virsh attach-interface guest-vm bridge br0 --config

现在,当运行来宾时,我将在桥上看到:

host ~$ sudo bridge link
3: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0 state forwarding priority 32 cost 4
30: vnet13: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0 state forwarding priority 32 cost 100
31: vnet14: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0 state forwarding priority 32 cost 100
32: vnet15: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0 state forwarding priority 32 cost 100

所有接口都成功连接到网桥。enp1s0是主机上的上行链路接口。现在查看网桥上的 VLAN id 时,我看到:

~$ sudo bridge vlan
port              vlan-id
enp1s0            10
                  26
                  30
                  50

仅显示主机接口及其 VLAN id。

有没有办法将 VLAN id 附加到vnet*来宾的其他接口,以便它可以使用它们?

debian vlan kvm-virtualization bridge systemd-networkd
  • 2 个回答
  • 4186 Views
Martin Hope
Francis
Asked: 2020-10-23 08:12:26 +0800 CST

在 Ubuntu 20.04 上使用 clevis/tang 时如何删除分配的 dhcp ip

  • 0

我在 Ubuntu 服务器 (NBDE) 上使用 clevis/tang 解锁我的驱动器。它工作正常,但即使我的服务器配置为使用 /etc/netplan/01-netcfg.yaml 中的静态 ip,我的网络接口也会监听启动过程中的两个 dhcp ip。启动完成后如何删除它?

我使用以下命令启用了 clevis:

sudo apt install clevis clevis-systemd clevis-initramfs clevis-luks
sudo clevis luks bind -d /dev/sda3 sss '{"t": 1, "pins": {"tang": [{"url": "http://10.1.1.1:8888"},{"url": "http://10.2.2.2:8888"}]}}' 
sudo update-initramfs -u -k 'all'

重新启动我的服务器后,网络接口获得了 3 个 ips!我在 /etc/netplan 中配置的静态 ip 和两个 dhcp ip。一个 dhcp ip 被 clevis 进程使用(我在我的 tang 服务器上看到了一个踪迹)。另一个似乎是在 U 形夹过程完成后分配的。

我能够制作 clevis 来删除它使用的 dhcp ip。我注意到 at 的脚本/usr/share/initramfs-tools/scripts/local-bottom/clevis与 clevis git 存储库中的脚本不同。我iface=$(basename "$iface")在if [ -e "$iface" ]; then.

但是我仍然在我的界面上使用一个无用的 dhcp ip。当我执行时netplan apply,systemd-networkd 甚至刷新 dhcp 租约,就像您可以在以下日志提取中一样:

Oct 22 12:04:56 testserver systemd[1]: Reloading.
Oct 22 12:04:56 testserver systemd[1]: /lib/systemd/system/dbus.socket:5: ListenStream= references a path below legacy directory /var/run/, updating /var/run/dbus/system_bus_socket → /run/dbus/system_bus_socket; please update the unit file accordingly.
Oct 22 12:04:56 testserver systemd[1]: systemd-networkd-wait-online.service: Succeeded.
Oct 22 12:04:56 testserver systemd[1]: Stopped Wait for Network to be Configured.
Oct 22 12:04:56 testserver systemd[1]: Stopping Network Service...
Oct 22 12:04:57 testserver systemd[1]: systemd-networkd.service: Succeeded.
Oct 22 12:04:57 testserver systemd[1]: Stopped Network Service.
Oct 22 12:04:57 testserver systemd[1]: Condition check resulted in OpenVSwitch configuration for cleanup being skipped.
Oct 22 12:04:57 testserver systemd[1]: Starting Network Service...
Oct 22 12:04:57 testserver systemd[1]: Condition check resulted in OpenVSwitch configuration for cleanup being skipped.
Oct 22 12:04:57 testserver systemd-networkd[1711]: eno3: Gained IPv6LL
Oct 22 12:04:57 testserver systemd-networkd[1711]: Enumeration completed
Oct 22 12:04:57 testserver systemd[1]: Started Network Service.
Oct 22 12:04:57 testserver systemd-networkd[1711]: eno3: IPv6 successfully enabled
Oct 22 12:04:57 testserver systemd-networkd[1711]: eno3: DHCPv4 address 10.1.1.71/21 via 10.1.0.1

但我在 netplan 配置中根本不使用 dhcp!

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  #renderer: networkd
  ethernets:
    eno3:
      dhcp4: no
      addresses:
      - 10.1.0.99/21
      gateway4: 10.1.0.1
      nameservers:
        addresses:
        - 10.1.0.3
        - 10.1.0.33

当我启动时netplan --debug apply,我看到dhcp4配置合并后启用!?但与什么合并?可以从/run/netplan/eno3.yaml? 在该文件中,我看到启用了 dhcp 的动态网络配置。什么会生成该文件?

ubuntu ubuntu-20.04 netplan systemd-networkd
  • 1 个回答
  • 705 Views
Martin Hope
sunknudsen
Asked: 2020-08-06 15:58:31 +0800 CST

如何在 /etc/systemd/network 中创建虚拟接口?

  • 2

我正在尝试为 systemd 创建与以下内容等效的内容。

auto strongswan0
iface strongswan0 inet static
  address 10.0.2.1/24
  pre-up ip link add strongswan0 type dummy
networking debian systemd systemd-networkd
  • 1 个回答
  • 1323 Views
Martin Hope
sunknudsen
Asked: 2020-08-06 10:43:40 +0800 CST

如何使用 Systemd-Networkd 配置接口别名?

  • 4

我正在尝试将以下别名从移植/etc/network/interfaces到/etc/systemd/network/eth0.network.

auto eth0:1
iface eth0:1 inet static
    address 10.0.2.1/24
networking debian systemd systemd-networkd
  • 1 个回答
  • 2126 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve