通了吗?

通了

proxmox 我日你*

VMware 你也没好到哪去

pfSense 的动态路由是个大坑,单出口不用 pfSense 直接做网关也有点小坑

坑太多了,我已经不想讲都哪里遇到坑了,就单纯把配置过程稍微记录一下吧。

有些坑,官方文档都没讲明白,是我自己踩出来的。

本来我想趁这个机会把虚拟化层换成 proxmox ve,Linux 做底层加他的功能能给我省下更多计算资源做别的事情。

打比方说,我可以省去一个 FreeNAS,连大量的普通应用都可以直接迁移到容器上 ( 本来我的很多局域网应用就跑在 Docker 里 )。 最关键的是,我可以省去部署 vSphere Client 的资源,这个资源占用相当之高。

于是,我让我家里成功的断网了一整天,最后半夜了,装回 VMware,用两小时功夫部署完了。

如果下次我还有其他电脑做服务器的时候再试试看吧,反正这次绝对不搞了。

vSphere 篇

配置虚拟化,装 VMware ESXi 没什么好说的,正常装就行了。

不知道为什么,Management 网络出口不走 VLAN,给他设置 VLAN 就不通,正常不设置 VLAN 倒是可以通过 Native VLAN 进行通信,因为没条件,这个包也特别不好抓,而且我担心断网,所以不想研究了,就让他这么去吧。至少虚拟机用的 vSwitch 和 vDSwitch 能正常按照我的预想工作就好了。

