标签: linux-networking

“genmask”和“netmask”之间的区别?

route -nLinux 上的输出中,您会得到如下信息:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.1        0.0.0.0         UG    0      0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.169.254 0.0.0.0         255.255.255.255 UH    0      0        0 eth0
Run Code Online (Sandbox Code Playgroud)

我知道这Genmask是指路由的网络掩码部分,但为什么它被称为“Genmask”而不是“网络掩码”,就像其他地方一样?这实际上是我见过“Genmask”的唯一地方。

networking routing linux-networking

12
推荐指数
1
解决办法
1万
查看次数

为什么处于 FIN_WAIT2 状态的连接不被 Linux 内核关闭?

我有一个叫长寿命过程中的问题KUBE-代理的存在部分Kubernetes

问题是有时连接会处于 FIN_WAIT2 状态。

$ sudo netstat -tpn | grep FIN_WAIT2
tcp6       0      0 10.244.0.1:33132        10.244.0.35:48936       FIN_WAIT2   14125/kube-proxy
tcp6       0      0 10.244.0.1:48340        10.244.0.35:56339       FIN_WAIT2   14125/kube-proxy
tcp6       0      0 10.244.0.1:52619        10.244.0.35:57859       FIN_WAIT2   14125/kube-proxy
tcp6       0      0 10.244.0.1:33132        10.244.0.50:36466       FIN_WAIT2   14125/kube-proxy
Run Code Online (Sandbox Code Playgroud)

这些连接会随着时间的推移而堆积,从而使过程行为异常。我已经向 Kubernetes bug-tracker报告了一个问题,但我想了解为什么 Linux 内核没有关闭此类连接。

根据其文档(搜索 tcp_fin_timeout),处于 FIN_WAIT2 状态的连接应该在 X 秒后被内核关闭,其中 X 可以从 /proc 读取。在我的机器上它设置为 60:

$ cat /proc/sys/net/ipv4/tcp_fin_timeout
60
Run Code Online (Sandbox Code Playgroud)

所以如果我理解正确的话,这样的连接应该在 60 秒后关闭。但事实并非如此,他们在这种状态下停留了几个小时。

虽然我也明白 FIN_WAIT2 连接非常不寻常(这意味着主机正在等待来自连接远程端的一些 ACK,但它可能已经消失了)我不明白为什么这些连接没有被系统“关闭” .

有什么我可以做的吗?

请注意,重新启动相关进程是最后的手段。

connection kernel tcp linux-networking

12
推荐指数
1
解决办法
4万
查看次数

UDP 流量未从 Docker 容器转发 -> Docker 主机

我有一个 docker 容器,但我无法从容器内部运行 DNS 查找,尽管它在 docker 主机上运行良好。

已知构建 Docker 主机的配置管理代码可在市场上的标准 RHEL 7 映像上运行,因此已知问题出在 SOE RHEL 7 映像内部。

RHEL 7.2 / Docker 版本 1.12.6,构建 88a4867/1.12.6。容器是 RHEL 7.3。SELinux 处于启用/许可模式。Docker 主机是一个 Amazon EC2 实例。

一些配置:

# /etc/sysconfig/docker
OPTIONS='--dns=10.0.0.10 --dns=10.0.0.11 --dns-search=example.com'
DOCKER_CERT_PATH=/etc/docker
ADD_REGISTRY='--add-registry registry.example.com'
no_proxy=169.254.169.254,localhost,127.0.0.1,registory.example.com
http_proxy=http://proxy.example.com:8080
https_proxy=http://proxy.example.com:8080
ftp_proxy=http://proxy.example.com:8080
Run Code Online (Sandbox Code Playgroud)

容器和主机中的解析器配置是一样的:

# /etc/resolv.conf
search example.com
nameserver 10.0.0.10
nameserver 10.0.0.11
Run Code Online (Sandbox Code Playgroud)

如果我重新启动 docker 守护进程,--debug我会看到以下内容journalctl -u docker.service

Aug 08 11:44:23 myhost.example.com dockerd-current[17341]: time="2017-08-08T11:44:23.430769581+10:00" level=debug msg="Name To resolve: http://proxy.example.com."
Aug 08 11:44:23 myhost.example.com dockerd-current[17341]: time="2017-08-08T11:44:23.431488213+10:00" level=debug …
Run Code Online (Sandbox Code Playgroud)

