在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”的唯一地方。
我有一个叫长寿命过程中的问题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,但它可能已经消失了)我不明白为什么这些连接没有被系统“关闭” .
有什么我可以做的吗?
请注意,重新启动相关进程是最后的手段。
我有一个 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) 我的 DreamBox 上有一个超旧的(不要问为什么)BusyBox (BusyBox v1.01 (2008.12.19-21:31+0000) Built-in shell (ash))。我想找出哪个进程使用 netstat 打开了哪个连接。但是我发现 BusyBox 的 netstat 不包含-p选项。我还有什么其他可能性可以找出哪个进程已经打开(并正在使用)相应的套接字?
我们有几个最近转换成虚拟机的生产系统。我们的一个应用程序经常访问 MySQL 数据库,并且为每个查询创建一个连接、查询并断开该连接。
这不是查询的合适方式(我知道),但我们有一些我们似乎无法绕过的限制。无论如何,问题是:虽然机器是物理主机,但程序运行良好。转换为虚拟机后,我们注意到与数据库的间歇性连接问题。有一次,TIME_WAIT 中有 24000 多个套接字连接(在物理主机上,我看到的最多是 17000 - 不好,但不会引起问题)。
我希望重用这些连接,以便我们看不到连接问题,因此:
问题:
将 tcp_tw_reuse 的值设置为 1 可以吗?有哪些明显的危险?有什么理由我永远不应该这样做吗?
另外,有没有其他方法可以让系统(RHEL/CentOS)防止如此多的连接进入 TIME_WAIT,或者让它们被重用?
最后,更改 tcp_tw_recycle 会做什么,这对我有帮助吗?
提前,谢谢!
我在一台机器上有一个源目录,里面有一堆文件,所有文件都具有相同的权限,我想复制到另一个目录,通过 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(内核 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 …
在 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) 在使用/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...命令并依赖于设备单元的服务?如果是这样,设备单元和服务单元文件会是什么样子?
我正在查看 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)
有人可以解释一下吗?
linux-networking ×10
linux ×3
networking ×3
bridge ×2
busybox ×1
centos7 ×1
connection ×1
cp ×1
debian ×1
docker ×1
ifconfig ×1
interface ×1
ipv6 ×1
kernel ×1
routing ×1
socket ×1
systemd ×1
tcp ×1
unix ×1
unix-shell ×1