diff --git a/lib/if.c b/lib/if.c
index 30da8a9..4d4b656 100644
--- a/lib/if.c
+++ b/lib/if.c
@@ -645,6 +645,9 @@
       return CMD_WARNING;
     }
 
+  if (argc > 1)
+    VTY_GET_INTEGER ("VRF ID", vrf_id, argv[1]);
+
 #ifdef SUNOS_5
   ifp = if_sunwzebra_get (argv[0], sl, vrf_id);
 #else
@@ -657,6 +660,13 @@
   return CMD_SUCCESS;
 }
 
+ALIAS (interface,
+       interface_vrf_cmd,
+       "interface IFNAME " VRF_CMD_STR,
+       "Select an interface to configure\n"
+       "Interface's name\n"
+       VRF_CMD_HELP_STR)
+
 DEFUN_NOSH (no_interface,
            no_interface_cmd,
            "no interface IFNAME",
@@ -668,6 +678,9 @@
   struct interface *ifp;
   vrf_id_t vrf_id = VRF_DEFAULT;
 
+  if (argc > 1)
+    VTY_GET_INTEGER ("VRF ID", vrf_id, argv[1]);
+
   ifp = if_lookup_by_name_vrf (argv[0], vrf_id);
 
   if (ifp == NULL)
@@ -688,6 +701,14 @@
   return CMD_SUCCESS;
 }
 
+ALIAS (no_interface,
+       no_interface_vrf_cmd,
+       "no interface IFNAME " VRF_CMD_STR,
+       NO_STR
+       "Delete a pseudo interface's configuration\n"
+       "Interface's name\n"
+       VRF_CMD_HELP_STR)
+
 /* For debug purpose. */
 DEFUN (show_address,
        show_address_cmd,
diff --git a/lib/if.h b/lib/if.h
index 03bd521..ad85dca 100644
--- a/lib/if.h
+++ b/lib/if.h
@@ -342,6 +342,8 @@
 extern struct cmd_element no_interface_desc_cmd;
 extern struct cmd_element interface_cmd;
 extern struct cmd_element no_interface_cmd;
+extern struct cmd_element interface_vrf_cmd;
+extern struct cmd_element no_interface_vrf_cmd;
 extern struct cmd_element interface_pseudo_cmd;
 extern struct cmd_element no_interface_pseudo_cmd;
 extern struct cmd_element show_address_cmd;
diff --git a/vtysh/extract.pl.in b/vtysh/extract.pl.in
index 99d80ed..f057e24 100755
--- a/vtysh/extract.pl.in
+++ b/vtysh/extract.pl.in
@@ -31,6 +31,7 @@
 EOF
 
 $ignore{'"interface IFNAME"'} = "ignore";
+$ignore{'"interface IFNAME " "vrf <0-65535>"'} = "ignore";
 $ignore{'"ip vrf NAME"'} = "ignore";
 $ignore{'"router rip"'} = "ignore";
 $ignore{'"router ripng"'} = "ignore";
diff --git a/vtysh/vtysh.c b/vtysh/vtysh.c
index b33ac90..04ac550 100644
--- a/vtysh/vtysh.c
+++ b/vtysh/vtysh.c
@@ -35,6 +35,7 @@
 #include "vtysh/vtysh.h"
 #include "log.h"
 #include "bgpd/bgp_vty.h"
+#include "vrf.h"
 
 /* Struct VTY. */
 struct vty *vty;
@@ -1296,6 +1297,14 @@
   return CMD_SUCCESS;
 }
 
+ALIAS_SH (VTYSH_ZEBRA,
+	 vtysh_interface,
+	 vtysh_interface_vrf_cmd,
+	 "interface IFNAME " VRF_CMD_STR,
+	 "Select an interface to configure\n"
+	 "Interface's name\n"
+	 VRF_CMD_HELP_STR)
+
 /* TODO Implement "no interface command in isisd. */
 DEFSH (VTYSH_ZEBRA|VTYSH_RIPD|VTYSH_RIPNGD|VTYSH_OSPFD|VTYSH_OSPF6D,
        vtysh_no_interface_cmd,
@@ -1304,6 +1313,14 @@
        "Delete a pseudo interface's configuration\n"
        "Interface's name\n")
 
