На моем MacBook Pro есть два сетевых устройства:
- WIFI (en1): используется для общего трафика. Подключается к ip 192.168.19. * Через DHCP
- LAN (en0): используется для определенного трафика. Подключается к ip 192.168.2.10 как статический IP. Не подключен к маршрутизатору, только переключатель для прямой
маршрутизациисоединения.
У меня есть 4 IP-адреса, которые мне нужны для доступа в локальной сети:
- 192.168.2.1
- 192.168.2.21
- 192.168.2.20
- 192.168.2.30
Остальная часть трафика должна идти в WIFI. Я попытался настроить таблицу маршрутизации для определенных IP-адресов, но мне удалось только испортить мою сеть. Я не слишком часто выхожу в мир сетей, но это была последняя команда, которую я пробовал:
sudo route add -host 192.168.2.30 -interface en0
Эта команда убила мою способность использовать пинг. Он сказал мне, что пинг не может выделить память (это вообще возможно)? Это также убило мой доступ к Wi-Fi. Выйдя и вернувшись в исправленную проблему. Я действительно не против сделать это решение постоянным, так что я в порядке с временной маршрутизацией.
РЕДАКТИРОВАТЬ:
Если я в настоящее время пытаюсь:
sudo route flush
sudo route add default 192.168.19.1
Это заставляет все работать около минуты. Но после такой минуты он «забывает» маршрутизацию к WiFi, сохраняя маршрутизацию локальной сети (en0). Если я отключу и снова подключу кабель LAN (en0), процесс будет работать еще одну минуту.
РЕДАКТИРОВАТЬ 2:
Это были некоторые команды, введенные как запрос d34dh0r53.
$ netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.2.1 UGSc 4 0 en0
default 192.168.19.1 UGScI 0 0 en1
127 127.0.0.1 UCS 0 1 lo0
127.0.0.1 127.0.0.1 UH 5 1429023 lo0
169.254 link#4 UCS 0 0 en0
192.168.2 link#4 UCS 4 0 en0
192.168.2.1 0:27:22:2e:5f:1a UHLWIi 2 0 en0 1199
192.168.2.10 127.0.0.1 UHS 0 0 lo0
192.168.2.30 90:a2:da:0:f5:63 UHLWIi 1 1433 en0 1191
192.168.2.255 ff:ff:ff:ff:ff:ff UHLWbI 0 7 en0
192.168.19 link#5 UCS 2 0 en1
192.168.19.1 3e:d0:f8:aa:28:56 UHLWIi 0 2 en1 1192
192.168.19.3 127.0.0.1 UHS 1 0 lo0
192.168.19.255 ff:ff:ff:ff:ff:ff UHLWbI 0 5 en1
Internet6:
Destination Gateway Flags Netif Expire
::1 link#1 UHL lo0
fe80::%lo0/64 fe80::1%lo0 UcI lo0
fe80::1%lo0 link#1 UHLI lo0
fe80::%en0/64 link#4 UCI en0
fe80::226:4aff:fe00:b68a%en0 0:26:4a:0:b6:8a UHLI lo0
fe80::%en1/64 link#5 UCI en1
fe80::226:bbff:fe03:cbd%en1 0:26:bb:3:c:bd UHLI lo0
ff01::%lo0/32 fe80::1%lo0 UmCI lo0
ff01::%en0/32 link#4 UmCI en0
ff01::%en1/32 link#5 UmCI en1
ff02::%lo0/32 fe80::1%lo0 UmCI lo0
ff02::%en0/32 link#4 UmCI en0
ff02::%en1/32 link#5 UmCI en1
$ traceroute -n 192.168.2.1
traceroute to 192.168.2.1 (192.168.2.1), 64 hops max, 52 byte packets
1 192.168.2.1 2.499 ms 3.392 ms 3.829 ms
$ traceroute -n google.com
traceroute: unknown host google.com
источник
Ответы:
Вам не нужно создавать какие-либо правила маршрутизации вручную для этой конфигурации, при условии, что все адреса 192.168.2.x, с которыми вы хотите общаться, находятся по интерфейсу с адресом 192.168.2.x.
Как только это будет сделано,
netstat -rn
все равно должны отображаться маршруты для обеих подсетей, но только маршрут «ссылка № 4» вместо маршрута по умолчанию через 192.168.2.1.Если вы не хотите использовать маршрут по умолчанию, оставьте поле маршрутизатора пустым. Значение в окне маршрутизатора используется только для настройки маршрута по умолчанию через этот сетевой интерфейс и не используется ни для чего другого.
источник
192.168.2.1
в поле маршрутизатора, чтобы он соответствовал «маршрутизатору» на локальной сети. Я думал, что это необходимо, но теперь я вижу, что он принял маршрут по умолчанию для общего трафика.Проблема заключается в том, что ваш
en0
интерфейс добавляет маршрут по умолчанию, который имеет приоритет над маршрутом по умолчанию, установленным интерфейсом 802.11. Я не совсем уверен, почему, но это либо тот факт, что BSD предпочитает проводной интерфейс беспроводному, либо предпочитает статически настроенный интерфейс динамически настроенному. Вы можете сказать, чтоen0
маршрут по умолчанию используетсяRefs
столбцом;Refs
является метрикой, показывающей текущее количество активных использований маршрута, поэтому мы можем видеть, что он получает весь трафик.Решение состоит в том, чтобы удалить этот маршрут, предпочтительно навсегда из таблицы маршрутизации, чтобы трафик, предназначенный для хостов, отличных от локальных сетей, проходил через шлюз по умолчанию, установленный DHCP на
en1
. Первое, что я хотел бы проверить, это на панели конфигурации,en0
чтобы убедиться, что вы ничего не вводили вrouter
поле. Информация в этом поле добавляется как шлюз по умолчанию. Если это не работает, нам нужно вручную удалить маршрут, причина, по которойroute flush
это не работает, заключается в том, что я полагаю, что он говорит OS X перезагрузить свою информацию о маршрутизации из файлов конфигурации интерфейса, следовательно, через короткое время ваши изменения будут отменены. Следующая команда должна удалить маршрут по умолчанию дляen0
интерфейс, пока либо сеть не будет перезапущена, либо система не будет IPL:Если вы хотите сделать это изменение постоянным, вы можете либо: а) создать службу, в
/Library/StartupItems
которой мне кажется слишком много работы, либо б) добавить эту строку/etc/rc.local
с помощью такой команды:Возможно, вам придется добавить
sleep <number_of_seconds>
команду перед этой строкой,/etc/rc.local
чтобы избежать запуска команды до полного запуска интерфейсов и создания таблицы маршрутизации.Надеюсь, что это помогает и удачи!
источник
192.168.2.1
был проблемой, но @rakslice обнаружил, что я допустил ошибку при вводе информации о маршрутизации для соединения en0. Я положил IP-адрес192.168.2.1
в поле маршрутизатора, полагая, что это было необходимо. После удаления IP-адреса маршрутизатора по умолчанию я также удалил неверный маршрут по умолчанию192.168.2.1
. Еще раз спасибо за вашу помощь.Вы хотите установить свой Wi-Fi IP в качестве шлюза по умолчанию и удалить любой шлюз по умолчанию (или маршрут к 0.0.0.0), подключенный к локальной сети или 192.168.2.0/24.
Это, конечно, проще, если вы можете установить свой en1 на фиксированный IP, который будет работать с Wi-Fi.
Возможно, вам придется добавить 192.168.2.10 в качестве маршрута к сети 192.168.2.0/24. Однако это должно быть автоматическим, так как он может сказать, что 192.168.2.0/24 напрямую связан с виртуальным из того, что вы назначили для интерфейса.
Таким образом, трафик, идущий на любой 192.168.2.X, будет выходить из 192.168.2.10, а трафик, идущий куда-либо еще, будет выходить с IP-адреса вашего en1.
источник
remove any default gateway connected to the LAN
.sudo route del default 192.168.2.10
?, не совсем уверен, как это сделать на FreeBSD / Mac OSX, но это должно быть похоже.sudo route delete default 192.168.2.10
. Пинг все еще активен. Тем не менее, он закрывает доступ к трафику Wi-Fi, за исключением маршрутизатора IP.