Auteur Sujet: Remplacer sa Livebox par un routeur Ubiquiti Edgemax  (Lu 1529794 fois)

0 Membres et 2 Invités sur ce sujet

thegibs

  • Abonné Free fibre
  • *
  • Messages: 61
  • 91470
Remplacer sa Livebox par un routeur Ubiquiti Edgemax
« Réponse #2448 le: 31 mars 2016 à 19:03:17 »
personne pour me donner un coup de main ? ou un tuto associé

Tu es allé voir là j'imagine ? sans succès ?
http://documentation.netgear.com/gs108t/enu/202-10337-01/GS108T_UM-06-21.html

flipper

  • Abonné Orange Fibre
  • *
  • Messages: 175
Remplacer sa Livebox par un routeur Ubiquiti Edgemax
« Réponse #2449 le: 31 mars 2016 à 19:08:12 »
j'avais regardé mais la conf que j'avait fait coupait tout et je n'avais plus de TV .... Je me repenches dessus ce soir. Merci pour le lien

thegibs

  • Abonné Free fibre
  • *
  • Messages: 61
  • 91470
Remplacer sa Livebox par un routeur Ubiquiti Edgemax
« Réponse #2450 le: 31 mars 2016 à 19:10:14 »
j'avais regardé mais la conf que j'avait fait coupait tout et je n'avais plus de TV .... Je me repenches dessus ce soir. Merci pour le lien

