私はFreeBSDを試しています。バイブハイパーバイザーそして、pfSense VMがネットワークトラフィックを正しく取得できるように、FreeBSDからVMware ESXi vSwitch設定をコピーしてみてください。
VLAN:
- 111=LAN、192.168.101.0/24
- 333 = インターネット(WAN)、DHCP
pfSense仮想マシンの設定(ESXiとFreeBSD):
ネットワークインターフェースカード:
- 仮想NIC 0
- vnic0.111 192.168.101.1/24
- vnic0.333 ISPのDHCP
- NAT:VLAN 333 <-> VLAN 111およびDHCPサーバー
- ハードウェアオフロード
以前のESXi設定:
- GWのVLAN 111 192.168.101.6/24 192.168.101.1
- vSwitchのみあり、dvSwitchはありません
vSwitch0:
----------------------- -----------------------
| allvlans | | Physical adapters |
| VLAN ID: 4095 (all) |----| * vmnic0, 1000 Mbps |
| * pfSense24 | | -----------------------
----------------------- |
|
----------------------- |
| Management Network |--/
| VLAN ID: 111 |
| VMkernel ports (1): |
| * vmk0: 192.168.101.6 |
-----------------------
セキュリティポリシー:
- 無差別モードを許可する:いいえ
- 偽造送信は次のように許可されます。いいえ
- MAC変更を許可:いいえ
ポートグループallvlan:
- VLAN ID:4095(タグ付きのすべてのVLANトラフィックを許可)
- 無差別モードを許可する:vSwitchから継承(いいえ)
- 偽造送信は次のように許可されます。vSwitchから継承(いいえ)
- MAC変更を許可:vSwitchから継承(いいえ)
FreeBSD ESXiの交換設定を試してください。
sysrc -f /boot/loader.conf vmm_load="YES"
sysrc -f /boot/loader.conf nmdm_load="YES"
sysrc -f /boot/loader.conf if_bridge_load="YES"
sysrc -f /boot/loader.conf if_tap_load="YES"
sysrc if_vlan_load="YES"
sysrc cloned_interfaces="bridge0 tap0"
sysrc ifconfig_bridge0="addm em0 addm tap0"
echo "net.link.tap.up_on_open=1" > /etc/sysctl.d/vm_network.conf
sysrc defaultrouter="192.168.101.1"
sysrc ifconfig_em0="up"
sysrc gateway_enable="YES"
ESXiネットワーク管理SSHアクセスに対応する(?):
sysrc vlans_em0="111"
sysrc ifconfig_em0_111="inet 192.168.101.6/24"
相互作用:
em0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=852099<RXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,VLAN_HWFILTER,VLAN_HWTSO>
ether 00:25:90:14:95:8c
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 02:eb:00:40:63:00
nd6 options=9<PERFORMNUD,IFDISABLED>
groups: bridge
id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
member: tap0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
ifmaxaddr 0 port 5 priority 128 path cost 2000000
member: em0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
ifmaxaddr 0 port 1 priority 128 path cost 2000000
tap0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=80000<LINKSTATE>
ether 00:bd:f0:02:f7:00
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet autoselect
status: active
groups: tap
Opened by PID 45408
em0.111: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=103<RXCSUM,TXCSUM,TSO4>
ether 00:25:90:14:95:8c
inet 192.168.101.6 netmask 0xffffff00 broadcast 192.168.101.255
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
vlan: 111 vlanpcp: 0 parent interface: em0
groups: vlan
pciconf -lv
:
em0@pci0:1:0:0: class=0x020000 card=0x10d315d9 chip=0x10d38086 rev=0x00 hdr=0x00
vendor = 'Intel Corporation'
device = '82574L Gigabit Network Connection'
class = network
subclass = ethernet
pfSense VMを実行します。
sh /usr/share/examples/bhyve/vmrun.sh -m 2048M -d /dev/zvol/tank/pfsense0 pfsensevm
tap0
.
現在、pfSenseのネットワーク管理者にアクセスできますが、vmnet0.333
ISPからIPを取得できません。できるだけ安全にVLANブリッジングを設定したい(private
?bridge0
)。すべてのトラフィックを物理スイッチに最初に送信することが可能であれば、それが望ましいです。 openvSwitchも使用できますが、慣れていません。
DHCP 要求パケットは tap0、bridge0、em0 では正しく表示されますが、tcpdump -lnexv -i <iface> "vlan 333"
em0.111 では表示されません。これは pfSense から新しい IP を要求するときに正しいものです。 ISPからDHCP応答がありません。 em0とtap0は、vSwitchリリースで無効になっている無差別モードになっています。
追加のデバッグ:
Raspberry Pi を VDSL モデムに接続すると、DHCP パケットを表示できます。私はpfSenseのMACアドレスをなりすますためにRPiを使ってみましたが、うまくいきました。したがって、現在考えられる原因はパケットチェックサムとパケット切り捨てです。少なくとも、Linuxブリッジの実装はブリッジとVLANを介してパケットを破壊することが知られていますが、FreeBSDも同じことができますか? em0 DHCP に VLAN 333 を追加すると機能します。それでは、bridge0やtap0は何をしていますか?
私は何を見逃していますか?