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 / 问题

问题[namespaces](server)

Martin Hope
Kira
Asked: 2022-01-03 17:11:26 +0800 CST

强制新进程使用特定的网络接口(使用 netns/network 命名空间)

  • 0

我在 Ubuntu 20.04 机器上有许多可用的接口。除其他外 enx0c5b8f279a64,usb0后者被用作默认值。我想确保在终端中启动的特定进程将仅使用其中一个接口(enx0c5b8f279a64即使另一个接口是默认接口)。如果该进程启动并且所选 enx0c5b8f279a64 接口关闭,则它甚至不应该尝试使用任何其他接口作为后备(就好像从该进程的角度来看其他接口甚至不存在一样)。

我认为这ip netns是要走的路,但我无法实施任何可行的解决方案。我已经尝试过https://superuser.com/a/750412但是Destination Host Unreachable如果我尝试 ping我会得到8.8.8.8:(

输出的相关部分ip a s:

 9: enx0c5b8f279a64: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
     link/ether 12:12:12:12:12:12 brd ff:ff:ff:ff:ff:ff
     inet 192.168.7.100/24 brd 192.168.7.255 scope global dynamic noprefixroute enx0c5b8f279a64
        valid_lft 84611sec preferred_lft 84611sec
     inet6 2323::2323:2323:2323:2323/64 scope link noprefixroute 
        valid_lft forever preferred_lft forever
 10: usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
     link/ether 34:34:34:34:34:34 brd ff:ff:ff:ff:ff:ff
     inet 192.168.42.**47**/24 brd 192.168.42.255 scope global dynamic noprefixroute usb0
        valid_lft 1858sec preferred_lft 1858sec
     inet6 4545:454:545:4545:454:5454:5454:5454/64 scope global temporary deprecated dynamic 
        valid_lft 2461sec preferred_lft 0sec
     inet6 5656:565:656:5656:5656:5656:5656:5656/64 scope global deprecated dynamic mngtmpaddr noprefixroute 
        valid_lft 2461sec preferred_lft 0sec
     inet6 6767::6767:6767:6767:6767/64 scope link noprefixroute 
        valid_lft forever preferred_lft forever

和路由表:

 route -n
 Kernel IP routing table
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
 0.0.0.0         192.168.7.1     0.0.0.0         UG    100    0        0 enx0c5b8f279a64
 0.0.0.0         192.168.42.129  0.0.0.0         UG    101    0        0 usb0
 192.168.7.0     0.0.0.0         255.255.255.0   U     100    0        0 enx0c5b8f279a64
 192.168.42.0    0.0.0.0         255.255.255.0   U     101    0        0 usb0

到目前为止,我尝试过的所有解决方案都以类似的方式开始:

# create namespace
sudo ip netns add nspace0
# create link
sudo ip link add veth0 type veth peer name veth1
# move link
sudo ip link set veth1 netns nspace0

# DO SOME MAGIC 
# (none of the solutions that I have tried to adapt here worked for me so far).
...

# run process in namespace (here I use curl as an example) 
sudo ip netns exec nspace0 curl ifconfig.me/ip

但问题是MAGIC部分。我已经看到了许多使用网桥和其他 IP 转发解决方案的方法。不幸的是,到目前为止,这些都没有对我有用,而且我并不精通网络,无法诊断和修复。

ip iproute2 namespaces network-namespace net
  • 1 个回答
  • 426 Views
Martin Hope
Dobhaweim
Asked: 2021-10-21 01:17:39 +0800 CST

按名称跨所有命名空间获取资源 - clusterrole 与所有其他资源

  • 0

可能是此类问题的错误论坛,但我想知道为什么:

k get daemonsets.apps sysdig-agent -A

返回:

error: a resource cannot be retrieved by name across all namespaces

尽管

k get clusterrole sysdig-agent -A

返回:

NAME           CREATED AT
sysdig-agent   2019-05-28T08:04:01Z

实际上,我不认为您可以按名称搜索具有任何对象类型的所有名称空间 - 我很惊讶它适用于 clusterrole,想知道这背后的原因是什么?

谢谢。

kubernetes namespaces
  • 1 个回答
  • 318 Views
Martin Hope
Paco V.
Asked: 2021-04-17 03:19:45 +0800 CST

为 Kubernetes 构建多租户托管控制平面

  • -1

我注意到有一些云提供商为 kubernetes 提供托管解决方案,我想知道此产品中涉及的各种组件是什么。

我的直觉告诉我会涉及到一些组件,例如 , NetworkPolicy,OPA但我无法确定整体项目概述应该如何,因为集群的每个用户的 API 都是相同的。

他们是在部署各种控制平面,还是为每个用户部署单独的控制平面?