安装 vSphere Client 也是正常安装,由于部署的时候还没有导入并开起来内网 DNS 服务的那台 Windows 域控,所以部署的主机名就直接是 IP 地址了,又不是不能用 (

一个网络的 Troubleshooting

vSphere Client 跨网段访问不通,Google 一下发现别人也有类似问题,因此为临时解决问题只能给 192.168.50.0/24 网段额外写了一条静态路由,这下就正常了。

方法是,在设备管理页面 ( 也就是 IP:5480 那个页面) 打开 SSH 和 bash Shell,之后 SSH 上去,修改 /etc/systemd/network/10-eth0.network, 添加:

1[Route]
2Gateway=192.168.1.2
3Destination=192.168.50.0/24

保存后,重启 systemd-networkd.service

1$ systemctl restart systemd-networkd.service

之后确认路由

1$ ip route
2default via 192.168.1.1 dev eth0  proto static
3192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.5
4192.168.50.0/24 via 192.168.1.2 dev eth0  proto static

至少这样确实能用了。

比较建议的方法是,不要将多个路由和一些终端设备放在同一个网络内,Cisco 教材上路由间通信使用 /30 网络确实是比较稳妥的方法

配置链路聚合

搞 vSphere 的最大一点就是他能用 LACP,VMware 限制了很多功能必须在 vCenter 中才能用,这点真的很恶心人,对于我这种配置有限的小 Lab 而言,一个 vCenter Server 就要吃掉我大半内存,但又不能不用,这就是恶心人之上的恶心了。

配置 LACP 当然是双端的,这次我用了 4 个 Ports 来起 LACP。

先说 vCenter 端,超级麻烦。

首先创建 DSwitch ( 标准交换机不支持 LACP ),在 DSwitch 配置中新建 LACP,这里可以设定 LACP 模式与负载平衡算法,我选择此处使用:

  • 模式:主动 ( active )
  • 负载平衡算法:基于源与目标 IP 的路由 ( src-dst-ip )

说真的,负载平衡算法的翻译有点迷。

接下来添加主机,把 ESXi 主机的网卡迁移进 lag0 中。

千万别一次性迁移不留上行链路给原来默认的 vSwitch,不然没有上行链路网络就断了,有你哭的

接下来就是一个超大的坑,这个选项藏得极深,官方文档里其实有提到,但问题是你在百度和 bing 上却很难搜到,姑且还是放上地址吧。

在分布式端口组的绑定和故障切换顺序中将链路聚合组设置为备用状态

以及

在分布式端口组的绑定和故障切换顺序中将链路聚合组设置为活动状态

中文文档他老香了

没错,正如这玩意所说,其实默认情况下他根本不会用 lag 作为上行链路,所以你需要手动修改这东西。

配置完成后,vSphere 端就完成了。

交换机篇

交换机到手之后,他原来的 iOS 版本是 12.2,被我直接升级到了 15.2(4)E9,这是我在没有下载权限的 Cisco 账号情况下在网络上能找到的最新版。

基本配置

配了一大堆东西,凑合着看吧

 1hostname switch
 2!
 3enable secret 5 
 4! 密码省略
 5username panxiao81 secret 
 6! 密码省略
 7ip domain-list switch
 8no ip domain-lookup
 9ip domain-name ddupan.top
10!
11spanning-tree mode rapid-pvst
12spanning-tree extend system-id
13!
14vlan 50
15  name OUT-GFW
16!
17vlan 100
18  name DIRT-OUT
19!
20lldp run
21!
22! 省略一堆接口配置
23interface GigabitEthernet0/13
24 switchport access vlan 50
25 spanning-tree portfast edge
26!
27interface GigabitEthernet0/14
28 description Workstation
29 switchport access vlan 50
30 spanning-tree portfast edge
31!
32interface GigabitEthernet0/15
33 switchport access vlan 50
34 spanning-tree portfast edge
35!
36interface GigabitEthernet0/16
37 description SmallSwitch
38 spanning-tree portfast edge
39!
40interface GigabitEthernet0/17
41 description R6300V2
42 switchport access vlan 50
43 spanning-tree portfast edge
44!
45! 还是一堆接口配置
46!
47interface Vlan1
48 ip address 192.168.1.3 255.255.255.0
49 no ip route-cache
50!
51ip default-gateway 192.168.1.1
52ip forward-protocol nd
53!
54ip http server
55ip http secure-server
56ip ssh version 2
57!
58!
59!
60banner motd ^CThis is home Switch^C
61!
62line con 0
63 logging synchronous
64line vty 0 4
65 logging synchronous
66 login local
67 transport input all
68line vty 5 15
69 logging synchronous
70 login local
71 transport input all
72!
73!
74end

配置对端的 LACP

vSphere 对端接在 G0/1 - G0/4 上,可以 show cdp neighbors 查看

 1switch#sh cdp nei
 2Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
 3                  S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,
 4                  D - Remote, C - CVTA, M - Two-port Mac Relay
 5
 6Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID
 7esxi             Gig 0/4           133               S    VMware ES vmnic0
 8esxi             Gig 0/1           133               S    VMware ES vmnic1
 9esxi             Gig 0/2           133               S    VMware ES vmnic2
10esxi             Gig 0/3           132               S    VMware ES vmnic3
11
12Total cdp entries displayed : 4

当然能看到的前提是在 vSphere 中打开 CDP 协议播发。

接下来配置 LACP

 1interface Port-channel1
 2 switchport trunk encapsulation dot1q
 3 switchport mode trunk
 4 switchport nonegotiate
 5!
 6interface GigabitEthernet0/1
 7 switchport trunk encapsulation dot1q
 8 switchport mode trunk
 9 switchport nonegotiate
10 channel-group 1 mode passive
11!
12interface GigabitEthernet0/2
13 switchport trunk encapsulation dot1q
14 switchport mode trunk
15 switchport nonegotiate
16 channel-group 1 mode passive
17!
18interface GigabitEthernet0/3
19 switchport trunk encapsulation dot1q
20 switchport mode trunk
21 switchport nonegotiate
22 channel-group 1 mode passive
23!
24interface GigabitEthernet0/4
25 switchport trunk encapsulation dot1q
26 switchport mode trunk
27 switchport nonegotiate
28 channel-group 1 mode passive

直接复制过来了,实际配置的时候,交换端口模式直接在 po1 接口配置即可。

接下来可以查看状态

 1switch#sh etherchannel 1 summary
 2Flags:  D - down        P - bundled in port-channel
 3        I - stand-alone s - suspended
 4        H - Hot-standby (LACP only)
 5        R - Layer3      S - Layer2
 6        U - in use      N - not in use, no aggregation
 7        f - failed to allocate aggregator
 8
 9        M - not in use, minimum links not met
10        m - not in use, port not aggregated due to minimum links not met
11        u - unsuitable for bundling
12        w - waiting to be aggregated
13        d - default port
14
15        A - formed by Auto LAG
16
17
18Number of channel-groups in use: 1
19Number of aggregators:           1
20
21Group  Port-channel  Protocol    Ports
22------+-------------+-----------+-----------------------------------------------
231      Po1(SU)         LACP      Gi0/1(P)    Gi0/2(P)    Gi0/3(P)
24                                 Gi0/4(P)

这端也需要配置负载均衡算法:

 1switch(config)#port-channel load-balance src-dst-ip
 2switch(config)#^Z
 3switch#
 4*Jan  3 12:46:00.587: %SYS-5-CONFIG_I: Configured from console by console
 5switch#sh etherchannel load-balance
 6EtherChannel Load-Balancing Configuration:
 7        src-dst-ip
 8
 9EtherChannel Load-Balancing Addresses Used Per-Protocol:
10Non-IP: Source XOR Destination MAC address
11  IPv4: Source XOR Destination IP address
12  IPv6: Source XOR Destination IP address

这样就 OK 了。

配置 NTP

防火墙充当 NTP 服务器,在配置到这一阶段时网络已经通了,虚拟机也重新导入完成,防火墙已经配置好了,因此可以配置 NTP 了。

 1switch(config)#ntp server 192.168.1.1
 2switch(config)#^Z
 3switch#sh ntp status
 4Clock is synchronized, stratum 4, reference is 192.168.1.1
 5nominal freq is 119.2092 Hz, actual freq is 119.1496 Hz, precision is 2**19
 6ntp uptime is 1200 (1/100 of seconds), resolution is 8403
 7reference time is E3E91342.71772CBD (19:40:50.443 UTC Tue Mar 2 2021)
 8clock offset is 3.1425 msec, root delay is 208.85 msec
 9root dispersion is 3959.54 msec, peer dispersion is 437.56 msec
10loopfilter state is 'CTRL' (Normal Controlled Loop), drift is 0.000499999 s/s
11system poll interval is 64, last update was 7 sec ago.
12switch#sh clo
13switch#sh clock
1419:41:10.416 UTC Tue Mar 2 2021

这个 show 的信息是后弄的。

交换机基本要配的就这些,千万别忘了保存配置啊。

wr 是个好习惯

OpenWrt 篇

这次是两张网卡了。

去防火墙那边把 WAN 规则干掉,就相当于关闭 NAT 了。实际上那个 IP 混杂模式 的开关貌似就是 NAT 开关。

这谁想得到啊

当然,直接把两条链路都扔进 LAN 区域也是 OK 的。

配置上行链路 IP 和网关,可以配置到 192.168.100.0/24 网络的静态路由。

主机名的部分在 系统 -> 系统

LAN 口可以开 DHCP,因为 pfSense 没法设置给非直连的端口做 DHCP,而且 OpenWrt 貌似也没有 IPv4 的 DHCP 中继,所以就这样吧。

LAN 口正常开起来,这就 OK 了。

把 OpenClash 打开,就可以正常科学了

实在是没啥可配的。

pfSense 篇

后面会单独有一个 pfSense 的配置,但是这次先讲一下基本的,让网络能正常跑起来的要素

WAN 口正常拨号,LAN 口正常配置静态 IP,然后到 System -> Routing -> Gateways 配置网关!

即便是你不用静态路由也要这么做,至于为什么,去 Firewall -> NAT -> Outbound 看看吧,他的默认 NAT 规则只包括了本地回环地址和直连配置的 IP 地址,当然其实你可以选择完全手动配置 NAT 出站规则也能解决问题,但总之这个设定丧失了太多的灵活性。

如果把其他链路直连防火墙,别忘了增加出站规则,将流量放行。

最后配置好接口,打开 DHCP,打开 UPnP,基本配置就完成了。

Troubleshooting

如果网络不通,就去检查路由吧,千万别忘了路由既要有去程也要有回程。