Je viens de regarder sur mon propre switch, n'étant pas un pro du multicast j'ai trouvé l'ensemble *très* compliqué effectivement. Beaucoup plus que la doc fournie sur le lien précédent.
Il y a un mode autoconfiguration, mais VLAN3 (le VLAN par défaut) obligatoire :(

EDIT: je viens de relire ton problème de départ. En fait tu utilises le switch pour commuter aussi le VLAN TV ? Si oui, pourquoi ne pas simplement laisser persister le VLAN tagging sur les ports concernés et en exclure les autres ports ? J'ai mal compris ? (pour moi le 802.1q persiste entre la Livebox et le boîtier TV non ?) <= FAUX.

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 101
  • Paris (75)
Remplacer sa Livebox par un routeur Ubiquiti Edgemax
« Réponse #2451 le: 31 mars 2016 à 19:19:04 »
(pour moi le 802.1q persiste entre la Livebox et le boîtier TV non ?)

non la livebox ne passe aucun vlan coté lan. Le boitier TV discute avec elle en IP sur le LAN comme n'importe quel autre appareil branché sur le LAN.

thegibs

  • Abonné Free fibre
  • *
  • Messages: 61
  • 91470
Remplacer sa Livebox par un routeur Ubiquiti Edgemax
« Réponse #2452 le: 31 mars 2016 à 19:24:04 »
non la livebox ne passe aucun vlan coté lan. Le boitier TV discute avec elle en IP sur le LAN comme n'importe quel autre appareil branché sur le LAN.
Ok désolé, je n'avais jamais regardé en détail. Reste peut-être à voir côté QoS, le switch dispose de 4 files d'attente hardware, c'est peut-être exploitable directement pour gérer la concurrence, ou sinon en parallèle à la définition de classes de service.

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 101
  • Paris (75)
Remplacer sa Livebox par un routeur Ubiquiti Edgemax
« Réponse #2453 le: 31 mars 2016 à 21:25:08 »
Il faut juste qu'il active IGMP Snooping globalement puis pour les ports qu'il souhaite, activer l'admin mode.

Ca été déjà expliqué ici: https://lafibre.info/remplacer-livebox/en-cours-remplacer-sa-livebox-par-un-routeur-ubiquiti-edgemax/msg240483/#msg240483

flipper

  • Abonné Orange Fibre
  • *
  • Messages: 175
Remplacer sa Livebox par un routeur Ubiquiti Edgemax
« Réponse #2454 le: 31 mars 2016 à 23:10:57 »
bon je regarderais plus tard, mais comment savoir, si effectivement ca broadcast sur tous les ports (a partir d'un serveur debian branché sur le switch ou bien de l'interface d'admin du switch)

Nh3xus

  • Réseau Deux Sarres (57)
  • Abonné MilkyWan
  • *
  • Messages: 3 276
  • Sarrebourg (57)
Remplacer sa Livebox par un routeur Ubiquiti Edgemax
« Réponse #2455 le: 31 mars 2016 à 23:24:40 »
mais comment savoir, si effectivement ca broadcast sur tous les ports

Simple : ça fait sapin de noël au niveau de l'ensemble des ports du switch (sur lesquels quelque chose est raccordé).

Mon FAI actuel fourni également la TV via multicast, et j'ai aussi activé cette fonction pour éviter que mon imprimante réseau se mette à regarder la TV.  ;D

Inglat

  • Abonné Free fibre
  • *
  • Messages: 13
  • LILLE (59)
Remplacer sa Livebox par un routeur Ubiquiti Edgemax
« Réponse #2456 le: 01 avril 2016 à 19:23:44 »
Bonjour,

Grâce à ce topic (merci  8) ) j'avais l'ERL 3 PORT en 1.7, Orange en PPOE, TV + TEL sans Livebox.
Avec la configuration classique: ETH0 > LAN; ETH1 > ONT; ETH2 > Récepteur TV

J'essaye depuis 2/3 jours de basculer sur 1.8 + Orange DHCP IPV4 only pour le moment + TV sur ETH2 (Avec ou sans Livebox).

Actuellement j'ai Internet OK en DHCP et pour la TV c'est super tricky, je dois brancher sur le réseau qui sort de ETH0 le récepteur TV, saisir l'identifiant TV, j'arrive à l’accueil avec les vignettes etc. Dès lors de doit débrancher le RJ45, pour le raccorder à la livebox qui elle est sur ETH2 de l'ERL.

PS: Dès que j'ajoute le rfc3442-classless-routes l'ERL passe en bootloop au redémarrage, obligé de le reset.

SI vous avez une piste. Merci

firewall {
    all-ping enable
    broadcast-ping disable
    ipv6-receive-redirects disable
    ipv6-src-route disable
    ip-src-route disable
    log-martians enable
    name WAN_IN {
        default-action drop
        description "packets from Internet to LAN"
        enable-default-log
        rule 1 {
            action accept
            description "allow established sessions"
            log disable
            protocol all
            state {
                established enable
                invalid disable
                new disable
                related enable
            }
        }
        rule 2 {
            action drop
            description "drop invalid state"
            log disable
            protocol all
            state {
                established disable
                invalid enable
                new disable
                related disable
            }
        }
    }
    name WAN_LOCAL {
        default-action drop
        description "packets from Internet to the router"
        rule 1 {
            action accept
            description "allow established session to the router"
            log disable
            protocol all
            state {
                established enable
                invalid disable
                new disable
                related enable
            }
        }
        rule 2 {
            action accept
            description OpenVPN
            destination {
                port 1194
            }
            log disable
            protocol udp
        }
        rule 3 {
            action drop
            description "drop invalid state"
            log disable
            protocol all
            state {
                established disable
                invalid enable
                new disable
                related disable
            }
        }
    }
    options {
        mss-clamp {
            interface-type pppoe
            interface-type pptp
            interface-type tun
            mss 1452
        }
    }
    receive-redirects disable
    send-redirects enable
    source-validation disable
    syn-cookies enable
}
interfaces {
    bridge br0 {
        description BR_TV
    }
    ethernet eth0 {
        address 10.0.0.254/24
        description LAN1
        duplex auto
        speed auto
    }
    ethernet eth1 {
        description Internet_ONT
        duplex auto
        speed auto
        vif 832 {
            address dhcp
            description "Internet Orange DHCP"
            dhcp-options {
                client-option "send vendor-class-identifier &quot;sagem&quot;;"
                client-option "send dhcp-client-identifier 1:18:1e:XX:XX:XX:XX;"
                client-option "send user-class &quot;+FSVDSL_livebox.Internet.softathome.Livebox3&quot;;"
                client-option "send rfc3118-auth 00:00:00:00:00:00:00:00:00:00:00:66:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX;"
                client-option "request dhcp-lease-time, dhcp-renewal-time, dhcp-rebinding-time, domain-search, rfc3118-auth, SIP;"
                default-route update
                default-route-distance 210
                name-server update
            }
            egress-qos "0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7"
            firewall {
                in {
                    name WAN_IN
                }
                local {
                    name WAN_LOCAL
                }
            }
            traffic-policy {
            }
        }
        vif 838 {
            bridge-group {
                bridge br0
            }
            description "VLAN TV VOD"
            egress-qos "0:4 1:4 2:4 3:4 4:4 5:4 6:4 7:4"
        }
        vif 840 {
            bridge-group {
                bridge br0
            }
            description "VLAN TV Canal 1 - Zap"
            egress-qos "0:5 1:5 2:5 3:5 4:5 5:5 6:5 7:5"
        }
    }
    ethernet eth2 {
        description LAN2_Livebox
        duplex auto
        speed auto
        vif 832 {
            address 192.168.20.1/24
            description "VLAN TV Canal 2"
        }
        vif 838 {
            bridge-group {
                bridge br0
            }
            description "VLAN TV VOD"
            egress-qos "0:4 1:4 2:4 3:4 4:4 5:4 6:4 7:4"
        }
        vif 840 {
            bridge-group {
                bridge br0
            }
            description "VLAN TV Canal 1 - Zap"
            egress-qos "0:5 1:5 2:5 3:5 4:5 5:5 6:5 7:5"
        }
    }
    loopback lo {
    }
}
port-forward {
    auto-firewall enable
    hairpin-nat enable
    lan-interface eth0
    rule 1 {
        description "Kikoo"
        forward-to {
            address 10.0.0.200
            port 14151
        }
        original-port 1415
        protocol tcp
    }
   
    wan-interface eth1.832
}
service {
    dhcp-server {
        disabled false
        global-parameters "option rfc3118-auth code 90 = string;"
        global-parameters "option SIP code 120 = string;"
        hostfile-update disable
        shared-network-name LAN1 {
            authoritative disable
            subnet 10.0.0.0/24 {
                bootfile-name /tftpboot/pxelinux.0
                bootfile-server 10.0.0.10
                default-router 10.0.0.254
                dns-server 10.0.0.10
                dns-server 8.8.8.8
                domain-name XXXXX.lan
                lease 1800
                start 10.0.0.111 {
                    stop 10.0.0.119
                }
               
                subnet-parameters "filename &quot;/pxe-boot/pxelinux.0&quot;;"
            }
        }
        shared-network-name LAN2TV {
            authoritative disable
            subnet 192.168.20.0/24 {
                default-router 192.168.20.1
                dns-server 80.10.246.136
                dns-server 81.253.149.6
                lease 86400
                start 192.168.20.2 {
                    stop 192.168.20.20
                }
                                subnet-parameters "option rfc3118-auth 0:0:0:0:0:0:0:0:0:0:0:64:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX;"
                                subnet-parameters "option SIP 0:6:73:62:63:74:33:67:3:50:55:54:6:61:63:63:65:73:73:11:6f:72:61:6e:67:65:2d:6d:75:6c:74:69:6d:65:64:69:61:3:6e:65:74:0;"
                static-mapping Livebox {
                    ip-address 192.168.20.2
                    mac-address 18:1e:XX:XX:XX:XX
                }
            }
        }
    }
    dns {
        dynamic {
            interface eth1.832 {
                service dyndns {
                    host-name xxxxxx.xxxxxxxxx.fr
                    login xxxxxx
                    password xxxxxxx
                    server www.ovh.com
                }
                web dyndns
            }
        }
        forwarding {
            cache-size 1000
            listen-on eth2
            listen-on eth0
        }
    }
    gui {
        https-port 443
    }
    mdns {
        reflector
    }
    nat {
        rule 5010 {
            description "Masquerading outgoing connections"
            log disable
            outbound-interface eth1.832
            type masquerade
        }
    }
    snmp {
        community clusty {
            authorization ro
        }
        contact "xxxxxxxx"
        location Lille
    }
    ssh {
        port 22
        protocol-version v2
    }
    upnp {
        listen-on eth0 {
            outbound-interface eth1.832
        }
    }
    upnp2 {
        listen-on eth0
        listen-on eth2
        nat-pmp enable
        secure-mode disable
        wan eth1.832
    }
}
system {
    config-management {
        commit-revisions 50
    }
    host-name ubnt
    login {
        user jeremy {
            authentication {
                encrypted-password XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
                plaintext-password ""
            }
            full-name administrator
            level admin
        }
    }
    name-server 10.0.0.10
    name-server 92.222.80.28
    ntp {
        server 0.ubnt.pool.ntp.org {
        }
        server 1.ubnt.pool.ntp.org {
        }
        server 2.ubnt.pool.ntp.org {
        }
        server 3.ubnt.pool.ntp.org {
        }
    }
    offload {
        ipv4 {
            forwarding enable
            vlan enable
        }
    }
    package {
        repository wheezy {
            components "main contrib non-free"
            distribution wheezy
            password ""
            url http://http.us.debian.org/debian
            username ""
        }
        repository wheezy-security {
            components main
            distribution wheezy/updates
            password ""
            url http://security.debian.org
            username ""
        }
    }
    syslog {
        global {
            facility all {
                level notice
            }
            facility protocols {
                level warning
            }
        }
    }
    time-zone Europe/Paris
    traffic-analysis {
        dpi disable
        export disable
    }
}


/* Warning: Do not remove the following line. */
/* === vyatta-config-version: "config-management@1:conntrack@1:cron@1:dhcp-relay@1:dhcp-server@4:firewall@5:ipsec@5:nat@3:qos@1:quagga@2:system@4:ubnt-pptp@1:ubnt-util@1:vrrp@1:webgui@1:webproxy@1:zone-policy@1" === */
/* Release version: v1.8.0.4853089.160219.1607 */
« Modifié: 02 avril 2016 à 19:02:48 par Inglat »

thegibs

  • Abonné Free fibre
  • *
  • Messages: 61
  • 91470
Remplacer sa Livebox par un routeur Ubiquiti Edgemax
« Réponse #2457 le: 03 avril 2016 à 00:32:57 »
Au cas où cela pourrait vous servir, je vous propose une alternative en PowerShell pour encoder/décoder les chaines pour les options 90 et 120 du DHCP
# encode
$opt90 = "fti/xxxxxxx"
"Valeur encodee:`n$opt90`n" + ("00:"*(22 - ($opt90.Length))) + (($opt90.ToCharArray() | % { "{0:x2}" -f ([int]$_)}) -join ":") + "`n"

# decode
$hexString = "00:00:00:00:00:00:00:00:00:00:00:64:68:63:70:6c:69:76:65:62:6f:78:66:72:32:35:30"
"Valeur decodee:`n$hexString`n" + (-join ($hexString -split ":" |% { [char]([convert]::ToInt32($_,16)) }))

Et à toutes fins utiles, voici ma config ERL complète pour le modèle réseau suivant:


C'est à dire que je conserve la Livebox pour servir la TV et le TEL. Toujours pas d'IPv6 hélas, on verra ça plus tard. Sinon tout est validé: téléphone, TV, VoD, et bien sûr, Internet mais en direct sans Livebox.
firewall {
    all-ping enable
    broadcast-ping disable
    ipv6-receive-redirects disable
    ipv6-src-route disable
    ip-src-route disable
    log-martians enable
    name WAN_IN {
        default-action drop
        description "WAN to internal"
        enable-default-log
        rule 10 {
            action accept
            description "Allow established/related"
            log disable
            protocol all
            state {
                established enable
                invalid disable
                new disable
                related enable
            }
        }
        rule 20 {
            action drop
            description "Drop invalid state"
            log disable
            protocol all
            state {
                established disable
                invalid enable
                new disable
                related disable
            }
        }
    }
    name WAN_LOCAL {
        default-action drop
        description "WAN to router"
        rule 10 {
            action accept
            description "Allow established/related"
            log disable
            protocol all
            state {
                established enable
                invalid disable
                new disable
                related enable
            }
        }
        rule 20 {
            action drop
            description "Drop invalid state"
            log disable
            protocol all
            state {
                established disable
                invalid enable
                new disable
                related disable
            }
        }
    }
    options {
        mss-clamp {
            interface-type pppoe
            interface-type pptp
            interface-type tun
            mss 1452
        }
    }
    receive-redirects disable
    send-redirects enable
    source-validation disable
    syn-cookies enable
}
interfaces {
    bridge br0 {
        aging 300
        bridged-conntrack disable
        hello-time 2
        max-age 20
        priority 0
        promiscuous disable
        stp false
    }
    bridge br1 {
        aging 300
        bridged-conntrack disable
        hello-time 2
        max-age 20
        priority 0
        promiscuous disable
        stp false
    }
    ethernet eth0 {
        duplex auto
        speed auto
        vif 832 {
            address 172.16.16.x/24
            description LIVEBOX
        }
        vif 838 {
            bridge-group {
                bridge br0
            }
            egress-qos "0:4 1:4 2:4 3:4 4:4 5:4 6:4 7:4"
        }
        vif 840 {
            bridge-group {
                bridge br1
            }
            egress-qos "0:5 1:5 2:5 3:5 4:5 5:5 6:5 7:5"
        }
    }
    ethernet eth1 {
        duplex auto
        speed auto
        vif 832 {
            address dhcp
            address dhcpv6
            description "Internet VoIP et Canal 2"
            dhcp-options {
                client-option "send vendor-class-identifier &quot;sagem&quot;;"
                client-option "send user-class &quot;\053FSVDSL_livebox.Internet.softathome.Livebox3&quot;;"
                client-option "send rfc3118-auth 00:00:00:00:00:00:00:00:00:00:00:66:74:69:2f:xx:xx:xx:xx:xx:xx:x;"
                client-option "request dhcp-lease-time, dhcp-renewal-time, dhcp-rebinding-time, domain-search, rfc3118-auth, SIP;"
                default-route update
                default-route-distance 210
                name-server update
            }
            egress-qos "0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7"
            firewall {
                in {
                    name WAN_IN
                }
                local {
                    name WAN_LOCAL
                }
            }
            ipv6 {
                address {
                    autoconf
                }
                dup-addr-detect-transmits 1
            }
        }
        vif 838 {
            bridge-group {
                bridge br0
            }
            description VoD
            egress-qos "0:4 1:4 2:4 3:4 4:4 5:4 6:4 7:4"
        }
        vif 840 {
            bridge-group {
                bridge br1
            }
            description "Canal 1 et zapping"
            egress-qos "0:5 1:5 2:5 3:5 5:5 6:5 7:5"
        }
    }
    ethernet eth2 {
        address 192.168.x.x/16
        address 192.168.x.x/16
        duplex auto
        speed auto
    }
    loopback lo {
    }
}
protocols {
    igmp-proxy {
        disable-quickleave
        interface br1 {
            alt-subnet 0.0.0.0/0
            role upstream
            threshold 1
        }
        interface eth0 {
            alt-subnet 0.0.0.0/0
            role downstream
            threshold 1
        }
    }
}
service {
    dhcp-server {
        disabled false
        global-parameters "option rfc3118-auth code 90 = string;"
        global-parameters "option SIP code 120 = string;"
        hostfile-update disable
        shared-network-name LAN {
            authoritative disable
            subnet 192.168.0.0/16 {
                default-router 192.168.x.x
                dns-server 192.168.x.x
                dns-server 8.8.8.8
                domain-name xxxxxxxxx.xxx
                lease 86400
                start 192.168.x.x {
                    stop 192.168.x.x
                }
            }
        }
        shared-network-name LIVEBOX {
            authoritative enable
            subnet 172.16.16.0/24 {
                default-router 172.16.16.x
                dns-server 81.253.149.9
                dns-server 80.10.246.1
                domain-name orange.fr
                lease 86400
                start 172.16.16.x {
                    stop 172.16.16.x
                }
                subnet-parameters "option rfc3118-auth 00:00:00:00:00:00:00:00:00:00:00:64:68:63:70:6c:69:76:65:62:6f:78:66:72:32:35:30;"
                subnet-parameters "option SIP 00:06:73:62:63:74:33:67:03:41:55:42:06:61:63:63:65:73:73:11:6f:72:61:6e:67:65:2d:6d:75:6c:74:69:6d:65:64:69:61:03:6e:65:74:00;"
            }
        }
    }
    dns {
    }
    gui {
        https-port 443
    }
    mdns {
        reflector
    }
    nat {
        rule 5010 {
            log disable
            outbound-interface eth1.832
            protocol all
            type masquerade
        }
    }
    ssh {
        port 22
        protocol-version v2
    }
    upnp2 {
        listen-on eth0.832
        listen-on eth2
        nat-pmp enable
        secure-mode disable
        wan eth1.832
    }
}
system {
    config-management {
        commit-revisions 50
    }
    host-name ubnt
    login {
        user ubnt {
            authentication {
                encrypted-password xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
                plaintext-password ""
            }
            full-name ""
            level admin
        }
    }
    name-server 192.168.x.x
    name-server 8.8.8.8
    ntp {
        server 0.ubnt.pool.ntp.org {
        }
        server 1.ubnt.pool.ntp.org {
        }
        server 2.ubnt.pool.ntp.org {
        }
        server 3.ubnt.pool.ntp.org {
        }
    }
    offload {
        ipsec enable
        ipv4 {
            forwarding enable
            vlan enable
        }
        ipv6 {
            forwarding disable
        }
    }
    package {
        repository wheezy {
            components "main contrib non-free"
            distribution wheezy
            password ""
            url http://http.us.debian.org/debian
            username ""
        }
        repository wheezy-security {
            components main
            distribution wheezy/updates
            password ""
            url http://security.debian.org
            username ""
        }
    }
    syslog {
        global {
            facility all {
                level notice
            }
            facility protocols {
                level debug
            }
        }
        host 192.168.x.x {
            facility all {
                level err
            }
        }
    }
    time-zone Europe/Paris
}


/* Warning: Do not remove the following line. */
/* === vyatta-config-version: "config-management@1:conntrack@1:cron@1:dhcp-relay@1:dhcp-server@4:firewall@5:ipsec@5:nat@3:qos@1:quagga@2:system@4:ubnt-pptp@1:ubnt-util@1:vrrp@1:webgui@1:webproxy@1:zone-policy@1" === */
/* Release version: v1.8.0.4853089.160219.1607 */
« Modifié: 04 avril 2016 à 00:45:04 par thegibs »

MikeTheFreeman

  • Abonné Orange Fibre
  • *
  • Messages: 243
Remplacer sa Livebox par un routeur Ubiquiti Edgemax
« Réponse #2458 le: 04 avril 2016 à 21:28:33 »
Sinon tu peux aussi mettre le wan livebox sur un port du switch, le troisième port de l'ERL sur un autre.
Ensuite tu déclares 832, 838 et 840 en taggé sur les deux ports et le switch devrait faire le bridge à la place de l'ERL.

EDIT : finalement en y repensant ce n'est pas une bonne idée.
Vu qu'on configure un DHCP server pour la livebox sur 832, il serait aussi en écoute sur 832 côté ONT ce qui n'est pas propre.
Il faudrait idéalement encore un autre switch pour avoir deux instances de vlans mais là autant laisser l'ERL faire le job.
Les pros du topic, vous en pensez quoi ?
« Modifié: 05 avril 2016 à 09:07:37 par MikeTheFreeman »

MikeTheFreeman

  • Abonné Orange Fibre
  • *
  • Messages: 243
Remplacer sa Livebox par un routeur Ubiquiti Edgemax
« Réponse #2459 le: 07 avril 2016 à 19:50:33 »
Je me demandais un truc.
Grâce à la prise en compte du traffic non offloadé dans le traffic analysis, on voit le passage des IP du traffic SIP sur l'infra privée d'Orange.
En PPPoE, vu que ce traffic passe par le vlan 851 et qu'il n'y a pas de firewall pour filtrer le flux venant de ce vlan, cela voudrait dire potentiellement que n'importe qui depuis l'infra privée d'Orange pourrait accéder au LAN interne vu que c'est routé ?
Ne faudrait-il pas mettre des règles en out sur 1.851 pour filtrer le traffic non voulu vers ses propres LAN internes ? Et quel style de règle qui soit neutre pour le fonctionnement tout en ayant peu d’impact sur le traffic ?