cloud kubernetes namespaces
  • 1 个回答
  • 45 Views
Martin Hope
D3181
Asked: 2020-11-04 21:25:52 +0800 CST

Alpine linux veth 网络/网桥没有互联网

  • 2

我一直在尝试按照多个指南为 2 个可以在 alpine linux 上相互通信的命名空间设置 veth-pair。到目前为止,我在命名空间之间进行了通信,但两个命名空间都不能连接/ping 到任何外部 ip/url。

这是我完全使用的指南配置:

  ip netns add namespace1
  ip netns add namespace2
  ip netns exec namespace1 ip address show
  ip link add veth1 type veth peer name br-veth1
  ip link add veth2 type veth peer name br-veth2
  ip link set veth1 netns namespace1
  ip link set veth2 netns namespace2
  ip netns exec namespace1 ip address show
  ip netns exec namespace1 ip addr add 192.168.1.11/24 dev veth1
  ip netns exec namespace1 ip address show
  ip netns exec namespace2 ip addr add 192.168.1.12/24 dev veth2
  
  # Create the bridge device naming it `br1`
  # and set it up:
  ip link add name br1 type bridge
  ip link set br1 up
  ip link | grep br1
  
  # Set the bridge veths from the default
  # namespace up.
  ip link set br-veth1 up
  ip link set br-veth2 up
  ip netns exec namespace1 ip link set veth1 up
  ip netns exec namespace2 ip link set veth2 up
  
  # Add the br-veth* interfaces to the bridge
  # by setting the bridge device as their master.
  ip link set br-veth1 master br1
  ip link set br-veth2 master br1
  bridge link show br1
  ip addr add 192.168.1.10/24 brd + dev br1
  ip -all netns exec ip route add default via 192.168.1.10
  iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE

我还验证了 /etc/sysctl.conf 包含

net.ipv4.ip_forward = 1

我也运行了这个命令以防万一

sysctl -w net.ipv4.ip_forward=1

我的 resolv.conf 包含:

nameserver 8.8.8.8

当我跑步时

ip netns exec namespace1 ip route

我得到结果:

192.168.1.0/24 dev veth1 proto kernel scope link src 192.168.1.11

如果我运行一个常规的 ip 路由列表,我会得到:

192.168.56.0 eth0 proto kernel scope link src 192.168.56.217
192.168.1.0/24 dev br1 proto kernel scope link src 192.168.1.10

我不知道为什么上面的设置不起作用,因为大多数指南似乎建议主机和命名空间应该能够在执行 MASQUERADE 并设置命名空间的默认路由之后进行通信,但是网络不是我的核心研究领域,所以任何建议都会非常有用。如果缺少任何信息,请随时发表评论,如果我错过了什么,我会尽力提供。

ip iptables namespaces network-namespace
  • 1 个回答
  • 830 Views
Martin Hope
Danny
Asked: 2020-07-08 07:36:36 +0800 CST

在 Apache/PHP-FPM 中禁用挂载命名空间

  • 0

对于管理 NFS 挂载点的 Web GUI,我们在迁移到 Centos 8 后遇到了问题。

JS 比林斯指出:

CentOS8 在私有命名空间中运行 httpd(有自己私有的 /tmp)。由于让 httpd 能够运行 sudo 是一个非常糟糕的主意,因此我从未尝试过,但我怀疑您所看到的事实是挂载发生在私有命名空间中

效果是mount(8)通过调用挂载 NFS 分区system()的程序或什至程序运行,分区仅对后续 HTTP 调用可见,而不对服务器本身上运行的任何进程可见。setuidmount(2)

有没有办法配置apache和/或php-fpm不使用挂载命名空间?

  • Centos 8 内核 4.18.0-147.el8.x86_64
  • SELinux 被禁用
  • Apache/2.4.37 (centos)
  • PHP 7.2.11

编辑我

根据迈克尔汉普顿的建议,更改/etc/systemd/system/php-fpm.service为禁用PrivateTmp解决了问题:

[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target

[Service]
Type=notify
ExecStart=/usr/sbin/php-fpm --nodaemonize
ExecReload=/bin/kill -USR2 $MAINPID

# Disable private mount namespace
PrivateTmp=false
RuntimeDirectory=php-fpm
RuntimeDirectoryMode=0755

[Install]
WantedBy=multi-user.target
mount php-fpm apache-2.4 namespaces
  • 1 个回答
  • 688 Views
Martin Hope
SandiJ
Asked: 2020-04-07 17:36:24 +0800 CST

在现有的网络命名空间中运行 docker?

  • 2

是否可以在现有命名空间内运行 docker 容器?我使用以下方法创建了一个命名空间: ip netns add client 现在我想在该命名空间内运行一个容器(带有网桥或主机网络,只要有可能)?

bridge docker namespaces network-namespace
  • 1 个回答
  • 1381 Views
Martin Hope
batfastad
Asked: 2010-02-20 05:14:07 +0800 CST

SBS 2003 与多个内部邮件服务器共享 SMTP 地址空间

  • 0

我们目前有一个 11 个用户的 SBS 2003 服务器来处理我们的电子邮件,但是我正在尝试设置一个到 Zimbra 的测试迁移。对于此测试迁移,我希望将一些电子邮件地址移至 Zimbra,但其余的仍保留在 SBS 2003 上,都在同一个域下。

在 Microsoft 术语中,我发现这称为共享命名空间/地址空间。我浏览了各种文章,到目前为止我发现的最好的指南是http://support.microsoft.com/kb/321721

我打算将新的 Zimbra 服务器设置为新的主服务器,因此 Zimbra 服务器的 25 端口通过我们的防火墙对互联网开放。这样做是因为在 Zimbra 中配置路由很容易,以便将特定的电子邮件地址传递到旧的 SBS 服务器。我已经在 Zimbra 中设置了路由并且它运行良好,所以从 Zimbra 帐户发送到 [email protected] 会直接发送到旧的 SBS Exchange Server。我还没有在我们的防火墙上切换端口转发,所以 SBS 2003 机器在技术上仍然是主要的。

问题是我无法让地址空间共享在 SBS 2003 中工作......因此,如果 SBS 服务器上的用户尝试发送到 SBS 中不再存在的帐户,它将被传递到新的邮件服务器.
我几乎完全按照那个 MS KB 文章的字眼,但是当我尝试发送给现在居住在 Zimbra 上的用户时,我仍然收到来自 Exchange 的退回邮件。

所以这就是我所做的,我编辑了我们的默认收件人策略并将@example.local 添加为新的 SMTP 地址,并删除了@ourdomain.com
我添加了一个名为拆分命名空间的新收件人策略,新的 SMTP 地址为 @ourdomain.com 和取消选中“此 Exchange 组织负责向此地址发送所有邮件”复选框,我认为这应该意味着 Exchange 现在对该域没有权威。
所以我在系统管理器中列出了 3 个收件人策略:
1)优先级为 1 的邮箱管理器策略,它从用户邮箱中删除超过 600 天的邮件
2)优先级最低的默认策略
3)优先级为 2 的拆分命名空间策略

然后我进入我们的默认 SMTP 虚拟服务器的属性并检查以确保“将具有未解析收件人的所有邮件转发到主机”文本框在“消息”选项卡下是清晰的。已经很清楚了。

下一步是创建一个额外的 SMTP 连接器,称为拆分命名空间 SMTP 连接器,并将“通过此连接器转发所有邮件到以下智能主机”设置为方括号中新 Zimbra 机器的 LAN IP 地址... [192.168. 1.5]。添加了服务器的本地桥头 - 默认 SMTP 虚拟服务器
进入“地址空间”选项卡并添加了 ourdomain.com 的新 SMTP 地址,成本设置为 1。我还勾选了“允许将邮件中继到这些域”框. 检查了交付选项,它设置为“始终运行”

编辑了我们现有的 SmallBusiness SMTP 连接器,将 * 星号地址空间的成本更改为 20,因此理论上新的 SMTP 连接器应该在此之前处理。

然后重新启动 MS Exchange 路由服务和 SMTP 服务

但是,当我尝试通过我们的 SBS 服务器向 Zimbra 服务器发送电子邮件时,我收到以下退回消息:“该电子邮件帐户在此邮件发送到的组织中不存在。检查电子邮件地址,或者直接联系收件人以找出正确的地址。”

所以它不起作用,或者我在某个地方搞砸了。任何人都知道我可以检查/尝试的其他内容吗?
这在 SBS 2003 中是否支持?如果有某种疯狂的限制阻止我这样做,我不会感到惊讶。

smtp windows-sbs-2003 share namespaces
  • 2 个回答
  • 1231 Views
Martin Hope
Matt
Asked: 2009-08-06 22:42:23 +0800 CST

访问 DFS 命名空间时长时间停顿

  • 23

我们最近迁移了我们的 Windows 网络以使用 DFS 来共享文件。DFS 运行良好,除了一个烦人的问题:用户在尝试访问他们已经有一段时间没有访问过的 DFS 命名空间时会遇到明显的延迟。我试图解决这个问题,但到目前为止还没有成功,我希望这里的人可能有一些指示来帮助解决这个问题。

首先,我们网络的一些背景:

