Недавно я подключился к Интернету Comcast Business Class. Раньше я использовал DSL с другим провайдером и имел единственный статический IPv4-адрес (VyOS). Теперь я хочу настроить Comcast.
Я купил статическое делегирование IP-адреса от Comcast. У меня пять статических адресов IPv4 (96.xx168 / 29, из которых 168 и 175 зарезервированы, а 174 - шлюз, поэтому я могу использовать только 169-173 или пять адресов) и статический / 56 адресов IPv6 (2603 : xxxx: xxxx: 8700 :: / 56 со статическим шлюзом 2603: xxxx: xxxx: 8700: 7454: 7dff: feb1: d391 [локальная ссылка fe80 :: 7454: 7dff: feb1: d391], поэтому у меня должен быть полный использование 2603: xxxx: xxxx: 8700 :: 1 до 2603: xxxx: xxxx: 87ff: ffff: ffff: ffff: ffff). Вы заметите, что статический шлюз находится внутри / 56 и, действительно, находится в пределах первого префикса / 64/56 ... Я не знаю, важно ли это или вызывает у меня какие-либо проблемы. ВАЖНОЕ ПРИМЕЧАНИЕ: Поскольку это Comcast, и они ничего не могут сделать просто, нам не разрешено переводить модем / маршрутизатор в «режим моста». Статические IP-адреса могут работать, только если маршрутизатор находится в обычном режиме (но вы можете отключить все ненужные DHCP, брандмауэр, WiFi и т. Д., Что я сделал). Если я переведу модем / маршрутизатор в «режим моста», он заставит меня использовать один DHCP-адрес, и это соответствует ожиданиям в документации Comcast. Оборудование Comcast представляет собой бизнес-шлюз Cisco типа BWG модель DPC3939B IP. Показания показывают статическое делегирование IPv4 и IPv6.
Я использую VyOS в качестве программного обеспечения маршрутизации на моем маршрутизаторе / межсетевом экране (который подключен к одному из портов LAN на шлюзе BIP). Это ветвь OSS Vyatta, параллельная Brocade или Ubiquiti.
У меня не было проблем с использованием моих статических адресов IPv4. Я установил 169 в качестве исходящего интерфейса для всего моего частного трафика (без NAT назначения, только исходный NAT, используя 169 в качестве внешнего адреса). Я установил 170-173 с использованием NAT 1: 1 для различных публичных серверов за моим брандмауэром. Все работает отлично.
IPv6 был катастрофой. Я не могу много работать. Если я сделаю следующее (довольно просто), я могу пинговать Google (2607: f8b0: 4002: c07 :: 66) из VyOS:
# set interfaces ethernet eth1 2603:xxxx:xxxx:8700::1/60
# set protocols static route6 ::/0 next-hop 2603:xxxx:xxxx:8700:7454:7dff:feb1:d391
# commit
Это приводит к:
$ ip -6 route get 2607:f8b0:4002:c07::66
2607:f8b0:4002:c07::66 from :: via 2603:xxxx:xxxx:8700:7454:7dff:feb1:d391 dev
eth1 src 2603:xxxx:xxxx:8700::1 metric 0
cache
$ ping6 -c 1 2607:f8b0:4002:c07::66
PING 2607:f8b0:4002:c07::66(2607:f8b0:4002:c07::66) 56 data bytes
64 bytes from 2607:f8b0:4002:c07::66: icmp_seq=1 ttl=46 time=30.6 ms
Я также могу пинговать 2603: xxxx: xxxx: 8700 :: 1 с удаленного сервера, к которому у меня есть доступ, с известным рабочим IPv6. Так что это хорошо, но это буквально то, чем я могу заниматься. Я не могу получить IPv6 ни на одном другом компьютере в сети. Я пробовал адреса интерфейсов, оканчивающиеся на / 56, / 60 и / 64, без лучших результатов ни в одном из следующих сценариев:
В качестве первого примера адрес 2603: xxxx: xxxx: 8700 :: 1/60 должен помещать в область все с 2603: xxxx: xxxx: 8700 :: 1 по 2603: xxxx: xxxx: 870f: ffff: ffff: ffff: ffff моего интерфейса. Маршрут по умолчанию попадает в этот диапазон. Однако я могу пинговать Google (и могу пинговать только адрес с моего удаленного сервера), если мой адрес - 2603: xxxx: xxxx: 8700 :: something / 60. 2603: xxxx: xxxx: 8700 :: 2/60 работает, 2603: xxxx: xxxx: 8700 :: feed / 60 работает, 2603: xxxx: xxxx: 8700: 1 :: 1/60 работает ... но 2603: xxxx : xxxx: 8701 :: 1/60 не работает. Как только я это попробую, ip -6 route
и ping6
скажите мне, что шлюз «недоступен» и что Google «недоступен», даже если все эти адреса (включая последний) находятся в одной подсети и друг с другом и со шлюзом.
В качестве второго примера я попытался установить два адреса на интерфейсе:
# set interfaces ethernet eth1 2603:xxxx:xxxx:8700::1/60
# set interfaces ethernet eth1 2603:xxxx:xxxx:8701::1/60
# commit
Это дало интересные результаты. ip -6 route
говорит, что у меня есть выход через 2603: xxxx: xxxx: 8701 :: 1 через 2603: xxxx: xxxx: 8700: 7454: 7dff: feb1: d391 и ping6
больше не говорит "недоступен", но я никогда не получаю ответов на пинг. Было легко определить почему. Я могу пинговать 2603: xxxx: xxxx: 8700 :: 1 с моего удаленного сервера, но не 2603: xxxx: xxxx: 8701 :: 1. Поскольку маршрут от VyOS к Google проходит через 2603: xxxx: xxxx: 8701 :: 1, ответы не могут быть возвращены. Как ни странно, если я удалю оба адреса, зафиксирую, а затем добавлю их обратно в обратном порядке, это волшебным образом сработает:
# set interfaces ethernet eth1 2603:xxxx:xxxx:8701::1/60
# set interfaces ethernet eth1 2603:xxxx:xxxx:8700::1/60
# commit
Сейчас ip -6 route
говорит, что у меня есть выход через 2603: xxxx: xxxx: 8700 :: 1 через 2603: xxxx: xxxx: 8700: 7454: 7dff: feb1: d391 и, поскольку мои эхо-запросы проходят через 2603: xxxx: xxxx: 8700 :: 1, ping6
в Google приводит к успешным ответам. Отлично. Но 2603: xxxx: xxxx: 8701 :: 1 по-прежнему не может быть отправлен из внешнего мира, поэтому мне все еще не удалось использовать все свои адреса.
В качестве третьего примера, поскольку я могу по крайней мере пинговать Google с VyOS, я хочу назначить некоторые статические адреса своим внутренним общедоступным серверам. Я начинаю с добавления адреса 2603: xxxx: xxxx: 8700: 92 :: 1/64 в bond0.900
, интерфейс, обращенный к моим серверам (этот префикс должен охватывать все от 2603: xxxx: xxxx: 8700 :: до 2603: xxxx: xxxx: 8700: ffff: ffff: ffff: ffff). Затем я добавляю 2603: xxxx: xxxx: 8700: 92 :: 173/64 к интерфейсу на одном из моих серверов и устанавливаю его шлюз по умолчанию на 2603: xxxx: xxxx: 8700: 92 :: 1. Теперь со своего сервера я могу пинговать 2603: xxxx: xxxx: 8700: 92 :: 1. Большой! Но я даже не могу пинговать 2603: xxxx: xxxx: 8700 :: 1, который находится всего в одном шаге от маршрутизатора, и я точно не могу пинговать Google. Если я использую интерфейсы монитора, я вижу, что эхо-запросы к Google, по крайней мере, исходят из eth1, и я просто не получаю никаких ответов. Полагаю, в этом нет ничего удивительного, учитывая описанные выше проблемы. Но я даже не вижу, как пинги до 2603: xxxx: xxxx: 8700 :: 1 попадают в VyOS. Но на самом деле я не собирался его использовать, я просто подумал, что должен, так как я ничего не мог получить дальше: 8700 для работы.
Итак, я попытался установить eth1
на 2603: xxxx: xxxx: 8700 :: 1/64 (все еще работает для пинга Google из VyOS), установка bond0.900
на 2603: xxxx: xxxx: 8792 :: 1/64 и установив сервер на 2603: xxxx: xxxx: 8792 :: 170/64. Теперь сервер может пинговать 2603: xxxx: xxxx: 8792 :: 1 И 2603: хххх: хххх: 8700 :: 1! Это улучшение! Однако я не могу пинговать шлюз (2603: xxxx: xxxx: 8700: 7454: 7dff: feb1: d391) или Google с сервера. monitor interfaces
показывает, что трафик уходит, но ничего не возвращается.
И это только начало того, что мне нужно сделать. В конце концов, я хочу выделить два префикса / 64 для конфигурации без сохранения состояния в двух частных локальных / беспроводных локальных сетях, но я еще даже не добрался до этого. По одному, я даже не могу заставить статический IPv6 полностью работать или вообще работать после первого / 64 из статических / 56, делегированных мне. Ясно, что я здесь что-то не так делаю, но и от этого плохо пахнет. Почему это так сложно?