我正在尝试使用 open-wrt qemu 和 vde2 设置虚拟网络环境启动两个 qemu 实例并将它们连接在一起的脚本如下
IMAGE=/home/northpole/openwrt/trunk/bin/x86/openwrt-x86-generic-combined-jffs2-128k.img
sudo killall -q qemu
sudo killall -q wirefilter
sudo killall -q vde_switch
vde_switch -d --hub --sock num1.ctl -f colourful.rc
vde_switch -d --hub --sock num2.ctl -f colourful.rc
cp ${IMAGE} num1.image
cp ${IMAGE} num2.image
sudo qemu \
-no-acpi -m 32M \
-net vde,sock=num1.ctl,port=1 -net nic,macaddr=fe:fe:00:00:01:01 \
-net nic -net tap,ifname=tapwrt1 \
num1.image&
sudo qemu \
-no-acpi -m 32M \
-net vde,sock=num2.ctl,port=2 -net nic,macaddr=fe:fe:00:00:02:01 \
-net nic -net tap,ifname=tapwrt2 \
num2.image&
sudo ifconfig tapwrt1 …Run Code Online (Sandbox Code Playgroud) 可能的重复:
我可以将(大)地址块绑定到接口吗?
我有一个 /48 IPv6 块。我希望能够做到这一点:
$ wget --bind-address=<1st-ipv6> http://www.some-url.com
$ wget --bind-address=<2nd-ipv6> http://www.some-url.com
$ wget --bind-address=<3rd-ipv6> http://www.some-url.com
etc...
Run Code Online (Sandbox Code Playgroud)
对于我的 /48 块中的任何 2^80 个可用 IP。
根据我的测试,为接口分配大量 IP 会使速度变慢(就每秒 HTTP 请求而言)。显然,我无法将数十亿个 IP 分配给一个接口。有没有办法告诉Linux接受属于我的/48块的任何IP,或者修改wget以便可以完成?
2013 年 1 月 17 日编辑: 我找到了怎么做。您的内核版本必须至少为 3.3,因为从该版本开始,将应用此补丁:http ://lists.openwall.net/netdev/2011/11/08/8
然后你必须以 root 身份运行(正如 David Schwartz 所说):
# ip -6 route add local your_ipv6_block/48 dev lo
Run Code Online (Sandbox Code Playgroud)
您必须将此路由分配给 lo 接口,即使它不是到达 Internet 的传出接口。
然后你必须修改wget的源代码。在 src/connect.c 的 connect_to_ip() 函数中,创建套接字后,添加以下内容:
setsockopt(sock, SOL_IP, IP_FREEBIND, &v, sizeof(v));
Run Code Online (Sandbox Code Playgroud)
然后编译 wget (编译器可能会抱怨 IP_FREEBIND 没有被定义,如何解决这个问题超出了这里的范围)并安装它。
然后你就可以成功地做到:
$ wget …Run Code Online (Sandbox Code Playgroud) 我正在尝试使我的容器可用于所有设备的网络,而不仅仅是 docker 主机。
我正在尝试使我的容器可用于所有设备的网络,而不仅仅是 docker 主机。
我想制作 docker 配置,以便可以从我的网络中的任何地方访问 docker(在我的情况下是 ssh)。
首先创建一个新的桥接设备。
brctl addbr br-em1
ip 链接设置 br-em1
将此设备添加到您的网桥
使用曾经属于 ens160 的地址配置网桥
ip 地址 del 9.158.143.52/24 dev ens160
ip 地址添加 9.158.143.52/24 dev br-em1
将默认路由移动到网桥
到目前为止一切正常。docker …
我在 Scaleway 上有几个 linux 测试盒,每个都有 2 个 NIC,它们都连接到同一个网络,10.0.0.0/8但每个都有自己的网关。
我希望能够同时使用 NIC(eth0/eth1)及其 IP 进行通信。因此,如果应用程序绑定到 IP .187,则应使用 dev eth0。如果应用程序绑定到 IP .189,则应使用 eth1。
现在只有 IP 为 .187 的接口 eth0 正在响应请求。任何请求。(这就是我使用 ping 和 ssh 进行测试的原因)。但是,如果我将默认路由从 eth0 更改为 eth1(ip .189),则传出流量将通过 eth1 正确路由,在这种情况下,eth0 将不可用。
那么如何配置盒子,这样两个接口都可以使用。
Box 1:
eth0_ip = 10.5.68.187/31
eth0_gw = 10.5.68.186
eth1_ip = 10.5.68.189/31
eth1_gw = 10.5.68.188
Run Code Online (Sandbox Code Playgroud)
根据我的研究,here,here我创建了一个 bash 脚本,该脚本应该添加带有表的静态路由,以便可以同时使用两个网卡。
#/bin/bash
# My Vars with IP and GW for eth0
eth0_ip=$(ip -o -4 addr list eth0 | …Run Code Online (Sandbox Code Playgroud) 在运行 Fedora Core 27 的基准实验室系统上,我有 Intel X710 10GE 卡和 12 核 Xeon 处理器,配置了 12 个 NIC 队列和基于 IP 地址和端口号的 RX Flow Hashing。
这会导致内核之间的平衡不平衡,以及不一致的性能结果。我已经irqbalance禁用了,从 NIC 队列到 CPU 核心配置的 1:1 映射通过/proc.
我的应用程序是基于 UDP 的,所以我并不担心散列。我无法在散列函数的输入中生成足够的熵来获得均匀的输出分布,所以我很想尝试使用普通循环法。
有没有办法禁用 RSS 的 UDP 并获得循环,同时仍保持单独的队列?我发现的所有讨论禁用 RSS 的链接似乎也禁用了多个队列。
我正在尝试使用 centos7 配置 samba,以便从 Windows 10 客户端访问。
日志级别 = 1我在重新安装 centos 后使用了来自同一服务器的以前工作的 smb.conf。
log level = 10 您实际上可以跳过阅读此内容,其级别为 10 的详细信息。
开始
我对配置 linux 服务器很陌生,我熟悉基本的 linux 命令ls chmod chown ...,
我按照这篇文章在 wlan 网络上配置了一个安全共享,然后和同事一起测试,一切正常,除了他没有共享的执行权限,路径是/home/CompanyFiles/All
所以我执行了 cd /home/
然后 chmod -R 777 /
然后我成功更改了整个centos文件的权限并破坏了centos安装。
经过一番谷歌搜索后,我决定重新安装 centos 比尝试从 chmod 命令中恢复要好,这是可行的,因为我只在其上安装了 samba,所以我将 smb.conf 复制到另一台机器上,重新安装了 centos 并重新安装了 samba,然后我使用了旧的 smb.conf。
结尾
smb.conf:
[global]
workgroup = WORKGROUP
security = user
map to guest = Bad User
printing = cups
printcap name = …Run Code Online (Sandbox Code Playgroud) 我有一台带有额外的、仅限本地的以太网接口和私有子网的计算机。建立 StrongSwan VPN 后,我无法访问该子网。
这是本地“左”配置(由algo建立):
conn ikev2-<rightip>
fragmentation=yes
rekey=no
dpdaction=clear
keyexchange=ikev2
compress=no
dpddelay=35s
ike=aes128gcm16-prfsha512-ecp256!
esp=aes128gcm16-ecp256!
right=<rightip>
rightid=<rightip>
rightsubnet=0.0.0.0/0
rightauth=pubkey
leftsourceip=%config
leftauth=pubkey
leftcert=daves.crt
leftfirewall=yes
left=%defaultroute
auto=add
Run Code Online (Sandbox Code Playgroud)
有问题的子网是 10.0.0.0/24。%defaultroute 解析为 192.168.0.0/24 中的地址。
'left' 和 'leftsubnet' 看起来不像是正确的选项,但我认为没有什么比这更好的了。我试过将 leftsubnet 设置为 10.0.0.0/24 和 !10.0.0.0/24。
如何从 StronSwan VPN 连接中排除本地子网?
如何检查连接的路由配置?
假设我有 100kbps 的带宽
- Root - 100kbps
/ \
/ \
/ \
/ \
/ \
/ \
Assured 30kbps 10kbps
Run Code Online (Sandbox Code Playgroud)
我保证 A 类 30kbps,B 类 10kbps。60kbps 是保留带宽还是多余带宽
在HTB 手册中它说
任何需要它的类都可以使用任何未使用的带宽(按其分配份额的比例)。
但是,当我运行以下测试时,如上述 ascii 艺术所示:
tc qdisc add dev eno1 root handle 1: htb
tc class add dev eno1 parent 1: classid 1:1 htb rate 100kbps ceil 100kbps
tc class add dev eno1 parent 1:1 classid 1:10 htb rate 10kbps ceil 100kbps
tc class add dev eno1 …Run Code Online (Sandbox Code Playgroud) 我正在设置一个 OpenBSD 系统作为路由器,我有一个接口作为上游,然后另一个配置了 vlan:
上游(em0):
inet 10.0.2.20 255.255.255.0 NONE description upstream
Run Code Online (Sandbox Code Playgroud)
下游(em1):
up
Run Code Online (Sandbox Code Playgroud)
VLAN10:
inet 172.18.10.1 255.255.255.0 NONE vlan 10 vlandev em1
Run Code Online (Sandbox Code Playgroud)
当我从静态 IP 为 172.18.10.10 的客户端 ping 172.18.10.1 并在我的 OpenBSD 机器上运行 tcpdump 时,我得到了 ARP 查询:
Jun 20 16:40:16.170853 08:00:27:9c:0c:38 ff:ff:ff:ff:ff:ff 0806 60: arp who-has 172.18.10.1 tell 172.18.10.10
Run Code Online (Sandbox Code Playgroud)
所以它显然正在接收arps,但没有响应。
有人有任何想法吗?
编辑: 这是路由表
我看了很多文章,但没有回答我的问题。
我的服务器使用 VMware vSphere Hypervisor。我的服务器中有 20 台虚拟机。
虚拟机操作系统:centos7
我已经将我的vSwitch和VM 网络带宽更改为 1000000000 KB/s
所以其他虚拟机不会影响我的 dtr(数据传输率)。
现在我的 dtr 是 170 ~ 200 MB/s
我如何将我的 dtr 增加到 500 MB/s,以便我可以更快地将 20 GB 的文件从 A vm 传输到 B vm。
VM A : nc -l 20000 > /dev/null
VM B : time dd if=/dev/zero bs=100M count=200 | nc <VM A> 20000
200+0 records in
200+0 records out
20971520000 bytes (21 GB) copied, 122.466 s, 171 MB/s
real 2m2.479s
user 0m2.148s
sys 3m10.841s …Run Code Online (Sandbox Code Playgroud) linux-networking ×10
networking ×4
linux ×2
bandwidth ×1
centos7 ×1
docker ×1
ip-routing ×1
iproute ×1
ipv6 ×1
openbsd ×1
openwrt ×1
performance ×1
qemu ×1
routing ×1
samba ×1
ssh ×1
strongswan ×1
udp ×1
vmware-esxi ×1
vpn ×1