该网络使用具有两个 Windows 2008 DC 和两个 DNS 服务器(每个 DC 上一个)的 Windows 2008 功能级别 Active Directory 域。网络只有 DNS - 没有 WINS。所有计算机都位于同一站点并通过千兆以太网连接。在 Windows 2008 模式下,我们大约有 20 个基于域的 DFS 命名空间,每个 DFS 命名空间有两个 Windows 2008 DFS 命名空间服务器(所有命名空间都使用相同的两台服务器)。所有命名空间服务器都处于 FQDN 模式,并且所有文件夹目标都使用它们的 FQDN 指定。所有计算机都装有最新的服务包和补丁。

实际的文件夹目标(即我们的 DFS 文件夹指向的 SMB 共享)分散在多个文件和应用程序服务器上,它们都运行 Windows 2008 以及两个运行 Windows 2003 R2 的应用程序服务器,根本没有复制设置(例如,当前的所有 DFS 文件夹只有一个文件夹目标)。

有关该问题的更多详细信息:

命名空间访问延迟通常为 1 到 10 秒,并且似乎发生在特定计算机大约 5 分钟或更长时间未访问请求的命名空间时。

例如,如果用户超过 5 分钟未访问 \\domain.name\namespace1\ 并尝试通过 Windows 资源管理器访问 \\domain.name\namespace1\,则资源管理器窗口将冻结 1 - 10 秒,然后才最终恢复并显示存在于 \\domain.name\namespace1 中的文件夹。如果他们随后关闭资源管理器窗口并尝试在五分钟内再次访问 \\domain.name\namespace1\,则内容将几乎立即显示 - 如果他们等待的时间超过五分钟,它将再次经历 1 - 10 秒的暂停。

一旦“进入”命名空间,一切都变得美好而活泼,只是与命名空间的初始连接很慢。

浏览延迟似乎会影响我们使用的所有 Windows 变体(Windows 2008 x64 SP2、Windows 2003 R2 x86 SP2、Windows XP Pro x86 SP3)——在 Windows XP / 2003 中可能比在 Windows 2008 中更糟,但我'不确定差异是否不仅仅是心理上的。

直接访问底层文件夹目标完全没有延迟 - 即,如果直接访问 DFS 指向的 SMB 共享(绕过 DFS),则没有暂停。

在故障排除期间,我注意到我们所有 DFS 根的“缓存持续时间”都设置为 300 秒 - 5 分钟。鉴于这与触发暂停所需的时间相同,我假设此缓存在某种程度上是相关的,尽管我不确定客户端上缓存的确切内容,因此在 5 分钟后需要再次查找哪些内容。

在尝试解决问题时,我已经尝试/检查了以下内容(没有成功):

  • 在两个域控制器上运行 dcdiag - 没有发现问题
  • 完成了一些基本的 DNS 服务器检查而没有发现任何问题 - 我不知道如何详细检查 DNS 服务器,但我要补充一点,网络没有表现出任何其他可能指向 DNS 问题的奇怪行为
  • 在客户端和服务器上禁用防病毒
  • 从几个命名空间中删除一个命名空间服务器 - 没有区别

所以这就是我要做的——而且我没有想法。谁能建议可能导致延误的原因和/或我接下来应该尝试什么?

windows network-share dfs server-message-block namespaces
  • 14 个回答
  • 92245 Views
Martin Hope
3 revs, 2 users 67%anon
Asked: 2009-06-18 23:57:09 +0800 CST

虚拟机的命名约定

  • 6

虚拟机的良好命名约定或方案是什么?

我们正在我们的总部建立一个虚拟化硬件服务器集群,并在我们的每个州办公室建立一个类似的集群(每个州一个集群)。

我们需要命名虚拟化硬件服务器,这很容易,但我们还需要为将在虚拟化硬件上运行的虚拟机 (VM) 制定命名约定。

命名约定需要具有足够的描述性,以便管理员和开发人员轻松识别 VM 的用途,但又要足够短,以免在键盘上产生重复性劳损。

为了让事情更有趣,我们现有的硬件命名约定在企业的功能区域之间是不同的。内部一致,但不同。有不同的文化,例如 AIX、HP-UX、Linux、Windows。

我最初的想法是构建一个 DNS 或 Active Directory 列表,每台机器有两个名称:一个名称在整个企业中是唯一的,并且具有相当的描述性;以及功能区域本地的另一个名称。基本上,企业VM名称空间和功能区域VM名称空间。企业VM名称可能很长,因为它将主要是使用它们用于功能区域VM名称的跨境映射的机器。功能区域的名称需要简短而简洁,以便开发人员可以轻松地管理它们。

virtual-machines namespaces
  • 2 个回答
  • 9632 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