2
0
mirror of https://github.com/pikvm/pikvm synced 2024-11-18 09:25:43 +00:00
pikvm/pages/usb_ethernet.md
arch1mede 74e6262431
Update usb_ethernet.md (#269)
Fixed bubble for the reboot command
Took out the ".r's" from usb0 line, looked like an error
2021-04-12 17:04:37 +03:00

3.4 KiB

Ethernet-over-USB network

Specifically to v2. When combined with configuring a DNS server, FTP, or SMB (for example), this is a powerful way to extend the capabilities of Pi-KVM.

The USB-Ethernet features are experimental, so some of the default settings may be changed in future releases.

  1. Edit /etc/kvmd/override.yaml (remove {} if this your first configuration entry) and add these lines:
    otg:
        devices:
            ethernet:
                enabled: true
                driver: ecm
                host_mac: 48:6f:73:74:50:43
                kvm_mac: 42:61:64:55:53:42
    
    The host_mac address will be used on the server's network interface. The kvm_mac means the address that will be assigned to the local interface on the Pi-KVM. The KVM interface will be called usb0network interface. If the host_mac or kvm_mac is not specified, a random value will be used. The driver parameter means the protocol that will be used for the USB network. The default value is ecm so it can be passed it this example. Other possible values are eem, ncm and rndis.
  2. To automatically configure the USB network on the server recommended using the service kvmd-otgnet. It configures the firewall, assigns an address to the local Pi-KVM interface usb0 and starts DHCP so the managed server can get the IPv4 address. By default, the address 169.254.0.1/28 to interface usb0 will be assigned. One of the other addresses from the network 169.254.0.0./28 will be assigned to the server when it requests it via DHCP. For security reasons, all incoming connections from the server to the Pi-KVM side are blocked (except for ICMP and UDP port 67 which is used for DHCP). If you want to allow access from the server to the Pi-KVM interface, then you need to add ports 80 and 443 to the whitelist using /etc/kvmd/override.yaml file like this:
    otgnet:
        firewall:
            allow_tcp: [80, 443]
    
    To view other available configuration parameters, use the command kvmd -m.
  3. To enable the service, use the command systemctl enable kvmd-otgnet.
  4. Perform reboot.

Routing via Pi-KVM

By default, kvmd-otgnet will configure network connection between Pi-KVM and the server host only. The server host will not be able to reach other hosts beyond Pi-KVM. If the full network access is required from the server host through the USB-Ethernet feature (access all hosts Pi-KVM can access), additional settings are needed in /etc/kvmd/override.yaml.

  1. Run echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/99-kvmd-extra.conf.
  2. Add network interface to forward requests to (default gateway) by adding a line forward_iface: <interface name> under firewall:. Typically it would be eth0 if the built-in ethernet port is used::
    otgnet:
        firewall:
            forward_iface: eth0
    
  3. Add DNS server to provide host name resolution service. For example, adding 8.8.8.8 as DNS server requires addition of dnsmasq dhcp options. This can be done by adding following lines to /etc/kvmd/override.yaml:
    otgnet:
        commands:
            post_start_cmd_append:
            - "--dhcp-option=6,8.8.8.8"
    
  4. Combining above two together::
    otgnet:
        firewall:
            forward_iface: eth0
        commands:
            post_start_cmd_append:
            - "--dhcp-option=6,8.8.8.8"
    
  5. Don't forget reboot.