kernel-modules bridge linux-networking docker

12
推荐指数
1
解决办法
2万
查看次数

Busybox,netstat,没有 -p

我的 DreamBox 上有一个超旧的(不要问为什么)BusyBox (BusyBox v1.01 (2008.12.19-21:31+0000) Built-in shell (ash))。我想找出哪个进程使用 netstat 打开了哪个连接。但是我发现 BusyBox 的 netstat 不包含-p选项。我还有什么其他可能性可以找出哪个进程已经打开(并正在使用)相应的套接字?

linux busybox linux-networking embedded-linux

11
推荐指数
1
解决办法
2万
查看次数

更改 /proc/sys/net/ipv4/tcp_tw_reuse 的值是否危险?

我们有几个最近转换成虚拟机的生产系统。我们的一个应用程序经常访问 MySQL 数据库,并且为每个查询创建一个连接、查询并断开该连接。

这不是查询的合适方式(我知道),但我们有一些我们似乎无法绕过的限制。无论如何,问题是:虽然机器是物理主机,但程序运行良好。转换为虚拟机后,我们注意到与数据库的间歇性连接问题。有一次,TIME_WAIT 中有 24000 多个套接字连接(在物理主机上,我看到的最多是 17000 - 不好,但不会引起问题)。

我希望重用这些连接,以便我们看不到连接问题,因此:

问题:

将 tcp_tw_reuse 的值设置为 1 可以吗?有哪些明显的危险?有什么理由我永远不应该这样做吗?

另外,有没有其他方法可以让系统(RHEL/CentOS)防止如此多的连接进入 TIME_WAIT,或者让它们被重用?

最后,更改 tcp_tw_recycle 会做什么,这对我有帮助吗?

提前,谢谢!

virtual-machines linux-networking socket

11
推荐指数
3
解决办法
3万
查看次数

cp -p 将保留某些文件的时间,但不是所有文件?

我在一台机器上有一个源目录,里面有一堆文件,所有文件都具有相同的权限,我想复制到另一个目录,通过 SMB 挂载。

[tmark@dexter JR09141045 roche_454_transfer]$ ls -l /source_dir
total 71348
-rwxrwxrwx 1 adminrig lifelabs 19768377 Mar 25 23:29 1.TCA.454Reads.fna
-rwxrwxrwx 1 adminrig lifelabs 53093396 Mar 25 23:29 1.TCA.454Reads.qual
-rwxrwxrwx 1 adminrig lifelabs     1035 Mar 25 23:29 454AllControlMetrics.csv
-rwxrwxrwx 1 adminrig lifelabs     2657 Mar 25 23:29 454AllControlMetrics.txt
-rwxrwxrwx 1 adminrig lifelabs     4607 Mar 25 23:29 454BaseCallerMetrics.csv
-rwxrwxrwx 1 adminrig lifelabs    14518 Mar 25 23:29 454BaseCallerMetrics.txt
-rwxrwxrwx 1 adminrig lifelabs      351 Mar 25 23:23 454DataProcessingDir.xml
-rwxrwxrwx 1 adminrig lifelabs      702 Mar …
Run Code Online (Sandbox Code Playgroud)

linux unix cp linux-networking unix-shell

11
推荐指数
1
解决办法
1万
查看次数

多个接口上的相同IP

网络大师您好,

我有一个 Linux(内核 3.14)服务器,它充当消费电子设备群(机顶盒 - STB)的 TFTP、NFS 和 HTTP 服务器。这些设备使用 TFTP 来引导它们的内核,然后从我们机器上的 NFS 服务器上挂载它们的根 FS,等等。

现在,出于一个深奥的技术原因,我不会在这里深入研究(相信我:),每个 STB 都必须位于自己的、物理上独立的 LAN 中。所以网络设置ATM的方式是:

服务器有 1 个网卡,用于访问世界其他地方。它还为它所服务的每个 STB 配备 1 个网卡 - 每个网卡都连接到一个小型路由器,STB + 一些其他设备连接到该路由器并形成一个 LAN。

