Добрый день. Два дня пытаюсь создать мост между двумя сетевыми карточками. Ubuntu Desktop 18.04
Одна карточка - беспроводной адаптер, другая проводной.
Зачем нужно - машина подключена к интернету по вайфаю, а по проводу подключен тонкий клиент, он к виртуалке на машине (хосте) подключается. Нормальным решением видится создание моста - и интернет на тонком клиенте будет (на случай обслуживания его тонкой операционки), и ЛВС до сервера. Подключить клиента к маршрутизатору не представляется возможным - он не выдерживает нагрузки удаленного соединения, плюс вайфай тут довольно плохого качества. Сервак кабелем уже по другой причине к маршрутизатору не подключить.
Почитал форум, покурил здесь (
https://netplan.io), пробовал разные конфиги, последний что-то типа такого:
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
enp9s0:
dhcp4: no
dhcp6: no
wifis:
wlx6470022693ed:
dhcp4: no
dhcp6: no
access-points:
"┏( -_-)┛┗(-_- )┓":
mode: ap
password: "WSKJNIQBTF"
bridges:
br0:
interfaces: [ enp9s0, wlx6470022693ed ]
dhcp4: true
# - enp9s0
# - wlx6470022693ed
# dhcp4: no
dhcp6: no
В таком случае вайфай подключается, но адреса не выдаются:
pavel@ubuntu-pc:~$ ifconfig
anbox0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 36:9e:b2:79:20:98 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 562 bytes 156464 (156.4 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::209:beff:fedd:523 prefixlen 64 scopeid 0x20<link>
ether 00:09:be:dd:05:23 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 27 bytes 4766 (4.7 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp7s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 00:09:be:dd:05:22 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp9s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:09:be:dd:05:23 txqueuelen 1000 (Ethernet)
RX packets 652 bytes 60262 (60.2 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2007 bytes 216168 (216.1 KB)
TX errors 1 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Локальная петля (Loopback))
RX packets 9094 bytes 861960 (861.9 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 9094 bytes 861960 (861.9 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlx6470022693ed: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 64:70:02:26:93:ed txqueuelen 1000 (Ethernet)
RX packets 32087 bytes 28465095 (28.4 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 18716 bytes 2607319 (2.6 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
После каждого изменения делал, конечно же, "netplan try" и "service networking restart".
Также удалял настройки из NetworkManager, думая, что они могут конфликтовать.
Если задать вайфаю адреса, то интернет на машине появляется, но клиент, подключенный по кабелю, связи не имеет, пинги не идут.
Что я делаю не так?
Еще вопрос понимания. На офсайте (и много где еще) пишут примеры настройки моста из одного-единственного интерфейса. Как это понимать? Мост же работает как коммутатор? Получается свитч с одним портом?
Кроме того, адреса должна получать сетевая, смотрящая к маршрутизатору, или обе, или только сам интерфейс br0?
Ядро 4.15.0-96-generic
UPD: заметил, что если закомментировать мост в *.yaml, то вайфай подключается, но если мост сконфигурирован, то вайфай не подключается и всплывает уведомление о сбое подключения к сети. Не знаю, как это понимать.
Пользователь добавил сообщение 12 Апреля 2020, 09:42:28:
По сути задача выполнена - сделал
iptables -t nat -A POSTROUTING -o 'интерфейс_входящего_инета' -j MASQUERADE
Убрал из конфига netplan свою писанину, через гуй NetworkManager'a настроил статичные адреса, на клиенте тоже статику прописал.
Это конечно из пушки по воробьям и костыль, но пока это первое хорошо работающее решение в данном случае.
Виртуалка на хосте подключается к адаптеру, который смотрит на тонкого клиента. Если подключаю к адаптеру с интернетом, то появляется петля. А так всё работает, но как сделать мост без возврата к ifupdown, мне неясно.