文章目录
  1. 1. 背景
  2. 2. 开始吧
  3. 3. 说点别的

引言:之前IP转发的问题一直解决不了,熬了个通宵气得睡觉,起床后十分钟搞定,果然还是睡饱了有思路。


背景

自组了一台FX-8800P的ITX小主机,准备当旁路由、服务器以及群晖用。

系统:ESXI 6.7

拓扑:

tplink:192.168.0.108,桥接别人家wifi,开启DHCP服务器,DHCP网关192.168.0.254

RouterOS:192.168.0.254、192.168.6.6、172.168.0.254,三网卡,网关172.20.0.1

Debian:192.168.0.253、172.20.0.1,双网卡,网关192.168.0.1

网络流量从192.168.0.254进入RouterOS,路由转172.20.0.254经172.20.0.1到达Debian,最后走192.168.0.243到网关192.168.0.1

流量通过RouterOS转了一下是因为tplink无法将网关设在不同网段。

开始吧

主要说debian的IP转发。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
root@debian:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:04:70:a0 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.253/24 brd 192.168.0.255 scope global ens192
valid_lft forever preferred_lft forever
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:04:70:aa brd ff:ff:ff:ff:ff:ff
inet 172.20.0.1/24 brd 172.20.0.255 scope global ens224
valid_lft forever preferred_lft forever
4: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:19:df:91:61 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
6: vetha6ace1f@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default
link/ether 8a:ef:12:dc:98:e3 brd ff:ff:ff:ff:ff:ff link-netnsid 0
8: vethe156696@if7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default
link/ether 76:04:34:d6:35:46 brd ff:ff:ff:ff:ff:ff link-netnsid 1

配好之后网卡接口看起来是这样的,其中ens192是外网出口,ens224是另一个虚拟网卡。

需要设置/etc/network/interfaces

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
root@debian:~# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug ens192

auto ens192
iface ens192 inet static
address 192.168.0.253
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1

auto ens224
iface ens224 inet static
address 172.20.0.1
netmask 255.255.255.0

重启生效。

下一步才是折腾我一通宵的东西,涉及上述内容的博客们都没有提及过,而是反复讨论dnsmasq的DHCP???

配置IP转发

完成此步之后,会发现大约有50%的丢包。

使用arp -vn可以看到一些192.168.0.0/24的机器也被分配给了ens224。

假解

所以两个网卡都是出口,配置IP转发的时候应该包含

1
2
3
4
iptables -A FORWARD -i ens224 -o ens192 -j ACCEPT
iptables -A FORWARD -i ens192 -o ens224 -j ACCEPT
iptables -A FORWARD -i ens224 -o ens224 -j ACCEPT
iptables -A FORWARD -i ens192 -o ens192 -j ACCEPT

但是显然,这个做法太蠢了,而且非常影响性能。

正解

  1. 在esxi的Networking中新建一个virtual switch,记为LAN,Security全选Accept,不设uplink。意味着该switch无法直接联网。
  2. 在Port groups中新建一个group,关联LAN,同样取名为LAN,设置VLAN为一个新值
  3. 将RouterOS的第三个网卡和Debian的第二个网卡改为LAN。
  4. 按上文提及的文章配置IP转发并添加到/etc/rc.local以保证开机自启,因为iptables规则重启会被清除。

说点别的

这台配置加上机箱配下来800左右,但性能堪比i3-7100u,但是想组这台的话需要注意它的致命缺点——风扇噪音很大。

i3-7100u 整机价格1800左右(洋葱

benchmark

passmark fx-8800p 3900分i3-7100u 3950分

通过BIOS设置,改风扇为手动会有很大改善,但当温度高于设定的阈值(最高70度)时仍会强制满速大风呼呼刮。

所以一定建议在BIOS中关闭AMD睿频,并且适当调低PState等级,这里我使用的是P4。PState等级与主频和节能相关,虽然这块CPU标称TDP是12-35W,但实际上它一点也不节能,P0下开启睿频4个核心加起来甚至能冲上12GHz。在上述zmmoo测评中提到这块CPU默认消耗35W功率而不是15W,有节能需求的可以通过调节PState做到真正节能。

所以真正使用起来只能在跑到10GHz的情况下不发出噪音,这种情况肯定是打不过i3-7100u的了,但是再怎么算也还是很香不是吗。

当然,相同功耗的情况下就别想了,毕竟价格翻了一倍呢。

文章目录
  1. 1. 背景
  2. 2. 开始吧
  3. 3. 说点别的