+DEFSH (VTYSH_ZEBRA,
+       vtysh_no_interface_vrf_cmd,
+       "no interface IFNAME " VRF_CMD_STR,
+       NO_STR
+       "Delete a pseudo interface's configuration\n"
+       "Interface's name\n"
+       VRF_CMD_HELP_STR)
+
 /* TODO Implement interface description commands in ripngd, ospf6d
  * and isisd. */
 DEFSH (VTYSH_ZEBRA|VTYSH_RIPD|VTYSH_OSPFD,
@@ -2381,6 +2398,8 @@
   install_element (KEYCHAIN_KEY_NODE, &key_chain_cmd);
   install_element (CONFIG_NODE, &vtysh_interface_cmd);
   install_element (CONFIG_NODE, &vtysh_no_interface_cmd);
+  install_element (CONFIG_NODE, &vtysh_interface_vrf_cmd);
+  install_element (CONFIG_NODE, &vtysh_no_interface_vrf_cmd);
   install_element (ENABLE_NODE, &vtysh_show_running_config_cmd);
   install_element (ENABLE_NODE, &vtysh_copy_runningconfig_startupconfig_cmd);
   install_element (ENABLE_NODE, &vtysh_write_file_cmd);
diff --git a/zebra/interface.c b/zebra/interface.c
index 3063dad..527893b 100644
--- a/zebra/interface.c
+++ b/zebra/interface.c
@@ -32,6 +32,7 @@
 #include "connected.h"
 #include "log.h"
 #include "zclient.h"
+#include "vrf.h"
 
 #include "zebra/interface.h"
 #include "zebra/rtadv.h"
@@ -914,6 +915,13 @@
   return ret;
 }
 
+ALIAS (zebra_interface,
+       zebra_interface_vrf_cmd,
+       "interface IFNAME " VRF_CMD_STR,
+       "Select an interface to configure\n"
+       "Interface's name\n"
+       VRF_CMD_HELP_STR)
+
 struct cmd_node interface_node =
 {
   INTERFACE_NODE,
@@ -1558,8 +1566,10 @@
 {
   struct listnode *node;
   struct interface *ifp;
+  vrf_iter_t iter;
 
-  for (ALL_LIST_ELEMENTS_RO (iflist, node, ifp))
+  for (iter = vrf_first (); iter != VRF_ITER_INVALID; iter = vrf_next (iter))
+  for (ALL_LIST_ELEMENTS_RO (vrf_iter2iflist (iter), node, ifp))
     {
       struct zebra_if *if_data;
       struct listnode *addrnode;
@@ -1567,9 +1577,12 @@
       struct prefix *p;
 
       if_data = ifp->info;
-      
-      vty_out (vty, "interface %s%s", ifp->name,
-	       VTY_NEWLINE);
+
+      if (ifp->vrf_id == VRF_DEFAULT)
+        vty_out (vty, "interface %s%s", ifp->name, VTY_NEWLINE);
+      else
+        vty_out (vty, "interface %s vrf %u%s", ifp->name, ifp->vrf_id,
+                 VTY_NEWLINE);
 
       if (if_data)
 	{
@@ -1644,7 +1657,9 @@
   install_element (ENABLE_NODE, &show_interface_cmd);
   install_element (ENABLE_NODE, &show_interface_desc_cmd);
   install_element (CONFIG_NODE, &zebra_interface_cmd);
+  install_element (CONFIG_NODE, &zebra_interface_vrf_cmd);
   install_element (CONFIG_NODE, &no_interface_cmd);
+  install_element (CONFIG_NODE, &no_interface_vrf_cmd);
   install_default (INTERFACE_NODE);
   install_element (INTERFACE_NODE, &interface_desc_cmd);
   install_element (INTERFACE_NODE, &no_interface_desc_cmd);
