Моя цель - установить два интерфейса Ethernet на двух разных портах и с двумя разными статическими IP-адресами в одной сети. Дело в том, что один порт станет доступным для двух IP, а другой - нет. Я перехожу к файлу / etc / network / interfaces и вызову /etc/init.d/networking restart. Я также пробовал с вызовами ifupdown. Вот как я продолжаю:
Я только что установил свою ОС Debian 3.16 без какой-либо конфигурации сети. У моего устройства два порта Ethernet.
ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:30:18:cd:49:77 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
link/ether 00:30:18:cd:49:76 brd ff:ff:ff:ff:ff:ff
4: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether bc:30:7e:c0:e6:ba brd ff:ff:ff:ff:ff:ff
ifconfig
lo Link encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:31 errors:0 dropped:0 overruns:0 frame:0
TX packets:31 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:3172 (3.0 KiB) TX bytes:3172 (3.0 KiB)
cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
Вроде все нормально. Я хочу добавить новый интерфейс Ethernet для подключения к моей сети, поэтому я изменяю файл / etc / network / interfaces следующим образом:
cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.160
netmask 255.255.255.0
gateway 192.168.1.1
Мое устройство теперь доступно через порт Ethernet, скажем, A с IP 192.168.1.160, ifconfig тоже в порядке. Затем я добавляю новый интерфейс и изменяю / etc / network / interfaces следующим образом:
cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.160
netmask 255.255.255.0
gateway 192.168.1.1
auto eth1
iface eth1 inet static
address 192.168.1.161
netmask 255.255.255.0
gateway 192.168.1.1
ifconfig
eth0 Link encap:Ethernet HWaddr 00:30:18:cd:49:77
inet adr:192.168.1.160 Bcast:192.168.1.255 Masque:255.255.255.0
adr inet6: fe80::230:18ff:fecd:4977/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6550 errors:0 dropped:8 overruns:0 frame:0
TX packets:819 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:584489 (570.7 KiB) TX bytes:106896 (104.3 KiB)
Interruption:18 Mémoire:d0700000-d0720000
eth1 Link encap:Ethernet HWaddr 00:30:18:cd:49:76
inet adr:192.168.1.161 Bcast:192.168.1.255 Masque:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:222 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:20241 (19.7 KiB) TX bytes:1500 (1.4 KiB)
Interruption:19 Mémoire:d0600000-d0620000
lo Link encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:31 errors:0 dropped:0 overruns:0 frame:0
TX packets:31 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:3172 (3.0 KiB) TX bytes:3172 (3.0 KiB)
Я ожидаю, что мое устройство будет подключено к порту A с .160 и к порту B с .161. Но на самом деле я подключаюсь к своему устройству через порт A с обоими значениями .160 и .161, и ни одного на порту B.
РЕДАКТИРОВАТЬ: Если я подключу кабель Ethernet к физическому порту A, я хочу иметь возможность подключиться (ping или ssh-соединение) к моему устройству с IP 192.168.1.160. Если я подключу кабель Ethernet к физическому порту B, я хочу иметь возможность подключиться (ping или ssh-соединение) к моему устройству с IP 192.168.1.161. (сеть 192.168.1.0/24)
Мои вопросы:
Конечно:
В вашем вопросе неясно, что вы имеете в виду под
«Я ожидаю, что мое устройство будет подключено к порту A с .160, а к порту B - с .161. Но на самом деле я достигну своего устройства на порту A с обоими значениями .160 и .161, и ни одного на порту B.»
Если это будет ясно, чем может быть, мы можем предоставить вам, как именно действовать.
Пожалуйста, обратите внимание на маршрутизацию на основе политик в linux. Возможно, ниже вам могут помочь: https://www.novell.com/support/kb/doc.php?id=7008874
http://blog.scottlowe.org/2013/05/29/a-quick-introduction-to-linux-policy-routing/
Как вы сказали, вы пробовали использовать только один шлюз на активном интерфейсе, так что это должно сработать. Проблема здесь в сети, которая одинакова для обоих интерфейсов. Можете попробовать на этом примере:
ifconfig eth0 192.168.1.161/24 up
route add default gw 192.168.1.1 dev eth0
ifconfig eth1 192.168.1.162/24 up
И протестируйте с помощью ifconfig по очереди eth0 и eth1
также можно подключить LAN к обоим интерфейсам и попробовать с помощью ping или ssh.
В основном я подозреваю, что речь идет о маршрутизации. Если вы не находитесь в том же сегменте LAN (т. Е. В широковещательном домене), что и два упомянутых вами IP-адреса, ваш трафик необходимо маршрутизировать.
Коротко говоря, вы установили для обоих портов шлюз по умолчанию. Это то, что вы можете сделать (но AFAIK требует, чтобы вы указали стоимость для одного из ваших сетевых адаптеров), но это все равно, скорее всего, приведет к тому же
В вашей конфигурации сначала настраивается eth0. Я подозреваю, что это означает, что это тот, кто объявляет, что у него есть шлюз по умолчанию, что, в свою очередь, означает, что шлюз eth1 игнорируется. Вы можете проверить это с помощью ip r
.
В более общем плане, в маршрутизируемой сети (опять же, если вы находитесь в одном и том же широковещательном домене, это другое дело, потому что тогда вы переходите по физическому адресу / MAC, а не сетевому адресу / IP), всегда есть предпочтительный путь, и ваш трафик просто использует этот предпочтительный путь.
Фактически, все, что вы видите, - это то, что ваш eth0 предоставляет доступ к IP-адресу eth0 и eth1, потому что он знает маршрут к обоим и обратно к вашему IP.
Так что здесь нет ничего плохого - по крайней мере, я не могу сказать.
Если бы вы делали все это из соображений доступности, вы могли бы вместо этого подумать о том, чтобы связать свои сетевые адаптеры и иметь один IP-адрес, потому что в этой настройке меньше переменных.