目前连接了 3 个 STB,LAN 分别为 172.16.50.0/24、172.16.51.0/24 和 172.16.52.0/24。它的所有工作都很好。

然而:事实上,我们有 3 个不同的 LAN,这意味着必须访问相同的服务器,如来自 STB1 的 172.16.50.1、来自 STB2 的 172.16.51.1 和来自 STB3 的 172.16.52.1 - 这意味着我们有一点不同的环境每个 STB 以及每次我们 - 比如说 - 上传要在 STB 上使用的新 RootFS 时,我们需要手动编辑一些配置文件并放置正确的 IP,服务器必须从这个特定的 STB 访问。不是很方便,容易出错!

这让我想到:如果我们简单地将这三个 LAN 配置为完全相同的 172.16.50.0/24 会怎样?从 STB(以及 LAN 中的其他设备)的角度来看,一切都应该没问题,但是从服务器的角度来看呢?

Linux 服务器是否可以有 N …

linux linux-networking

11
推荐指数
2
解决办法
3万
查看次数

CentOS 7 中 IPv6 配置选项的含义是什么?

在 CentOS 上手动配置网络接口时,以下设置的确切含义是什么(我正在尝试配置仅 IPv6 的主机)?

我可以猜出其中一些人的名字是什么意思,但我不知道所有这些人的意思(我的一些猜测可能是错误的);是否有这些配置选项的官方文档,我找不到任何文档?

从 /etc/sysconfig/network-scripts/ifcfg-eth0

IPV6INIT=yes          # I assume this just enables IPv6 networking on this interface?
IPV6_AUTOCONF=no      # Does this disable SLAAC?
IPV6_AUTOTUNNEL=no    # ?
IPV6_FAILURE_FATAL=no # Something to do with IPv6 not working not being an issue?
IPV6_DEFROUTE=yes     # ?
IPV6_PEERDNS=yes      # Does this mean we use the default gateway for DNS queries?
IPV6_PEERROUTES=yes   # Same as above?
IPV6ADDR=1::2/64      # This is obviously the IPv6 address and subnet mask
IPV6_DEFAULTGW=1::1   # This is obviously the …
Run Code Online (Sandbox Code Playgroud)

ipv6 linux-networking centos7

11
推荐指数
2
解决办法
1万
查看次数

什么是 systemd-networkd 等价于 post-up?(动态网桥MAC配置)

在使用/etc/network/interfaces(例如 Debian)的Linux 发行版中,我可以获得一个(内核)桥来使用其静态桥从接口之一的 MAC48 地址,例如内置的wlan0,使用post-up,如下所示:

 post-up ip link set br0 address `cat /sys/class/net/wlan0/address`
Run Code Online (Sandbox Code Playgroud)

这确保了 1) 每个克隆系统都使用其自己独特的 MAC48(来自独特 wlan0 的那个),以及 2) 即使在热插拔具有较低 MAC48 的其他桥接接口时,桥 MAC 也能保持稳定。

systemd-networkd 是否支持任何类型的 post-up在网络(或 netdev)启动后可以运行的命令?我试图找到这样的东西,但可能已经错过了。

或者 systemd 中的正确方法是否完全不同,即拥有一个设备单元和一个包装ip link...命令并依赖于设备单元的服务?如果是这样,设备单元和服务单元文件会是什么样子?

networking debian bridge linux-networking systemd

11
推荐指数
1
解决办法
6078
查看次数

ifconfig 显示 UP 而 ip link 显示 DOWN

我正在查看 Linux 系统上接口的状态。当我使用该ifconfig命令时,它显示链接已打开。

master $ ifconfig docker0
docker0   Link encap:Ethernet  HWaddr 02:42:b9:25:be:2d
          inet addr:172.18.0.1  Bcast:0.0.0.0  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
Run Code Online (Sandbox Code Playgroud)

但是,当我运行ip link命令时,它已关闭。

master $ ip link show docker0
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
    link/ether 02:42:b9:25:be:2d brd ff:ff:ff:ff:ff:ff
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下吗?

networking ifconfig linux-networking interface

11
推荐指数
1
解决办法
7462
查看次数