Используйте статические IPv6-адреса на маршрутизаторе за Comcast Business IP Gateway
Я недавно настроился с интернетом 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 Business-BWG модель-DPC3939B Business 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:: что-нибудь /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: хххх: хххх: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: хххх: хххх:8792::1/64 и установка сервера на 2603: хххх: хххх:8792::170/64. Теперь сервер может пропинговать 2603:xxxx:xxxx:8792::1 И 2603:xxxx:xxxx:8700::1! Это улучшение! Однако я не могу пропинговать шлюз (2603:xxxx:xxxx:8700:7454:7dff:feb1:d391) или Google с сервера. monitor interfaces
показывает движение трафика, но ничего не возвращается
И это только начало того, что мне нужно сделать. В конце концов я хочу выделить два /64 префикса для конфигурации без сохранения состояния в двух частных локальных / беспроводных локальных сетях, но я пока даже не дохожу до этого. Одна вещь за раз, я даже не могу заставить полностью работать статический IPv6 или работать вообще после первой /64 статической /56, делегированной мне. Очевидно, что я делаю что-то не так, но это также пахнет плохо. Почему это так сложно?