Nach der Installation von pfSense 2.1.4 unter Hyper-V Server 2012 R2 ist keine Netzwerkverbindung zu einem der Interfaces der Firewall möglich. Abhilfe schafft ein kleines Skript, das beim Booten von pfSense automatisch ausgeführt wird.

Als Voraussetzung gilt nach wie vor, ältere Netzwerkkarten im virtuellen Computer, der pfSense ausführen soll zu verwenden.

Folgende Befehle in der Shell (Taste “8”) der pfSense ausführen:

touch /etc/rc.local
touch /etc/rc.local.running
chmod 755 /etc/rc.local
echo “ifconfig de0 down” >> /etc/rc.local
echo “ifconfig de0 up” >> /etc/rc.local
echo “ifconfig de1 down” >> /etc/rc.local
echo “ifconfig de1 up” >> /etc/rc.local
echo “dhclient de0″ >> /etc/rc.local

Anschließend den virtuellen Computer neu starten.

Die letzte Zeile ‘echo “dhclient de0″ >> /etc/rc.local’ wird nur benötigt, sofern das WAN-Interface per DHCP eine IP-Adresse erhält. Andernfalls kann man diese Zeile weglassen oder mit einer # auskommentieren.

Ggf. muss das Skript um weitere Interfaces (de2, …) erweitert werden.

Quelle

How to install pfSense 2.0.2 on Hyper-V (Windows Server 2012)

Update 01.09.2014

Unter Umständen kann es sinnvoller sein, die Befehle von anderer Stelle aus laufen zu lassen:

touch /usr/local/etc/rc.d/hyper-v.sh
chmod 755 /usr/local/etc/rc.d/hyper-v.sh
echo “ifconfig de0 down” >> /usr/local/etc/rc.d/hyper-v.sh
echo “ifconfig de0 up” >> /usr/local/etc/rc.d/hyper-v.sh
echo “ifconfig de1 down” >> /usr/local/etc/rc.d/hyper-v.sh
echo “ifconfig de1 up” >> /usr/local/etc/rc.d/hyper-v.sh
echo “dhclient de0″ >> /usr/local/etc/rc.d/hyper-v.sh

Das Verzeichnis “/usr/local/etc/rc.d” ist seitens pfSense für Startskripte vorgesehen, siehe dazu:

pfSense Docs – Executing commands at boot time

Der Beobachtung nach wird “rc.local” ebenfalls bei ssh-Anmeldungen (sofern man Diese aktiviert hat) ausgeführt, was wiederum eher unpraktisch ist.

Update 06.09.2014

Anbei eine kleine Abtipp- oder copy&paste-Hilfe zum Einfügen der obigen Befehle über die Hyper-V Konsole:

touch -usr-local-etc-rc.d-hzperßv.sh
chmod 755 -usr-local-etc-rc.d-hzperßv.sh
echo Äifconfig de0 downÄ :: -usr-local-etc-rc.d-hzperßv.sh
echo Äifconfig de0 upÄ :: -usr-local-etc-rc.d-hzperßv.sh
echo Äifconfig de1 downÄ :: -usr-local-etc-rc.d-hzperßv.sh
echo Äifconfig de1 upÄ :: -usr-local-etc-rc.d-hzperßv.sh
echo Ädhclient de0Ä :: -usr-local-etc-rc.d-hzperßv.sh

Bei der Installation habe ich zwar (schon mehrfach) die Keymap (Tastaturbelegung) geändert, aber irgendwie will das bei mir nicht. Da ich die Tastensucherei auf einem deutschen Keyboard leid war, habe ich mir kurzerhand die Befehle “zurechtgelegt”.

Update 02.03.2015

Mit pfSense 2.2 sind die oben genannten Schritte nicht mehr notwendig. Es funktionieren sowohl die Standard-Netzwerkkarten als auch der DHCP-Client.