Если вы не находитесь в системном дистрибутиве (= Arch Linux, OpenSUSE, Fedora), вы можете сделать это в файле /etc /network /interfaces, где, как я полагаю, вы настраиваете свои vif-файлы.
Просто добавьте в раздел для интерфейса eth0:B следующие две строки:
post-up route add -net route add -net 10.1.0.0/16 gw 192.168.1.1 dev eth0:B
pre-down route delete -net route add -net 10.1.0.0/16 gw 192.168.1.1 dev eth0:B
Это будет делать это автоматически для вас каждый раз, когда вы начинаете работать в сети (что происходит при загрузке или вручную), а также разрушает маршрут, если вы выключите eth0:B.
Редактировать:
по запросу @ Tiana987642 я покажу, как это сделать в дистрибутивах systemd. Так как я хочу, чтобы это работало при загрузке, я могу также следовать вики и определить сервис, который будет запускать systemd. Я изменю вики как можно меньше:
/etc/conf.d/network@eth0
address1=192.168.0.15
netmask1=24
broadcast1=192.168.0.255
gateway1=192.168.0.1
address2=10.0.0.17
netmask2=24
broadcast2=10.0.0.255
gateway2=10.0.0.1
Эти конфигурации для двух интерфейсов являются чисто предположительными, вы должны заменить свои собственные. А теперь /etc/systemd/system/network@.service
[Unit]
Description=Network connectivity (%i)
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device
[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/conf.d/network@%i
ExecStart=/usr/bin/ip link set dev %i up
ExecStart=/usr/bin/ip addr add ${address1}/${netmask1} broadcast ${broadcast1} dev %i
ExecStart=/usr/bin/ip route add default via ${gateway1}
ExecStart=/usr/bin/ip link add link $i name $i:B type vlan id 10
ExecStart=/usr/bin/ip link set dev %i:B up
ExecStart=/usr/bin/ip addr add ${address2}/${netmask2} broadcast ${broadcast2} dev %i:B
ExecStart=/usr/bin/ip route add default via ${gateway2}
ExecStop=/usr/bin/ip addr flush dev %i
ExecStop=/usr/bin/ip link set dev %i down
ExecStop=/usr/bin/ip addr flush dev %i:B
ExecStop=/usr/bin/ip link set dev %i:B down
[Install]
WantedBy=multi-user.target
и вы включаете и запускаете службу как обычно,
systemctl enable network@eth0.service
systemctl start network@eth0.service