Виртуальные интерфейсы systemd.network

У меня есть выделенный сервер под управлением Ubuntu 18.04, который использует systemd.network для управления своей сетью.

На сервере есть только один физический NIC.

В качестве части услуги провайдер-провайдер выделил мне два IP-адреса и два MAC-адреса.

Это конфигурация /etc/systemd/network

[Match]
Name=enp4s0

[Network]
Address=<IPv6 Address>/64
Gateway=x.x.x.y
Gateway=xxx::y

[Address]
Address=x.x.x.x
Peer=x.x.x.y/32

Приведенная выше конфигурация содержит только один из моих двух выделенных адресов IPv4.

Мне нужно добавить виртуальный интерфейс с MAC-адресом и IPv4-адресом моего второго распределения. Я, однако, не уверен, как этого добиться.

Оба интерфейса должны использовать один и тот же физический NIC.

Я знаю, как добиться этого с NetworkManager, но не с Systemd. Я также не уверен, что возможно с systemd.network... Нужно ли создавать два виртуальных интерфейса, оба с их собственными IPv4 и MAC-адресами, и чтобы они оба совместно использовали физический сетевой адаптер для подключения? Или следует оставить существующую конфигурацию как есть (как указано выше) на физическом сетевом адаптере и создать дополнительный виртуальный интерфейс со вторым набором деталей?

Для простоты предположим следующее;

Address One (currently configured on physical NIC):
IP Address: x.x.x.x
MAC Address: XX:XX:XX:XX:XX:XX
Gateway: x.x.x.y

Address Two (currently unconfigured):
IP Address: a.a.a.a
MAC Address: AA:AA:AA:AA:AA:AA
Gateway: x.x.x.y

Как только виртуальный интерфейс активен (aaaa), я передам его напрямую через виртуальную машину PFSense. Который затем будет действовать как пограничный маршрутизатор NAT для всех других виртуальных машин.

1 ответ

Это 50% ответов и 50% вопросов назад, но для комментария требуется слишком много места.

С netplan, который может отображать в networkd/networkManager, как вам нужно, это будет выглядеть (с моими примерами адресов, конечно):

network:
    version: 2
    ethernets:
        ens3:
            dhcp4: false
            addresses:
                - 192.168.122.228/24
                - 10.0.0.7/24

Это дает мне нормальные 2 адреса на одном устройстве / Mac, как вам это нужно, верно?

2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:a8:b4:96 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.228/24 brd 192.168.122.255 scope global ens3
       valid_lft forever preferred_lft forever
    inet 10.0.0.7/24 brd 10.0.0.255 scope global ens3
       valid_lft forever preferred_lft forever

Примечание: Вы можете сделать это сопоставление более надежным, добавив правило соответствия, например (в случае, если тип устройства или назначение слотов могут когда-либо измениться):

    match:
        macaddress: 52:54:00:a8:b4:96

И я должен признать, что со сложностью networkd - если мне нужно знать, как это делается в networkd, я все еще пишу правила netplan и позволяю им отображать их, чтобы я мог прочитать то, что он создал. Исходя из этого, если вы хотите использовать только networkd, вы должны создать его следующим образом:

[Match]
Name=ens3

[Network]
Address=192.168.122.228/24
Address=10.0.0.7/24

Вышеприведенное позволит вам иметь оба IP-адреса, которые вы хотели (если это то, что вам нужно), но еще не использовать оба MAC-адреса.

Я не ожидаю, что у вашей сетевой карты действительно есть два MAC (я бы не увидел, как работает). Но я могу подумать, что у вашей сетевой карты есть один MAC, и вам "разрешено" использовать другой MAC, как, например, когда вы использовали macvlan в прошлом?

ip link add link eth0 address AA:AA:AA:AA:AA:AA ens3.1 type macvlan

Если у вас действительно есть MAC на вашем устройстве, я думаю, что все будут рады увидеть networkctl status -a вывод, чтобы увидеть это для дальнейшего рассмотрения. В противном случае я предполагаю, что у вас есть один основной MAC (XX:...) и разрешено / предполагается добавить еще один (AA:...).

Если вы действительно относитесь к последнему случаю и недостаточно добавить еще один IP, как показано выше, то я думаю, что вы заблокированы этой ошибкой, если да, пожалуйста, сообщите об этом и добавьте ошибку с комментарием и объясните, почему вышеупомянутого нет. достаточно - в противном случае я ожидаю, что, оставаясь в списке пожеланий штата, может потребоваться некоторое время, чтобы исправить ситуацию.

Другие вопросы по тегам