Jeśli w systemie Windows utworzymy zewnętrzny przełącznik wirtualny w Menedżerze funkcji Hyper-V, będzie on miał adres MAC karty sieciowej, z którą jest połączony.
Więc chcę robić podobne rzeczy w Linuksie z systememd-networkd. Moja konfiguracja jest następująca:
[tom@localhost ~]$ ls /etc/systemd/network/
br0.netdev br0.network enp3s0.network
[tom@localhost ~]$ cat /etc/systemd/network/br0.netdev
[NetDev]
Name=br0
Kind=bridge
MACAddress=ac:22:0b:29:e6:0c
[tom@localhost ~]$ cat /etc/systemd/network/br0.network
[Match]
Name=br0
[Network]
DHCP=ipv4
IPv6AcceptRouterAdvertisements=no
[tom@localhost ~]$ cat /etc/systemd/network/enp3s0.network
[Match]
Name=enp3s0
[Network]
Bridge=br0
IPv6AcceptRouterAdvertisements=no
gdzie ac:22:0b:29:e6:0c
jest adresem MAC tylko karty sieciowej w systemie (która służy jako urządzenie podrzędne br0
).
Oto wynik:
[tom@localhost ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
link/ether ac:22:0b:29:e6:0c brd ff:ff:ff:ff:ff:ff
inet6 fe80::ae22:bff:fe29:e60c/64 scope link
valid_lft forever preferred_lft forever
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether ac:22:0b:29:e6:0c brd ff:ff:ff:ff:ff:ff
inet 192.168.1.111/24 brd 192.168.1.255 scope global dynamic br0
valid_lft 85622sec preferred_lft 85622sec
inet6 fe80::ae22:bff:fe29:e60c/64 scope link
valid_lft forever preferred_lft forever
Jak widać, teraz enp3s0
i br0
ma ten sam link/ether
i inet6
(adres lokalny link).
Jak dotąd wydaje się, że działało dobrze. Maszyny wirtualne utworzone za pomocą qemu / kvm mają działającą mostkowaną sieć (z -net bridge -net nic
, z której korzysta qemu-bridge-helper
). Zarówno gospodarz, jak i goście mogą dobrze połączyć się z Internetem.
Mam jednak wątpliwości, czy taka konfiguracja może powodować konflikty w określonych okolicznościach. Więc moje pytanie brzmi: czy to jest słuszne? Czy to zła / brzydka praktyka? Jeśli tak, jakie będą możliwe problemy?
EDYCJA : Czy byłaby jakaś różnica, jeśli wyłączę adres lokalny łącza enp3s0
i / lub br0
zaakceptuję reklamę routera ipv6?
[tom@localhost ~]$ ls /etc/systemd/network/
br0.netdev br0.network enp3s0.network
[tom@localhost ~]$ cat /etc/systemd/network/br0.netdev
[NetDev]
Name=br0
Kind=bridge
MACAddress=ac:22:0b:29:e6:0c
[tom@localhost ~]$ cat /etc/systemd/network/br0.network
[Match]
Name=br0
[Network]
DHCP=ipv4
[tom@localhost ~]$ cat /etc/systemd/network/enp3s0.network
[Match]
Name=enp3s0
[Network]
LinkLocalAddressing=no
IPv6AcceptRouterAdvertisements=no
Bridge=br0
[tom@localhost ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
link/ether ac:22:0b:29:e6:0c brd ff:ff:ff:ff:ff:ff
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether ac:22:0b:29:e6:0c brd ff:ff:ff:ff:ff:ff
inet 192.168.1.111/24 brd 192.168.1.255 scope global dynamic br0
valid_lft 86357sec preferred_lft 86357sec
inet6 2404:c805:e00:5300:ae22:bff:fe29:e60c/64 scope global mngtmpaddr noprefixroute dynamic
valid_lft 1756sec preferred_lft 1756sec
inet6 fe80::ae22:bff:fe29:e60c/64 scope link
valid_lft forever preferred_lft forever
enp3s0
(patrzEDIT
moje pytanie)?a fundamental rule of 802.3
(i wszystkiego innego)? Czy to dlatego, że ma programowo zupełnie inny model?